gpt4 book ai didi

ios - 是否可以暂停 CAEmitterLayer?

转载 作者:行者123 更新时间:2023-11-28 14:10:16 24 4
gpt4 key购买 nike

我有一个 CAEmitterLayer 实例,它发出一些 CAEmitterCells。我想知道,是否可以暂停这一层,这样就不会产生新的 CAEmitterCells 并且已经产生的那些在屏幕上的位置保持固定?然后,当 CAEmitterLayer 实例“未暂停”时,屏幕上固定的 CAEmitterCells 再次开始移动。

在此感谢您的帮助。

编辑

设置:

emitterLayer.speed = 0.1

其中 emitterLayerCAEmitterLayer 的子类实例,只是从 View 中完全移除层

设置:

emitterLayer.lifetime = 0.0

只是停止生成任何新的emitterCells,但不会在当前位置“卡住”现有的emitterCells

最佳答案

你可以将CAEmitterLayerlifetime属性设置为0,这会导致新发射的单元格甚至不被渲染,但会让已经存在的细胞不受影响。当你想“取消暂停”你的发射器层时,你可以简单地将 lifetime 重置为暂停前的任何值。

要同时卡住现有单元格,您可以将 speed 设置为 0 并添加 timeOffset

extension CAEmitterLayer {
func pause() {
// Freeze existing cells
self.speed = 0
self.timeOffset = convertTime(CACurrentMediaTime(), from: self)
// Stop creating new cells
self.lifetime = 0
}
}

然后你可以像emitterLayer.pause()这样简单地调用它

关于ios - 是否可以暂停 CAEmitterLayer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52623296/

24 4 0
文章推荐: jquery - 如何在翻转时使用 jquery 更改单个图像的大小?
文章推荐: javascript - 切换功能有效但 slideToggle 在 jQuery 中无效
文章推荐: javascript - 如何根据表中的用户链接点击生成新的 HTML 页面?
文章推荐: css - 带有嵌套 div 的整个可点击
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com