2016-04-19 4 views
0

私のアプリにはUIButtonがあり、それをタップすると、私はUIActivityIndi​​catorViewを持っており、ロード時に別のUIラベルを追加したいと思います。実際に見た目のための実際のローディングプロセスではありません。これをどうやってやりますか?Loadingプロセス - 別のUILabels

答えて

0

ステップ1:

カスタムUIViewのを(あなたがしたい場合uがxibsすることができます)を作成します。そのビューには、コンテナとして2番目のUIViewが必要です。ビューを初期化すると、それを配置しているviewControllerと同じサイズに設定されます。その背景色は透明です(または、グレーアウト効果を持たせたい場合は、より低いアルファを持つ黒)。コンテナを表示する実際のサイズに設定します。

ステップ2:

容器にUIActivityIndi​​catorViewとUILabelを置きます。あなたの好きなようにレイアウトしてください。

ステップ3:

タイマーを使用するラベル更新メソッドを記述します。 performSelector:afterDelay:またはdispatch_afterのいずれかです。このメソッドでラベルテキストを設定し、一定期間待ってから、テキストを変更してから、一定期間待ってから再度変更します。

ステップ4:

書き込みshowIndicator()とhideIndicator()メソッド。ビューとコンテナのhiddenプロパティはtrueに設定する必要があります。 showIndicator()が呼び出されると、hiddenをfalseに設定し、手順3のラベル更新メソッドを呼び出します。ラベルの変更がすべて終了したら、すべてをhidden = trueに戻します。

これは次のように動作します。 View Controllerがロードされ、このビューが追加されます。ビューは画面全体を占めますが、デフォルトでは隠されているため何も表示されません。ユーザーがボタンを押すと、showIndicator()メソッドが呼び出されます。ビューが表示されます。画面全体を占めるにもかかわらず、背景が透明(またはグレー表示のアルファで背面に表示)され、コンテナのフレームとソリッドカラーが小さくなるため、小さなオーバーレイが表示されます。遅延メソッドも今呼び出され、ラベルを変更し、待機し、変更します。シーケンスの終わりに達すると、hideIndicator()が呼び出され、すべてのビューがhidden = trueに設定されます。がんばろう!!!