31

UIActivityIndi​​catorViewスピナーサークルをUIBarButtonに追加して、ユーザーがナビゲーションバーのこれらのボタンの1つをタップすると、読み込み中にスピナーが表示されるようにするにはどうすればよいですか?

4

6 に答える 6

49

ナビゲーションバーボタンにアクティビティホイールを表示しようとしている場合(たとえば、ナビゲーションバーに更新ボタンがある場合)-UIBarButtonItemカスタムビューを使用して新しいものを作成できますUIActivityIndicatorView

Objective-C

uiBusy = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
uiBusy.hidesWhenStopped = YES;
[uiBusy startAnimating];
[self.navigationItem.rightBarButtonItem initWithCustomView:uiBusy];

迅速

let uiBusy = UIActivityIndicatorView(activityIndicatorStyle: .White)
uiBusy.hidesWhenStopped = true
uiBusy.startAnimating()
self.navigationItem.rightBarButtonItem = UIBarButtonItem(customView: uiBusy)

rightBarButtonItemこれはあなたをスピニングホイールで上書きします。完了したら、を再作成するだけですrightBarButtonItem

于 2011-02-01T20:22:54.553 に答える
6
activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
activityIndicator.hidesWhenStopped = YES;
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:activityIndicator];

必要な場所に次のものを配置します。

[activityIndicator startAnimating];
[activityIndicator stopAnimating];
于 2013-02-21T08:00:34.700 に答える
2

実際には、アクティビティインジケータはツールバー項目として追加されません。現在のビューのサブビューです。


    UIActivityIndicatorView *act = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
    [act setCenter:CGPointMake(20, 20)];
    [act startAnimating];
    [self.view addSubview:act];

でリリースすることを忘れないでください-(void)dealloc

于 2009-11-12T07:59:14.823 に答える
0

このメソッドを使用する

-(void)startAniatingActivityIndicator{
@try {
    activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
    activityIndicator.frame = CGRectMake(self.window.frame.size.width-30, 32.5, activityIndicator.bounds.size.width, activityIndicator.bounds.size.height);
    [self.window addSubview:activityIndicator];
    [activityIndicator startAnimating];
    [self.window bringSubviewToFront:activityIndicator];
}
@catch (NSException *exception) {

}
@finally {

}

}

-(void)stopAniatingActivityIndicator{
[activityIndicator stopAnimating];
[activityIndicator removeFromSuperview];
activityIndicator = nil;

}

于 2014-04-26T05:54:32.623 に答える
-1

UIActivityIndi​​catorViewはビューの一種です。フレームをボタン内に設定し、-addSubviewを使用してUIBarButtonのビュー階層に追加します。

スペースに合わせて(おそらくスケーリングによって)中央に配置する必要があるため、単純化しすぎています...

于 2009-11-12T05:38:20.083 に答える
-2

擬似コード、Xcodeでこれをチェックするつもりはありませんが、次のようなものが機能するはずです:

UIActivityIndicatorView *act = [[UIActivityIndicatorView alloc] init];
act.frame = CGMakeRect(3,3,25,25);
[myBarButton addSubview:act];
[act release];
于 2009-11-12T05:41:49.563 に答える