【发布时间】:2018-01-20 18:11:05
【问题描述】:
在 ViewDidLoad() 中的第一个 ViewController 中,有 2 个操作:
- 将 buttonGo.isEnabled = false(buttonGo 是条形按钮项)
- 发出请求,通过 Web 服务检查设备是否已获得授权。
检查设备是否被授权是在单例类委托中完成的。它调用:DownloadAuthorize,它有一个委托方法:updateView()。
如果设备是授权的,我会回调ViewController中的委托方法updateView(),这个方法使得buttonGo.isEnabled = true
一切正常,但 buttonGo 在几秒钟后启用。我以这种方式进行调查,在我看来,buttonGo 是由后台线程启用的。我尝试在委托方法中使用 view.setNeedsLayout()、view.setNeedsDisplay(),因为我希望加快重绘组件,但我得到了类似这样的错误: “在从主线程访问引擎后,此应用程序正在从后台线程修改自动布局引擎。这可能导致引擎损坏和奇怪的崩溃”
是否可以做一些事情来加快控件的刷新速度?
谢谢
【问题讨论】:
-
请参考this链接,检查约束何时更新。
标签: ios swift uiviewcontroller uibutton autolayout