- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
MyTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyIdentifier"];
cell.firstLabel.text = [NSString stringWithFormat:@"%d", indexPath.row];
cell.secondLabel.text = [NSString stringWithFormat:@"%d", NUMBER_OF_ROWS - indexPath.row];
return cell;
}
这是Apple Table View Programming Guide的代码段
MyTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyIdentifier"];
工作正常,不需要检查nil,因为该单元格是在故事板上定义的,并且始终返回有效单元格。但是,如果我不使用故事板,那么如何以编程方式在表视图中使用多个自定义单元格?
allocating and initializing MyTableViewCell
涉及哪些问题 最佳答案
您应该使用方法
- (void)registerNib:(UINib *)nib forCellReuseIdentifier:(NSString *)identifier
- (void)registerClass:(Class)cellClass forCellReuseIdentifier:(NSString *)identifier
UITableView。您可以阅读here文档。
调用方法时
- (id)dequeueReusableCellWithIdentifier:(NSString *)identifier
,它将检查重用队列中是否有可用的单元格。如果不是,它将检查是否可以自动创建此单元格。如果您以前为该重用标识符注册了单元格类或nib,它将使用类或nib创建新单元格并返回它。如果您没有注册任何内容,它将返回nil。
最好使用注册,因为如果您具有用于不同重用标识符的不同自定义单元,则用于创建这些单元的代码将变得混乱。这也是正确的方法。分别在iOS5和iOS6中添加了注册方法。用于由程序员创建自定义单元的代码与旧版本的iOS有关。