UICollectionView滚动不流畅。为什么?

时间:2013-06-27 05:29:35

标签: ios uicollectionview

为什么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;

2 个答案:

答案 0 :(得分:0)

就我而言,图层边框打破了平滑度。因为我真的希望边框存在,并且我无法使用图像(背景颜色必须可更改),我使用以下UIView层次结构解决了它:

UIView with rounded corners coloured with "border colour"
    UIView with rounded corners coloured with "content colour"

答案 1 :(得分:0)

这是一个老问题,但如果有人仍然在寻找答案,那么在cellForItemAtIndexPath中,首先dequeue您的collectionView单元格会有一个简短的技巧:

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

然后添加以下行:

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