質問

次のコードを使用して、UIButtonBarItem 内で動作する UIActivityIndi​​catorView を取得しようとしています。

- (void)showActivityIndicator
{
    UIActivityIndicatorView *activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0, 0, 20, 20)];
    [activityIndicator startAnimating];

    UIBarButtonItem *activityBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:activityIndicator];
    [activityIndicator release];

    self.navigationItem.rightBarButtonItem = activityBarButtonItem;
    [activityBarButtonItem release];
}

アクティビティ インジケーターが表示されるまでは機能しますが、ボタン バー内には表示されません。

ここで私が間違っていることについて何かアイデアがある人はいますか?

役に立ちましたか?

解決

これは、ツールバーの左側に表示したいときにアクティビティ インジケーターを表示するために行ったことです。

activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0.0, 0.0, 25.0, 25.0)];
activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyleGray;
activityIndicator.hidesWhenStopped = YES;

UIBarButtonItem *btnActivity = [[UIBarButtonItem alloc] initWithCustomView:activityIndicator];
NSMutableArray *tItems = [self.toolbar.items mutableCopy];
[tItems insertObject:btnActivity atIndex:0];
self.toolbar.items = tItems;
[tItems release];

その後、コード内でアクティビティ インジケーターを表示したい場合は、通常の方法でそれを使用するだけです。

[activityIndicator startAnimating];

そして、もう見たくないときは、

[activityIndicator stopAnimating];

他のヒント

しかし、それはボタンバーの中にありません

そして、それはどこにあるのか?

もしかして設定しているフレームが間違っているのでしょうか?やってみました CGRectZero またはランダムなもの(例: CGRectMake(40,60,20,20))?インジケーターの位置に影響はありますか?

設定してみましたか width アイテムの性質?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top