我正在尝试使用UIModalPresentationCurrentContext在VC之上呈现VC,以便查看其背后的视图。以下代码有效:
UIViewController *transparentViewController = [[UIViewController alloc] init];
self.modalPresentationStyle = UIModalPresentationCurrentContext;
[self presentViewController:transparentViewController animated:NO completion:^{
}];
然而,当我按下VC后旋转设备时,旋转看起来完全搞砸了。它不是干净地旋转,而是笨拙地拉伸视图以适应新的方向。
此外,当我继承透明ViewController时,我发现它的viewwillautorotate方法没有被调用! (即使它以混乱的动画方式旋转)
UIModalPresentationCurrentContext样式是不是要旋转?有没有办法解决?还有其他人遇到过这个问题吗?
答案 0 :(得分:0)
我认为问题与原始视图控制器无法旋转有关,因此您的模态视图控制器也会被阻止旋转。要解决此问题,您可以使用UIViewController
方法将原始CALAyer
的{{1}}呈现为UIImage
。然后,您可以将其放置在模态视图控制器中视图层次结构底部的renderInContext
中。这将导致视图控制器显示为透明,因为您在假静态图像中看到它背后的内容。然后,当UIImageView
旋转时,您可以手动将UIViewController
应用于CGAffineTransform
,以使背景保持原位,同时其上方的内容可以自由旋转。