UIButtonBarItem 内的 UIActivityIndicatorView 无法正常工作
-
19-09-2019 - |
题
我正在尝试使用以下代码让 UIActivityIndicatorView 在 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];
}
它的工作原理是显示活动指示器,但它不在按钮栏中。
有人对我在这里做错了什么有任何想法吗?
解决方案
当我希望活动指示器出现在工具栏的左侧时,我就是这样做的:
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
物品的属性?
不隶属于 StackOverflow