NavigationItem中的UIActivityIndi​​cator显示缓慢

时间:2012-01-02 15:55:38

标签: ios uibarbuttonitem uiactivityindicatorview

我在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秒才能实际出现,我不知道为什么。我最初是开始/停止动画,但这也没有用。我现在在两个应用程序中遇到了这个问题/影响所以我一定做错了。

2 个答案:

答案 0 :(得分:1)

不要经常添加和删除指标,而是考虑在不希望它出现时隐藏它。您可以将hidden设置为YESNO来完成此操作,或者最好将hidesWhenStopped设置为YES,然后执行

if(loading){
    [self.activityIndicator startAnimating];
} else {
    [self.activityIndicator stopAnimating];
}

一个提示是启动activityIndi​​cator旋转 之前 执行任何需要一段时间的操作,并在操作完成后停止它。如果在启动activityIndi​​cator之前启动密集操作,则可能会解释延迟时间。

答案 1 :(得分:0)

正如马克·亚当斯所指出的那样,问题是我是在使用GCD从后台线程中添加和删除指标。