UIRefreshControl в WKWebView не прокручивает фиксированный контент - PullRequest
0 голосов
/ 04 июля 2019

У меня есть WKWebView и UIRefreshContol, настроенный в его scrollView. Я хочу, чтобы при открытии UIRefreshControler вся страница прокручивалась вниз. Это прекрасно работает на страницах, на которых нет фиксированного верхнего содержимого. На страницах с фиксированной верхней панелью UIRefreshcontrol просматривает фиксированный контент и прокручивает нефиксированный контент на странице.

Вот как это выглядит на странице, которая не имеет фиксированного содержимого, и это ожидаемое поведение:

expected behavior

Вот так выглядит страница с фиксированной верхней панелью перед обновлением:

page with fixed div

Вот так выглядит при извлечении UIRefreshControl (UIRefreshControl переходит и не прокручивает фиксированный контент. Это неожиданное поведение):

unexpected behavior

Я настроил 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, но я не могу понять, как.

...