iphone - 尽管有线程,但 UIActivityIndi​​catorView 未显示

标签 iphone objective-c ios uiactivityindicatorview

我已经尝试了很长时间,但没有得到任何满意的结果。

假设我有一个方法可以在其中执行 HTTP 请求(特别是推特更新),并说我想在 HTTP 请求正在进行时显示一个 UIActivityIndi​​catorView(我知道什么时候之所以完成,是因为在请求完成时会调用委托(delegate)方法,无论是正面结果还是负面结果。

我看到很多答案都说线程对于这个类的实现是必要的。起初我尝试在不同的线程中调用 startAnimating 方法并直接调用 stopAnimating 方法(不启动新线程)。在那之后我看到了如何 this guy这样做并且我认为这更安全,因为我使用两种不同的方法(推特更新的委托(delegate)方法)启动和停止指标。

但是,这两种方法都没有给我想要的结果(事件指示器根本不显示)。有什么我想念的吗?

在此先感谢您,如果我的问题太长,我深表歉意。
非常感谢您的帮助。

最佳答案

使用 UIKit 子类时绝对禁止使用线程。您可能已经看到有关 UIActivityIndi​​catorView 在内部使用线程的报告,但这绝不意味着您可以从多个线程访问该对象。所有 UIView 子类(包括 UIActivityIndi​​catorView)只能从主线程访问。这包括调用 -startAnimating-stopAnimating

如果您重写您的代码,使您只能在主线程上访问事件 View ,但它仍然无法正常工作,那么我猜测该 View 要么未添加到可见 View ,要么被覆盖由另一个 View 向上,或者有一个框架将其自身置于其父 View 的可见区域之外。

关于iphone - 尽管有线程,但 UIActivityIndi​​catorView 未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5074127/

相关文章:

ios - 这份 SWIFT 声明是什么意思?

iphone - 如何使用来自 iPod 库的声音更改 iPhone 的通知声音

iphone - 设置状态栏方向在 iPad 2 的 iOS 6 中不起作用

iphone - iPhone 中的 Admob 错误

iphone - 调用对象中的方法会给出 SIGBART

ios - 按位右移 >> 在 Objective-C 中

iphone - 使用 NSUserDefaults 存储和调用用户坐标

objective-c - ReactiveCocoa 的 ClangFormat 样式

objective-c - 搜索大量文本的 iOS 应用

ios - 是否可以向 iOS 应用程序用户发送更新通知