我已经搜索了所有我能找到的组合来尝试找到答案,因为我确信它已经在某个地方被问过了......所以如果你能指出我正确的方向,请原谅我。
如果您正在开发一个新的 iOS 应用程序,您是否首先在 IB 中为 iPhone 5 或 4 屏幕尺寸设置布局?我发现很多关于使用自动布局将你的 iPhone 4 应用程序移动到 iPhone 5 的文章,但反之亦然...... 2是在IB中创建3.5英寸屏幕尺寸的界面,然后使用自动布局来适应iPhone 5的4英寸屏幕。
有人可以为我澄清最佳实践吗?
我已经搜索了所有我能找到的组合来尝试找到答案,因为我确信它已经在某个地方被问过了......所以如果你能指出我正确的方向,请原谅我。
如果您正在开发一个新的 iOS 应用程序,您是否首先在 IB 中为 iPhone 5 或 4 屏幕尺寸设置布局?我发现很多关于使用自动布局将你的 iPhone 4 应用程序移动到 iPhone 5 的文章,但反之亦然...... 2是在IB中创建3.5英寸屏幕尺寸的界面,然后使用自动布局来适应iPhone 5的4英寸屏幕。
有人可以为我澄清最佳实践吗?
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,反之亦然),但是您应该牢记以下几点:
编辑:从 2013 年初开始,Apple 将不允许不支持 iPhone 5 的应用程序进入 AppStore。您必须支持 iPhone 5 屏幕尺寸才能将您的应用程序或任何更新放到商店中。
通常,最好针对您的 UI 可能的最小尺寸,并将自动调整大小行为设置为适当扩展 - 否则缩小元素可能会产生过于狭窄的 UI。
另请注意,在 iPhone 5 中viewDidLoad
,笔尖中的 UI 元素尚未调整大小或重新定位(至少在旧版布局引擎中)。