我已经尝试了很长时间,但没有得到任何满意的结果。
假设我有一个方法可以在其中执行 HTTP 请求(特别是推特更新),并说我想在 HTTP 请求正在进行时显示一个 UIActivityIndicatorView
(我知道什么时候之所以完成,是因为在请求完成时会调用委托(delegate)方法,无论是正面结果还是负面结果。
我看到很多答案都说线程对于这个类的实现是必要的。起初我尝试在不同的线程中调用 startAnimating
方法并直接调用 stopAnimating
方法(不启动新线程)。在那之后我看到了如何 this guy这样做并且我认为这更安全,因为我使用两种不同的方法(推特更新的委托(delegate)方法)启动和停止指标。
但是,这两种方法都没有给我想要的结果(事件指示器根本不显示)。有什么我想念的吗?
在此先感谢您,如果我的问题太长,我深表歉意。
非常感谢您的帮助。
最佳答案
使用 UIKit 子类时绝对禁止使用线程。您可能已经看到有关 UIActivityIndicatorView 在内部使用线程的报告,但这绝不意味着您可以从多个线程访问该对象。所有 UIView 子类(包括 UIActivityIndicatorView)只能从主线程访问。这包括调用 -startAnimating
和 -stopAnimating
。
如果您重写您的代码,使您只能在主线程上访问事件 View ,但它仍然无法正常工作,那么我猜测该 View 要么未添加到可见 View ,要么被覆盖由另一个 View 向上,或者有一个框架将其自身置于其父 View 的可见区域之外。
关于iphone - 尽管有线程,但 UIActivityIndicatorView 未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5074127/