2

请帮忙。我更改 UIImageView 的代码是:

- (void) viewDidLoad {

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

}

它在 iPhone 和 iPad 上运行良好,但是,当我将在我的 iPad 上运行这个应用程序时,如何将“myImage.png”更改为“myImageHD.png”??如果我的应用程序可以在 iPad 上运行,我只需要显示 myImageHD。它可以用 XIB 文件完成,但我需要用代码来修复它。检测应用程序是否在 iPad 上运行,并显示 myImageHD。谢谢。

4

4 回答 4

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]上面的 if 条件,你也可以使用UI_USER_INTERFACE_IDIOM()

于 2012-11-21T04:51:37.773 回答
3
NSString *deviceType = [UIDevice currentDevice].model;

if([deviceType isEqualToString:@"iPhone"])
{
     // it's an iPhone
}

这将对您有所帮助,但我认为使用相同的 XIB 并仅更改图像不是一个好的尝试!问候

于 2012-11-21T04:56:34.213 回答
3

试试这个

 - (void) viewDidLoad {

    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){
        background.image = [UIImage imageNamed:@"myImageHD.png"];
    }
    else{
        background.image = [UIImage imageNamed:@"myImage.png"];
    }
}
于 2012-11-21T07:58:37.887 回答
2

尝试使用下面的代码

- (void) viewDidLoad {

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

}
于 2012-11-21T04:54:01.373 回答