[英]Develop for iPhone 4 or 5 First [closed]
我已经搜索了我可以尝试找到答案的每一个组合,因为我确定它已被问到某个地方......所以请原谅我,如果你能指出我正确的方向。
如果您正在开发新的iOS应用程序,是否首先在IB中为iPhone 5或4屏幕尺寸设置布局? 我发现很多关于使用autolayout将你的iPhone 4应用程序移动到iPhone 5的文章,但反之亦然....这让我觉得所需的工作流程对于那些完全没有单独界面的应用程序来说2是在IB中创建具有3.5英寸屏幕尺寸的界面,然后使用自动布局来适应iPhone 5的4英寸屏幕。
有人可以为我澄清最佳实践吗?
肯德尔格伦提出了一些非常好的观点。 特别是从较小的屏幕构建并调整大小更好 - 主要是因为缩小的元素可能为用户提供糟糕和狭窄的体验。 在这方面,您需要确保您的图形(图像和视频)适合两种屏幕尺寸。 在创建图形时,最好先大规模创建它们,然后根据需要调整它们的大小。
另一个设计考虑因素是为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元素尚未调整大小或重新定位(至少使用较旧的布局引擎)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.