【发布时间】:2014-05-09 06:06:50
【问题描述】:
我设计了一个自定义的 UITableViewCell,在单元格的 contentView 中添加了一些子视图,我还在 contentView 和子视图之间添加了一些自动布局约束。
但是当我调试应用程序时,Xcode 告诉我存在约束冲突。在约束列表中,有一个 NSAutoresizingMaskLayoutLayoutConstraint 将单元格高度限制为 43,因此 Xcode 打破了我的子视图高度的约束并“压缩”它。
我试过了:
在界面生成器中,取消选中“autoreize subviews”复选框。没用。
在代码中,
cell.contentView.translatesAutoResizingMaskIntoConstraints = NO。这会导致应用程序崩溃并出现异常:“执行 -layoutSubviews 后仍需要自动布局”。我已经尝试了这个问题中提出的所有解决方案:"Auto Layout still required after executing -layoutSubviews" with UITableViewCell subclass它们都不适合我。
所以我想我只能让单元格做它的自动调整大小的事情,并删除代码中的自动调整大小约束。在不破坏东西的情况下我应该怎么做?
编辑: 或者,从另一个角度来看,如何使 tableViewCell 高度灵活(随子视图高度和约束而变化)?在IB中,我必须设置它的高度,对吧?
【问题讨论】:
-
一定有一些布局冲突。创建一些示例项目并与我们分享。然后很容易弄清楚。如果您想知道如何使用自动布局创建动态单元格高度,那么我创建了一些示例项目,可以在这里分享。
标签: ios objective-c uitableview autolayout