gpt4 book ai didi

swift - 即使在设备旋转后也约束/居中 CAEmitterLayer

转载 作者:行者123 更新时间:2023-11-30 10:48:21 29 4
gpt4 key购买 nike

在 iPad 版 Swift Playgrounds 中,我很难将 CAEmitterLayer 实例永久限制在中心。例如,它保持居中直到设备旋转,因此我需要找到某种方法将其限制在所有设备方向的中心。

这是我到目前为止所做的,请记住,我已经尝试将观察者添加到设备方向,但没有成功。但这可能只是我的一个错误。谢谢!

emitterLayer.emitterPosition = CGPoint(x: view.center.x, y: view.center.y)

let cell = CAEmitterCell()
cell.birthRate = 25
cell.lifetime = 30
cell.velocity = 250
cell.velocityRange = 250
cell.spinRange = 5
cell.scale = 0.04
cell.scaleRange = 0.03
cell.alphaSpeed = -0.15
cell.emissionRange = CGFloat.pi * 2
cell.contents = UIImage(named: "RainbowApple")?.cgImage

emitterLayer.emitterCells = [cell]
emitterLayer.beginTime = CACurrentMediaTime()
emitterLayer.zPosition = -1
view.layer.addSublayer(emitterLayer)

emitterLayer.emitterSize = CGSize(width: 320, height: 1)
emitterLayer.renderMode = CAEmitterLayerRenderMode.oldestLast

最佳答案

CALayer 不支持约束。看起来您想在 UIViewController 中执行此操作,因此将行 emitterLayer.emitterPosition = CGPoint(x: view.center.x, y: view.center.y) 移动到 viewDidLayoutSubviews 每当你的 View 边界改变时(即在旋转期间),它就会被调用。这将使您的发射器始终保持在中心,即使中心由于其他原因(例如 iPad 上的分屏多任务处理)而发生变化。

关于swift - 即使在设备旋转后也约束/居中 CAEmitterLayer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55294121/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com