2013-03-12 65 views
0

在我的應用程序的首頁,我有兩個圖像,它們放置在兩個按鈕的一部分上。這些按鈕會自動縮放(通過取決於iPhone屏幕的大小)。不幸的是,當圖像重新縮放後,它會變得非常難看。如何根據iphone屏幕的大小更改圖像?請幫助我

我可以決定兩幅圖像的大小和位置(通過代碼),這取決於iPhone屏幕的尺寸是多少?如果是的話我怎麼會去這樣做呢?

感謝您的幫助新手了!

更新13MAR13

這是我嘗試過的代碼。它不會導致錯誤,但頁面上不會出現圖像!

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) 
{ 
    CGSize result = [[UIScreen mainScreen] bounds].size; 
    if(result.height == 480) 
    { 
     UIImageView *myImageView = [[UIImageView alloc]initWithFrame: CGRectMake(220, 2.5, 95, 75)]; 
     myImageView.image = [UIImage imageNamed:@"BFS.png"]; 
     UIImageView *myImageViewtwo = [[UIImageView alloc]initWithFrame: CGRectMake(300, 100, 95, 75)]; 
     myImageViewtwo.image = [UIImage imageNamed:@"RMS.png"]; 


    } 
    if(result.height == 568) 
    { 
     UIImageView *myImageView = [[UIImageView alloc]initWithFrame: CGRectMake(100, 400, 95, 75)]; 
     myImageView.image = [UIImage imageNamed:@"BFS.png"]; 
     UIImageView *myImageViewtwo = [[UIImageView alloc]initWithFrame: CGRectMake(100, 300, 95, 75)]; 
     myImageViewtwo.image = [UIImage imageNamed:@"RMS.png"]; 

    } 
} 
+0

你讀過了嗎? http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/MobileHIG/IconsImages/IconsImages.html – tuffkid 2013-03-12 21:19:33

+0

如果您需要根據是iPhone 4還是iPhone 5來更改背景圖片,檢查出http://stackoverflow.com/questions/12446990/how-to-detect-iphone-5-widescreen-devices – Niro 2013-03-12 21:24:21

回答

3

您可以在透明按鈕後面放置2個不同的圖像& UIImageViews並根據屏幕大小設置它們的大小。爲獲取屏幕尺寸

代碼:

int h = [[UIScreen mainScreen] bounds].size.height; 

然後,檢查

if([[UIScreen mainScreen] bounds].size.height == 480) { 

    imgVw1.frame = CGRectMake(x, y, w, h); 
    imgVw1.image = [UIImage imagenamed:@"....png"]; 
} //iPhone-4 

if([[UIScreen mainScreen] bounds].size.height == 568) { 

    imgVw1.frame = CGRectMake(x, y, w, h); 
    imgVw1.image = [UIImage imagenamed:@"[email protected]"]; 
} //iPhone-5 

您可以採取兩種圖像吧。

  1. imgButton.png - >普通
  2. [email protected] - >視網膜顯示


被修改代碼

在。 h fil e,

@property(nonatomic, retain) IBOutlet UIButton *btn; 

In。 m文件,

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) 
{ 
    CGSize result = [[UIScreen mainScreen] bounds].size; 

    if(result.height == 480) 
    { 
     [btn setFrame:CGRectMake(75, 20, 175, 100)]; 
     [btn setImage:[UIImage imageNamed:@"Img_Circle.png"] forState:UIControlStateNormal]; 
    } 
    if(result.height == 568) 
    { 
     [btn setFrame:CGRectMake(65, 60, 200, 120)]; 
     [btn setImage:[UIImage imageNamed:@"[email protected]"] forState:UIControlStateNormal]; 
    } 
} 

因爲我們已經在.h文件中聲明瞭屬性,所以在這裏不需要再次進行分配。
只需簡單地爲它設置框架。

希望這對你有幫助。
謝謝。

+0

親愛的imanan,謝謝你的回答!我實現了你的代碼,但它創建了一些錯誤 - imgVw1(使用未聲明的標識符)。我敢肯定,這對我來說是一個愚蠢的疏忽 - 你能幫我多一點嗎? 我還用我之前嘗試過的一些代碼更新了我的原始問題。它不會導致錯誤,但不會出現圖片!只是爲了我未來的參考,你能告訴我它有什麼問題嗎? – 2013-03-13 21:08:31

+0

檢查我的編輯代碼。希望它能幫助你。 Thnaks – 2013-03-14 04:20:38

相關問題