繁体   English   中英

设置iPad和iPhone的背景图像

[英]Setting a background image for iPad and iPhone

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

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

这是设置工作背景的代码。 我刚刚注册了iOS开发程序,所以现在我可以在我的设备上测试即席了。 我想知道如何“覆盖”此图像,以便在iPad上很好地光栅化。

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

谢谢

您还应该将图像打包为iPad。 现在,在运行时,您可以检查设备是否为iPAd,然后应相应地加载映像。

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

您可以按如下所述为不同设备重命名图像文件,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并设置其image属性。

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

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

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

如果您真的需要知道屏幕的分辨率,请使用UIScreen的scale方法。

+(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;
}

希望这对您有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM