下面的函数开始从0到n创建单元格,并从模型中检索内容。我的表格中有一些单元格在开头有静态内容,我希望下面的函数忽略它们并从n
位置开始插入新数据。我该怎么做?换句话说,我如何在n
位置返回已存在的单元格?
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
答案 0 :(得分:1)
滚动需要方法tableView:cellForRowAtIndexPath
,因为tableView不会一次加载所有单元格。
如果您只想重新加载tableView的一部分,可以使用方法reloadRowsAtIndexPaths:withRowAnimation:
或reloadSections:withRowAnimation:
。这将仅重新加载指定的单元格。
如果遇到性能问题,并且每次tableView滚动到它们时都不想加载静态单元格,则可以在创建属性后将它们存储在属性中,并仅返回它们。看起来有点像这样:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
switch (indexPath.row) {
case 0:
//Static cell
if (self.staticCell == nil) {
self.staticCell = [UITableViewCell new]; //Instantiate properly here
//Customize cell
}
return self.staticCell;
break;
case 1:
// Other cells normally
break;
}
}
答案 1 :(得分:0)
在伪代码中:
if (indexPath.row == 0)
return some static cell;
else if (indexPath.row == 1)
return some other static cell;
else
configure cell N with data[N-2];