Ser*_*erd 10 objective-c ios autolayout uicontainerview
我有UIViewController 1,那scroll view.在这scrollview里面有container view固定的top/bottom leading/trailing(没有固定的高度).Container view已经UITableView固定到top/bottom trailing/leading和height constraint with 0 constant,将在改变updateViewConstraints内容的大小的高度.
当出现UIViewController 1的视图时,Container View具有约束:
NSLayoutConstraint:0x7b03e5f0 V:[UITableView:0x7c42a200(54)],NSLayoutConstraint:0x7b0ba120 V:| - (0) - [UITableView:0x7c42a200](名称:'|':UIView:0x7b0b7000),NSLayoutConstraint:0x7b0ba1b0 V:[UITableView: 0x7c42a200] - (O) - | (名称:'|':UIView:0x7b0b7000),NSLayoutConstraint:0x7b65f900'UIView-Encapsulated-Layout-Height'V:[UIView:0x7b0b7000(0)]
将尝试通过打破约束来恢复
NSLayoutConstraint:0x7b03e5f0 V:[UITableView:0x7c42a200(54)]
什么是UIView-Encapsulated-Layout-Heigh?我怎么能跳过它?因为它打破了"正确"约束(我更新到内容大小高度).谢谢
小智 15
最后我解决了这个问题.
1.在tableView设置中,设置:tableView.estimatedRowHeight = 100.
2.在单元格的最后一个视图中,设置:make.bottom.equalTo(contentView).priority(999).
3.运行你的代码,也许没关系!
Ser*_*erd 14
最后我发现了一个问题.作为子视图添加到容器视图的视图具有translatesAutoresizingMaskIntoConstraints = YES,因此NSLayoutConstraint:0x7b65f900'UIView-Encapsulated-Layout-Height'V:[UIView:0x7b0b7000(0)]出现并使我遇到了一些问题.添加运行时属性translatesAutoresizingMaskIntoConstraints = NO,它将解决问题.
用最简单的方法之一解决此问题:降低绑定到容器视图底部边缘的自动布局规则的优先级。
这是我的容器:
我告诉该图像视图遵循容器的底部边缘,这给了我一个冲突。要解决此问题,我可以降低该底边规则的优先级:
我说“底部”是因为据我估计,这可能是您将要与之发生冲突的地方,但是它可能是任何隐式设置容器宽度的边。
bey*_*ulf -1
设置容器视图的高度约束。创建一个具有所述高度约束的 IBOutlet,将其称为“containerViewHeightConstraint”或其他名称。当您将表视图的高度约束更新为 54 时,请输入以下内容:
self.containerViewHeightConstraint.constant = 54.0;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8890 次 |
| 最近记录: |