【发布时间】:2014-05-13 14:09:12
【问题描述】:
我有一个包含 6 个单元格和几个部分的静态表格。当我初始化一个单元格时,它总是返回 nil,尽管我在传递的过程中使用了这个完全相同的方法......
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.section == SAVE_SECTION) {
ATSaveCell *cell = [tableView dequeueReusableCellWithIdentifier:@"SaveCell"];
if(cell == nil) {
NSLog(@"nil cell");
cell = [[ATSaveCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"SaveCell"];
}
cell.textLabel.text = @"test";
return cell;
}
nil 单元总是输出。在我的故事板中,我有一个 tableviewcontroller 定义了单元格,id 是“SaveCell”。我还检查以确保表 ciew 控制器与我正在工作的类是同一个类...我在传递中使用了完全相同的方法,所以我不确定为什么单元格每次都返回 nil。
另外,初始化我的tableviewcontroller:
ATSearchSettingsViewController *mySearchSettings = [sb instantiateViewControllerWithIdentifier:@"SearchSettings"];
很明显,表格视图没有在情节提要中注册原型单元格。
【问题讨论】:
-
如果没有足够的单元格容纳视图,它将始终创建一个新单元格。您不能重复使用仍然可见的单元格。
-
尝试添加 [self.tableView registerClass:[ATSaveCell class] forCellReuseIdentifier:@"SaveCell"];在 viewDidLoad
-
@WilliamGeorge 这可能是一个答案,而不仅仅是评论
-
@wootage 这可以防止崩溃,但单元格与我在情节提要中制作的原型不同。
-
@WilliamGeorge 我只返回 1 个单元格。
标签: ios