UITableview Мерцание в ios 11 при правильной работе в iOS 10.2 - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь обновить размер ячейки, когда нажимаю на конкретную ячейку. Моя таблица прекрасно обновляется в iOS 10.2, но моя таблица мерцает, когда я запускаю свой код на iOS 11. Я также получаю предупреждение в iOS 11, что -[UIApplication application state] must be used from main thread. Итак, я перезагрузил свою таблицу в очередь отправки, но ничего не происходит. У меня есть многоуровневые 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)


}

1 Ответ

0 голосов
/ 11 сентября 2018

Ниже приведен прекрасный рабочий код, который я использую для перезагрузки ячеек -

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()
                            }
                        })

Надеюсь, это поможет.

...