我在xib中定义了自定义UITableViewCell。它在内容视图中有两个视图,一个标签和一个文本视图。
在我的表视图控制器中,使用
JJDTextInputCell *cell = [[SDLTextInputCell alloc] init];
或
JJDTextInputCell *cell = [tableView dequeueReusableCellWithIdentifier:@"TextInputCell" forIndexPath:indexPath];
IBOutlet为空,因此表格视图不显示我尝试使用
显示的默认文本或任何文本cell.descriptionLabel.text = @"foo";
初始化使用界面构建器创建的自定义UITableView单元的正确方法是什么?
答案 0 :(得分:3)
AFAIK,有两种方法可以使表格单元格出列,您可以在文档中找到它们here。在Creating Table View Cells
下找到它们。您正在使用dequeueReusableCellWithIdentifier:forIndexPath:
,它始终返回一个有效的单元格,但您需要使用registerNib:forCellReuseIdentifier:
函数与此配对。您必须注册该课程,然后您将获得一个有效的单元格。查看this问题以供参考。
答案 1 :(得分:2)
如果您将XIB用于自定义单元格,则应使用
[self.tableView registerNib:[UINib nibWithNibName:@"TableViewCell" bundle:nil] forCellReuseIdentifier:"CellIdentifier"];
用于注册单元格而不是
[self.tableView registerClass:[TableViewCell class] forCellReuseIdentifier:"CellIdentifier"];
答案 2 :(得分:1)
从xib文件初始化它们。
JJDTextInputCell *cell = [[[NSBundle mainBundle] loadNibNamed:@"JJDTextInputCell" owner:self options:nil] objectAtIndex:0];