【发布时间】:2016-02-05 11:33:10
【问题描述】:
我有一些与自动布局和手动布局混合有关的不那么普通的问题。
- view1 - 使用自动布局的超级视图
- view2 - 使用手动布局的子视图
view1的高度取决于子视图的总高度。
我为 view2 设置了 translatesAutoresizingMaskIntoConstraints = NO 和 frame 并将其作为子视图添加到 view1 。 view2 的结果高度为 0(在 layoutSubviews 中)
所以 view1 的自动布局在确定自身高度时不会关注 view2 的 高度。然后将这个 0 高度传播到 view2。
需要建议。我不确定这是否合法。
【问题讨论】:
-
您的答案没有发布太多代码,所以我有一些通用的 cmets。您可以混合使用 Interface Builder 创建的视图和以编程方式创建的视图。有几种方法可以做到这一点,但我认为最简单的方法是使用 Visual Format Language。本教程是一个很好的起点。 raywenderlich.com/110393/…
-
如何使用不同的布局引擎以编程方式创建混合视图?谷歌没有那么多教程:(
-
不确定这里的代码是否合适,但如果我的描述不够清楚,我可以绘制方案。
-
正如你所说的
superview size equals到subview size,操作系统如何知道SuperView (View1)和子视图(view2)之间的依赖关系而不指定自动布局? -
超级视图为子视图的顶部/底部/尾部/前沿创建具有 0 个常量的约束。所以它的大小取决于子视图的大小,该大小使用手动布局确定(设置
frame)
标签: ios autolayout ios-autolayout