【发布时间】:2013-10-04 07:14:22
【问题描述】:
我有一个应用程序,它应该根据加速度计报告的值显示一组不同视图中的一个。我想在 Xcode 的 Storyboard Editor 中设置视图,née Interface Builder。此外,我想使用 Xcode 的新式自动布局工具。基本上,这些工具允许您定义对象间约束,并且运行时系统会计算出所述对象的去向。
这是我想要的一个简单示例,用伪代码:
if (accelerometer == toTheLeft) {
[topLevelView showSubview:leftView];
} else if (accelerometer == toTheRight) {
[topLevelView showSubview:rightView];
} else {
[topLevelView showSubview:centerView];
}
我知道要执行虚构的showSubview: 方法,我实际上必须删除当前显示的所有错误视图,并添加我想要的视图,但这不是重点。
如前所述,我想使用 Storyboard Editor/Interace Builder 布置每个 UIView 对象(即 leftView、rightView 和 centerView)。但是,当我这样做时,我最终会在 IB 中将不同的视图叠加在一起,令人困惑。我的视图控制器最终会在它的视图中添加和删除视图,但是通过这种方式设置自动布局非常困难。
这是我的问题,最后。 有没有更好的方法可以在 Storyboard 编辑器中为一个视图控制器直接排列许多通常重叠的视图,还是我只需以编程方式设置所有内容?
我的内省常见问题解答,供热心读者使用:
您为什么如此设置 Storyboard Editor/IB? 它可以自动找出视图定位和调整大小的许多痛苦部分。听起来不错!如果可以的话,我想让它为我工作。
之前一定有人问过这个问题,对吧? 呃,有点。 This question 在我找到的那些中最接近。然而,这个解决方案仍然需要我以编程方式设置框架,否定在我看来是使用 IB 的最佳理由——自动布局。 This one 也让我很兴奋,但实际上并不是一回事。
【问题讨论】:
标签: ios uiview uiviewcontroller uistoryboard