Я развиваю ленту новостей, и я использую uitableview для отображения данных. Я загрузке каждой ячейки данных синхронически в другой нити и протокольной использование метода для отображения загруженных данных:Случайная прокрутка при перезагрузке uitableviewcell, iOs/Swift
func nodeLoaded(node: NSMutableDictionary) {
for var i = 0; i < nodesArray.count; ++i {
if ((nodesArray[i]["id"] as! Int) == (node["id"] as! Int)) {
nodesArray[i] = node
CATransaction.setDisableActions(true)
self.tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.None)
CATransaction.setDisableActions(false)
}
}
}
Проблема заключается в том, что, когда я прокрутки вниз (при обновлении Tableview), TableView толкнуть меня на вершине. Я искал ответ на эту проблему, но мне ничего не помогает. Я уже пытался отключить анимацию:
CATransaction.setDisableActions(true)
self.tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.None)
CATransaction.setDisableActions(false)
2)
UIView.setAnimationsEnabled(false)
self.tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.None)
UIView.setAnimationsEnabled(true)
Но история всегда одинакова. У меня есть желаемый эффект, когда я просто не использую self.tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.None)
, но в этом случае данные перезагружаются, только если я прокручу вниз и вернусь обратно в ячейку.
Возможно, проблема в том, что я использую автоматическую компоновку, а tableview пересчитывает ее высоту каждый раз? Но я не знаю, как это исправить.
Я хочу понять, почему вы не хотите анимацию. Слайд в анимации, когда ячейки сообщают пользователю, что что-то прибыло или ушло. Если вы действительно не хотите анимации и хотите остановить случайную прокрутку, попробуйте это: tableView.reloadSections (NSIndexSet (индекс: 0), withRowAnimation: UITableViewRowAnimation.None) ', и если вы хотите, чтобы анимация изменила значение None на что-то другое из перечисление. –
Ой, я думал, что случайная прокрутка запускает bcs анимации. Я попробовал reloadSections, но id не помог = ( – Maxim
Что вы сделали, чтобы исправить? – shinoys222