Xcode Using Auto Layout 不会为每个 iphone 型号优化屏幕 [关闭]

Posted

技术标签:

【中文标题】Xcode Using Auto Layout 不会为每个 iphone 型号优化屏幕 [关闭]【英文标题】:Xcode Using Auto Layout does not optimize the screen for each iphone model [closed] 【发布时间】:2019-10-14 03:38:15 【问题描述】:

早上好。 我在使用 AutoLayout 创建故事板时遇到问题。

我使用自动布局创建了一个滚动视图。 滚动视图的宽度等于屏幕的宽度。 高度是屏幕高度的0.33倍。

在情节提要上,选择查看为:iphone8 当我将应用程序上传到 iphone8 时,滚动视图以我想要的大小显示。

但如果我上传到其他手机,如 iphone8+ 或 iponeX 或 ipad, 滚动视图大小以适用于 iPhone 8 的大小出现。

在情节提要中,选择查看为:iphoneX 上传到 iphoneX,屏幕将按预期显示。

我不知道这是 xcode 错误还是我误解了 Autolayout ... 我想如果我把它上传到App Store并下载它就可以了。

但什么也没发生。

我的 xcode 版本是 11。

请帮帮我...!

【问题讨论】:

请发布您的代码或任何您目前拥有的或您想要实现的截图,这将有助于其他人更好地了解您的问题。 【参考方案1】:

我认为您对自动布局的理解是错误的。但这只是由于没有看到任何代码而做出的假设。仅仅因为您启用了自动布局并不意味着您的应用程序将在每部手机上通用。将自动布局想象成一只“蜥蜴”,它会根据他所处的环境改变颜色。你还是要给他环境,让他适应。

同样,您仍然必须在一台设备上限制您的视图。它所做的是使用这些约束并使自动布局能够适应不同的手机。因此,如果您在 iphone 5s 中看到距离上边距 8px 的视图,它将确保您也从 iphone 7s+ 中获得 8px。

它真正做的是改编而不是翻拍。参考下面的链接,这篇文章很好地介绍了自动布局的使用。

注意 - 如果您已经这样做了,请给我们一些代码供我们查看,以便我们更具描述性。祝你好运!

https://medium.com/swift-india/understanding-auto-layout-item-relationships-b08a0e5689f0

【讨论】:

感谢大家的热情回复。我想我发现了一个问题。问题是进入滚动视图的 xib 文件。单独创建的 xib 文件似乎没有应用自动布局。我没有创建单独的 xib 文件,而是以编程方式创建了一个布局以将其插入到滚动视图中,并且屏幕开始按预期显示。如果您遇到同样的问题,请参考它。非常感谢您回答问题。 现在说得通了,我注意到 xib 文件。无论如何,我很乐意提供帮助:)

以上是关于Xcode Using Auto Layout 不会为每个 iphone 型号优化屏幕 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

iOS之Xcode8 Auto Layout新特性

Xcode 6 Auto Layout - 所有设备的 UI 元素之间的恒定水平间距

转 iOS 8 Auto Layout界面自动布局系列2-使用Xcode的Interface Builder添加布局约束

使用 Xcode 8 的 Interface Builder 中的 Auto Layout 和 Trait Variations 正确设计的 Storyboard 视图在 Simulator 和 De

关于 Cocoa Auto Layout,你需要知道10件事

在 Xcode 中,如何重命名 Storyboard 中的约束?