自定义UITableViewCell快速滚动

Acc*_*yyc 1 iphone performance objective-c uitableview

我有一个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;
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

Jer*_*nes 5

复杂的视图层次结构和alpha混合将始终阻止您的滚动性能.

您需要展平/简化视图层次结构,或者开始使用CoreGraphics技能.

如果您对查看混合程度感兴趣,请在仪器中运行(在设备上)"核心动画"模式,然后选中"颜色混合图层"复选框.你想看到尽可能多的绿色,红色越深,混合越差.