我在其scrollView中设置了WKWebView和UIRefreshContol。我想要的行为是,当我滚动以打开UIRefreshControler时,整个页面都向下滚动。在没有固定顶部内容的页面上,此方法效果很好。在顶部栏固定的页面上,UIRefresh控件会翻阅固定内容,并向下滚动页面上未固定的内容。
这是在没有固定内容的页面上的外观,这是预期的行为:
这是刷新前具有固定顶部栏的页面的外观:
这是拉动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可见时,如何允许滚动固定内容?我想我需要以当前UIRefreshControl高度的大小插入一个contentInset,但是我不知道怎么做。