Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iTableView在ios 11中闪烁,在ios 10.2中正常工作_Ios_Swift_Ios11_Ios10.2_Ios11.3 - Fatal编程技术网

iTableView在ios 11中闪烁,在ios 10.2中正常工作

iTableView在ios 11中闪烁,在ios 10.2中正常工作,ios,swift,ios11,ios10.2,ios11.3,Ios,Swift,Ios11,Ios10.2,Ios11.3,当我点击特定的单元格时,我试图更新我的单元格大小。我的表在iOS 10.2中得到了完美的更新,但当我在iOS 11上运行代码时,我的表会闪烁。我在iOS 11中也得到了警告 -[ui应用程序状态]必须从主线程使用。 所以,我在调度队列中重新加载了我的表,但什么也没发生。我有多层次的XIB,就像我有一个单元格,其中有一个表,该表正在注册另一个单元格,该单元格在单击时展开。 下面是我的代码示例,当高度扩展我的主表闪烁时 func expandMessageTable(height : CGFloat

当我点击特定的单元格时,我试图更新我的单元格大小。我的表在iOS 10.2中得到了完美的更新,但当我在iOS 11上运行代码时,我的表会闪烁。我在iOS 11中也得到了警告
-[ui应用程序状态]必须从主线程使用。
所以,我在调度队列中重新加载了我的表,但什么也没发生。我有多层次的XIB,就像我有一个单元格,其中有一个表,该表正在注册另一个单元格,该单元格在单击时展开。 下面是我的代码示例,当高度扩展我的主表闪烁时

func expandMessageTable(height : CGFloat,expendedRow:Int){

self.expandMessageHeight = height

self.msgExpRow = expendedRow

let row = cellMenuArr.index(of:"MessageXIB")

let path = IndexPath(row: row!, section: 0)
print(path)

homeTblView.reloadRows(at: [path], with: .fade)


}

下面是我用来重新加载单元格的优秀工作代码-

DispatchQueue.main.async(execute: {
                            UIView.performWithoutAnimation {
                                self.tableView?.beginUpdates()
                                let contentOffset = self.tableView?.contentOffset
                                self.tableView?.reloadRows(at: [IndexPath(row: j, section: 0)], with: .automatic)
                                self.tableView?.setContentOffset(contentOffset!, animated: false)
                                self.tableView?.endUpdates()
                            }
                        })

希望有帮助。

当它实际闪烁时。当你重新加载它的时候?不要重新加载完整的表,只需重新加载更新的单元格。当我在索引路径处重新加载特定行时。您能告诉我们导致问题的代码吗?您需要提供一个代码示例,以再现闪烁。对于另一个问题,您正在从后台线程调用UIApplication.shared.applicationState。使用DispatchQueue.main.async{(…)}在主线程上调度它。我已经更新了我的查询,请看一看。我正在使用cell XIB。我在那张表里只有一个部分。