我在自定义单元格上设置视图元素时遇到问题。表格单元格出现在我的tableView中,但属性未设置,因此只显示空白/空白单元格。
tableView不是tableView控制器,而只是viewController中的tableView。
我有以下文件:
CustomCell.xib:
在这里,我使用IB来构建自定义单元格,方法是使用带有标签和图像的对象库中的表视图单元格。我将标识符设置为 orderListCell 。在此屏幕中,我按住Ctrl +拖动以在 customCell.h
CustomCell.h
在这里,我将所有IBOutlets视为上述文件中的属性
CustomCell.m
我按原样离开
OrderListViewController.h
在这里我导入 customCell.h 并使用协议 UITableViewDelegate,UITableViewDataSource
OrderListViewController.m
在这里,我将tableView委托和tableView dataSource设置为self。我还从Storyboard为我的tableView创建了一个IBOutlet。
我使用以下代码尝试显示我的单元格:
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"orderListCell";
CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (!cell) {
cell = [[CustomCell alloc] init];
}
cell.myLabel.text = @"aaaaaaaa"; //[[self.orders objectAtIndex:indexPath.row] objectForKey: @"tableNo"];
return cell;
}
我已经简化了我的代码,以证明即使将标签设置为一个简单的字符串(@" aaaaaaaa")也不起作用。当我查看调试器中的对象时,单元格确实具有IBOutlets的所有属性,并且单元格确实出现在我的tableView中,只是 label.text = xxx 似乎不起作用。
我查看了以下帖子,但要么不理解它,要么对我不起作用:
ios 7 customizing UITableViewCell's content view
Can't set properties in Custom UITableViewCell
Set label for a custom cell
非常感谢任何帮助或建议
答案 0 :(得分:2)
cell = [[CustomCell alloc] init];
不会从XIB创建您的单元格,因此不会创建任何XIB内容。
使用registerNib:forCellReuseIdentifier:
向表格视图注册XIB,以便它为您创建单元格实例(您不需要在cellForRowAtIndexPath
中自己创建实例)。
如果您不想这样做,可以使用nibWithNibName:bundle:
和instantiateWithOwner:options:
显式加载NIB,然后从返回的视图列表中获取单元实例(应该只包含1个项目) )。