我刚刚创建了一个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的图像?
由于
答案 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;
}
希望这会对你有所帮助..