我有 onClickButton 函数(伪代码):
show activityIndicatorView (or ProgressBar or change label text no matter)
execute my algorithm
hide activityIndicatorView
actvitiyIndicatorView 永远不会显示。如果我在函数末尾删除隐藏,那么它将在算法之后出现。尽管我在执行算法之前展示了它。
为什么以及如何修复它?
最佳答案
很可能你执行我的算法是一个很长的 cpu 耗时过程,它在主线程上被调用......
您还在算法之前显示事件指示器...UI 通常需要一些时间来更新布局(添加您的事件指示器..)..但在此之前..您的 a;gorith 发生在主线程..它阻止了用户界面更新..所以当任务完成时..你告诉隐藏事件..你的事件隐藏....这就是为什么你看不到它被添加然后从中删除的原因查看..
为了解决这个问题..在一个单独的线程中执行算法任务(没有主线程) ..这样 UI 将被更新并且任务将在后台完成..
另一种方法是在延迟一段时间后执行长任务..以便 UI 自行更新
关于iphone - 我的事件指标显示在我的算法之后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9615753/