每个设备是不是可以有一个布局而不是自动布局?

Posted

技术标签:

【中文标题】每个设备是不是可以有一个布局而不是自动布局?【英文标题】:Is it possible to have one layout per device instead of auto layout?每个设备是否可以有一个布局而不是自动布局? 【发布时间】:2017-01-10 08:31:55 【问题描述】:

在 XCode 中,我想根据使用的设备有不同的布局。例如,如果它是 iPad,我希望图像向左对齐,一些文本向右对齐,而在 iPhone 7 上,我希望图像位于文本上方。有点像响应式网站,我们可以根据设备宽度管理布局。

在 XCode 中是否可以使用 Storyboards?还是应该继续使用自动布局功能?

谢谢!

【问题讨论】:

你真的应该使用自动布局,有一天当苹果决定为他们的手机添加一个新的屏幕尺寸时,你的应用布局会在没有更新的情况下中断,这可能需要你一段时间才能推出,具体取决于多少 UI你的应用有 【参考方案1】:

autolayout的帮助下,我们可以在不同的屏幕尺寸上实现不同的布局。您可以在 Storyboard 中更改 constants values 以获取不同大小的类。

步骤:-

选择我们想要改变其他尺寸等级的值的常量。 在属性检查器中选择常量后,可以看到常量的值。您可以在旁边看到加号 (+),在“常数”的左侧。 点击它并选择您想要的尺码等级。 给它一个新值。

【讨论】:

【参考方案2】:

我找到了这个answer 来回答你的问题。

但是,如果如您所说,您只想为 iPad 和 iPhone 提供不同的显示器,您可以通过以下简单方式区分它们:

if UIDevice.current.userInterfaceIdiom == .pad 

    // Show iPad UI

 else 

    // Show iPhone UI


【讨论】:

以上是关于每个设备是不是可以有一个布局而不是自动布局?的主要内容,如果未能解决你的问题,请参考以下文章

在不使用自动布局的情况下调整 iPhone 5 屏幕尺寸

Xcode 自动布局:最适合正方形

Xcode 6 自动布局灵活宽度

ios 8 如何让整个应用伸展到更大的屏幕而不是自动布局

旋转视图是不是与自动布局兼容?

如何移动子视图控制器,同时使用自动布局而不是框架隐藏状态栏?