我有一个由这些元素组成的表格行:
1 - 图像视图(日历)
4 - uilabel(月,日,标题,描述)
on cellForRowAtIndexPath
我以这种方式填充标签(图像相同并由界面构建器插入):
@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;
现在,tableArray
,descArray
,dayArray
,monthArray
是viewDidLoad
上填充的NSMutableArray。
为什么在iPhone设备上(我的测试是使用3G)太慢而无法向上/向下滚动?
我需要删除什么来加快表格?
这是我的所有代码,但我无法找到更好的解决方案......
修改
我无法设置标识符...我看不到它...
我的新闻行控制器是:
@interface NewsRowController : UITableViewCell
来自iphonist世界的任何想法??? :)
感谢,
甲
答案 0 :(得分:5)
是nib文件中tableviewcell的reuseidentifier正确吗? (您可以在属性检查器中找到它)
我对此表示怀疑,因为如果它是“细胞”,你会问为什么你的细胞不会更新。
编辑:如果标识符完全与代码中的标识符相同,请再次在界面构建器中检查。
然后像这样更改你的代码:
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]];
}
看看你是否能看到Dequeue成功logmessage
EDIT2
你确定你已经为你的笔尖添加了一个表视图单元而不是一个UIView吗? 我从来没有尝试,但对我来说,听起来你可以在一个笔尖中有一个UIView,它被“提升”到一个TableViewCell,它被添加到一个tableview中。
我检查这个的最佳尝试是单元格的图标 它应该如下所示: