6

我已经搜索了所有我能找到的组合来尝试找到答案,因为我确信它已经在某个地方被问过了......所以如果你能指出我正确的方向,请原谅我。

如果您正在开发一个新的 iOS 应用程序,您是否首先在 IB 中为 iPhone 5 或 4 屏幕尺寸设置布局?我发现很多关于使用自动布局将你的 iPhone 4 应用程序移动到 iPhone 5 的文章,但反之亦然...... 2是在IB中创建3.5英寸屏幕尺寸的界面,然后使用自动布局来适应iPhone 5的4英寸屏幕。

有人可以为我澄清最佳实践吗?

4

2 回答 2

6

Kendall Geln提出了一些非常好的观点。特别是最好从较小的屏幕向上构建并调整大小 - 主要是因为缩小元素可能会为用户提供糟糕和狭窄的体验。在该说明中,您需要确保您的图形(图像和视频)的大小适合两种屏幕尺寸。创建图形时,最好先大规模创建它们,然后根据需要缩小它们的大小。

另一个设计考虑是为 4 英寸和 3.5 英寸屏幕创建稍微不同的界面。4英寸的屏幕更高,为开发者提供了更多的空间,也因此有了更多的可能性。这与设计 iPad 和 iPhone 界面的原则几乎相同。

您还提到在 Interface Builder 中执行此操作。默认情况下(现在在 Xcode 4.6+ 中)任何新的基于 iPhone 的项目都将以 4 英寸/iPhone 5 布局启动您的界面。您可以随时通过单击界面生成器/编辑器屏幕右下角的屏幕大小切换按钮(看起来像两端带有箭头的矩形)在布局之间切换:

在 Xcode IB 中切换屏幕大小

如果您需要针对不同屏幕尺寸的完全不同界面,则可以在 AppDelegate 中有条件地加载 Storyboard。以下是您可能会这样做的方法:

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
    // Check if the user is on a newer iPhone / iPod with a 4-inch screen
    if ([[UIScreen mainScreen] bounds].size.height == 568) {
        // The user is on a newer device with a 4-inch screen - load your custom iPhone 5 storyboard
        UIStoryBoard *storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone5" bundle:nil];
        UIViewController *initViewController = [storyBoard instantiateInitialViewController];
        [self.window setRootViewController:initViewController];
    } else {
        // The user is on an older device with a 3.5-inch screen - load the regular storyboard
        UIStoryBoard *storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
        UIViewController *initViewController = [storyBoard instantiateInitialViewController];
        [self.window setRootViewController:initViewController];
    }
}

总之,我认为没有正确的工作流程(例如从 3.5 到 4,反之亦然),但是您应该牢记以下几点:

  • 缩小大型界面会使它们变得局促并导致糟糕的用户体验
  • 图形不能这样说……如果您以低分辨率或小尺寸设计图形并按比例放大,它们看起来不会很好(为 Retina 和非 Retina 设备设计时应用的原理相同)。
  • 考虑不同的屏幕尺寸以及在每个屏幕上可以做什么。请记住,可以创建单独的故事板。

编辑:从 2013 年初开始,Apple 将不允许不支持 iPhone 5 的应用程序进入 AppStore。您必须支持 iPhone 5 屏幕尺寸才能将您的应用程序或任何更新放到商店中。

于 2013-04-09T22:55:31.093 回答
3

通常,最好针对您的 UI 可能的最小尺寸,并将自动调整大小行为设置为适当扩展 - 否则缩小元素可能会产生过于狭窄的 UI。

另请注意,在 iPhone 5 中viewDidLoad,笔尖中的 UI 元素尚未调整大小或重新定位(至少在旧版布局引擎中)。

于 2013-04-09T22:46:12.360 回答