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

这是一个老问题,但如果有人仍在寻找答案,那么一个小技巧将是cellForItemAtIndexPath,首先是dequeue你的collectionView单元格:

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

然后添加以下行:

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

于 2018-06-05T14:32:37.727 回答