我正在尝试使用 UIModalPresentationCurrentContext 在 VC 之上呈现 VC,以便查看其背后的 View 。下面的代码有效:
UIViewController *transparentViewController = [[UIViewController alloc] init];
self.modalPresentationStyle = UIModalPresentationCurrentContext;
[self presentViewController:transparentViewController animated:NO completion:^{
}];
但是,当我在 VC 被插入后旋转设备时,旋转看起来完全一团糟。它不是干净地旋转而是尴尬地拉伸(stretch) View 以适应新的方向。
此外,当我将 transparentViewController 子类化时,我发现它的 viewwillautorotate 方法没有被调用! (即使它以困惑的动画方式旋转)
UIModalPresentationCurrentContext 样式不是要旋转吗?有没有办法解决?有没有其他人遇到过这个问题?
最佳答案
我认为这个问题与原始 View Controller 无法旋转有关,因此您的模态视图 Controller 也被阻止旋转。要解决这个问题,您可以渲染原始 UIViewController
的CALAyer
进入 UIImage
使用 renderInContext
方法。然后你可以把它放在 UIImageView
在模态视图 Controller 中 View 层次结构的底部。这将产生 View Controller 看起来透明的效果,因为您在假静态图像中看到它背后的内容。那么当UIViewController
旋转您可以手动应用 CGAffineTransform
到UIImageView
让背景保持在原位,而其顶部的内容可以自由旋转。
关于uiviewcontroller - UIModalPresentationCurrentContext - 未调用旋转方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14883434/