0

以下で指定されたメソッド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ますか?

4

2 に答える 2