优先考虑表格视图单元格IOS

时间:2014-12-28 15:52:14

标签: ios objective-c uitableview

如何优化tableView单元格以显示在mothod cellForRowAtIndexPath中tableView的顶部? 我想在tableView单元格的顶部显示优先级单元格,检查它们是否具有优先级,具体取决于bool属性的havePriority值,如果havePriority为1,它应该是真的,否则应该在优先级列表之后。 我尝试过使用不同的单元格标识符但无法将列表放在顶部。

我的代码:

static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }
 if (havePriority) // if the cell wants priority to be at top, have a value in bool
    {
        cell.textLabel = sOmeText; // 
        NSLog(@"%@",sOmeText);
    }
    return cell;

1 个答案:

答案 0 :(得分:0)

您不应该在该方法中设置单元格的顺序。到那时为时已晚。

这确实应该在模型层中完成。要显示的项目列表应该已根据其优先级进行排序,这样它们就会显示在顶部。

其次,这种类型的代码不再是必需的了:

 UITableViewCell *cell = [self.tableView  dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

你应该使用更现代的方法:

 UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier 
                                                              forIndexPath:indexPath];

这将从重用池返回一个单元格或创建一个新单元格,因此它总是返回一个单元格,而不需要自己创建一个单元格。