Xcode 9 布局:有没有办法为 iPad 构建一个与 iPhone 相同内容的新故事板?

Posted

技术标签:

【中文标题】Xcode 9 布局:有没有办法为 iPad 构建一个与 iPhone 相同内容的新故事板?【英文标题】:Xcode 9 Layout: Is there a way to build a new storyboard with the same content from the iPhone just for the iPads? 【发布时间】:2018-08-14 14:34:35 【问题描述】:

我在为所有设备获取带有约束的布局时遇到问题,所以我的问题是,是否可以使用相同的代码、segues 等为 iPad 构建额外的故事板,这样更容易获得布局正确。

【问题讨论】:

【参考方案1】:

是的,有办法,您可以复制现有故事板并将其重命名为iPad_Main.storyboard,然后您必须更正一些约束或更改适合 iPad 屏幕的值。

然后在初始化任何视图控制器之前,您必须检查设备是 iPad 还是 iPhone,并基于此使用您的故事板。

let deviceIdiom = UIScreen.main.traitCollection.userInterfaceIdiom
let storyboard : UIStoryBoard!
if (deviceIdiom == .pad) 
   storyboard = UIStoryboard(name: "iPad_Main", bundle: nil)

else 
   storyboard = UIStoryboard(name: "Main", bundle: nil)


// Use storyboard to get desired controller using StoryboardID of UIViewController

【讨论】:

如何检查使用的是哪个设备?我将如何选择要使用的情节提要? @DogukanA 我已经用一些示例代码更新了我的答案,希望对您有所帮助。

以上是关于Xcode 9 布局:有没有办法为 iPad 构建一个与 iPhone 相同内容的新故事板?的主要内容,如果未能解决你的问题,请参考以下文章

iPad 和 iPhone 上的自动布局?

自动调整 iPhone xib 应用程序到 ipad 的大小

有没有办法在 Xcode 9 中更改每个方案的 .xcconfig 文件?

iPhone IB 没有在 View as 部分显示,而不是 iPad:Xcode 8

布局 iPhone 和 iPad xcode 6

从 Xcode 8 转换为 Xcode 9 的项目的自动布局失败