纵向布局不会在横向方向滚动

时间:2013-07-30 08:28:18

标签: ios interface-builder

我是XCode和Interface Builder的新手,如果解决方案很明显,请原谅我。

我在界面构建器(XCode 5)中设计了一个漂亮的纵向IPhone视图,并在每个元素(标签,文本视图,开关,按钮等)上设置了约束,以便它们在3.5或4中正确定位模拟器中的英寸肖像模式。

然而,当我将模拟器旋转到横向时,它会破坏设计,使元素彼此重叠,其他元素消失(从视图中剪切) - 我期待这一点。

我对解决方案的想法是将所有UI元素放在UIScrollView中并在滚动视图上设置约束,以便它以横向模式的任何一种方式填充屏幕。

执行此操作后,纵向视图在模拟器中与之前一样,但在横向视图中没有任何滚动,并且我的UI元素都不遵守其约束(水平拉伸等)。我仍然在底部丢失UI,我无法将其滚动到视图中。

我认为将所有内容放入滚动视图只会“修复”此问题,但滚动视图似乎完全没有任何作用。我在界面构建器中摆弄了各种设置,但没有任何修复。

对于基于代码的这类场景,似乎有许多冗长的解决方案,但这种简单而常见的东西肯定应该“工作”

我错过了什么,或者我做错了什么,或者简单的滚动真的必须进行广泛编码才能工作?

2 个答案:

答案 0 :(得分:0)

将所有元素放在滚动视图中并不会真正解决任何问题。这些元素仍然需要约束来知道如何在滚动视图中定位自己。你需要小心,因为这个解决方案听起来像苹果人机界面指南。我建议不要忽视这些,因为众所周知Apple会拒绝这样做的应用程序。

我会说你的问题是你的约束,如果元素覆盖其他元素并且在旋转时移动到错误的位置,则设置不正确。

令人讨厌的是,开发者网站的WWDC视频部分仍处于关闭状态,但是当它恢复时,请在Xcode 5中观看自动布局的视频,这将有助于解释正在发生的事情。

如果您希望元素在旋转时完全改变位置,则可能需要的不仅仅是约束,而是需要输入一些代码来处理纵向和横向之间的过渡。所以它实际上取决于旋转设备时视图应该做什么

答案 1 :(得分:0)

好的,我已经明白了。 IS XCode 5或IOS 7中的错误

我在界面构建器中创建了2个简单的iphone UI - 一个用于XOS 4.6.3,目标是IOS 6.1,另一个用于XCode 5 Beta 4,目标是IOS 7 beta 4。

第一个应用程序完全按照我的假设运行,滚动视图在横向模式下滚动。第二个应用程序在滚动视图中根本没有滚动 - 显然是一个错误。