読者です 読者をやめる 読者になる 読者になる

Ginkgo Blog

新宿に住む、ITサラリーマンのブログです。

UIAlertControllerにIndicator(くるくる)で、標準ぽいの作る

iOS Swift

iPhone7の予約に関する連絡がまだ来ない。まだか、jet black !

はじめに

昔からAlertViewにくるくるを表示したいという人が多いのですが、個人的にはあまり好きでないです。(なんとなく)
特に、中央下部にくるくる出すのが嫌いです。(なんとなく)

でも必要なのでやってみます。

イメージはこんなやつですね。

f:id:yuichilo:20160912205244p:plain

iOSのアップデート表示です。標準の表示です。

extension で作る

indicatorを追加するところは微妙ですが、とりあえず。(位置調整をもっと綺麗にやりたい)

gist9d0cb6510f6b51d0cd6c29e9b1c9055d

ViewControllerで、こう書いて、

UIAlertController.showIndicatorAlert(self, message: "アップデートを検証中…")

こんな風に表示できます。

f:id:yuichilo:20160912210554p:plain

文言を更新する

文言を更新したいからと言って、新たにAlertを作成して表示すると、閉じて、開いてとAlertがちらつきます。

その場合は表示中のAlertControllerのインスタンスを取得して文言を更新します。

インスタンスが取得できれば、任意のタイミングで閉じることもできます。

gist0455d53d4c303f887fc583002be441e4

これで、現在の表示中のUIAlertControllerをViewControllerから取得できます。

let alert = self.getForegroundAlertController()

このalertを参照してあげればこんな感じにできます。

f:id:yuichilo:20160912211608g:plain

alertで表示を更新できるのは、titleとmessageです。

終わり。