webView 加载 HTML 形式的内容,自适应高不带和html字符串里面不带请求头

本文介绍了一种自定义封装的WebView控件方法,通过Objective-C实现,该控件能够自适应屏幕大小,同时禁用了链接点击和网络连接,适用于图文混编的内容展示。文章详细展示了如何创建和使用这个控件,包括初始化、布局设置和加载HTML内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. webview 控件封装


@implementation MineWebBkg

-(id)initWithFrame:(CGRect)frame{
    
    self = [super initWithFrame:frame];
    if (self) {
        [self drawView];
    }
    return self;
}

-(void)drawView{
    
    self.bkgView = [[UIView alloc]init];
    self.bkgView.userInteractionEnabled = YES;
    self.bkgView.backgroundColor = [UIColor whiteColor];
    [self addSubview:self.bkgView];
    [self.bkgView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.mas_equalTo(self.mas_top);
        make.height.mas_equalTo(1);
        make.left.mas_equalTo(self.mas_left);
        make.right.mas_equalTo(self.mas_right);
    }];
    
    
    //图文详情
    if (!_webView) {
        self.webView = [UIWebView new];
        [self.bkgView addSubview:self.webView];
    }
    self.webView.scalesPageToFit = YES;
    self.webView.delegate = self;
    self.webView.dataDetectorTypes = UIDataDetectorTypeNone;//添加目的去掉可以点击链接(但是网络连接没有实现www.xxxx.html)
    [self.webView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.right.mas_equalTo(self.bkgView);
        make.top.mas_equalTo(self.bkgView.mas_top);
        make.height.mas_equalTo(1);
    }];
    
}

//请求成功后自适应高度
- (void)webViewDidFinishLoad:(UIWebView *)webView{
    /*
     self.navigationItem.title = [webView stringByEvaluatingJavaScriptFromString:@"document.title"];
     
     _webView.scalesPageToFit = YES;
     */
    
//    CGFloat width_scr = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollWidth"] floatValue];
//    if(width_scr==0){
//        width_scr = SCREEN_WIDTH-12*2;
//    }
//    CGFloat scale = width_scr/(SCREEN_WIDTH-12*2);
//
//    CGFloat height = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"] floatValue]/scale;
    
    CGSize size = [webView sizeThatFits:CGSizeZero];
    
    [self.webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitTouchCallout='none';"];
    
    webView.scrollView.scrollEnabled = NO;
    webView.scrollView.showsVerticalScrollIndicator = NO;
    webView.scrollView.showsHorizontalScrollIndicator = NO;
    
    [self.webView mas_remakeConstraints:^(MASConstraintMaker *make) {
        make.top.mas_equalTo(self.bkgView.mas_top);
        make.left.right.mas_equalTo(self.bkgView);
        make.height.mas_equalTo(size.height);
    }];
    [self.bkgView mas_remakeConstraints:^(MASConstraintMaker *make) {
        make.top.mas_equalTo(self.mas_top);
        make.height.mas_equalTo(size.height);
        make.left.mas_equalTo(self.mas_left);
        make.right.mas_equalTo(self.mas_right);
    }];
    
}

2.加载:

 //加载HTML字符串内容完成图文混编
 [self.infoBkg.webView loadHTMLString:HTML内容 baseURL:[NSURL URLWithString:HTML里面省略的头]];

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值