iOS在表格视图中更改特定单元格

时间:2014-06-11 14:05:37

标签: ios objective-c uitableview

下面的函数开始从0到n创建单元格,并从模型中检索内容。我的表格中有一些单元格在开头有静态内容,我希望下面的函数忽略它们并从n位置开始插入新数据。我该怎么做?换句话说,我如何在n位置返回已存在的单元格?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

2 个答案:

答案 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];