UITableViewCell的-layoutSubviews的实现需要调用super
Posted
技术标签:
【中文标题】UITableViewCell的-layoutSubviews的实现需要调用super【英文标题】:UITableViewCell's implementation of -layoutSubviews needs to call super 【发布时间】:2014-10-31 04:14:32 【问题描述】:我在 UITableViewCell 添加一个视图,并使用 mas_makeConstraints (Masonry)
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kMASCellReuseIdentifier forIndexPath:indexPath];
UIView * view =[[UIView alloc]init];
view.backgroundColor=[UIColor redColor];
[cell addSubview:view];
[view mas_makeConstraints:^(MASConstraintMaker *make)
make.right.equalTo(cell).offset(-20);
make.centerY.equalTo(cell);
make.width.height.equalTo(@20);
];
但它不起作用。
错误信息: 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“执行 -layoutSubviews 后仍需要自动布局。 UITableViewCell 的-layoutSubviews 实现需要调用super。'
请帮帮我! @.@
【问题讨论】:
您应该将视图添加到单元格的 contentView (并且也应该对其进行约束)而不是单元格。最好将此代码放在单元格的 init 方法中,而不是 cellForRowAtIndexPath。按照现在的代码编写方式,每次重用单元格时都会添加视图。 是的,你是对的。非常感谢! 【参考方案1】:更好的是,为什么不通过 IB 制作自定义 UITableViewCell
并添加您需要的视图。
【讨论】:
感谢您的想法!但我不喜欢 IB。如何只使用代码制作自定义 UITableViewCell ?我试试。它在 ios7 中运行良好。但是ios6不行。错误信息:UITableViewCell 的-layoutSubviews 实现需要调用super 将其添加到单元格 contentView 中。这应该可以解决问题。以上是关于UITableViewCell的-layoutSubviews的实现需要调用super的主要内容,如果未能解决你的问题,请参考以下文章
UITableViewCell 中的 UIDatePicker 更新 UITableViewCell 文本标签
UITableViewCell 上的动画按钮而不影响其他 UITableViewCell
斯威夫特 - UITableViewCell?不能转换为 UITableViewCell