2015-10-30 98 views
8

我創建了一個簡單的測試應用程序,以可靠地再現我的問題並最大限度地減少運動部件。它只包含一個導航控制器和一個我添加WKWebView的視圖控制器。我立即告訴WKWebView導航到www.google.ca。頁面加載後,內容會自動跳轉到標題欄下方。這可以在運行iOS 8/9/9.1的各種模擬器/設備上持續重現。下面是我的ViewController代碼:WKWebView內容跳躍加載

// ViewController.swift 
import UIKit 
import WebKit 

class ViewController: UIViewController { 
    let webView = WKWebView() 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     view.addSubview(webView) 
     let url = NSURL(string: "http://www.google.ca")! 
     let request = NSURLRequest(URL: url) 
     webView.loadRequest(request) 
     webView.frame = view.bounds 
    } 
} 

GIF

回答

1

webView.frame = view.boundsview.addSubview(webView)

+0

把它放在'viewWillLoad()'會修復它 – Korpel

+0

我試過這兩個建議,但都沒有解決這個問題。那麼,不完全,viewWillLoad()似乎不是在UIViewController上的方法,但viewWillAppear()這樣做,我試過,無濟於事。 – jvoll

+0

另外值得注意的是,這個問題是網站特定的 - >它發生在www.google.com上,但不在www.twitter.com上。 – jvoll

0

類似我剛剛經歷的東西,而這樣做的以下內容:

  1. 當一個鏈接被點擊在現有的WKWebView中,在webView:decidePolicyForNavigationAction:decisionHandler:中,我初始化了一個新的視圖控制器,它控制着一個WKWebView a通過手機上運行的本地網絡服務器的URL請求開始加載內容。

  2. webView:didFinishNavigation:上,我將該視圖控制器推送到導航控制器。

我所看到的:每次都會加載滾動大約1/3的內容。

我試過的東西沒有用:請求web視圖的滾動視圖滾動到頂部,通過JavaScript設置滾動位置。

工作內容:在上面的步驟1中,在初始化視圖控制器(它開始在Web視圖中加載URL請求)後,我將視圖控制器的視圖添加到我的視圖中(並通過sendSubviewToBack:所以它不顯示 - 我試圖設置它的alpha爲零,事情變得怪異)。

這樣做的技巧和網頁內容加載在正確的滾動位置(頂部)。

聽起來像這可能是同一個問題 - 所以我希望這可能至少讓你想到一個解決方法。