手动iPhone旋转位置不正确

问题描述:

我设法手动检测旋转并在两个UIViewControllers之间设置自己的旋转效果。在第一个时候,旋转到横向提示第二个被手动动画推动。状态栏移动到正确的方向。但是,由第二个UIViewController加载的视图不在我期望的位置。相反,状态栏以前的左边有余量,底部有余量/空间,我期待被视图填充。手动iPhone旋转位置不正确

How the rotation appears

(点击放大橙色盒子是简单地引用其中,0,0是在旋转的UIView,CustomView)

的代码,我用我的视图控制器做旋转是:

-(void)loadView { 
    CustomView *customView = [[CustomView alloc] initWithFrame:CGRectMake(0, 20, 480, 300)]; 
    self.view = customView; 

    CGAffineTransform rotate = CGAffineTransformMakeRotation(degreesToRadian(90)); 
    [self.view setTransform:rotate]; 

    [customView release]; 
} 

任何帮助将不胜感激!

编辑经过多种试验和错误方法后解决 - 下面提供了答案。也许有一个更优雅/明显的解决方案,但如果愿意提供!

我设法改造后设置视图边界来解决这个问题:

self.view.bounds = CGRectMake(20, -20, 480, 300); 

在视图控制器上试试这些。解决了我获得全屏子视图时出现的20像素(状态栏高度)剪辑问题。

[viewcontroller1.view setCenter:CGPointMake(viewcontroller1.view.center.x,viewcontroller1.view.center.y-20)];

和/或

[viewcontroller2.view setCenter:CGPointMake(viewcontroller2.view.center.x-20,viewcontroller2.view.center.y)];