如何滚动一个视图';在WKWebView(Swift)中使用PDF一次显示的高度(非页面)

如何滚动一个视图';在WKWebView(Swift)中使用PDF一次显示的高度(非页面),swift,pdf,uiscrollview,wkwebview,Swift,Pdf,Uiscrollview,Wkwebview,我收集了一些PDF,有些是一页,有些是两页。我想查看PDF的下一个可见屏幕高度值,或者如果PDF的剩余高度小于webView的高度,则滚动到PDF的底部。到目前为止,我只能使webView滚动到底部。这是我的功能…我缺少什么 func scrollDown() { let scrollView = webview.scrollView let contentSize = scrollView.contentSize let contentOffset = scrollVi

我收集了一些PDF,有些是一页,有些是两页。我想查看PDF的下一个可见屏幕高度值,或者如果PDF的剩余高度小于webView的高度,则滚动到PDF的底部。到目前为止,我只能使webView滚动到底部。这是我的功能…我缺少什么

func scrollDown() {
    let scrollView = webview.scrollView
    let contentSize = scrollView.contentSize
    let contentOffset = scrollView.contentOffset
    let frameSize = webview.frame.size

    if scrollView.contentOffset.y <= 0 {
        // Scroll one view's height at a time
        // If the contentSize - offset.y is greater than the frame's height
        if (contentSize.height - contentOffset.y) > frameSize.height {
            scrollView.setContentOffset(CGPoint(x: 0, y: contentOffset.y + (contentSize.height - frameSize.height)), animated: true)
        } else {
            scrollView.setContentOffset(CGPoint(x: 0, y: 0), animated: true)
        }
    }
}
func向下滚动(){
让scrollView=webview.scrollView
让contentSize=scrollView.contentSize
让contentOffset=scrollView.contentOffset
设frameSize=webview.frame.size
如果scrollView.contentOffset.y frameSize.height{
scrollView.setContentOffset(CGPoint(x:0,y:contentOffset.y+(contentSize.height-frameSize.height)),动画:true)
}否则{
scrollView.setContentOffset(CGPoint(x:0,y:0),动画:true)
}
}
}

以防其他人需要。吸取的教训是在纸上画出来,以了解发生了什么

func scrollDown() {
    let scrollView = webview.scrollView
    let contentSize = scrollView.contentSize
    let contentOffset = scrollView.contentOffset
    let frameSize = webview.frame.size
    let frameHeight = frameSize.height

    // Next view's height
    let heightOffset = frameSize.height + contentOffset.y
    let offsetToBottom = contentSize.height - frameSize.height

    if contentOffset.y + frameHeight > contentSize.height - frameHeight {
        scrollView.setContentOffset(CGPoint(x: 0, y: offsetToBottom), animated: true)
        print("Should be scrolling to bottom")
    } else {
        scrollView.setContentOffset(CGPoint(x: 0, y: heightOffset), animated: true)
        print("Should be scrolling by one page")
    }
}