• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 在 tableViewCell 中添加 Webview

[复制链接]
菜鸟教程小白 发表于 2022-12-11 18:14:19 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我将 WebView 放在 tableViewCell 中,然后在 tableView 中使用它。到目前为止,一切正常。但我为 WebViewCell 使用了固定大小。现在我想显示 WebView 的所有内容。我在 MyTbaleView 类中将我的代码更改为这个

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {

     if let cell = modelCollection[collection.identifier] {
            if let _ = cell as? TiteCell{
              return 200
             } else if let _ = cell as? myWebViewCell{
              return UITableViewAutomaticDimension
             }
     }



func tableView(tableView: UITableView, EstimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
     return 1000
}

这是xib文件

myWebView Xib file

使用这段代码,WebView 变得非常小,只有几毫米。我试图将我在论坛中找到的这段代码添加到 MyWebViewCell

func webViewDidFinishLoad(webView : UIWebView) {
        var frame = myWebView.frame
        frame.size.height = 1
        myWebView.frame = frame

        let fittingSize = myWebView.sizeThatFits(CGSize(width: 0, height: 0))
        frame.size = fittingSize
        myWebView.frame = frame
        myWebView.scrollView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);
}

现在webview大了一点,1厘米,宽度比ipad的宽度还大。



Best Answer-推荐答案


正如@Ramaraj T 所说,这是一个非常昂贵的过程,我同意你应该改变你的设计。但如果你还想继续,你可以这样做。

在您的自定义单元格中为 WebView 创建一个 HeightConstraint。

// Code in cell
var webViewHeightConstraint: NSLayoutConstarint!

// Code in controller 
// code cellForIndexPath
webView.tag = indexPath.row(or any unique value which can be used to calculate indexPath)

func webViewDidFinishLoad(webView : UIWebView) {
   var frame = myWebView.frame
   frame.size.height = 1
   myWebView.frame = frame

   let fittingSize = myWebView.sizeThatFits(CGSize(width: 0, height: 0))
   frame.size = fittingSize
   myWebView.frame = frame
   myWebView.scrollView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);

   let height = myWebView.contentSize.height
   let section = webView.tag
   let indexPath = NSIndexPath(forRow: 0, inSection: section)
   let cell = tableView.dequeCell(atIndexPath: indexPath)// 
   cell.webViewHeightConstraint.constant = height
   cell.layoutConstraintsIfNeeded()
   tableView.beginUpdates()
   tableView.endUpdates()
}

关于ios - 在 tableViewCell 中添加 Webview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40929457/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap