在您的问题中,您写道:
我可以想象意大利面条代码/数以千计的“如果”检查到处都是这么多问题,这会让我疯狂地对 UI 安排进行一点小改动。
避免这种情况的一种方法是创建一个视图层次结构,从一开始就拆分 iPhone/iPad 特定更改的处理。您只需设置最初为每个设备加载的视图。然后你像往常一样创建一个视图控制器,但你也继承了你创建的视图控制器。每个设备一个子类。那是您可以放置设备特定代码的地方,例如方向处理。像这样:
MyViewController.h // Code that is used on both devices
MyViewController_iPhone.h // iPhone specific code, like orientation handling
MyViewController_iPad.h // iPad specific code, like orientation handling
如果您对这种方法感兴趣,我建议您阅读这篇文章。它以非常好的方式解释它。
文章提到的一件事是:
--报价开始--
这种模式的美妙之处在于我们不必在代码中乱扔垃圾,看起来像这样:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
// The device is an iPad running iPhone 3.2 or later.
// set up the iPad-specific view
} else {
// The device is an iPhone or iPod touch.
// set up the iPhone/iPod Touch view
}
---报价结束---
我希望这会有所帮助。祝你好运!