2009-08-18 127 views
2

我想要一個完全顛倒的界面。我不是說它應該根據手機的方向而改變。我的意思是它應該是整個時間顛倒(UIInterfaceOrientationPortraitUpsideDown)。一個按鈕應該能夠再次「正確」。同一個按鈕應該將所有內容都倒回去。iPhone顛倒界面

實現此目的的最佳方式是什麼?

回答

2

設置根視圖的層上的變換屬性。喜歡的東西:

bool upsideDown = ... 
float degrees = upsideDown ? 180.0f : 0.0f; 
NSNumber* radians = [NSNumber numberWithFloat:degrees * M_PI/180.0f]; 
[rootView.layer setValue:radians forKeyPath:@"transform.rotation.z"]; 

(。當然,你可以很容易地優化了小公式從度轉換爲弧度,因爲你只用0.0和PI包括它只是爲了清楚起見)

2

如果你想要一個顛倒的界面,方向並不重要。實質上,對您使用的視圖應用旋轉的仿射變換,例如:

window.transform = CGAffineTransformRotate(window.transform,M_PI);

如果你有一個狀態欄,那麼需要一些偏移量。再次應用,然後「旋轉」回來。