我有一个UITableView正在从MPMediaQuery加载一个Albums列表。一切都运转良好,直到我注意到一张非方形专辑封面的专辑正在推动内置单元格视图的标签文本向右移动。注意到这是我的垮台,因为在这个过程中我也注意到滚动不太顺利。
我从笔尖制作了一个细胞,解决了定位问题,但性能仍然受到影响。在这一点上,我开始进行大量的研究,并尝试一切能力来实施。
我确保像cellIdentifier等所有正常的东西都是正确的,如果单元格视图只有文本,它会完美滚动。
下面找到tableviewcell的一个实现,使用一个默认的单元格视图来说明我当前如何抓取单元格的图像:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// Cell initizalation
static NSString *CellIdent = @"CellIdent";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdent];
if (cell == nil) {
cell = [[UITableViewCell alloc]
initWithStyle:UITableViewCellStyleSubtitle
reuseIdentifier:CellIdent];
}
cell.imageView.image = [[[[albumList
objectAtIndex:indexPath.section]objectAtIndex:indexPath.row] valueForProperty:MPMediaItemPropertyArtwork]imageWithSize:CGSizeMake(0,56)];
//it seems to scale with a sharper image if CGSizeMake has a value, rather than
//CGSizeZero. It doesn't actually do any scaling at this point, which I initially thought
//it would, but the results were more what I wanted so...
return cell;
}
在Apple的ipod应用程序中,带有艺术卷轴的专辑列表就像丝绸一样,显然,我错过了一些东西。
答案 0 :(得分:0)
这个答案将有所帮助:
Tricks for improving iPhone UITableView scrolling performance?
特别注意第3步:
在UITableViewCell的drawRect中绘制所有内容:如果可能的话,不惜一切代价避免子视图(或者如果你需要标准的辅助功能,那么内容视图的drawRect:)
示例:
- (void)drawRect:(CGRect)rect {
[yourImage drawAtPoint:CGPointMake(0,0)];
}
如果您自己绘制图像,Apple可以找到一个示例应用程序,说明提高性能:
如果您想要完整而清晰的解释,请查看详细介绍UITableViewPerformance的WWDC会话: