模态显示UIViewController时,CAEmitterLayer粒子不可见

时间:2019-07-02 16:24:59

标签: ios swift uiviewcontroller uikit caemitterlayer

我有一个用CAEmitterLayer创建的粒子系统。粒子效果创建了五彩纸屑效果,其中五彩纸屑从视图顶部下降。 CAEmitterLayer作为子层添加到UIView中用于视图控制器的confettiView(为此专门在情节提要中创建的viewDidLoad())中,作为视图控制器:

override func viewDidLoad() {
        ...
        createParticles(for: confettiView)
        ...
}

func createParticles(for view: UIView) {
        let particleEmitter = CAEmitterLayer()
        particleEmitter.emitterPosition = CGPoint(x: view.center.x, y: -96)
        particleEmitter.emitterShape = kCAEmitterLayerLine
        particleEmitter.emitterSize = CGSize(width: view.frame.size.width, height: 1)
        ...
        (adding the emitter cells here)
        ...
        view.layer.addSublayer(particleEmitter)
}

当包含UIViewController的{​​{1}}和以下自定义代码一起显示时(通过将其添加到另一个UIView中),效果将正确显示。

UIViewController

但是当我更改视图以模态显示(使用parentViewController.addChildViewController(childViewController) childViewController.frame = parentViewController.view.frame parentViewController.view.addSubview(childViewController.view) childViewController.didMove(toParentViewController: parentViewController) )时,效果不可见:

UIViewController.present

关于以模态方式呈现视图控制器时如何使粒子效果可见的任何见解?

0 个答案:

没有答案