我有一个用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
关于以模态方式呈现视图控制器时如何使粒子效果可见的任何见解?