2012-11-21 90 views
2

请帮忙。我的代码更改的UIImageView是:xcode将iPhone转换为iPad

- (void) viewDidLoad { 

background.image = [UIImage imageNamed:@"myImage.png"]; 

} 

它可以很好的在iPhone上,也对iPad的,但是,我怎么能变“myImage.png”到“myImageHD.png”的时候我会在我的iPad上运行这个程序? ???我只需要显示myImageHD,如果我的应用程序将运行在iPad上。它可以用XIB文件完成,但我需要用代码来修复它。检测应用是否在iPad上运行,并显示myImageHD。谢谢。

回答

4

做到这一点,

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { 
    background.image = [UIImage imageNamed:@"myImage.png"]; 
} else { //UIUserInterfaceIdiomPad is for iPad 
    background.image = [UIImage imageNamed:@"myImageHD.png"]; 
} 

另一种方式来做到这一点是,

if ([(NSString*)[UIDevice currentDevice].model isEqualToString:@"iPad"] } { //As per the below comment, for iPad simulator the string will be "iPad simulator" 
    background.image = [UIImage imageNamed:@"myImageHD.png"]; 
} else { 
    background.image = [UIImage imageNamed:@"myImage.png"]; 
} 

UI_USER_INTERFACE_IDIOM()也可以用来检查当前设备是iPad或iPhone。在上面的条件中,而不是[[UIDevice currentDevice] userInterfaceIdiom],也可以使用UI_USER_INTERFACE_IDIOM()

+0

第二种方法是不适合,如果你想在模拟器,因为该模型串会在模拟器 –

+1

是的“iPad”在设备和“iPad模拟器” @Deepak,谢谢。我早先没有想过。在答案中添加了评论。 – iDev

2

尝试使用下面的代码

- (void) viewDidLoad { 

if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) 
{ 
background.image = [UIImage imageNamed:@"myImageHD.png"]; 
} 
else 
background.image = [UIImage imageNamed:@"myImage.png"]; 

} 
3
​​

这会帮助你,但我不认为它一个很好的尝试使用相同的厦门国际银行,只改变图像的想法! 问候

3

试试这个

- (void) viewDidLoad { 

    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){ 
     background.image = [UIImage imageNamed:@"myImageHD.png"]; 
    } 
    else{ 
     background.image = [UIImage imageNamed:@"myImage.png"]; 
    } 
}