2

我正在尝试使用以下代码让 UIActivityIndi​​catorView 在 UIButtonBarItem 内工作:

- (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];
}

它可以显示活动指示器,但它不在按钮栏内。

有人对我在这里做错了什么有任何想法吗?

4

2 回答 2

3

当我希望它出现在工具栏的左侧时,我就是这样做的:

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];
于 2010-06-09T16:02:57.517 回答
0

但它不在按钮栏内

它在哪里?

也许您设置的框架不正确?你有没有尝试过CGRectZero或随机的(例如CGRectMake(40,60,20,20))?对指标的位置有影响吗?

您是否尝试过设置width项目的属性?

于 2010-01-10T18:18:13.653 回答