Ios6 UINavigationBar标题视图中的iOS 6和UIActivityIndicator存在问题
从iOS 6开始就有问题了。我真的不知道是什么改变了会导致这种行为。这在过去的5年里一直工作得很好。现在,活动指标没有及时或根本没有出现。任何帮助都将不胜感激Ios6 UINavigationBar标题视图中的iOS 6和UIActivityIndicator存在问题,ios6,uiactivityindicatorview,uinavigationitem,Ios6,Uiactivityindicatorview,Uinavigationitem,从iOS 6开始就有问题了。我真的不知道是什么改变了会导致这种行为。这在过去的5年里一直工作得很好。现在,活动指标没有及时或根本没有出现。任何帮助都将不胜感激 -(void)myMethod { UIView *currentTitleView = [[self navigationItem] titleView]; // Create an activity indicator and start it spinning in the nav bar UIActiv
-(void)myMethod
{
UIView *currentTitleView = [[self navigationItem] titleView];
// Create an activity indicator and start it spinning in the nav bar
UIActivityIndicatorView *aiview = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
[[self navigationItem] setTitleView:aiview];
[aiview startAnimating];
// Start of Block code
void (^block)(arg1, arg2) =
^(arg1, arg2)
{
block code;
[aiview stopAnimating];
[[self navigationItem] setTitleView:currentTitleView];
};
// End of Block code
}
听起来像是从后台线程调用了
myMethod
。一般来说,与UIKit元素(包括UIActivityIndicatorView
)的所有交互都应始终在主线程上完成。尝试使用GCD将UI代码移动到主队列(也称为主线程)
问题可能不在于ActivityIndicator方法本身,而在于调用它的任何东西。您是否尝试记录您的AI方法,以确保它被可靠地调用?
-(void)myMethod {
dispatch_async(dispatch_get_main_queue(), ^{
UIView *currentTitleView = [[self navigationItem] titleView];
// Create an activity indicator and start it spinning in the nav bar
UIActivityIndicatorView *aiview = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
[[self navigationItem] setTitleView:aiview];
[aiview startAnimating];
});
// Start of Block code
void (^block)(arg1, arg2) =
^(arg1, arg2)
{
block code;
dispatch_async(dispatch_get_main_queue(), ^{
[aiview stopAnimating];
[[self navigationItem] setTitleView:currentTitleView];
});
};
// End of Block code
}