我有一个应用程序,它应该根据加速度计报告的值显示一组不同视图中的一个。我想在 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 如此着迷?它提供了自动找出视图定位和大小调整的许多痛苦部分。听起来不错!如果可以的话,我想让它为我工作。
以前一定有人问过这个问题吧?呃,有点。 在我找到的那些问题中,这个问题最接近。然而,这个解决方案仍然需要我以编程方式设置框架,否定在我看来是使用 IB 的最佳理由——自动布局。 这也让我很兴奋,但实际上并不是一回事。