UIActivityIndicatorView是iOS开发中使用频率极高的组件之一,大多都配合列表加载时使用。如下图:
可是在iOS6上,上面的用法第一次正常,第二次再次加载数据的时候竟然不显示了:
oh,my lady gaga,这是为什么呢?解决问题第一势,google之,找到一篇儿文章:
Problems with iOS 6 and UIActivityIndicator in a UINavigationView
是问iOS6上UIActivityIndicatorView显示不正常的问题,看来我不是第一个遇到这个问题的,而且问题还没有回答,再看发帖时间,一天以前!难怪。看来这个问题从网络的途径解决怕是有难度了,还是自已动手丰衣足食吧。随手加了一个:
[activeView setHidesWhenStopped:NO];
e,竟然能显示出来了,但是不转,静止的。难道现在UIActivityIndicator的形为变成了一旦不可见就停止转动而且自动隐藏?于是用下面的办法把UIActivityIndicator找出来,然后再给一个startAnimating的指令,你猜怎么着?好使了!
for (UIView *_curView in cell.subviews) {
if ([_curView isKindOfClass:[UIActivityIndicatorView class]]) {
[(UIActivityIndicatorView *)_curView startAnimating];
break;
}
}
if ([_curView isKindOfClass:[UIActivityIndicatorView class]]) {
[(UIActivityIndicatorView *)_curView startAnimating];
break;
}
}
当然如果你觉得的上面的方法太复杂也可以用viewWithTag,前提是你创建UIActivityIndicatorView的时候,给它设置了tag:
UIActivityIndicatorView *_aiv = (UIActivityIndicatorView *)[cell viewWithTag:555];
[_aiv startAnimating];
[_aiv startAnimating];