2013-07-30 249 views
0

对于XCode和Interface Builder来说,这是一个相当新的东西,所以如果解决方案很明显,请原谅我。纵向布局不会横向滚动

我在界面制作器(XCode 5)中设计了一个不错的肖像IPhone视图,并对每个元素(标签,文本视图,开关,按钮等)设置了约束,以使它们在3.5或模拟器中4英寸的portait模式。但是,当我将模拟器旋转到风景时,它会打破设计,使元素彼此重叠,其他元素消失(从视图中裁剪) - 我期待这一点。

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

完成此操作后,纵向视图与模拟器中的一样,但在横向视图中不滚动,并且我的UI元素都不遵守它们的约束(水平伸展等)。我仍然失去了UI的底部,我不能滚动到视图。

我认为把所有内容放入滚动视图中只会“解决”这个问题,但滚动视图似乎完全没有任何作用。我在界面生成器中调整了各种设置,但是没有任何修复。

似乎有成为很多长篇大论解决方案,这类方案的基础上的代码,但肯定的东西这个简单而常见的应该只是“工作”

我缺少什么,或者我做了什么错,还是简单的滚动真的必须广泛编码才能工作?

回答

0

将所有元素放在滚动视图中并不能真正解决任何问题。这些元素仍然需要约束才能知道如何将自己置于滚动视图中。你也需要小心,因为这个解决方案听起来像是违背了苹果人机界面准则的东西。我建议不要忽视这些,因为苹果公司拒绝这样做的应用程序。

我会说你的问题是你的约束,如果元素包含其他元素,并在旋转时移动到错误的地方,就不能正确设置。令人烦恼的是,开发者网站的WWDC视频部分仍然存在,但是当它恢复时,在Xcode 5中观看一段自动布局视频,这将有助于解释发生了什么。

如果您希望元素在旋转时完全改变位置,您可能需要的不仅仅是约束,还需要抛出一些代码来处理纵向和横向之间的转换。所以它真的取决于当你旋转设备时视图应该做什么

+0

是我的错误,即Im大小滚动视图的大小的视口?我应该将scrollview的大小设置为可容纳纵向或横向所有UI的较大尺寸? (我认为滚动视图必须调整到可用空间的大小,然后滚动它的内容 –

+0

不管滚动视图应该滚动它的内容,只要它的内容比它大,滚动视图应该是相同的宽度和高度作为视图本身,它的内容可以随心所欲,只要你启用了用户交互 – PaReeOhNos

+0

这就是我认为它应该工作的时候它会滚动。当我切换到横向滚动的内容时查看器大于滚动视图本身(scrollviewer是屏幕的大小,内容超出屏幕底部)。也许它是一个XCode 5错误,我试着在XCode 4中 –

0

好的,我找到了它。它IS在任一的XCode 5或IOS 7

我创建2层简单iphone UI的界面生成器中的错误 - 一个在Xcode 4.6.3靶向IOS 6.1和其他XCode中5 Beta 4的靶向IOS 7测试4。

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

相关问题