6

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

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

但是,当我在 VC 被推动后旋转设备时,旋转看起来完全一团糟。它不是干净地旋转而是尴尬地拉伸视图以适应新的方向。

此外,当我将 transparentViewController 子类化时,我发现它的 viewwillautorotate 方法没有被调用!(即使它以混乱的动画方式旋转)

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

4

1 回答 1

0

我认为这个问题与原始视图控制器无法旋转有关,因此您的模态视图控制器也被阻止旋转。为了解决这个问题,您可以使用该方法将原始UIViewController's渲染CALAyer为 a 。然后,您可以将其放置在模态视图控制器中视图层次结构的底部。这将产生视图控制器看起来透明的效果,因为您在假静态图像中看到它背后的内容。然后,当旋转时,您可以手动应用 a以使背景保持在原位,而其顶部的内容可以自由旋转。UIImagerenderInContextUIImageViewUIViewControllerCGAffineTransformUIImageView

于 2013-02-19T05:23:59.587 回答