我设法手动检测旋转并在两个UIViewControllers之间设置我自己的旋转效果。在第一个时,旋转到横向提示第二个用手动动画按下。状态栏移动到正确的方向。但是,第二个UIViewController加载的视图不在我预期的位置。相反,左边是状态栏的边距,而底部的边距/空间是我期望被视图填充的。
(点击放大。橙色框只是引用旋转的UIView,CustomView中的0,0)
我在视图控制器中用来进行旋转的代码是:
-(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];
}
非常感谢任何帮助!
编辑管理各种试错法后解决 - 下面提供的答案。也许有一个更优雅/明显的解决方案 - 如果有的话随意提供!
答案 0 :(得分:0)
在viewcontrollers上尝试这些。当我显示全屏子视图时,解决了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)];
答案 1 :(得分:0)
我设法通过在转换后设置View的边界来解决这个问题:
self.view.bounds = CGRectMake(20, -20, 480, 300);