在汽车布局超级视图中手动布局视图

时间:2016-02-05 11:33:11

标签: ios autolayout ios-autolayout

我有一些与混合自动布局和手动布局有关的普通问题。

  1. view1 - 使用自动布局的超级视图
  2. view2 - 使用手动布局的子视图
  3. view1 的高度取决于子视图的总高度。

    我为 view2 设置translatesAutoresizingMaskIntoConstraints = NOframe,并将其作为子视图添加到 view1 view2 的结果高度为0(在layoutSubviews

    因此, view1 的自动布局在确定自身高度时并不注意 view2 高度。然后将此0高度传播到 view2

    需要建议。我不确定这是否合法。

1 个答案:

答案 0 :(得分:0)

在自动布局世界中,视图应具有明确的约束集。因此,要将使用手动布局创建的视图嵌入到使用自动布局创建的视图中,您或iOS系统必须为子视图提供相应的约束集。

换句话说:

  • 设置translatesAutoresizingMaskIntoConstraints = YES,像往常一样配置frameautoresizingMask。但要注意超级视图已经存在的约束与操作系统在将自动调整掩码转换为约束(在运行时)期间创建的约束之间可能存在的冲突。

  • 设置translatesAutoresizingMaskIntoConstraints = NO并自行添加约束。

嗯,没什么新鲜的。但我不得不花一些时间在脑海中想出来,希望能节省你的时间!