如何将iPAD / iPAD2布局转换为iPhone4 / iPhone5 / iPAD-mini布局

时间:2013-06-18 22:10:25

标签: iphone ios ipad layout ios-universal-app

我从来没有在我的应用中使用Interface Builder,也不认为这是好事。

我的应用程序已经设计用于iPad / iPad2布局,但没有考虑过它可以在iPhone4 / iPhone5 / iPAD-mini上运行。 现在我希望我的应用能够解决所有问题。

我认为4 +布局通用应用程序会非常难看,如下所示:

if(ipad or ipad2) 
 view.frame = CGRectMake(0,0,100,100);
else if(ipad-mini)
  view.frame = CGRectMake(0,0,100,100);
else if(iphone4)
  view.frame = CGRectMake(0,0,100,100);
else if(iphone5)
  view.frame = CGRectMake(0,0,100,100);
else if(iphone6)
  view.frame = CGRectMake(0,0,100,100);
else if(iphone7)
  view.frame = CGRectMake(0,0,100,100);

理想情况下应该只有2个布局,但我不知道如何实现这种方式。这些固定坐标不会在不同的屏幕尺寸上拉伸

if(ipad or ipad2 or ipad-mini) 
  view.frame = CGRectMake(0,0,100,100);
else if(iphone4 or iphone5 or iphone6 or iphone7)
  view.frame = CGRectMake(0,0,100,100);

如何以最佳方式开发通用应用程序?

2 个答案:

答案 0 :(得分:0)

当你开始构建这个应用程序时,你应该做这样的事情:

 view.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleWidth;

并根据您的需要更改上述选项。

是的,你需要不同的ipad,iphone

答案 1 :(得分:0)

首先,iPhone的布局几乎肯定会与iPad完全不同。对于iPad,所有不同的类型都具有相同的宽高比,因此您需要担心的是带有视网膜的iPad的@ 2x图像。

然而,对于iPhone,您拥有iPhone 4 / 4s VS iPhone 5.此外,您拥有的屏幕空间更少,因此您需要找到在更小的空间内呈现相同信息的方法。这可以使用scrollviews,tableViews完成,并在一个viewController中包含一部分信息,您可以从另一个viewController切换到该视图。

最后,我强烈建议大多数情况下使用界面构建器。它照顾iPhone与iPhone 5,以及肖像与风景。它甚至会在旋转手机时自动设置转换动画。但是,有时候,当您需要进行自定义绘图或我们的布局很难通过界面构建​​器获得时,最好以编程方式进行。在这种情况下,通过检查[[UIScreen mainScreen] applicationFrame]的大小来检查哪个设备是一个好方法。检查iPad的值为1024x768,iPhone为320x480,iPhone 5为320x568。

但是,您确实应该使用界面构建器(对于大多数情况)。为什么要完全避免它?