我知道如何动画,显示活动指标。 但我想知道如何立即显示活动指标。
现在当我点击按钮时,它将在5秒或更多秒后加载另一个视图。单击该按钮正在加载子视图。当调用Button Click方法时,它将在此之后调用7个以上的方法,然后它将加载子视图。但只有在完成所有7种方法的执行后才会显示ActivityIndicator。
我想要做的是,我想在Button Click方法之后立即显示ActivityIndicator。
任何想法?
答案 0 :(得分:2)
-(IBAction)button_click{
..
..
..
[self performSelector:@selector(afterDelay) withObject:nil afterDelay:0.3];
}
-(void)afterDelay{
YOUR_Code
}
答案 1 :(得分:0)
如果您已将代码设置为显示或取消隐藏activityIndicator
但未显示,则必须使用performSelector:withObject:afterDelay:
方法执行任何操作后取消隐藏或显示activityIndicator
延迟0.001将在点击按钮
快乐编码:)
答案 2 :(得分:0)
问题是你在主线程上执行大量计算(或从互联网加载?),但是没有立即调用所有视图变异操作 - 在runloop开始时框架创建一个新的隐式Core Animation事务,然后它收集有关视图突变的所有信息,然后在runloop 的末尾提交事务。通过阻止主线程,您不允许事务提交并启动指标的动画。
您可以在文档中了解此架构:Core Animation Programming Guide: Transactions。
有三种选择:
QuartzCore.framework
关联,然后#import <QuartzCore/QuartzCore.h>
,并在[CATransaction commit]
电话后致电startAnimating
。这样您就可以提交隐式事务。CATransaction
。答案 3 :(得分:-1)
如果您正在谈论系统活动指标,请使用:
[[UIApplication sharedApplication] performSelector:@selector(setNetworkActivityIndicatorVisible:) withObject:[NSNumber numberWithBool:YES ] afterDelay:0.0];