2010-07-04 104 views
0

如何旋轉我的基本視圖並仍然確保其子視圖仍位於正確的位置?旋轉主屏幕並旋轉返回子視圖

--------        
|X  | After 90 degree rotate and stretch 
|  | this should remain the same 
|  | 
|  Y| 
-------- 

我認爲我需要旋轉90度,根據窗口比率拉伸,並在子視圖上執行相反的操作?

下不工作...

- (void) performTransformation:(UIView*)view isBase:(BOOL)isBase 
{ 
    if(isBase) { 
     [view.layer setAffineTransform:CGAffineTransformConcat(
      CGAffineTransformMakeRotation(M_PI * 0.5), 
      CGAffineTransformMakeScale(-(3.0/4.0), (4.0/3.0)))]; 
    } else { 
     [view.layer setAffineTransform:CGAffineTransformConcat(
      CGAffineTransformMakeScale(-(4.0/3.0), (3.0/4.0)), 
      CGAffineTransformMakeRotation(-M_PI * 0.5))]; 
} 

回答

0

你響應設備的方位改變轉動?如果是這樣,您可以使用UIViewController-shouldAutorotateToInterfaceOrientation:方法旋轉視圖。

要做你正在描述的事情,你可以設置個人UIView的'autoresizingMask屬性。在你的榜樣,你會做到以下幾點:

[viewX setAutoresizingMask:(UIViewFlexibleRightMargin | 
          UIViewFlexibleBottomMargin)]; 

[viewY setAutoresizingMask:(UIViewFlexibleTopMargin | 
          UIViewFlexibleLeftMargin)]; 

該代碼將設置第一個視圖(我已經叫viewX)留在左上角,第二個觀點與自下而上對。

+0

不,我調整大小以旋轉UIView動畫的效果。 – 2010-07-04 17:46:23

+0

好吧,只要你旋轉和轉換的是對這些視圖的超級視圖,設置自動調整大小的遮罩應該可以工作。 – 2010-07-05 03:24:02