我在UIActivityIndicator
内使用UIBarButtonItem
来显示活动,但指标显示缓慢。我正在使用
UIActivityIndicatorView *innerActivityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0, 0, 20, 20)];
[innerActivityIndicator startAnimating];
self.activityIndicator = [[UIBarButtonItem alloc] initWithCustomView:innerActivityIndicator];
然后使用
切换可见性if(loading){
[self.navigationItem setRightBarButtonItem:activityIndicator animated:true];
} else {
[self.navigationItem setRightBarButtonItem:nil animated:true];
}
通常它需要4或5秒才能实际出现,我不知道为什么。我最初是开始/停止动画,但这也没有用。我现在在两个应用程序中遇到了这个问题/影响所以我一定做错了。
答案 0 :(得分:1)
不要经常添加和删除指标,而是考虑在不希望它出现时隐藏它。您可以将hidden
设置为YES
和NO
来完成此操作,或者最好将hidesWhenStopped
设置为YES
,然后执行
if(loading){
[self.activityIndicator startAnimating];
} else {
[self.activityIndicator stopAnimating];
}
一个提示是启动activityIndicator旋转 之前 执行任何需要一段时间的操作,并在操作完成后停止它。如果在启动activityIndicator之前启动密集操作,则可能会解释延迟时间。
答案 1 :(得分:0)
正如马克·亚当斯所指出的那样,问题是我是在使用GCD从后台线程中添加和删除指标。