>SVProgressHUDを使う時のTips2013/12/15TwitterFacebookGoogle+はてブiOSアプリでローディング表示といえば、SVProgressHUDだと思います。Googleで調べれば、解説サイト様も数多くあり、導入も比較的簡単です。SVProgressHUDただ私の場合は、導入まではすぐにできましたが、その後でちょっとつまずいてしまいました。今回はその内容をご紹介します。非常に初歩的なTipsだと思いますので、そこはご勘弁を。写真を保存する時に表示が一瞬で消える。?私は主にカメラアプリを作っているので、SVProgressHUDはカメラの保存時に使おうと考えていました。具体的に言うと、アプリ内のSAVEボタンを押して、UIActivityViewControllerを使った保存の画面が出てくるまでの間です。私が最初に実装したのはSAVEボタンを押した際に呼び出されるメソッド内でした。「あれ?ローディングが一瞬で消える。)の展開にちょっと戸惑いました。ローディング表示はメソッド終了後に描画される諦めようかなと、一瞬思いました。私のカメラアプリの場合、カメラの保存に1秒くらい時間がかかります。そのままですと、かるくフリーズ状態なので、Appleのレビューが通らない可能性が大です。そこで、いろいろと試してみました。すると、どうやら処理の順番はどうあれ、SVProgressHUDのローディング表示はメソッド終了後に画面描画がされるらしいことがわかりました。(技術的な検証はしていません。私はそう捉えたという話です。)ということは、同じメソッド内でSVProgressHUDの開始と終了を記述した場合はどうなるか。メソッド終了後に表示と表示終了が一瞬で行われる事になります。今の現象とつじつまが合います。あとは、解決策を考えるのみ。Viewのタッチイベントにローディング処理を記述する。その後の試行錯誤の末、私は以下の方法で解決しました。1.Saveメソッドの呼び出しをボタンからではなく、Viewにする。2.VIewのタッチイベント、touchesBeganにSVProgressHUDの開始を記述。3.touchesEndedにSVProgressHUDの終了を記述。}}Snowflakeのソースをほぼそのままのせました。Viewのタッチイベントについては、前の記事を参照して下さい。touchesBeganSnowflakeのSaveボタンがタッチされた場合だけ、SVProgressHUDの開始処理を記述しています。それと、ボタンの画像もちょっと光ったような画像に差し替えています。touchesEnded各ボタンに対応したメソッドを呼び出しています。光らせたボタン画像を元に戻します。Saveボタンの場合は、さらにSVProgressHUDの終了処理を記述しています。これが正しいやり方かは正直わかりませんが、参考になれば。Tipsシェアお願いします!TwitterFacebookGoogle+はてブLINEPocketRSSfeedly公演の告知をしたいあなたへ。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。コメントデータの処理方法の詳細はこちらをご覧ください。2(今回はどんな感じで作ろうかな。妻とアプリの話をした翌日。