Я делаю небольшое приложение, используя UITableView
, есть 2 раздела в моем TableView
. В последней строке моего первого раздела есть UISegmentControl
, один сегмент означает раздел 2 удаления, а другой ничего не делает. В методе viewDidLoad
сегмент находится в выборе «Ничего не делать», и когда я нажимаю «удалить» сегмент. Раздел 2 удаляется, мой вопрос в том, могу ли я держать таблицу неподвижной, когда и после удаления раздела 2, я много искал об этом вопросе, и я потратил много времени на это. Но до сих пор не удается найти решение для реализации этого эффекта. Мой код, как показано ниже:Удалить разделы без прокрутки
CGPoint offset1 = [self.tableView contentOffset];
NSIndexSet *indexSet = [NSIndexSet indexSetWithIndex:1];
_deleteSec = YES;
[self.tableView deleteSections:indexSet withRowAnimation:UITableViewRowAnimationAutomatic];
[self.tableView setContentOffset:offset1 animated:NO];
После запуска приложения, моя первая акция для прокрутки вверх TableView
вручную. Затем я нажимаю на сегмент удаления, код выше был выполнен, раздел 2 был удален, но TableView
был прокручен до первоначального местоположения, которое начинается, когда приложение только начинается, и сначала отобразится TableView
. Я искал в Интернете, я нашел код, который, как я думаю, будет работать для решения моей проблемы. Поэтому я добавил их, как показано ниже:
[self.tableView deleteSections:indexSet withRowAnimation:UITableViewRowAnimationAutomatic];
[self.tableView reloadData];
[self.tableView layoutIfNeeded];
[self.tableView setContentOffset:offset1 animated:NO];
На этот раз, когда я первый раз, нажмите кнопку Удалить сегмент, он может сохранить еще и удалить раздел 2, но когда я нажимаю на другой сегмент или где-нибудь еще, действие сегмента метод не был выполнен, табличное представление просто прокручивается до самого исходного местоположения, это кажется мне связанным с проводкой. Может ли кто-нибудь объяснить мне это явление? Как решить эту проблему? Большое спасибо, если вы можете помочь мне уточнить мои сомнения.
Это не работает после того, как я удаляю указанный вами код, у него такой же симптом, как я сказал в вопросе. – Coinnigh
Вы также удалили (или закомментировали) 'setContentOffset: анимированные:'? – Fennelouski