美文网首页
iOS:wkwebview自适应高度,修改文字和图片大小

iOS:wkwebview自适应高度,修改文字和图片大小

作者: Liu____ | 来源:发表于2021-01-14 12:05 被阅读0次
    //
    //  ViewController.m
    //  webTest
    //
    //  Created by liuyaqiang on 2021/1/8.
    //
    
    #import "ViewController.h"
    #import <WebKit/WebKit.h>
    
    @interface ViewController ()<UIWebViewDelegate,WKNavigationDelegate,WKUIDelegate>
    @property(nonatomic, strong)WKWebView *webView;
    @end
    
    @implementation ViewController
    - (void)viewDidLoad{
        [super viewDidLoad];
      
        _webView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 100, 300,0)];
        _webView.userInteractionEnabled = NO;
        [_webView loadHTMLString:@"<p>导管与热水管、蒸汽管平行敷设时,宜敷设在热水管、蒸汽管的下面,当有困难时,可敷设在其上面;相互间的最小距离宜符合下表规定。</p><p></p><div class=\"media-wrap image-wrap\"><img loop=\"\" autoplay=\"\" controls=\"\" src=\"https://img1.youwen6.com/exam/34cfcb717a0a4a2da3caedadf3e7d483.png\"/></div><p></p>" baseURL:nil];
        [self.view addSubview:_webView];
        self.view.backgroundColor = [UIColor blueColor];
        _webView.scrollView.scrollEnabled = NO;
        [_webView.scrollView addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew context:nil];
        _webView.navigationDelegate = self;
    
    
    //    self.automaticallyAdjustsScrollViewInsets = NO;
    //    _webView.scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
    }
    - (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation{
        __block CGFloat webViewHeight=0;
    
        //修改字体大小
        [ webView evaluateJavaScript:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '300%'"completionHandler:nil];
        //修改图片大小
        [ webView evaluateJavaScript:@"var script = document.createElement('script');"
        "script.type = 'text/javascript';"
        "script.text = \"function ResizeImages(){ "
        "var myimg,oldwidth;"
        "var maxwidth = 1000.0;" // WKWebView中顯示的圖片寬度
        "for(i=0;i <document.images.length;i++){"
        "myimg = document.images[i];"
        "oldwidth = myimg.width;"
        "myimg.width = maxwidth;"
        "}"
        "}\";"
        "document.getElementsByTagName('head')[0].appendChild(script);ResizeImages();" completionHandler:nil];
    }
    
    
    #pragma mark ------ < KVO > ------
    - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context {
        /**  < 法2 >  */
        /**  < loading:防止滚动一直刷新,出现闪屏 >  */
        if ([keyPath isEqualToString:@"contentSize"]) {
            CGRect webFrame = _webView.frame;
    
            webFrame.size.height = _webView.scrollView.contentSize.height;
            _webView.frame = webFrame;
            NSLog(@"%@",@(_webView.scrollView.contentSize.height));
        }
    }
    @end
    
    

    相关文章

      网友评论

          本文标题:iOS:wkwebview自适应高度,修改文字和图片大小

          本文链接:https://www.haomeiwen.com/subject/bxxcaktx.html