我已经搜索了所有可能的组合,试图找到这个问题的答案,因为我肯定有人问过somewhere....so,如果你能给我指出正确的方向,请原谅我。
如果你正在开发一个新的iOS应用程序,你会先在IB中设置iPhone 5或4屏幕大小的布局吗?我找到了很多关于使用自动布局将你的iPhone 4应用移到iPhone 5上的文章,但没有versa....which让我认为,对于那些没有完全独立的界面的应用来说,理想的工作流程是在IB中创建3.5英寸屏幕尺寸的界面,然后使用自动布局来适应iPhone 5的4英寸屏幕。
有人能为我解释一下最佳实践吗?
发布于 2013-04-10 06:55:31
Kendall Geln提出了一些非常好的观点。特别是,从较小的屏幕向上构建并调整大小会更好-主要是因为缩小元素可能会给用户带来糟糕和狭小的体验。在这一点上,您需要确保您的图形(图像和视频)的大小适合两种屏幕尺寸。创建图形时,最好先大规模创建它们,然后根据需要缩小它们的大小。
另一个设计考虑因素是为4英寸和3.5英寸屏幕创建略有不同的界面。4英寸的屏幕更高,为开发人员提供了更多的空间,因此也有更多的可能性。这几乎与设计iPad和iPhone接口的原则相同。
您还提到在Interface Builder中执行此操作。默认情况下(现在是Xcode ),任何基于iPhone的新项目都会以4英寸/iPhone5布局开始你的界面。通过单击界面生成器/编辑器屏幕右下角的屏幕大小切换按钮(看起来像一个两端都有箭头的矩形),可以随时在布局之间进行切换:

如果您需要针对不同屏幕尺寸的完全不同的界面,则可以在AppDelegate中有条件地加载情节提要。下面是你可以如何做的:
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年初开始,苹果将不再允许不支持iPhone 5的应用程序进入AppStore。你必须支持iPhone 5屏幕大小,才能将你的应用程序或任何更新程序放入商店。
发布于 2013-04-10 06:46:12
一般来说,最好是以UI的最小尺寸为目标,并将自动调整大小的行为设置为适当地扩展-否则,缩小元素可能会产生过于狭窄的UI。
在iPhone 5上还要注意,在viewDidLoad中,来自nib的UI元素还没有调整大小或重新定位(至少使用较旧的布局引擎)。
https://stackoverflow.com/questions/15888705
复制相似问题