1. 程式人生 > >如何動態計算WKWebView的高度

如何動態計算WKWebView的高度

很多人會遇到一個困惑,就是在WKWebView的func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!)代理中獲取到的

webView.scrollView.contentSize.height並不是網頁最終加載出來的高度,這使得如果想實現上端為網頁,下方為原生評論列表效果存在高度計算誤差。本文就是給大家講述我的一個實現方法。也就是對webView.scrollView新增觀察者,從而檢測他的contentSize.height,一旦發生變化,及時更新。程式碼如下

//新增觀察者

webView.scrollView.addObserver(self, forKeyPath: "contentSize", options: .new, context: nil)

//觀察者代理方法

    override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {

        if keyPath == "contentSize" {

        if webView.scrollView.contentSize.height > webViewHeight || webView.scrollView.contentSize.height == 0 {

            webViewHeight = webView.scrollView.contentSize.height

tableview.reloadData

       }

        }

    }

如此就能實現實時監測網頁高度了,之所以要對比現在獲取到的網頁高度與上次的大小是為了防止滑動時出現彈跳等bug。

相關推薦

如何動態計算WKWebView高度

很多人會遇到一個困惑,就是在WKWebView的func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!)代理中獲

IOS7中動態計算UILable的高度

content tof 送別 lds %d bre 內心 大學生活 hsi .h文件 #import <UIKit/UIKit.h> @interface UILabel (ContentSize) - (CGSize)contentSize;

iOS中最簡單實用的自定義動態返回行高的cell,動態計算cell的高度

      iOS專案開發中,需要動態返回行高自定義cell的場景可以說是數不過來,可以不誇張的說,只要伺服器返回的同一個欄位的文字字數無限制,那麼我們客戶端在設定的時候就要動態返回行高。      場景:1.當需要tableview展示資料時,一般頭像,暱稱,等資訊都

TableViewCell高度動態計算

import UIKit import SnapKit class TableViewCell: UITableViewCell { lazy var infoLabel: UILabel = { let label = UILabel() label.

autolayout 動態計算高度時 UILabel的preferredMaxLayoutWidth設定

在計算cell的高度時,我們會使用如下方法: CGSize size = [self.cell.contentView  systemLayoutSizeFittingSize:UILayoutFittingCompressedSize ]; 但如果裡面有UILbel

動態計算UITableView中tableHeaderView的高度

開發的過程中,經常使用UITableView的tableHeaderView檢視,對於固定高度的tableHeaderView,我們使用非常簡單。建立一個自定義檢視,計算好固定高度即可。如果要動態更新tableHeaderView的高度,僅僅是將自定義的view進行計算高度

H5特性 MutationObserver 監聽元素 動態改變iframe高度

webkit chrom contents ram type element 特性 chrome span 這些代碼要寫在iframe頁中執行 <script type="text/javascript"> $(function

第148天:js+rem動態計算font-size的大小,適配各種手機設備

根節點 大小設置 ngs 單位 fontsize 不同 false 51cto 終端設備 需求: 在不同的移動終端設備中實現,UI設計稿的等比例適配。 方案: 布局排版都用rem做單位,然後不同寬度的屏,js動態計算根節點的font-size。 假設設計稿是寬750px來做

根據iPhone6設計稿動態計算rem值

使用 pan light 屏幕寬度 我們 解決 適應 fixed 連續 rem 單位在做移動端的h5開發的時候是最經常使用的單位。為解決自適應的問題,我們需要動態的給文檔的更節點添加font-size 值。使用mediaquery 可以解決這個問題,但是每一個文件都引用一大

Css3----calc動態計算長度值及vh

用於動態計算長度值。 需要注意的是,運算子前後都需要保留一個空格,例如:width: calc(100% - 10px); 任何長度值都可以使用calc()函式進行計算; calc()函式支援 "+", "-", "*", "/" 運算; calc()函式使用標準的數學運

JS動態計算rem

1、什麼是rem       rem是相對於根元素(html標籤)的字型大小的單位。 2、rem實現適配的原理        核心思想:百分比佈局可實現響應式佈局,而rem相當於百分比佈局。   實現手段:動態獲取

calc函式,動態計算元素的寬高

css3,新增的calc函式 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title>

【Javascript】Javascript動態設定頁面高度

1.動態設定父頁面iframe高度 <body onload="iframeHeight()"> <script type="text/javascript"> function iframeHeight(){ //

動態計算rem

a.scss檔案 @function px2rem($px){     $rem:37.5px;     @return ($px / $rem) + rem; } .hello { width :

微信小程式開發中textarea文字域監聽字數限制與動態計算

微信小程式開發時常會有評論或者備註功能,都會用到文字域字元長度計算以及字元限制的功能,筆者把最簡潔易用的案例分享出來。學習之前先看微信官方API文件 https://mp.weixin.qq.com/debug/wxadoc/dev/component/textarea.html

UITableView效能優化的一點感悟及計算UILabel高度的新方法

在使用過程中發現,我們App的首頁在快速滑動時會出現掉幀,以及在上拉載入更多時會抖動,因為首頁模組是以前的同事寫的,很多程式碼已不適應當前的需求,所以產生了優化的想法,優化主要分為以下幾個方面: 1.快取cell高度(發現了一種計算Label高度的新方法) 2.優化cellForRow方法 3.圖片載入優化

echarts容器動態設置高度

soft art des 測試 eight span bubuko col 高度 測試提了bug,柱狀圖數據多的情況下,都疊到了一起,效果如下圖。 要解決這個bug,首先想到的是讓柱狀圖的容器自適應高度。於是,把原本div上寫固定的高度去掉。 <div id

RecyclerView 計算滑動高度,這次比網上任何方法都靠譜

最近在做專案改版的時候,需要計算RV的滑動距離,RV的滑動距離谷歌爸爸並沒有直接回調給我們,不過網上倒是有很多方式,無外乎以下幾種。 轉載請註明出處 1.利用OnScrollListener,dy直接相加 純屬扯淡。一點都不靠譜 2.computeVer

ABAP 資料動態計算

DATA: lv_num     TYPE cha_class_data-sollwert,       lv_formula TYPE string,       lv_out_num TYPE cha_class_view-sollwert. PARAMETERS

scrollview和listview 衝突 動態定listview高度

public class MainActivity extends Activity {        private ListView list