为iPad和iPhone设置背景图像

时间:2014-06-13 04:57:03

标签: ios objective-c

我刚刚创建了一个png图像,其ID在我的应用中用作背景。

    self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bg_tile.png"]];

以下是设置该背景有效的代码。我刚刚注册了iOS开发程序,所以现在我可以在我的设备上进行ad hoc测试了。我想知道如何“覆盖”这个图像,以便在iPad上光栅化。

原始photoshop jpg的尺寸约为500高度350宽度,我觉得非常适合作为iPhone背景。我听到的高清图像的尺寸是平均的; 1920高度和1080宽度,但我使用虚拟盒子,所以我的屏幕空间有点儿。无论如何我如何覆盖iPad bkg的图像?

由于

3 个答案:

答案 0 :(得分:0)

您也应该为iPad捆绑图像。现在,在运行时,您可以检查设备是否是iPAd,然后您应该相应地加载图像。

使用资产包(xcassets),您可以为不同的iOS设备配置不同的图像,并在运行时加载正确的图像。

答案 1 :(得分:0)

您可以重命名不同设备的图像文件,如下所述,iOS会自动拍摄相关图像。

bg_tile.png - For non ratina iPhone
bg_tile@2x.png - For ratina iPhone
bg_tile~ipad.png - For non ratina iPad
bg_tile@2x~ipad.png - For ratina iPad

如果您的图片尺寸足够大,我建议您不要使用

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bg_tile.png"]];

改为使用背景UIImageView并设置其图像属性。

self.view.backgroundImageView = [UIImage imageNamed:@"bg_tile.png"];

答案 2 :(得分:0)

您可以使用[[UIDevice currentDevice] userInterfaceIdiom]来确定您是在iPhone / iPod touch还是iPad上运行。

通常无需直接确定您是否在视网膜显示器上,因为当您使用imageNamed并附加" @ 2x"时,UIImage会自动处理。您的高分辨率图像文件名(请参阅iOS绘图和打印指南中的支持高分辨率屏幕)。

如果您确实需要知道屏幕的分辨率,请使用UIScreen的缩放方法。

+(BOOL)isPad
{
#ifdef UI_USER_INTERFACE_IDIOM
    return UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad;
#endif
    return NO;
}

+(BOOL)hasRetinaDisplay
{
    // checks for iPhone 4. will return a false positive on iPads, so use the above function in conjunction with this to determine if it's a 3GS or below, or an iPhone 4.
    if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2)
        return YES;
    else
        return NO;
}

希望这会对你有所帮助..