После использования этих решений у меня все еще были проблемы. Проблема определенно связана с наличием прозрачных панелей навигации и выбором автоматической настройки вставок содержимого в контроллере представления. Если вас не волнует прокрутка текста под панелью навигации, лучше оставить эти настройки отключенными и ограничить верхнюю часть текстового представления нижней частью панели навигации, а не верхней частью контроллера просмотра.
Если, как и я, вы хотели, чтобы он отображался под панелью навигации при прокрутке вниз; тогда решение, которое сработало для меня, заключалось в том, чтобы добавить это.
- (void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
CGFloat offset = self.navigationController.navigationBar.frame.size.height+[UIApplication sharedApplication].statusBarFrame.size.height;
[self.textView setContentOffset:CGPointMake(0, -offset) animated:NO];
}
Это просто ищет высоту панели навигации и строки состояния и соответствующим образом корректирует смещение содержимого.
Обратите внимание, что одним из недостатков этого подхода является то, что при вращении устройства вы в конечном итоге прокручиваете его обратно наверх.