1

チュートリアルを探しましたが、テーブル ビュー ナビゲーション バーのアクティビティ インジケーターのチュートリアルが見つからないようです。私のmainWindow.xibには、それぞれがテーブルビューを含む4つのタブコントローラーを持つタブバーコントローラーがあります。それぞれが、Google でホストされているフレームワークを使用して JSON フィードを読み込みます。

私のView Controllerの1つで、次を使用してアクティビティインジケーターをナビゲーションバーに追加できます。

UIActivityIndicatorView *activityIndcator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0,0,20,20)];
[activityIndcator startAnimating];
UIBarButtonItem *activityItem = [[UIBarButtonItem alloc] initWithCustomView:activityIndcator];
self.navigationItem.rightBarButtonItem = activityItem;

ただし、次を使用してオフにすることができます。

self.navigationItem.rightBarButtonItem.enabled = FALSE;

しかし、これをviewDidLoadイベントに配置すると、常に表示されます。テーブルビューで行を選択したときにのみ表示したい。そのため、フィードを読み込んだ後、didSelectRowAtIndexPath と停止行の先頭に追加しました。表示されますが、1〜2秒かかり、約0.5秒しか表示されません。

didSelectRowAtIndexPath イベントの前に発生するイベントは、読み込みイベントの一種ですか? そうでない場合、そのような機能を実装するための標準的なメンターは何ですか?

4

2 に答える 2

1

このリンクがお役に立てば幸いです。これは、RSSフィードの解析アクションのアクティビティインジケーターを表示するための説明です。

ではごきげんよう。

于 2010-04-20T10:15:48.677 に答える
1

.h ファイル内

 @property (nonatomic,retain) UIActivityIndicatorView *spinner;

.m ファイルでは、@synthesize スピナー; //また、dealloc で解放する

viewDidLoad で、次のようにします。

UIActivityIndicatorView *activityIndcator = [[UIActivityIndicatorView alloc]    
       initWithFrame:CGRectMake(0,0,20,20)];
self.spinner = activityIndicator;
spinner.hidesWhenStopped = YES; // this is the default, but never hurts to be sure
UIBarButtonItem *activityItem = [[UIBarButtonItem alloc] initWithCustomView:spinner];
self.navigationItem.rightBarButtonItem = activityItem;

didSelectRowAtIndexPath で、次のようにします。

 [self.spinner startAnimating];

フィードが終了したら、次の操作を行います。

 [self.spinner stopAnimating];
于 2012-02-03T03:03:58.820 に答える