とらのメモ

IT関係やガジェットについての雑記

【Swift5】アラート内で文字+インジケーターを表示する

前書きとして、この記事は

ginkgo.hateblo.jp 上記の記事で

swift2で書かれたものをswift5で踏襲し、備忘録としてまとめただけのものになります。


先ずはコードから

変更点

StackOverflowで発見しましたが、元のコードのswift2.2で書かれたものは
swift3.0以降では、別の書き方に変わっていたようでした。

// Swift2以前
dispatch_async(dispatch_get_main_queue(), ^{

})

// swift3以降
DispatchQueue.main.async(execute: { () -> Void in
})

swift - Ambiguous use of DispatchQueue on trying to use main thread - Stack Overflow

あとはインジケーターの設定を

let indicator = UIActivityIndicatorView(activityIndicatorStyle: .Gray)

// ↓↓↓↓↓↓↓↓

let indicator = UIActivityIndicatorView()
indicator.color = UIColor.gray

とかに書き直してあげます。


余談

余談ですが、最前面の画面クラスを取得する処理は、NavigationControllなどの干渉を受ける可能性があり、 推奨されないそうです。
Swiftは学び始めたばかりでこの辺よくわかってないですが、バージョンアップが頻繁で先を見越して設計しないといけませんね...
ではまた

// こういうの
lat vc = UIApplication.shared.keyWindow?.rootViewController;

techblog.istyle.co.jp