我正在从自定义 TableViewCells 迁移tableView:cellForRow:atIndexPath:
到使用自定义UITableViewCell
子类。我是这样做的:
首先,创建空的 XIB,拖到UITableViewCell
那里并放在UILabel
上面。创建了一个类(的子类UITableViewCell
)并在 Interface Builder 的属性编辑器中将该类设置为MyCell
. 然后,在我的 TableViewController 中,输入以下内容:
- (void)viewDidLoad
{
[super viewDidLoad];
// load custom cell
UINib *cellNIB = [UINib nibWithNibName:@"MyCell" bundle:nil];
if (cellNIB)
{
[self.tableView registerNib:cellNIB forCellReuseIdentifier:@"MyCell"];
} else NSLog(@"failed to load nib");
}
之后,我清除了所有自定义代码,tableView:cellForRow:atIndexPath:
只留下了默认行:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"MyCell";
MyCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
return cell;
}
当我运行这个时,我希望在每个单元格中看到一堆带有单个标签的单元格(我在创建 XIB 时放在中间的标签)。但相反,我看到的只是纯白色的空单元格,向 XIB 布局添加/删除组件并没有帮助。
我花了一天时间尝试不同的选项,例如在 Interface Builder 中为自定义单元格 XIB 设置重用标识符并在中加载视图tableView:cellForRow:atIndexPath:
,但没有任何帮助。