Ios UITableViewCell高度自动不调整大小
在tablecell中有UIView,在UIView中有WKWebViewUITableView.automaticDimension正在工作,只有在设置UIView高度时,webview中的数据才可见。否则它不是。但我希望UIView高度根据其内部内容是动态的 以下是我的WebView代码: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
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根据内部内容进行扩展。