2013-06-18 73 views
1

我从来没有在我的应用中使用过Interface Builder,不认为这是件好事。如何从iPAD/iPAD2布局转换为iPhone4/iPhone5/iPAD-mini布局

我的应用程序已经设计用于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); 

我该怎么做的最好的方式通用的应用程序舒展?

+0

iPad mini布局与其他iPad完全相同。您只需要处理两种不同的iPhone/iPod触摸屏尺寸(以及视网膜/非视网膜)。 – rmaddy

回答

0

当你开始建立这个程序,你应该做soemthing这样的:

view.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleWidth; 

,你根据自己的需要更改上述选项。

,是的,你需要为iPad不同,iphone

0

首先,你的iPhone布局几乎肯定会从iPad的截然不同。对于iPad而言,所有不同类型的宽高比都是相同的,所以您只需要为视网膜上的iPad提供@ 2x图像。

但是,对于iPhone而言,iPhone 4/iPhone 4和iPhone 5的屏幕空间要少得多,因此您需要找到在较小空间内呈现相同信息的方法。这可以使用scrollviews,tableViews来完成,并在一个viewController中拥有一部分信息,您可以从另一个viewController切换到该部分。

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

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