UIModalPresentationCurrentContext - 未调用旋转方法

时间:2013-02-14 20:26:28

标签: uiviewcontroller rotation transparent uimodalpresentationstyle

我正在尝试使用UIModalPresentationCurrentContext在VC之上呈现VC,以便查看其背后的视图。以下代码有效:

UIViewController *transparentViewController = [[UIViewController alloc] init];
self.modalPresentationStyle = UIModalPresentationCurrentContext;
[self presentViewController:transparentViewController animated:NO completion:^{
}];

然而,当我按下VC后旋转设备时,旋转看起来完全搞砸了。它不是干净地旋转,而是笨拙地拉伸视图以适应新的方向。

此外,当我继承透明ViewController时,我发现它的viewwillautorotate方法没有被调用! (即使它以混乱的动画方式旋转)

UIModalPresentationCurrentContext样式是不是要旋转?有没有办法解决?还有其他人遇到过这个问题吗?

1 个答案:

答案 0 :(得分:0)

我认为问题与原始视图控制器无法旋转有关,因此您的模态视图控制器也会被阻止旋转。要解决此问题,您可以使用UIViewController方法将原始CALAyer的{​​{1}}呈现为UIImage。然后,您可以将其放置在模态视图控制器中视图层次结构底部的renderInContext中。这将导致视图控制器显示为透明,因为您在假静态图像中看到它背后的内容。然后,当UIImageView旋转时,您可以手动将UIViewController应用于CGAffineTransform,以使背景保持原位,同时其上方的内容可以自由旋转。