2011-07-01 103 views
1

我有一個UIImageView作爲我的控件背後的背景,旋轉設備時出現問題。我想使用不同的image,具體取決於orientation更改設備旋轉時的iPhone背景圖像

那麼最好的辦法是什麼呢? 爲景觀和人像添加和刪除每個UIImageView? 將兩者都放在視圖上並隱藏/顯示相應的視圖? 或者也許有一些類或UIObject處理呢?

TIA

回答

1

你可以得到它的時髦,並有兩個背景圖像重疊,其中一個與alpha = 1.0和另一個與alpha = 0.0。然後,在旋轉時,使用動畫將alpha分別轉換爲0.0和1.0,以獲得淡入淡出效果。如果選擇這種方法,我建議把動畫代碼-viewWillAppear:例如,像這樣:

[UIView beginAnimations:nil context:NULL]; { 
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
    [UIView setAnimationDuration:1.0]; 
     [UIView setAnimationDelegate:self]; 
     if (toOrientation == UIInterfaceOrientationLandscape) { 
       landscapeView.alpha = 1.0; 
       portraitView.alpha = 0.0; 
     } 
     else { 
       landscapeView.alpha = 0.0; 
       portraitView.alpha = 1.0; 
     } 
} [UIView commitAnimations]; 
+0

如果未使用,請勿將其放入視圖層次結構中。如果用戶從不改變方向(可能的用例),那麼你正在浪費內存。 – bshirley

+0

您可以隨時將其添加到第一次旋轉發生時的層次結構,或者甚至在動畫完成後將其刪除。 – PengOne

+0

也許我可以在淡出完成時從層次結構中刪除圖像,並在開始淡入之前添加它。 – Pier

1

您可以將其圖像屬性設置爲不同的圖像。

someUIImageView.image = [UIImage imageNamed:@"foo.png"];