无法在自定义表格视图单元格上设置属性

时间:2014-01-30 14:25:14

标签: ios objective-c uitableview

我在自定义单元格上设置视图元素时遇到问题。表格单元格出现在我的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

非常感谢任何帮助或建议

1 个答案:

答案 0 :(得分:2)

cell = [[CustomCell alloc] init];不会从XIB创建您的单元格,因此不会创建任何XIB内容。

使用registerNib:forCellReuseIdentifier:向表格视图注册XIB,以便它为您创建单元格实例(您不需要在cellForRowAtIndexPath中自己创建实例)。

如果您不想这样做,可以使用nibWithNibName:bundle:instantiateWithOwner:options:显式加载NIB,然后从返回的视图列表中获取单元实例(应该只包含1个项目) )。