2014-10-20 60 views
3

我试图设置一个UIImage作为UIView的背景。问题是,如果我使用colorWithPatternImage背景图像重复的iPhone 6(据我所知它使用de @ 2x分辨率)。 对于iPhone 6 plus,我没有问题,因为它使用de @ 3x图像,但iPhone 4,4s,5,5s和6使用相同的2 @ x图像并且具有不同的屏幕尺寸。iPhone 6的iOS背景图像

我使用的Xcode 6.

+0

在xcassets和茶选择imageblock从正确的资源加载后将其类型设置为通用设备,然后单独给每个设备选项,希望它能帮助! – ZAZ 2014-10-20 20:07:08

+0

它仅适用于以下选项:1x:iPhone无视网膜,2x:iPhone视网膜,Retina 4 2x:iPhone视网膜4英寸,3x:iPhone 6外加iPhone 6无选择 – Marc 2014-10-21 11:23:36

回答

4

我有同样的问题,我解决了以下这个post

基本上,你可以使用:

  • 单个图像的1倍,2倍和设置R4。这涵盖了iPhone 4,4S和5/5S/5C以及iPads从iPhone 4布局中缩放应用程序
  • 为iPhone 6设置的“xxxxx超大”图像
  • “xxxxx-overize @ 3x”设置为iPhone 6加

enter image description here

不是使用上的UIImage自定义类别根据显示器尺寸

#import "UIImage+ImageAdditions.h" 

@implementation UIImage (ImageAdditions) 

+ (NSString *)resolveAdaptiveImageName:(NSString *)nameStem { 
    CGFloat height = [UIScreen mainScreen].bounds.size.height; 
    if (height > 568.0f) { 
     // Oversize @2x will be used for iPhone 6, @3x for iPhone 6+ 
     // iPads... we'll work that out later 
     if (height > 667.0f) { 
      return [nameStem stringByAppendingString:@"[email protected]"]; 
     } else { 
      return [nameStem stringByAppendingString:@"-oversize"]; 
     } 
    }; 
    return nameStem; 
} 

+ (UIImage *)adaptiveImageNamed:(NSString *)name { 
    return [self imageNamed:[self resolveAdaptiveImageName:name]]; 
} 

@end 
+0

尼斯解决方案。谢谢。 – javsmo 2014-12-03 18:25:06