2013-04-27 23 views
0

我很抱歉我的英语。我如何将iPhone 4动态图像更改为iPhone 5屏幕

在我试图在第一个视图中开发的应用程序中,我有一组4个图像,一个横幅和一个标签栏,我想完全覆盖屏幕大小。对于3.5英寸iPhone而言,没有问题,但问题始于4英寸iPhone。目前我使用自动布局,每个图像都有一个限制,但我认为这不是最好的解决方案来解决我的问题,事实上,导致图像和标签栏之间的iPhone 4英寸观点。

要解决这个问题,在你看来,哪个是最好的解决方案?是否有可能拉伸图像并调整它们以覆盖整个屏幕?或者最好是根据设备屏幕大小加载两组不同的图像?

另一个想法,我必须是具有合适的尺寸使用图片为iphone 4英寸,并显示在一个iphone 3.5英寸时,在本实施例中的底部部分地覆盖这样的:

http://www.manuelragazzini.it/microfoni.jpg

下面我发布的我的情况,什么一个例子,我想为结果(3.5英寸也有一个导航栏,但编程隐藏这样的观点是完美的)

http://www.manuelragazzini.it/domanda.jpg

回答

0

我认为最好为3.5和4英寸显示器提供两个独立的笔尖文件。是的,我知道这会增加你的努力,但是是的,代码将来会更易于管理。你只需要提供单独的笔尖。

可以使用以下方法每次为所需维度动态加载nib。

-(void)pushViewController:(UIViewController*)viewController withNib:(NSString*)nibName 
{ 


if(nibName){ 

    nibName=[self getNibNameForNib:nibName]; 

    viewController=[viewController initWithNibName:nibName bundle:nil]; 
    [self.navigationController pushViewController:viewController animated:YES]; 
} 

} 


-(NSString*)getNibNameForNib:(NSString *)nibName 
{ 
NSString *newNibName=nil; 

if([self isIphone5Retina4InchDisplay]){ 
    newNibName=[nibName stringByAppendingString:@"-568h"]; 
} 

if(newNibName && [[NSBundle mainBundle] pathForResource:newNibName ofType:@"nib"] != nil) 
{ 
    //if iphone 5 and nib is also present for that resolution. 
    nibName=newNibName; 
} 

return nibName; 
} 

/** 
Method to get if device is 4 inch iphone 5 retina device or not. 
*/ 
-(BOOL)isIphone5Retina4InchDisplay 
{ 

CGRect screenBounds = [[UIScreen mainScreen] bounds]; 
if (screenBounds.size.height == 568) { 
    // code for 4-inch screen 
    return YES; 
} else { 
    // code for 3.5-inch screen 
    return NO; 
    } 
} 

仅举视网膜4 INCH NIB NAME AS LoginViewController-568h.xib即添加-568h后缀。每次使用此 pushViewController方法推送新的视图控制器。您可以在您的基本视图控制器中编写此方法。

+0

感谢您的回复!我会尝试,我会让你知道;) – 2013-05-01 09:38:00

+0

好吧,我已经使用了两种不同的图像大小不同,我改编他们到屏幕上,没有自动布局 – 2013-06-03 08:17:28

0

我会为您的麦克风示例使用2套图像,只是因为如果您希望在选项卡和麦克风之间留有这个空白区域,那就是要走的路。

您可以通过检查代码中的iPhone Model来实现此目的,从而加载相应的图像。

如果你在磁盘空间不足(不能有多个iPhone模型图像),那么调整大小的方法可以做到这一点。

+0

我很抱歉,但我的英语很差,也许你不明白我的意思。我不希望白色空间和麦克风的图像是为了展示我打算写的时候的一个例子,即图像“....在3.5英寸的iphone中显示的图像被部分覆盖”。 – 2013-04-27 13:42:21