【发布时间】:2016-09-05 23:27:56
【问题描述】:
我的应用程序从 MySql 服务器读取数据并将其显示在表格视图中。在对服务器的调用开始时,应用程序使用具有浅灰色背景颜色的视图(名为“pdView”)覆盖 tableView。该视图是 tableView 也是场景的一部分(在 IB 中设计),但处于隐藏状态,直到调用服务器之前使用
pdView.hidden = false
app获取数据并填充tableview后,使用
dispatch_async(dispatch_get_main_queue(), { () -> Void in
tableview.reloadData()
})
可以看到tableView中显示的数据,灰色显示下。 然后我尝试使用隐藏视图
pdView.hidden = true
但应用程序大约需要 44 秒才能使灰色消失。在此期间,我的应用程序运行正常,我可以上下滚动表格。
我尝试将代码隐藏在 dispatch_async() 中,但无济于事。
需要做些什么来解决这个问题,以便 pdView 在它回到隐藏状态后立即消失?
【问题讨论】:
-
如果在调用
reloadData()后立即隐藏它会怎样? -
我也试过了 - 没有帮助
-
我想知道为什么有人在没有解释的情况下否决了这个问题。
-
我试图在一个小的普通应用程序上复制这个问题。我发现,如果我尝试在 dispatch_sync() 中执行 'pdView.hidden = true',我确实会收到延迟,但调试窗口中还会出现一条错误消息:“此应用程序正在修改自动布局引擎一个后台线程,这可能导致引擎损坏和奇怪的崩溃。这将在未来的版本中导致异常。”。但在我的应用程序中,我没有收到此消息,这意味着我在 dispatch_sync() 函数中执行此操作。
标签: ios uitableview hidden