0

UICollecionViewのスクロールがスムーズでないのはなぜですか?

これはコードです:

static NSString *CellIdentifier = @"cellRecipe";

// Configure the cell...

[cell setBackgroundColor: [UIColor colorWithPatternImage:[UIImage imageNamed:@"bgRecipeCell.png"]]];

cell.image.layer.masksToBounds = YES;
cell.image.layer.cornerRadius = 8.0f;
cell.image.layer.borderColor = [UIColor blackColor].CGColor;
cell.image.layer.borderWidth = 1.0f;

Recipes *recipe = [recipesArray_ objectAtIndex:indexPath.item];

//checking for purchase
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSObject *object = [prefs objectForKey:@"com.__.__.recipefree"];

if ([recipe.isPaid integerValue] == 0) {
    [cell.freeImage setHidden:NO];
}
else [cell.freeImage setHidden:YES];

if ([object isEqual:[NSNumber numberWithInt:1]]) {
    [cell.freeImage setHidden:YES];
}

if ([recipe.isFavorite integerValue] == 0) {
    [cell.favImage setImage:[UIImage imageNamed:@"toFavorite.png"] ];
}
else [cell.favImage setImage: [UIImage imageNamed:@"toFavorite_.png"]];

[cell.recipeName setText: recipe.name];
[cell.image setImage:recipe.thumbImage];

MainTabController *mainTabController = [[MainTabController alloc] init];
int difficulty = [recipe.difficulty intValue];
//this is the function which return an image for difficulty level from 1 to 5
[cell.difficultyImage setImage: [mainTabController imageForRating:difficulty]];

return cell;
4

2 に答える 2

0

私の場合、レイヤーの境界線が滑らかさを壊していました。私は本当に境界線が必要で、画像を使用できなかったので (背景色は変更可能でなければなりません)、次の UIView 階層で解決しました。

UIView with rounded corners coloured with "border colour"
    UIView with rounded corners coloured with "content colour"
于 2014-04-15T14:59:04.993 に答える
0

それは古い質問ですが、誰かがまだ答えを探している場合に備えて、短いトリックは、 in cellForItemAtIndexPath、最初dequeueにあなたのcollectionViewcell になります:

CustomCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:reuseIdentifier forIndexPath:indexPath];

次に、次の行を追加します。

cell.layer.shouldRasterize = YES; cell.layer.rasterizationScale = [UIScreen mainScreen].scale;

于 2018-06-05T14:32:37.727 に答える