iOS UITableViewCell嵌套UIWebView 自适应高度

本文介绍如何在iOS应用中处理UITableViewCell内嵌的UIWebView,使其内容加载完成后能自动调整高度以适应屏幕宽度。通过JavaScript代码动态修改图片宽度,并计算新的webview高度,从而实现UITableViewCell的高度自适应。在`webViewDidFinishLoad`代理方法中插入并执行JS代码,然后更新webview和表格单元格的高度。

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

- (void)webViewDidFinishLoad:(UIWebView *)webView

{

    NSString * js = @"var script = document.createElement('script');"

    "script.type = 'text/javascript';"

    "script.text = \"function ResizeImages() { "

    "var myimg,oldwidth;"

    "var maxwidth = %f;"

    "for(i=0;i <document.images.length;i++){"

    "myimg = document.images[i];"

    "if(myimg.width > maxwidth){"

    "oldwidth = myimg.width;"

    "myimg.width = %f;"

    "}"

    "}"

    "}\";"

    "document.getElementsByTagName('head')[0].appendChild(script);";

    js = [NSString stringWithFormat:js,

[UIScreen mainScreen].bounds.size.width

,

[UIScreen mainScreen].bounds.size.width

- 15];

    [webView stringByEvaluatingJavaScriptFromString:js];

    [webView stringByEvaluatingJavaScriptFromString:@"ResizeImages();"];

    

    //获取到webview的高度

    CGFloat height = [[self.webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"] floatValue];

    self.webView.frame = CGRectMake(0,0,

[UIScreen mainScreen].bounds.size.width

, height);

    [self.tableView reloadData];

}


-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

{  

     return self.webView.frame.size.height;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值