0

で作成されたパーティクル システムがあり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含む をUIView次のカスタム コードで (別の に追加してUIViewController) 表示すると、効果が正しく表示されます。

parentViewController.addChildViewController(childViewController)
childViewController.frame = parentViewController.view.frame
parentViewController.view.addSubview(childViewController.view)
childViewController.didMove(toParentViewController: parentViewController)

しかし、モーダルに表示されるようにビューを変更すると (を使用UIViewController.present)、効果は表示されません。

parentViewController.present(childViewController, animated: true)

ビュー コントローラーがモーダルに表示されているときにパーティクル効果を表示する方法についての洞察はありますか?

4

0 に答える 0