swift - 为不同的设备创建不同的场景

标签 swift xcode storyboard

我想我可以为不同的设备创建不同的 Storyboard,但我想知道有什么方法可以为不同的设备创建不同的场景吗?只有一个场景,要按Size class适配不同的屏幕,还是比较复杂的。

我只能在 Storyboard中创建一个入口点,但有没有一种方法可以即时切换场景?

最佳答案

Size类比你想象的更具有欺骗性。它的使用非常有限,因此您不能轻易地在 iPhone 5 和 6 之间更改布局。

根据 View 上的“变化”,您可以创建一个类,根据显示的设备加载不同的 Nib。

通过覆盖两者:

override init(frame: CGRect)

required init?(coder aDecoder: NSCoder)

在这里,您不是为 View 加载单个 Nib ,而是根据您的目标设备加载所需的 Nib :

nib = UINib(nibName: "iPhone4Size", bundle: bundle)

此技术在此处解释的 UIDesignable 中使用:

http://supereasyapps.com/blog/2014/12/15/create-an-ibdesignable-uiview-subclass-with-code-from-an-xib-file-in-xcode-6

然而,“每个设备加载不同的 nib”不是,这只是一个返回不同 Nib 名称的简单“切换案例”。

关于swift - 为不同的设备创建不同的场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44106699/

相关文章:

objective-c - 如何在 objective-c 中给出 toast 信息

iphone - iOS 5 在现有应用程序中使用 Storyboards 实现页面 Controller

ios - uinavigationcontroller 中的 Storyboard 和后退按钮

iphone - 在 iOS 中将单元格添加到 UITableView 的底部

objective-c - 在 Xcode 6 beta 中使用 Size Classes

xcode - 如何设置等于UITextField的字符串值?

ios - 具有从右到左文本和自动调整字体大小的多行 UILabel

ios - Storyboard View Controller 未实例化?

ios - 检测使用主线程的时间百分比

swift - 如何使用带有额外构建标志的 SPM 生成 Xcode 项目?