以下で指定されたメソッド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 秒間持続するフラッシュ効果をトリガーするボタンの配列を for ループできます。このフラッシュは、鮮やかなレイヤーがflashView
その背後にあるインスタンスを変更することによって引き起こされます。
DispatchQueue.main.asyncAfter
への呼び出し内で呼び出すことにより、この関数に欠点はありDispatchQueue.main.asyncAfter
ますか?