Я только что заметил, что если я добавлю UIScrollView в качестве корневого представления UIViewController:
- (void)loadView
{
self.view = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
}
, я получу много поведения бесплатно: scrollView автоматически устанавливает contentInset
и scrollIndicatorInsets
если строка состояния, панель навигации или панель инструментов присутствуют и являются полупрозрачными и обновляет свойства, если изменяются какие-либо макеты навигации:
[self.navigationController setNavigationBarHidden:YES animated:YES];
К сожалению, представление прокрутки также автоматически меняет contentOffset
при изменении contentsInset
, поэтому контент исчезает, когда панель навигации исчезает, и вниз, когда появляется панель навигации.
Мне нравится много этого свободного поведения, но я бы хотел, чтобы мой контент оставался неподвижным, когда появляется панель навигации.и идет, и я не могу найти, где избежать изменения в contentOffset
.
Редактировать:
После некоторых трассировок стека, я обнаружил метод, которыйвызывается каждый раз, когда смещение автоматически корректируется: [UIScrollView(Static) _adjustContentOffsetIfNecessary]
;но поскольку я не могу найти документацию по этому методу, я в растерянности.