作为请求处理程序的结果更新 UI
Updating UI as the result of a request handler
我有这样的设置;
startup() {
...
self.gcdWebServer.addHandlerForMethod("GET", path: "/hide",
requestClass: GCDWebServerRequest.self, asyncProcessBlock: {request in self.hide()})
...
}
func hide() -> GCDWebServerDataResponse {
self.view.hidden = true;
print("hide")
return GCDWebServerDataResponse(statusCode: 200)
}
当向 /hide
发出请求时,控制台会立即显示 print()
调用,但视图不会因任意延迟而消失,大约在 10-30 秒之间。
如何让请求立即导致视图被隐藏?
在 dispatch async 中包装你 UI 相关的登录并 运行 它在主线程上:
dispatch_async(dispatch_get_main_queue(),{
self.view.hidden = true;
})
试试这个,在主线程上调用隐藏。
dispatch_async(dispatch_get_main_queue(),{
self.view.hidden = true;
})
重写您的 hide
方法如下。
您只需要在主线程上更新 UI。
func hide() -> GCDWebServerDataResponse {
dispatch_async(dispatch_get_main_queue(),{
self.view.hidden = true
})
print("hide")
return GCDWebServerDataResponse(statusCode: 200)
}
UI 仅在主线程中更新代码。
dispatch_async(dispatch_get_main_queue(),{
self.view.hidden = true;
})
我有这样的设置;
startup() {
...
self.gcdWebServer.addHandlerForMethod("GET", path: "/hide",
requestClass: GCDWebServerRequest.self, asyncProcessBlock: {request in self.hide()})
...
}
func hide() -> GCDWebServerDataResponse {
self.view.hidden = true;
print("hide")
return GCDWebServerDataResponse(statusCode: 200)
}
当向 /hide
发出请求时,控制台会立即显示 print()
调用,但视图不会因任意延迟而消失,大约在 10-30 秒之间。
如何让请求立即导致视图被隐藏?
在 dispatch async 中包装你 UI 相关的登录并 运行 它在主线程上:
dispatch_async(dispatch_get_main_queue(),{
self.view.hidden = true;
})
试试这个,在主线程上调用隐藏。
dispatch_async(dispatch_get_main_queue(),{
self.view.hidden = true;
})
重写您的 hide
方法如下。
您只需要在主线程上更新 UI。
func hide() -> GCDWebServerDataResponse {
dispatch_async(dispatch_get_main_queue(),{
self.view.hidden = true
})
print("hide")
return GCDWebServerDataResponse(statusCode: 200)
}
UI 仅在主线程中更新代码。
dispatch_async(dispatch_get_main_queue(),{
self.view.hidden = true;
})