我的应用程序从MySql服务器读取数据并将其显示在tableview中。在对服务器的调用开始时,应用程序使用具有浅灰色背景颜色的视图(名为“pdView”)覆盖tableView。该视图是场景的一部分,tableView也是(在IB中设计)的一部分,但处于隐藏状态,直到调用服务器之前,使用
pdView.hidden = false
应用获取数据并填写tableview后,使用
dispatch_async(dispatch_get_main_queue(), { () -> Void in
tableview.reloadData()
})
可以在灰色显示下看到tableView中显示的数据。 然后我尝试使用
隐藏视图 pdView.hidden = true
但灰色消失需要大约44秒的应用程序。在那段时间我的应用程序运行正常,我可以上下滚动表。
我尝试将代码隐藏在dispatch_async()中,但无济于事。
需要做些什么才能解决这个问题,以便pdView在返回隐藏状态后立即消失?
答案 0 :(得分:0)
听起来您正在尝试从单独的线程更新UI。您需要提供pdView.hidden = true
一些上下文。你可以尝试
dispatch_async(dispatch_get_main_queue(), { () -> Void in
tableview.reloadData()
self.pdView.hidden = true
})
请注意self
self.pdView.hidden..
希望有所帮助。
答案 1 :(得分:0)
ALL 您的UI代码需要来自主线程。这包括更改视图状态java.lang.IllegalStateException: No WebApplicationContext found: no ContextLoaderListener registered?
org.springframework.web.jsf.FacesContextUtils.getRequiredWebApplicationContext(FacesContextUtils.java:81)
org.springframework.web.jsf.el.SpringBeanFacesELResolver.getWebApplicationContext(SpringBeanFacesELResolver.java:90)
org.springframework.web.jsf.el.SpringBeanFacesELResolver.getBeanFactory(SpringBeanFacesELResolver.java:78)
org.springframework.beans.factory.access.el.SpringBeanELResolver.getValue(SpringBeanELResolver.java:49)
com.sun.faces.el.DemuxCompositeELResolver._getValue(Unknown Source)
com.sun.faces.el.DemuxCompositeELResolver.getValue(Unknown Source)
org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:94)
org.apache.el.parser.AstValue.getValue(AstValue.java:137)
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184)
com.sun.faces.facelets.el.TagValueExpression.getValue(Unknown Source)
javax.faces.component.ComponentStateHelper.eval(Unknown Source)
javax.faces.component.ComponentStateHelper.eval(Unknown Source)
javax.faces.component.UIOutput.getValue(Unknown Source)
javax.faces.component.UIInput.getValue(Unknown Source)
com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(Unknown Source)
com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(Unknown Source)
com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(Unknown Source)
javax.faces.component.UIComponentBase.encodeEnd(Unknown Source)
javax.faces.component.UIComponent.encodeAll(Unknown Source)
javax.faces.render.Renderer.encodeChildren(Unknown Source)
javax.faces.component.UIComponentBase.encodeChildren(Unknown Source)
javax.faces.component.UIComponent.encodeAll(Unknown Source)
javax.faces.component.UIComponent.encodeAll(Unknown Source)
javax.faces.component.UIComponent.encodeAll(Unknown Source)
com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(Unknown Source)
com.sun.faces.application.view.MultiViewHandler.renderView(Unknown Source)
com.sun.faces.lifecycle.RenderResponsePhase.execute(Unknown Source)
com.sun.faces.lifecycle.Phase.doPhase(Unknown Source)
com.sun.faces.lifecycle.LifecycleImpl.render(Unknown Source)
javax.faces.webapp.FacesServlet.service(Unknown Source)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
标记等内容。
您是否已将该代码包含在
的调用中hidden
以及?