長網頁在WKWebView中呈現,但底部的一小部分頁面甚至無法顯示,即使將頁面滾動到底部。頁面底部無法在WKWebView中顯示
看起來頁面底部已經不在屏幕上了,因爲當我拉起頁面而不是釋放手指時,我可以看到它。
我該如何解決這個問題?
長網頁在WKWebView中呈現,但底部的一小部分頁面甚至無法顯示,即使將頁面滾動到底部。頁面底部無法在WKWebView中顯示
看起來頁面底部已經不在屏幕上了,因爲當我拉起頁面而不是釋放手指時,我可以看到它。
我該如何解決這個問題?
我來回答我自己的問題,因爲我發現造成這個問題的原因。
我對Objective-C沒有足夠的瞭解,因此在描述我的答案時可能會出現一些小錯誤。
首先,有在WKWebView
的頂部的默認邊距如果屬性automaticallyAdjustsScrollViewInsets
設置爲true
,也許存在的XCode 8.3的一個bug(一切都進行得很順利,當我編譯代碼的XCode 8.0)邊距佔用了網頁的實際部分,所以即使將其設置爲小尺寸,網頁也不能滾動到其底部。因此將automaticallyAdjustsScrollViewInsets
設置爲false
將刪除WKWebView
的餘量;這是這個屬性的文檔:https://developer.apple.com/documentation/uikit/uiviewcontroller/1621372-automaticallyadjustsscrollviewin
然後,通過計算結果高度的視口減去狀態欄的高度減去導航欄的高度設置高度WKWebView
。
粘貼我的代碼在這裏:
self.automaticallyAdjustsScrollViewInsets = false;
CGFloat statusBarHeight = [UIApplication sharedApplication].statusBarFrame.size.height;
CGFloat navBarHeight = self.navigationController.navigationBar.frame.size.height;
WKWebView *webView = [[WKWebView alloc] initWithFrame:CGRectMake(0, statusBarHeight + navBarHeight, self.view.bounds.size.width, self.view.bounds.size.height - statusBarHeight - navBarHeight)];