1

我用xib设置界面,用的时候不流畅,为什么?

- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"CustomerCell";
    CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (!cell) {
        NSArray * nib = [[NSBundle mainBundle] loadNibNamed:@"MSNeedCheckCell" owner:self options:nil] ;
        cell = [nib objectAtIndex:0];
    }
//填充cell的内容
}
4

2 回答 2

0

尝试从类的 init 方法调用以下方法:

[self.tableView registerNib:[UINib nibWithNibName:@"MSNeedCheckCell" bundle:nil]
     forCellReuseIdentifier:@"CustomerCell"];

然后,您可以删除整个if (!cell) {代码部分,因为它总是会返回一个单元格。这只会加载一次笔尖,而不是每次您需要一个单元格时,所以会快得多。

于 2013-02-16T02:38:27.637 回答
0

从字面上看,这就是它的全部吗?或者您是否在做其他任何事情(例如,在子类单元格中,或为简洁起见可能省略的其他代码)。

缺乏平滑度的最常见原因(并且通过平滑度,我假设您在谈论在您的表格视图中滚动时 UI 中的卡顿)将是如果您正在对前景队列中的图像执行任何操作。

WWDC 2012 - 211 - Building Concurrent User Interfaces为如何使用 Instruments 识别性能瓶颈的来源提供了一个精彩而实用的说明。显然,他们专注于一个非常具体的设计考虑,但仪器教程非常有用。在您为此失去太多睡眠之前,最好确保这行特定的代码确实是问题所在。

于 2013-02-16T02:42:27.137 回答