坚实的解决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中使用约束,以及什么时候需要使用代码来设置约束,就很容易使用。