坚实的解决scheme,以基于子视图灵活调整UIView的大小

想象一下,你有四个左右的意见,所有宽度100,不同的高度。 你有一个包装所有的包装视图W.

A | B | W C | D | 

小视图的高度可以改变。 那时候你想要他们全部移动,适当地浮动,并resizeW.

现在,我正要写几行代码来做到这一点。

所以..(1)你会find所有的子视图,并从上到下依次列出。 那么(2)每次有变化,你都要(3)重新定位每个ABCD。 每一个的位置是它上面项目的高度的总和,(4)将W调整到所有高度的总和。

现在,这一切都好,但白痴重新发明轮子!

我在iOS中缺less明显的东西吗? 是不是每个人都用这个包来做呢? 还是内置的东西? 情况如何?

(请注意,当然,对于我们的Android朋友来说,这是内置的!当然,任何web-html系统都会自动完成此操作。)

iOS视图的正确工程解决scheme是什么? logging这只是iOS7 +,没有老式的东西需要被覆盖,如果它有所作为。 干杯

(1)你会find所有的子视图,并从上到下依次列出。 那么(2)每次有变化,你都要(3)重新定位每个ABCD。 每一个的位置是它上面项目的高度的总和,(4)将W调整到所有高度的总和。

您可以在Interface Builder中为整个过程使用约束,无需代码。 做这个:

  • 将子视图A的宽度设置为100
  • 限制B,C和D以匹配A的宽度
  • 在A和B,B和C以及C和D之间添加垂直间隔约束以保持其相对位置
  • 在W(超级视图,以灰色显示)和A之间添加垂直间距约束
  • 在W和D之间添加垂直间距约束
  • 在W和视图A之间添加前导和尾随空间约束

你会看到这样的结果:

限制

Xcode中的约束编辑器不是完全直观的,但是一旦你理解了你可以做什么以及不能在IB中使用约束,以及什么时候需要使用代码来设置约束,就很容易使用。