显示屏swift 2.2的长时间延迟

时间:2016-09-05 23:27:56

标签: ios uitableview hidden

我的应用程序从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在返回隐藏状态后立即消失?

2 个答案:

答案 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

以及?