【问题标题】:How to well adapt height and position of views in iOS without AutoLayout?如何在没有 AutoLayout 的情况下很好地适应 iOS 中视图的高度和位置?
【发布时间】: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


【解决方案1】:

试试这个:

Xcode 4.5: How do I fix my text views so they display properly in portrait and landscape mode on an iPad?

我认为这可以解决您的问题,如果您使用 Storyboard,它会变得不那么困难。

【讨论】:

    猜你喜欢
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2015-09-03
    • 1970-01-01
    • 1970-01-01
    • 2018-08-05
    相关资源
    最近更新 更多