在运行iOS 13的设备上,弹出窗口的阴影不再显示。当弹出窗口显示在一个ViewController上时,该ViewController包含一个直接位于其下方的自定义UIView,并带有CAEAGLLayer后备层。
我知道CAEAGLLayer在iOS 13中已被弃用,但一定有解决方法。
有趣的是,当截取屏幕截图以展示此问题时,阴影会显示在屏幕截图上!太奇怪了... 我尝试创建一个自定义的UIPopoverBackgroundView,并且其中设置的阴影效果运行良好。
我知道CAEAGLLayer在iOS 13中已被弃用,但一定有解决方法。
有趣的是,当截取屏幕截图以展示此问题时,阴影会显示在屏幕截图上!太奇怪了... 我尝试创建一个自定义的UIPopoverBackgroundView,并且其中设置的阴影效果运行良好。
UIPopoverPresentationController *popoverController = viewController.popoverPresentationController;
popoverController.permittedArrowDirections = UIPopoverArrowDirectionDown;
popoverController.popoverBackgroundViewClass = [PopoverBackgroundView class];
任何提示或想法都将不胜感激!我花了一整天的时间试图弄清楚这个问题。 :/
opaque
属性可以恢复阴影,有时将一个不可见视图添加到窗口也可以达到同样的效果。不幸的是,两者都不足以在所有情况下解决问题。我会尝试你的解决方法... - deltacrux