我有一個UIImageView
作爲我的控件背後的背景,旋轉設備時出現問題。我想使用不同的image
,具體取決於orientation
。更改設備旋轉時的iPhone背景圖像
那麼最好的辦法是什麼呢? 爲景觀和人像添加和刪除每個UIImageView
? 將兩者都放在視圖上並隱藏/顯示相應的視圖? 或者也許有一些類或UIObject
處理呢?
TIA
我有一個UIImageView
作爲我的控件背後的背景,旋轉設備時出現問題。我想使用不同的image
,具體取決於orientation
。更改設備旋轉時的iPhone背景圖像
那麼最好的辦法是什麼呢? 爲景觀和人像添加和刪除每個UIImageView
? 將兩者都放在視圖上並隱藏/顯示相應的視圖? 或者也許有一些類或UIObject
處理呢?
TIA
你可以得到它的時髦,並有兩個背景圖像重疊,其中一個與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];
您可以將其圖像屬性設置爲不同的圖像。
someUIImageView.image = [UIImage imageNamed:@"foo.png"];
現在你可以實際使用的大小類用於此目的。所有你需要做的就是設置圖像爲任何寬度緊湊的高度,並做本文給出的提示:http://pinkstone.co.uk/how-to-handle-device-rotation-since-ios-8/ 這就是你所需要的背景圖像輪換改變。
如果未使用,請勿將其放入視圖層次結構中。如果用戶從不改變方向(可能的用例),那麼你正在浪費內存。 – bshirley
您可以隨時將其添加到第一次旋轉發生時的層次結構,或者甚至在動畫完成後將其刪除。 – PengOne
也許我可以在淡出完成時從層次結構中刪除圖像,並在開始淡入之前添加它。 – Pier