我的活动指标显示在我的算法之后

时间:2012-03-08 09:59:55

标签: iphone ios ios4 uiactivityindicatorview

我的函数onClickButton(伪代码):

show activityIndicatorView (or ProgressBar or change label text no matter)
execute my algorithm
hide activityIndicatorView

actvitiyIndi​​catorView永远不会显示。如果我在函数末尾删除了hide,那么它将在算法后出现。尽管我在执行算法之前显示它。

为什么以及如何解决它?

1 个答案:

答案 0 :(得分:2)

最有可能你执行我的算法是一个耗时很长的cpu耗时过程,在主线程上调用...

你也在算法之前显示活动指示器......用户界面通常需要一些时间来更新布局(添加你的活动指示器..)..但在它之前...你的一个; gorith发生在主线程..它阻止了UI更新..所以当任务完成时...你告诉隐藏活动......你的活动隐藏....这就是为什么你看不到它被添加然后从视图..

解决这个问题..算法任务在一个单独的线程中(没有主线程) ..这样UI将被更新,任务将在后台完成..

替代方法是在延迟一段时间后执行长任务。因此UI更新自身