2017-02-16 1 views
0

У меня есть коллекция PDF-файлов, некоторые из них - одна страница, а некоторые - две. Я хочу увидеть следующую видимую высоту экрана в PDF-формате или прокрутить в нижней части PDF-файла, если оставшаяся высота PDF-файла меньше высоты webView. Пока что я могу сделать прокрутку webView снизу. Вот функция, которую у меня есть ... что мне не хватает?Как прокрутить высоту одного вида (не страницу) за один раз с помощью PDF в WKWebView (Swift)

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) 
     } 
    } 
} 

ответ

0

Если это кому-то еще нужно. Урок, извлеченный на бумаге, позволяет понять, что происходит ...

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") 
    } 
} 
Смежные вопросы