如何在 UIView TableView 上添加 UITableViewCell
Posted
技术标签:
【中文标题】如何在 UIView TableView 上添加 UITableViewCell【英文标题】:How to add UITableViewCell on UIView TableView 【发布时间】:2017-04-06 14:07:37 【问题描述】:我有 UIView
类添加了UITableView
现在我创建了UITableViewCell
想在UITableViewCell
上添加自定义单元格。
- (id)initWithCoder:(NSCoder *)coder
self = [super initWithCoder:coder];
if (self)
//do somthing
filterColorTableView.delegate = self;
filterColorTableView.dataSource = self;
[self.filterColorTableView registerNib:[UINib nibWithNibName:@"FilterColor" bundle:nil] forCellReuseIdentifier:@"COLORCELL"];
colorNameList = [[ColorModelClass colorListNames]allKeys];
filterColorTableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
return self;
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *tableViewCellIdentifier = @"COLORCELL";
FilterColorTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:tableViewCellIdentifier forIndexPath:indexPath];
[cell.lbl_ColorName setText:@"Welcome"] ;
cell.lbl_ColorName.textColor = [UIColor redColor];
[cell.colorImage setImage:[UIImage imageNamed:@"circle.png"]];
return cell;
Crash Report Message:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'unable to dequeue a cell with identifier COLORCELL - must register a nib or a class for the identifier or connect a prototype cell in a storyboard'
创建单元格对象但关联的 lbl_ColorName 和 colorImage 总是 nil 的
注意:我不使用 UIViewController 仅使用 UIView 类。
在 UIView Xib 上添加了 UITableView 并在同一文件的所有者中采用了另一个自定义 UITableViewCell。
【问题讨论】:
你用tableview注册了cell吗?为了出队? @HarmVanRisk 是的,我做到了。 在 xib 文件中突出显示单元格时,是否将标识符添加到属性检查器? @HarmVanRisk 检查附件。 【参考方案1】:第一个 register the custom cell class 在 viewDidLoad 时或之后的任何时间。完成此操作后,与类或 nib 注册一起引入的 the dequeue method 是 dequeueReusableCellWithIdentifier:forIndexPath:
。注意新的 indexPath 参数。
它总是返回一个初始化的单元格,所以 nil 检查是多余的......
FilterColorTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:filterTableViewCell forIndexPath:indexPath];
// deleted if(cell == nil)...
【讨论】:
我尝试注册并更新它现在崩溃的 'NSInternalInconsistencyException',原因:'无法使具有标识符 COLORCELL 的单元格出列 - 必须为标识符注册一个 nib 或一个类或连接一个原型单元格标识符中的故事板'我添加了“COLORCELL”,我更详细地更新了问题。 嗯。我没有意识到这是在 initWithCoder 的上下文中。这听起来像在 init 中完成的工作还为时过早。你能把表格设置的东西移到didLayoutSubviews
以上是关于如何在 UIView TableView 上添加 UITableViewCell的主要内容,如果未能解决你的问题,请参考以下文章