Когда я перенес мой быстрый код от 2,3 до 3,0 в Xcode8, я обнаружил, что UITableView с некоторой разной высотой ячеек сам изменит contentOffset после reloadData в iOS8. Но все было в порядке.UITableView изменит contentOffset в iOS8 с помощью swift3, это ошибка Swift3?
Я напечатал contentOffset в cellForRowAt: и scrollViewDidScroll: функция, как показано ниже:
func scrollViewDidScroll(_ scrollView: UIScrollView) {
print("In scroll: \(scrollView.contentOffset)")
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
print("In cellForRow offset: \(tableView.contentOffset)")
//...
}
тот же код запуска с другой версии быстры, имеют различный результат.
В swift3, после reloadData, она будет меняться contentOffset сам по себе в iOS8.
В swift2.3 без этой проблемы.
Весь мой тестовый проект загрузил мой репозиторий GitHub, вы можете проверить или git clone от https://github.com/heqichang/swift3-tableview-issue и запустить мой код в телефоне с iOS8.
Является ли это ошибкой swift3?
UPDATE
Я просто проверить свой код в iPhone5s с iOS8.4 и iPhone6p с iOS10.0.2.
Вы только что напишите в «ячейке» cellForRowAt indexPath => cell.selectionStyle = .none – iParesh
Вы можете отключить функцию отказов, возможно, это помогает. – Anuraj
@iParesh Извините, моя ошибка. Я не уточнил свою проблему. Я имею в виду, что tableview будет изменять смещение контента после reloadData вызова. –