Я написал этот код и скрыл просмотр
self.tableView.tableHeaderView = nil
Но если я попытаюсь показать это снова, этот код не сможет этого сделать.
tableView.tableHeaderView = tableHeaderView
Помоги мне, пожалуйста
Мой код
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if (self.lastContentOffset < scrollView.contentOffset.y) {
// moved to top
self.tableView.tableHeaderView = nil
}
else if (self.lastContentOffset > scrollView.contentOffset.y) {
if tableView.tableHeaderView == nil {
// moved to bottom
tableView.tableHeaderView = pre_test_view
}
}
else {
// didn't move
}
}
Если это не ноль, я бы рекомендовал установить размер tableHeaderView с помощью ручного макета. Они могут быть очень хитрыми.
Мой tableHeaderView равен нулю
Я имею в виду pre_test_view (в первом примере он назван tableHeaderView)
о, извините, да, pre_test_view тоже ноль
Тогда это твоя проблема. Вы хотите, чтобы появился pre_test_view, но на самом деле он равен нулю.





Таким образом, когда вы изначально создаете экземпляр UITableView и устанавливаете tableViewHeader на nil, вы на самом деле не скрываете его ... а только запускаете tableView без него. Что вы можете сделать ... вызвать tableView.reloadData() после tableView.tableHeaderView = tableHeaderView, и это, вероятно, должно сработать.
Я не могу этого сделать, потому что пытаюсь показать свое мнение, когда прокручиваю страницу вниз
Я не собираюсь лгать ... это довольно хакерский код ... что вы можете сделать ... вызовите tableView.reloadData (), а затем установите прокрутку tableView в точную точку смещения, в которой вы находитесь.
но он перезагружает все tableview, и я думаю, это будет плохо выглядеть
Ваш tableHeaderView не равен нулю, верно?