Ios 隐藏视图不工作-swift
附加子视图层次结构,我只想在登录后隐藏一个并显示另一个。我无法使用导航控制器,因为我需要在webview中使用滑动 所以我试着简单地切换视图,但并不一致 感谢您的帮助 这就是我正在尝试的Ios 隐藏视图不工作-swift,ios,swift,Ios,Swift,附加子视图层次结构,我只想在登录后隐藏一个并显示另一个。我无法使用导航控制器,因为我需要在webview中使用滑动 所以我试着简单地切换视图,但并不一致 感谢您的帮助 这就是我正在尝试的 func openBrowserView() { loader.startAnimating() self.viewLoginForm.hidden = true self.viewDashboard.hidden = false print (" views hid")
func openBrowserView() {
loader.startAnimating()
self.viewLoginForm.hidden = true
self.viewDashboard.hidden = false
print (" views hid")
let requestURL = NSURL(string:browserURL)
let request = NSMutableURLRequest(URL: requestURL!)
request.HTTPMethod = httpMethod
webView.delegate = self;
webView.loadRequest(request)
}
1) 同步问题通常是因为您没有在主线程上更新UI。确保在主线程上进行了所有UI更改。易于修复,只需使用下面的代码
dispatch_async(dispatch_get_main_queue()) {
loader.startAnimating()
self.viewLoginForm.hidden = true
self.viewDashboard.hidden = false
}
2) 另一个问题可能是您正在隐藏和显示的子视图仍然位于其他视图下,因此您无法看到它。因此,只需将要显示的子视图带到前面即可
self.bringSubviewToFront(yourView)
1) 同步问题通常是因为您没有在主线程上更新UI。确保在主线程上进行了所有UI更改。易于修复,只需使用下面的代码
dispatch_async(dispatch_get_main_queue()) {
loader.startAnimating()
self.viewLoginForm.hidden = true
self.viewDashboard.hidden = false
}
2) 另一个问题可能是您正在隐藏和显示的子视图仍然位于其他视图下,因此您无法看到它。因此,只需将要显示的子视图带到前面即可
self.bringSubviewToFront(yourView)
对Ankit Goel的回答有一点改进
dispatch_async(dispatch_get_main_queue()) {
}
正在向我显示此错误:“尝试使用主线程时不明确地使用DispatchQueue”
所以我用了
DispatchQueue.main.async(execute: { () -> Void in
})
参考资料:对Ankit Goel的回答有一点改进
dispatch_async(dispatch_get_main_queue()) {
}
正在向我显示此错误:“尝试使用主线程时不明确地使用DispatchQueue”
所以我用了
DispatchQueue.main.async(execute: { () -> Void in
})
参考资料:您需要发布比“不一致”更详细的信息,以便有人能够提供帮助。您需要发布比“不一致”更详细的信息,以便有人能够提供帮助。此问题发生在我的案例中
viewDidLoad
,我通过使用DispatchQueue.main.async
解决了这个问题。这真的很奇怪,因为viewDidLoad本身在主线程上运行。有什么原因吗?这个问题发生在我的案例中viewDidLoad
,我使用DispatchQueue.main.async
解决了这个问题。这真的很奇怪,因为viewDidLoad本身在主线程上运行。有什么理由吗?