如何加快表行滚动?

elp*_*elp 1 iphone objective-c uitableview ipad

我有一个由这些元素组成的表格行:

替代文字

1 - 图像视图(日历)
4 - uilabel(月,日,标题,描述)

cellForRowAtIndexPathi上以这种方式填充标签(图像相同并由界面构建器插入):

@try {
    newsRow = ((NewsRowController *)[tableView dequeueReusableCellWithIdentifier:@"cell"]);
    if (newsRow == nil) {
        if (IS_IPAD)
            [[NSBundle mainBundle] loadNibNamed:@"NewsRow_ipad" owner:self options:nil];
        else [[NSBundle mainBundle] loadNibNamed:@"NewsRow" owner:self options:nil];

        if ([tableArray count] > 0) {
            [newsRow setCellDataWithName:[tableArray objectAtIndex:indexPath.row]  
                                 andDate:[descArray objectAtIndex:indexPath.row] 
                                     day:[dayArray objectAtIndex:indexPath.row]
                                   month:[monthArray objectAtIndex:indexPath.row]];
        }
    }       
}
@catch (NSException * e) {
    NSLog(@"fail.");
}
return newsRow;
Run Code Online (Sandbox Code Playgroud)

现在tableArray,descArray,dayArray,monthArray被填充的NSMutableArray上viewDidLoad.

为什么在iPhone设备上(我的测试是使用3G)太慢而无法向上/向下滚动?
我需要删除什么来加速表?
这是我的所有代码,但我无法找到更好的解决方案......

编辑:
替代文字
我无法设置标识符...我看不到它...
我的新闻行控制器是:

@interface NewsRowController : UITableViewCell
Run Code Online (Sandbox Code Playgroud)

来自iphonist世界的任何想法??? :)

谢谢,
A

Mat*_*uch 5

是nib文件中tableviewcell的reuseidentifier正确吗?(您可以在属性检查器中找到它)

我对此表示怀疑,因为如果它是"细胞",你会问为什么你的细胞不会更新.


编辑:如果标识符与代码中的标识符完全相同,请在界面构建器中再次检查. Interface Builder表视图单元标识符

然后像这样更改你的代码:

if (newsRow == nil) {
    if (IS_IPAD)
        [[NSBundle mainBundle] loadNibNamed:@"NewsRow_ipad" owner:self options:nil];
    else 
        [[NSBundle mainBundle] loadNibNamed:@"NewsRow" owner:self options:nil];
}
else {
    NSLog(@"Dequeue success");
}
// no matter if there was a successful dequeue or not, you have a valid cell at this point
if ([tableArray count] > 0) {
    [newsRow setCellDataWithName:[tableArray objectAtIndex:indexPath.row]  
                         andDate:[descArray objectAtIndex:indexPath.row] 
                             day:[dayArray objectAtIndex:indexPath.row]
                           month:[monthArray objectAtIndex:indexPath.row]];
}
Run Code Online (Sandbox Code Playgroud)

看看你是否能看到Dequeue成功的logmessage


EDIT2

你确定你已经为你的笔尖添加了一个表视图单元而不是一个UIView吗?
我从来没有尝试,但对我来说,听起来你可以在一个笔尖中有一个UIView,它被"提升"到一个TableViewCell,它被添加到一个tableview中.

我检查这个的最佳尝试是单元格的图标它应该如下所示: 细胞图标