Ios Swift 3-隐藏元素
我试图用swift 3隐藏一个元素。如果元素在Ios Swift 3-隐藏元素,ios,iphone,swift,swift3,Ios,Iphone,Swift,Swift3,我试图用swift 3隐藏一个元素。如果元素在session.dataTask中,则该元素不会隐藏,但如果我将其移到session.dataTask之外,则该元素会很好地隐藏。是否可以在会话.dataTask中隐藏元素 @IBOutlet weak var login_box: UIStackView! let task = session.dataTask(with: request as URLRequest) { ( data, res
session.dataTask
中,则该元素不会隐藏,但如果我将其移到session.dataTask
之外,则该元素会很好地隐藏。是否可以在会话.dataTask
中隐藏元素
@IBOutlet weak var login_box: UIStackView!
let task = session.dataTask(with: request as URLRequest) {
(
data, response, error) in
guard let data = data, let _:URLResponse = response, error == nil else {
print("error")
return
}
//Following won't hide element
self.login_box.isHidden = true
}
//If placed here element hides fine
login_box.isHidden = true
task.resume()
首先,您需要使用
resume
启动URLSessionDataTask
实例,并始终在main
线程上执行UI
更改
let task = session.dataTask(with: request as URLRequest) { (data, response, error) in
guard let data = data, let _:URLResponse = response, error == nil else {
print("error")
return
}
DispatchQueue.main.async {
self.login_box.isHidden = true
}
}
task.resume()
从服务器获得响应需要一些时间(取决于您的互联网速度),但是如果error不是nil,那么它将不会隐藏您的
登录框,因为它是从块返回的。首先,您需要使用resume
启动URLSessionDataTask
实例,并始终在main
线程上执行UI
更改
let task = session.dataTask(with: request as URLRequest) { (data, response, error) in
guard let data = data, let _:URLResponse = response, error == nil else {
print("error")
return
}
DispatchQueue.main.async {
self.login_box.isHidden = true
}
}
task.resume()
从服务器获取响应需要一些时间(取决于您的互联网速度),但如果错误不是零,则不会隐藏您的登录框,因为它是从块返回的。很抱歉,我已恢复,只是没有放在示例中。@user2423476检查编辑后的答案,并将隐藏代码像我的答案一样放在主线程中。对不起,我有简历,只是没有放在示例中。@user2423476检查编辑后的答案,并像我的答案一样将隐藏代码放在主线程中。