iOS 計算webView中內容的高度

當界面中的view需要根據webView的高度做適配時,就需要獲取webView的高度

做法:

  1. 對webView中的scrollView的contentSize添加鍵值監(jiān)聽,當webView滾動時,contentSize發(fā)生變化
  2. 在監(jiān)聽回調中獲取最新的webview的高度,然后賦值給當前的webView。這里獲取到的size就是webView的實時高度,可以正常使用
- (void)viewDidLoad {
    [super viewDidLoad];

    [self.view addSubview:self.scrollView];
    [self.scrollView addSubview:self.testView];
    [self.scrollView addSubview:self.webView];
    
    NSString *url = @"http://hybrid.ximalaya.com/api/info/contact_us?app=iting&version=6.3.6&impl=com.gemd.iting";
    
    [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]]];
    //監(jiān)聽webView中scrollView的contentSize的變化
    [self.webView.scrollView addObserver:self forKeyPath:NSStringFromSelector(@selector(contentSize)) options: ( NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld) context:nil];
}

- (void)dealloc{
    [self.webView.scrollView removeObserver:self forKeyPath:NSStringFromSelector(@selector(contentSize))];
}

- (void)webViewDidFinishLoad:(UIWebView *)webView{
    
}

//監(jiān)聽的回調
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context{
    if ([keyPath isEqualToString:NSStringFromSelector(@selector(contentSize))]) {
        //獲取webView的size
       //sizeThatFits: 返回一個合適的大小以布局,默認實現(xiàn)是返回當前視圖的已知大小
        CGSize webViewSize = [self.webView sizeThatFits:CGSizeZero];
        
        CGRect frame = self.webView.frame;
        frame.size = webViewSize;
        self.webView.frame = frame;
        //下面這段代碼是根據自己的需求寫的,可以在這個位置實現(xiàn)自己的需求
        self.scrollView.contentSize = CGSizeMake(webViewSize.width, webViewSize.height + 100);

    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 15,704評論 4 61
  • 2016.05.20 10:24 塵封已久的學習基礎總結,最近公司項目不是很忙,終于抽空整理出來,現(xiàn)分享出來。 1...
    si1ence閱讀 19,962評論 61 589
  • 人生,怕的就是心累,痛的就是流淚。屬于自己的風景,從來不曾錯過,不是自己的風景,永遠只是路過。天地太大,人太渺小,...
    夏洛克閱讀 283評論 0 14
  • “我胃疼” “不要喝冷飲” “我很少喝” 然后你就看見他大汗淋漓,端起冰鎮(zhèn)的飲料一飲而盡 “少吃辣” “我很少吃”...
    夏洛克的水杉閱讀 248評論 0 0
  • 【蝸牛計劃,每天進步一點點】 我是清泉 打卡日期:2017年7月1日 打卡天數:第1天 (1)我今年的三個年度目標...
    沈曼柔閱讀 174評論 3 0

友情鏈接更多精彩內容