2010-07-04 90 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