2

5 つのタブを持つ UITabBarController を持つアプリケーションがあります。実際のデバイスでのテストでは、タブから別のタブに切り替えると、インターネットからデータをダウンロードする必要があるため、ビューの読み込みに 1 秒以上かかる場合があることが示されています。

ビューの読み込み中に UIActivityIndi​​catorView を表示したいのですが、解決策が見つかりませんでした。私の探し方が良くなかったのかもしれません。

誰かが私を助けることができますか?

4

2 に答える 2

1

私のやり方:

UILabel、UIActivityIndi​​cator、および黒の背景を持つLoadingViewControllerクラスを作成します。

ViewDidLoadメソッドで、次のように設定します。

[self.view setAlpha:0.0];
[self.activityIndicator startAnimating];

私は2つのメソッドを実装します:

-(void)appear{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[self.view setAlpha:0.65];
[UIView commitAnimations];
}

-(void)disappear{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[self.view setAlpha:0.0];
[UIView commitAnimations];
}

ラベルでは、カスタムテキストを設定できます。

作業中のクラスにこのクラスをインポートして、次のように呼び出します。

[loadingViewController appear];

[loadingViewController disappear];

私は今Macを持っておらず、間違いを書いたかどうかを確認できませんが、あなたがアイデアを理解してくれることを願っています:)

アプリの多くの場所で必要になる場合に備えて、このためのカスタムクラスを作成することを常に好みます。

于 2010-10-15T11:22:53.147 に答える
1

非同期リクエストを使用してデータをダウンロードする必要があります。ASIHTTPRequestは、このための優れたラッパーです。

次に、UIActivityIndi​​catorView の一般的なオプションは次のとおりです。

  1. ビューに他のものを実際にロードする前に、タブに表示します。データの準備ができたら、非表示にして完全な情報を表示します。
  2. 不完全なビューを表示し、UIActivityIndi​​catorView でオーバーレイを追加します。
于 2010-10-15T11:17:12.310 に答える