Ios UITableViewCell高度自动不调整大小

Ios UITableViewCell高度自动不调整大小,ios,swift,uitableview,Ios,Swift,Uitableview,在tablecell中有UIView,在UIView中有WKWebViewUITableView.automaticDimension正在工作,只有在设置UIView高度时,webview中的数据才可见。否则它不是。但我希望UIView高度根据其内部内容是动态的 以下是我的WebView代码: var webView = WKWebView() var htmlStrings: String? @IBOutlet weak var webViewContainer: UIView! var

在tablecell中有UIView,在UIView中有WKWebViewUITableView.automaticDimension正在工作,只有在设置UIView高度时,webview中的数据才可见。否则它不是。但我希望UIView高度根据其内部内容是动态的

以下是我的WebView代码:

var webView = WKWebView()
var htmlStrings: String?

@IBOutlet weak var webViewContainer: UIView!

var oiiiiurHtmlString = "<div class=\"html-content pdp-product-highlights\">\n<p><b data-spm-anchor-id=\"a2a0e.pdp.product_detail.i4.a55420b7mofmmi\">SPECIFICATIONS</b></p>\n<ul class=\"\">\n<li class=\"\" data-spm-anchor-id=\"a2a0e.pdp.product_detail.i2.a55420b7mofmmi\">Brand: Samsung</li><li class=\"\" data-spm-anchor-id=\"a2a0e.pdp.product_detail.i2.a55420b7mofmmi\">Brand: Samsung</li><li class=\"\" data-spm-anchor-id=\"a2a0e.pdp.product_detail.i2.a55420b7mofmmi\">Brand: Samsung</li><li class=\"\" data-spm-anchor-id=\"a2a0e.pdp.product_detail.i2.a55420b7mofmmi\">Brand: Samsung</li><li class=\"\" data-spm-anchor-id=\"a2a0e.pdp.product_detail.i2.a55420b7mofmmi\">Brand: Samsung</li><li class=\"\" data-spm-anchor-id=\"a2a0e.pdp.product_detail.i2.a55420b7mofmmi\">Brand: Samsung</li><li class=\"\" data-spm-anchor-id=\"a2a0e.pdp.product_detail.i2.a55420b7mofmmi\">Brand: Samsung</li><li class=\"\" data-spm-anchor-id=\"a2a0e.pdp.product_detail.i2.a55420b7mofmmi\">Brand: Samsung</li><li class=\"\" data-spm-anchor-id=\"a2a0e.pdp.product_detail.i2.a55420b7mofmmi\">Brand: Samsung</li>\n<li class=\"\">Model No: RR19M20A2RH</li>\n<li class=\"\">Color: Scarlet Red</li>\n<li class=\"\">Capacity: 192Ltrs</li>\n\n</ul>\n</div>\n"

var a = "<html><body><font size = 50px face = Avenir"
var b = "</font></body></html>"

override func awakeFromNib() {
    super.awakeFromNib()
    htmlStrings = a + oiiiiurHtmlString + b
    productDetailsWebView()       
}

func productDetailsWebView(){
    let webConfiguration = WKWebViewConfiguration()
    let customFrame = CGRect.init(origin: CGPoint.zero, size: CGSize.init(width: 0.0, height: self.webViewContainer.frame.size.height))
    self.webView = WKWebView (frame: customFrame , configuration: webConfiguration)
    webView.loadHTMLString(htmlStrings!, baseURL: nil)
    webView.translatesAutoresizingMaskIntoConstraints = false
    self.webViewContainer.addSubview(webView)
    webView.topAnchor.constraint(equalTo: webViewContainer.topAnchor).isActive = true
    webView.rightAnchor.constraint(equalTo: webViewContainer.rightAnchor).isActive = true
    webView.leftAnchor.constraint(equalTo: webViewContainer.leftAnchor).isActive = true
    webView.bottomAnchor.constraint(equalTo: webViewContainer.bottomAnchor).isActive = true
    webView.heightAnchor.constraint(equalTo: webViewContainer.heightAnchor).isActive = true
    webView.uiDelegate = self
}
var-webView=WKWebView()
var htmlStrings:字符串?
@IBVar webViewContainer:UIView!
var oiiiiurHtmlString=“\n规范”

\n
    \n
  • 品牌:三星
  • 数据spm锚id=”a2a0e.pdp.product\u detail.i2.a55420b7mofmi\”>品牌:三星\“>品牌:三星
  • 品牌:三星
  • 品牌:三星
  • 品牌:三星数据spm锚id=\'a2a0e.pdp.product\u detail.i2.a55420b7mofmi\>品牌:三星
  • 品牌:三星
  • 数据spm锚id=\'a2a0e.pdp.product\u detail.i2.a55420b7mofmi\>品牌:三星>颜色:猩红色\n
  • 容量:192ltr
  • \n\n
\n\n var a=“在返回单元格之前的“cellForRowAtIndexPath”方法中添加以下代码

cell.setNeedsUpdateConstraints()
cell.updateConstraintsIfNeeded()

我觉得你的垂直约束有点奇怪。你能用下面的方法设置它们吗?(见附件)。确保有一组垂直约束将单元格的顶部连接到底部-这是决定单元格如何调整大小的原因

按如下所示设置约束后,从其他内容的底部到单元格的底部创建一个新约束,并将其值设置为大于或等于20(或任何其他值)

最后,在视图控制器中,确保调用以下命令:

tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 200 //Again you can change this to whatever suits your needs
注意:确保将web视图的约束绑定到其父视图。并为父视图设置最小高度


此答案假设如下:

tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 200 //Again you can change this to whatever suits your needs
  • 您知道如何将一些数据从单元格传递到控制器(可能通过委托)
  • 您知道如何正确设置约束,请记住,您需要满足视图的所有约束才能拉伸单元
  • 因此,我在这里发布了一个关于如何观察
    WKWebView的总内容大小(高度)的答案。看看那个


    这正是您需要的,然后在正确设置
    WKWebView的约束高度后,通知控制器重新加载tableView,或重新加载保存webView的特定行/节。

    是否希望webView不可滚动?这意味着将显示基于内容的完整长度?是的,我不想在webview上滚动。我希望uiview根据内部内容进行扩展。