Я перезагружаю данные UITableview, потому что число строк, секций и высот строк резко меняется. Чтобы смягчить переход, я выбрал переход ниже при нажатии кнопки. Если я поместил код reloadData и/или код смещения содержимого внутри блока анимации, результат будет «взломанным»/«заикающимся». Если я помещаю изменения вида перед анимацией, это работает как сон. Почему это работает? Я использую ошибочное поведение переходаWithView (iOS 10.1). Как это должно быть сделано правильно?UIView transitionWithView является гладким при использовании изменений вне блока анимации
[self.tableView reloadData];
CGPoint bottomOffset = CGPointMake(0, [self.tableView contentSize].height + [self.tableView contentInset].bottom - self.tableView.frame.size.height);
[self.tableView setContentOffset:bottomOffset animated:NO];
[UIView transitionWithView: self.tableView
duration: 0.35f
options: UIViewAnimationOptionTransitionCrossDissolve
animations: ^(void)
{
}
completion: nil];
Спасибо за ответ. Однако проблема в том, что animateWithDuration не работает плавно вообще (вскакивает и, вероятно, из-за смещения содержимого, а не просто затухает и выходит, как это делает crossdisolve. Если я использую changeWithView и устанавливаю представление в tableview или просто просмотр контроллеров, он работает хорошо, если исключить изменения в блоке анимации. Любые идеи? – damcify
@damcify отредактирован с помощью некоторых новых подходов. надеюсь, что некоторые из них помогут вам в решении вашей проблемы – valivaxa