先为iPhone4或5开发

先为iPhone4或5开发,iphone,ios,objective-c,xcode,autolayout,Iphone,Ios,Objective C,Xcode,Autolayout,我已经搜索了每一个组合,我可以尝试找到一个答案,因为我相信这是问某处…所以原谅我,如果你能告诉我正确的方向 如果你正在开发一款新的iOS应用程序,你会先在IB中为iPhone 5或4的屏幕大小设置布局吗?我找到了很多关于使用autolayout将iPhone 4应用程序移动到iPhone 5的文章,但不是相反……这让我认为,对于那些不会完全为iPhone 2提供单独界面的应用程序,理想的工作流程是在IB中创建屏幕大小为3.5英寸的界面,然后使用autolayout来适应iPhone 5的4屏幕

我已经搜索了每一个组合,我可以尝试找到一个答案,因为我相信这是问某处…所以原谅我,如果你能告诉我正确的方向

如果你正在开发一款新的iOS应用程序,你会先在IB中为iPhone 5或4的屏幕大小设置布局吗?我找到了很多关于使用autolayout将iPhone 4应用程序移动到iPhone 5的文章,但不是相反……这让我认为,对于那些不会完全为iPhone 2提供单独界面的应用程序,理想的工作流程是在IB中创建屏幕大小为3.5英寸的界面,然后使用autolayout来适应iPhone 5的4屏幕


有人能为我澄清一下最佳实践吗

一般来说,最好以用户界面的最小尺寸为目标,并将自动调整大小行为设置为适当扩展,否则缩小元素可能会产生过于狭窄的用户界面

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

提出了一些非常好的观点。尤其是从更小的屏幕开始构建并调整大小更好,这主要是因为缩小的元素可能会给用户带来糟糕而狭窄的体验。在这一点上,您需要确保您的图形(图像和视频)的大小适合两种屏幕大小。在创建图形时,最好先大规模创建图形,然后根据需要缩小尺寸

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

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

如果不同的屏幕大小需要完全不同的界面,则可以在AppDelegate中有条件地加载故事板。以下是您可以如何进行此操作:

if([[UIDevice currentDevice]userInterfaceIdiom]==UIUserInterfaceIdiomPhone){
//检查用户是否使用4英寸屏幕的较新iPhone/iPod
如果([[UIScreen mainScreen]bounds].size.height==568){
//用户使用的是4英寸屏幕的较新设备-加载自定义iPhone 5情节提要
UIStoryBoard*情节提要=[UIStoryBoard情节提要,名称:@“MainstryBoard_iPhone5”捆绑包:nil];
UIViewController*initViewController=[情节提要实例化initialViewController];
[self.window setRootViewController:initViewController];
}否则{
//用户使用的是3.5英寸屏幕的旧设备-加载常规情节提要
UIStoryBoard*情节提要=[UIStoryBoard情节提要,名称:@“MainstryBoard_iPhone”捆绑包:nil];
UIViewController*initViewController=[情节提要实例化initialViewController];
[self.window setRootViewController:initViewController];
}
}
总之,我认为没有正确的工作流程(例如,从3.5到4,反之亦然),但是您应该记住以下几点:

  • 缩小大型界面会使其变得狭窄,并导致糟糕的用户体验
  • 对于图形来说,情况并非如此。。。如果以低分辨率或小尺寸设计图形并放大,它们看起来不会很好(设计视网膜和非视网膜设备时采用相同的原则)
  • 考虑不同的屏幕大小以及每个屏幕上可以执行的操作。请记住,可以创建单独的故事板

编辑:从2013年初开始,苹果将不允许不支持iPhone 5的应用程序进入AppStore。你必须支持iPhone 5的屏幕大小,才能将你的应用程序或任何更新上传到商店。

感谢RazorSharp和Kendall Gein,这绝对是我通过阅读autolayout等内容得出的结论。,只是想看看其他人的工作流程,确保我在自动布局过程中没有遗漏任何东西。没问题!确保将最终答案标记为已接受答案。您可以通过勾选它旁边的灰色复选标记来执行此操作。一个被接受的答案旁边会有一个绿色的复选标记。关于这一点的另一个评论……我最终为iPhone4屏幕大小创建了第二个故事板,并将IB中的资源复制到了forced 3.5“查看控制器。不确定这是否是最佳实践。是的,也可以有条件地加载不同情况下的故事板(例如,为iOS 7或iPhone 5加载不同的故事板),而不是为所有情况加载相同的故事板。