【发布时间】:2013-08-28 05:26:49
【问题描述】:
我正在 Storyboard 中构建视图。我有三个部分:
1) top : 实时摄像头视图(自适应高度)
2)中间:小webview(固定高度)
3) 底部:一些按钮(固定高度)
我想知道如何在情节提要中正确地制作我的界面以兼容 iPhone 4 或 iPhone 5 屏幕。 我的目标是让相机在 iPhone 5(或任何更大的屏幕)上占据更大的屏幕部分,并让 web 视图和按钮在任何设备上都具有完全相同的高度。 我使用 AutoLayout 功能做得很好。唯一的问题是它从 iOS6 开始可用,而我的应用程序必须在 iOS5 及更高版本上运行。
我的 Storyboard 有一个 4' 显示屏,当我尝试在真实设备 (iPhone 4S) 上运行它时,屏幕的所有底部都被裁剪了,我看不到我的按钮。我真的无法弄清楚什么是真正最好和正确的方法。对于这么简单的问题,我不应该构建两个不同的故事板。
也许我应该尝试以编程方式修复相机视图的高度,但这不会解决屏幕底部在较小屏幕上裁剪的问题(然后我应该以编程方式修改位置)。
你可以看到我没有一个很好的解决方案来解决我的问题。有人可以帮助我在这种情况下如何很好地使用 XCode 中的工具吗?
谢谢
【问题讨论】:
-
我会使用自动调整掩码来定位视图。使用视图的 contentMode 属性并使用适当的 contentMode。查看 UIView developer.apple.com/library/ios/documentation/UIKit/Reference/… 提供的这些 autoresizingMasks。请注意,这些内容模式支持位掩码,因此您可以为同一个视图传递多个值。
-
感谢您的参考。你知道是否可以定义视图之间的关系吗?是否可以将它们设置为连续的?
-
FWIW,我发现在视图控制器的“viewWillLayoutSubviews”中以编程方式进行布局更容易。
-
UIViewContentMode 和自动调整大小与超级视图相关。我认为不可能像 autolayout 那样使用 autoresizing mask 来放置两个相邻视图或同一层次结构中的视图之间的关系。
标签: iphone ios objective-c layout storyboard