自定义UITableViewCell快速滚动

时间:2010-08-23 19:05:41

标签: iphone objective-c performance 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;
            }
        }
    }

1 个答案:

答案 0 :(得分:5)

复杂的视图层次结构和alpha混合将始终消除滚动性能。

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

如果您有兴趣了解已经进行了多少混合,请在(在设备上)运行乐器中的“核心动画”模式,然后选中“颜色混合图层”复选框。你想看到尽可能多的绿色,红色越深,混合越差。