UIView扩展但不重叠

时间:2014-12-15 21:36:27

标签: objective-c xcode uiview

我有一个简单的设计问题,但似乎无法找到最简单的答案。

说10个UIViews从上到下排列没有重叠。如果我想扩展其中一个的高度,如何移动其他人以便不发生重叠?

这是我的三个想法,喜欢听你的:

  1. 计算每个视图原点y。我觉得非常凌乱。
  2. 使用tableview。似乎复杂来解决一个简单的问题。也许旧学校因为桌子是html中的老派。但更干净。
  3. 对所有视图使用约束。看起来简单干净,但也许有点复杂可以使用?
  4. 我忘记了任何明显的事吗?

    此致

1 个答案:

答案 0 :(得分:1)

我肯定会和(3)一起出于以下几个原因:

  • 灵活性 - 字面意思:您将能够描述您想要发生的事情并让AutoLayout处理细节计算。
  • 灵活性 - 比喻:您不必担心(尽可能多)您的应用程序在各种不同设备上正确显示。

是的,AutoLayout有时可能会更复杂,特别是在开始时,但我保证:从长远来看,它是值得的。

这里有一些代码可以帮助您入门。以下约束适用于5个视图。第一个UIView的高度大于或等于myViewHeight,其定义如下为20.后续的4个视图将等于myViewHeight

[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-[_myView(>=myViewHeight)][_myView(==myViewHeight)][_myView(==myViewHeight)][_myView(==myViewHeight)][_myView(==myViewHeight)]-|"
                                                           options:0
                                                           metrics:@{@"myViewHeight": @20}
                                                             views:NSDictionaryOfVariableBindings(_myView)]];