自定义 UITableViewCell 快速滚动

Posted

技术标签:

【中文标题】自定义 UITableViewCell 快速滚动【英文标题】:Custom UITableViewCell fast scrolling 【发布时间】:2010-08-23 19:05:40 【问题描述】:

我有一个 UITableView 显示我在界面生成器中设计的自定义视图单元格。它有很多按钮和标签以及渐变背景,这使得滚动性能马虎,每次加载新单元格时它都会“滞后”。我已经阅读了创建 Tweetie 的人关于快速滚动的指南,它说最好手动绘制所有内容。

还有其他方法可以做到这一点吗?我想使用我的 .xib 文件,因为手动绘制所有这些组件非常繁琐。

这就是 cellForRowAtIndexPath: 方法的实现方式:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

    static NSString *CellIdentifier = @"ThreadsViewCell";

    ThreadViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil)       
        NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"ThreadViewCell" owner:nil options:nil];

        for(id currentObject in topLevelObjects)
        
            if([currentObject isKindOfClass:[ThreadViewCell class]])
            
                cell = (ThreadViewCell *)currentObject;
                break;
            
        
    

【问题讨论】:

【参考方案1】:

复杂的视图层次结构和 alpha 混合总是会影响您的滚动性能。

您需要扁平化/简化视图层次结构,或者开始锻炼您的 CoreGraphics 技能。

如果您有兴趣了解自己进行了多少混合,请(在设备上)在仪器中运行“核心动画”模式并选中“颜色混合图层”复选框。您希望看到尽可能多的绿色,红色越深,混合效果越差。

【讨论】:

以上是关于自定义 UITableViewCell 快速滚动的主要内容,如果未能解决你的问题,请参考以下文章

UITableViewCell 内的 UIScrollView - 水平滚动

自定义 UITableViewCell 图像直到滚动才显示

UITableViewCell 使用自定义单元格滚动不平滑

滚动时自定义uitableviewcell空白

对于自定义 UITableViewCell 中的大图像,为啥 drawRect 滚动比 UIImageView 慢

TableView 滚动时自定义 UITableViewCell 发生变化