2014-07-07 32 views
0

我想覆蓋不同的背景圖像在我的應用程序上運行。我使用了這個問題的代碼; set background images for Iphone 3g, Iphone 4s and Iphone 5爲iPod,iPhone和iPad設置背景圖像?

謝天謝地,代碼很簡單。我也將這些設置在.m文件中以防萬一。

.H

@property (retain strong) UIImage* Image 

@property (retain, strong) UIImageView. 

.M

@interface ViewController() 

@end 

@implementation ViewController 

//SYNTHESIZE JUST IN CASE 

@synthesize backgroundImageView=backgroundImageView; 
@synthesize Image=Image; 

- (void)viewDidLoad 

{ 

//SETS A UIIMAGEVIEW TO BE SET TO A CUSTOM UIIMAGE (JPG) 

UIImageView *backgroundImageView = [[UIImageView alloc] initWithImage:Image]; 
[backgroundImageView setFrame:[[self view] bounds]]; 
[[self view] addSubview:backgroundImageView]; 

//I EXCPECTED THIS NEXT LINE OF CODE TO WORK TO SET A SEPARATE BACKGROUND FOR IPAD... 

UIImage *Image = [[UIImage alloc]init]; 
if ([[UIScreen mainScreen] bounds].size.height == 568) { 
    Image = [UIImage imageNamed:@"[email protected]"]; 
} 
else 

//THIS ELSE STATEMENT IS THE IMAGE THAT ACTUALLY RASTERIZES FOR BOTH IPAD AND IPOD TEST DEVICES 

{ 
    Image = [UIImage imageNamed:@"[email protected]"]; 
} 

self.view.backgroundColor = [UIColor colorWithPatternImage:Image]; 


[super viewDidLoad]; 
// Do any additional setup after loading the view, typically from a nib. 
} 

沒有按預期工作相當的覆蓋。無論我在if語句中設置了什麼圖像,只有else語句都會運行。

我的問題;是if語句中的維度(568)是否正確地光柵化iPad設備的單獨圖像?如果沒有,請讓我知道,謝謝。

其他信息:部署目標:6.1 附加信息:我在運行時收到錯誤(儘管它仍然運行),類似於我的筆尖文件和故事板之間的差異。我雖然不使用筆尖。 ?

+0

568是iPhone 5的高度。768是iPad的高度 – Paulw11

+0

還爲您的背景視圖和圖像聲明屬性,但使用局部變量而不是屬性。此外,您的'Image'屬性(應該是'image' - 類以大寫字母開頭,變量以小寫字母開頭)將由背景視圖保留,因此您只需要一個弱屬性,而不是強烈的 – Paulw11

+0

768?謝謝我會嘗試一下(我正在使用iPad mini) – user3720631

回答

1

這裏是正確的值:

if ([[UIScreen mainScreen] bounds].size.height == 480) { 
    // iPhone, iPod Touch 
} 

if ([[UIScreen mainScreen] bounds].size.height == 568) { 
    // iPhone 5 
} 

if ([[UIScreen mainScreen] bounds].size.height == 750) { 
    // iPhone 6 
} 

if ([[UIScreen mainScreen] bounds].size.height == 1024) { 
    // iPad 
} 

if ([[UIScreen mainScreen] bounds].size.height == 1242) { 
    // iPhone 6 Plus 
} 
  1. iPhone [UIScreen mainScreen] bounds] {{0, 0}, {320, 480}}
  2. iPhone 5 [UIScreen mainScreen] bounds] {{0, 0}, {320, 568}}
  3. iPhone 6 [UIScreen mainScreen] bounds] {{0, 0}, {750, 1334}}
  4. 的iPad [UIScreen mainScreen] bounds] {{0, 0}, {768, 1024}}
  5. iPhone 6加[UIScreen mainScreen] bounds] {{0, 0}, {1242, 2208}}

編輯新增iPhone 6和6 Plus來維護這個列表按照Jules「評論,但不建議使用這種方法在手機之間進行區分,甚至挑選合適的圖像。


正確途徑

使用的資產類別。

+0

哇謝謝!我會檢查你是否有效。 – user3720631

+1

iphone 6等呢? – Jules

+0

@Jules:你說得很好。該解決方案不可擴展。我純粹迴應了http://stackoverflow.com/questions/24602007/,但你不想走這條路。 – SwiftArchitect