Настройка CAEmitterLayer zPosition на подклассе UILabel не имеет никакого эффекта
Моя цель: создать UILabel с подклассами, который отображает CAEmitterLayer за текстом меток.
Моя проблема: CAEmitterLayer всегда перед текстом метки, независимо от того, какой метод я использую для добавления эмиттера.
Мои шаги предприняты: Как вы можете видеть из моего кода ниже, я добавил UIView в UILabel (называемую AddedEmitterView). Затем я добавляю излучатель к этому представлению, пытаясь разместить излучатель за текстом. Эмиттер обнаруживается очень хорошо, однако я не могу получить текст впереди! Независимо от того, какую настройку zPosition я настраиваю (как показано в моем коде ниже), излучатель всегда находится спереди. (как показано на скриншоте!)
class EmitterLabel: UILabel {
var addedEmitterView = UIView()
override func awakeFromNib() {
super.awakeFromNib()
createEmitter()
addEmitterView()
}
func createEmitter() {
let emitter = Emitter.get(image: UIImage(named: "emoji")!)
emitter.position = CGPoint(x: self.frame.width / 2, y: self.frame.height / 2)
emitter.emitterSize = CGSize(width: UIScreen.main.bounds.size.width, height: UIScreen.main.bounds.size.height)
emitter.zPosition = -1
addedEmitterView.layer.insertSublayer(emitter, at: 0)
}
func addEmitterView() {
addedEmitterView.frame = self.bounds
addedEmitterView.layer.zPosition = -1
self.addSubview(addedEmitterView)
}
}
Можно ли разместить эмиттер за текстом UILabel?
Большое спасибо, дайте мне знать, если вам нужна дополнительная информация!