iOS中UIWebView內容高度自適應

使用KVC監聽UIWebView中子視圖scrollView的contentSize變化,來改變UIWebView的高度。

[self.webView.scrollView addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:nil];

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context {
    if ([object isEqual:self.webView.scrollView]) {
        if ([keyPath isEqualToString:@"contentSize"]) {
            CGSize oldSize = [change[@"old"] CGSizeValue];
            CGSize calcSize = [change[@"new"] CGSizeValue];
            if (oldSize.height == calcSize.height) {
                return;
            }
            NSLog(@"observeValueForKeyPath:%f, %f", calcSize.width, calcSize.height);
            self.webHeight = MAX(calcSize.height, 40);
            [self.webView mas_updateConstraints:^(MASConstraintMaker *make) {
                MAS_HEIGHT(self.webHeight);
            }];
        }
    }
}

 

發佈了145 篇原創文章 · 獲贊 16 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章