首先为 iPhone 4 或 5 开发 [关闭]

Posted

技术标签:

【中文标题】首先为 iPhone 4 或 5 开发 [关闭]【英文标题】:Develop for iPhone 4 or 5 First [closed] 【发布时间】:2013-04-08 20:49:23 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

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

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

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

如果您需要针对不同屏幕尺寸完全不同的界面,则可以在 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 的屏幕尺寸才能将您的应用程序或任何更新放到商店中。

【讨论】:

感谢 RazorSharp 和 Kendall Gein,这绝对是我通过阅读有关自动布局等的内容得出的结论,只是想看看其他人的工作流程并确保我没有遗漏一些东西在自动布局过程中。 没问题!确保将您的最终答案标记为已接受的答案。您可以通过勾选旁边的灰色复选标记来做到这一点。接受的答案旁边会有一个绿色复选标记。 对此的附加评论....我最终为 iphone 4 屏幕尺寸创建了第二个故事板,并将 IB 中的资源复制到强制 3.5" 视图控制器。不确定这是否是最佳实践效果很好。 是的,也可以有条件地为不同的情况加载故事板(例如,为 iOS 7 或 iPhone 5 加载不同的故事板),而不是对所有内容都使用相同的故事板。【参考方案2】:

一般来说,最好将您的 UI 设为最小尺寸,并将自动调整大小行为设置为适当展开 - 否则缩小元素可能会产生过于狭窄的 UI。

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

【讨论】:

以上是关于首先为 iPhone 4 或 5 开发 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

为 iphone 4s 和 5/5c/5s 屏幕尺寸开发的最佳实践 [关闭]

如何关闭和开启 Wscript.Shell组件

iphone开发者选项设置在哪

同时编写 iPhone、BlackBerry 和 Android 手机的技术? [关闭]

如何使用 iOS 6 sdk 为 iPhone 4s 或 iPhone 4 制作视图控制器?

如何关闭idea的版本自动更新