У меня есть WKWebView и UIRefreshContol, настроенный в его scrollView. Я хочу, чтобы при открытии UIRefreshControler вся страница прокручивалась вниз. Это прекрасно работает на страницах, на которых нет фиксированного верхнего содержимого. На страницах с фиксированной верхней панелью UIRefreshcontrol просматривает фиксированный контент и прокручивает нефиксированный контент на странице.
Вот как это выглядит на странице, которая не имеет фиксированного содержимого, и это ожидаемое поведение:
Вот так выглядит страница с фиксированной верхней панелью перед обновлением:
Вот так выглядит при извлечении UIRefreshControl (UIRefreshControl переходит и не прокручивает фиксированный контент. Это неожиданное поведение):
Я настроил UIRefreshView следующим образом:
refreshControl.addTarget(self, action: #selector(refreshAnimation), for: .valueChanged)
refreshControl.backgroundColor = #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)
let refreshContents = Bundle.main.loadNibNamed("RefreshView", owner: self, options: nil)
customRefreshView = (refreshContents![0] as! UIView)
customRefreshImage = (customRefreshView.viewWithTag(1) as! UIImageView)
customRefreshView.frame = refreshControl.bounds
refreshControl.tintColor = .clear
refreshControl.addSubview(customRefreshView)
refreshControl.addObserver(self, forKeyPath: #keyPath(UIRefreshControl.isHidden), options: .new, context: nil)
refreshAnimator = CABasicAnimation(keyPath: "transform.rotation.z")
refreshAnimator.toValue = NSNumber(value: .pi * 20.0)
refreshAnimator.duration = 7.5;
refreshAnimator.isCumulative = true;
refreshAnimator.repeatCount = .infinity;
page.scrollView.addSubview(refreshControl)
Как разрешить прокрутку фиксированного содержимого, когда UIRefreshControl виден? Думаю, мне нужно вставить contentInset с размером текущей высоты UIRefreshControl, но я не могу понять, как.