Swiftで処理を遅延実行

何か処理を遅延実行させたい時はDispatchQueueのasyncAfter(deadline:execute:)を使う。

DispatchQueue.main.asyncAfter(deadline: .now() + 3, execute: {
    // 3秒後に実行
})

実行内容にアニメーションが付随する場合はUIView.animte(animateWithDuration:delay:options:animations:completion:)で代用できる。

UIView.animate(withDuration: 0.2, delay: 3, options: .curveEaseInOut, animations: {
    // 3秒後にアニメーション実行
}, completion: nil)

公式リファレンス

asyncAfter(deadline:execute:) - DispatchQueue | Apple Developer Documentation

animateWithDuration:delay:options:animations:completion: - UIView | Apple Developer Documentation