我在使用 ios SDK 8 的 swift 时遇到一个问题
我使用回调来获取数据背景,当获取数据时,我想设置一个文本字段值并更新屏幕。
这是我的代码:
@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;
}
}
}
运行这段代码,数据被正确获取并且 txtTest 没有更新,但是当我点击 txtTest 时,该值将被显示。那么有没有办法强制更新UI呢?或向 UI 线程发送消息?
最佳答案
当想在 Swift 中更新 UI 时,每个人都会遇到同样的问题:永远不要在任何辅助线程中更新 UI。这意味着任何有闭包的东西。由于 Swift 大量使用闭包,所以这个问题出现得更多,但这并不是什么新鲜事。
参见 Swift Update Label (with HTML content) takes 1min正确的做事方式。
关于ios - 在 swift ios 中更新文本字段 ui,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25603568/