0

我的书告诉我应该像这样使用 UITableView 单元格的重用标识符

//check for reusable cell of this type
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UITableViewCell"]; 

//if there isn't one, create it
if(!cell){
    cell = [[UITableViewCell alloc] initWithStyle: UITableViewCellStyleDefault
                      reuseIdentifier: @"UITableViewCell"]; 
}   

因此,据我所知,它会检查我们想要的单元格类型是否存在,如果存在,它会使用它,但如果不存在,它会创建一个具有所需标识符的单元格。

如果我们有多个单元格样式(即不同的reuseIdentifiers),我们将如何使用它为我们创建不同的可重用单元格?

4

2 回答 2

3

The table view manages separate queues of cells for reuse for each identifier. So for example, if the cells should have a diiferent appearance for even and odd rows (just as an example), you could do

NSString *cellIdentifier = (indexPath.row % 2 == 0 ? @"EvenCell" : @"OddCell");
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 
if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle: UITableViewCellStyleDefault
                      reuseIdentifier:cellIdentifier];
    if (indexPath.row % 2 == 0) {
        // set cell properties for even rows
    } else {
        // set cell properties for odd rows
    }
}

Using different reuse identifiers guarantees that a cell from an even row is not reused as a cell for an odd row.

(This example would work only if you don't insert or delete cells. Another example would be different cells depending on the content of the row.)

于 2013-06-04T05:22:31.320 回答
0

indexPath, 用它。它包含您的行和部分,因此您要设置的任何属性都可以从行和部分中选择案例并进行相应设置。

于 2013-06-04T05:52:07.543 回答