我有一些与混合自动布局和手动布局有关的普通问题。
view1 的高度取决于子视图的总高度。
我为 view2 设置translatesAutoresizingMaskIntoConstraints = NO
和frame
,并将其作为子视图添加到 view1 。 view2 的结果高度为0(在layoutSubviews
)
因此, view1 的自动布局在确定自身高度时并不注意 view2 高度。然后将此0高度传播到 view2 。
需要建议。我不确定这是否合法。
答案 0 :(得分:0)
在自动布局世界中,视图应具有明确的约束集。因此,要将使用手动布局创建的视图嵌入到使用自动布局创建的视图中,您或iOS系统必须为子视图提供相应的约束集。
换句话说:
设置translatesAutoresizingMaskIntoConstraints = YES
,像往常一样配置frame
和autoresizingMask
。但要注意超级视图已经存在的约束与操作系统在将自动调整掩码转换为约束(在运行时)期间创建的约束之间可能存在的冲突。
设置translatesAutoresizingMaskIntoConstraints = NO
并自行添加约束。
嗯,没什么新鲜的。但我不得不花一些时间在脑海中想出来,希望能节省你的时间!