Отображаемая область WKWebView при настройке смещения содержимого для анимированной прокрутки - PullRequest
0 голосов
/ 16 сентября 2018

Я прокрутил вниз веб-страницу с загруженной страницей. Теперь я хочу программно вернуться наверх загруженной страницы. И я хочу анимированную прокрутку.

Я реализовал следующее решение:

__auto_type animation = ^{
  self.webView.scrollView.contentOffset = CGPointZero;
};

[UIView animateWithDuration:0.3
                      delay:0.0
                    options:UIViewAnimationOptionBeginFromCurrentState
                 animations:animation
                 completion:NULL];

Я заметил, что во время анимации фон мигает. Я исследовал проблему и обнаружил, что во время анимации веб-представление отображается не полностью (т.е. из текущей позиции в целевую), а только в видимой области вокруг целевого значения смещения содержимого с добавлением некоторой дополнительной области. Например. для моей высоты видимой области 667 и смещения целевого содержимого (0, 0) граница любовника визуализированной области находится где-то в диапазоне [1000, 1200]. Кажется, это значение является постоянным и не зависит от модели iPhone или версии iOS.

Я заметил, что если я установлю значение смещения содержимого в пределах диапазона визуализации перед запуском анимации, фон не будет мигать, и моя проблема будет решена. То есть следующая строка добавлена ​​до того, как приведенный выше код решит мою проблему:

self.webView.scrollView.contentOffset = CGPointMake(0, 400);

Похоже, Apple провела некоторую оптимизацию процесса рендеринга. Интересно, смогу ли я использовать эту проблему в своем коде. Мои вопросы следующие:

а. Могу ли я получить нижнюю границу отображаемой области для смещения целевого содержимого? б. Не могу ли я управлять этим значением, т.е. изменить это значение или отключить эту оптимизацию для моей операции?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...