Я пытаюсь зажечь кучу ярких UIButton
экземпляров подкласса, вызывая метод flash()
, заданный следующим образом:
func flash(delay: TimeInterval = 0.0) {
DispatchQueue.main.asyncAfter(deadline: .now() + delay) { [weak self] in
guard let strongSelf = self else { return }
let flashView = UIView(frame: strongSelf.bounds)
strongSelf.insertSubview(flashView, at: 0)
flashView.backgroundColor = strongSelf.color
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { flashView.removeFromSuperview() }
}
}
Используя эту функцию, я могу выполнить цикл для массивакнопки, запускающие эффект вспышки, который длится в течение 0,1 секунды с миганием, вызванным вибрирующим слоем, изменяющим экземпляр flashView
позади него.
Есть ли у этой функции какие-либо недостатки, вызывая DispatchQueue.main.asyncAfter
в вызове DispatchQueue.main.asyncAfter