Bru*_* Bu 3 user-interface background textfield ios swift
当我使用swift的ios SDK 8时,我遇到了一个问题
我使用回调来获取数据背景,当获取数据时,我想设置文本字段值并更新屏幕.
这是我的代码:
@IBOutlet var txtTest: UITextField!
@IBAction func login() {
let username = "aaa";
let password = "bbb";
var res = ServiceClient.login(username, password: password){
(res:String, error:String?) -> Void in if(error == nil){
self.txtTest.text = res;
}
}
}
Run Code Online (Sandbox Code Playgroud)
运行此代码并正确获取数据并且txtTest未更新,但是当我点击txtTest时,将显示该值.那么有没有办法强制更新UI?或者向UI线程发送消息?
想要在Swift中进行UI更新时,每个人都有同样的问题:不要在任何辅助线程中更新UI.这意味着任何有封闭的东西.由于Swift使用了很多关闭,所以这个问题看起来要多得多,但并不是新的.
请参阅Swift更新标签(包含HTML内容),需要1分钟才能获得正确的处理方式.
UIKit不是线程安全的,只能从主线程进行更新。下载是在后台线程上完成的,您不能从那里更新UI。尝试:
快速3和快速4
DispatchQueue.main.async {
self.txtTest.text = "Your text"
}
Run Code Online (Sandbox Code Playgroud)
相关重复问题,但有特定答案
| 归档时间: |
|
| 查看次数: |
9299 次 |
| 最近记录: |