在 UITableview swift 中使用 UILabel 和 UIWebView 设置 heightForRow

Posted

技术标签:

【中文标题】在 UITableview swift 中使用 UILabel 和 UIWebView 设置 heightForRow【英文标题】:Setting heightForRow with UILabel & UIWebView in UITableview swift 【发布时间】:2018-07-11 08:16:08 【问题描述】:

我只是在UITableViewCell 上寻找UIWebViewUILabel 的动态高度。

This is great example for UIWebView in UITableViewCell

但我在UITableViewCell 中使用UILabelUIWebView

我已将numberOfLines 设置为0。 & 对UILabel 采取更大的等高约束 & 根据UILabel 高度设置常数。

extension UILabel    
    func getNoOfLines() ->Int
        let textSize = CGSize(width: self.frame.size.width, height: CGFloat(Float.infinity))
        let rHeight = lroundf(Float(self.sizeThatFits(textSize).height))
        let charSize = lroundf(Float(self.font.lineHeight))
        return rHeight/charSize
    


let lineCount = cell.questionLabel.getNoOfLines()
let labelLineHeight =  (cell.questionLabel.font.lineHeight * CGFloat(lineCount))
print("Line height is ",labelLineHeight)

& 在heightForRowAt 上设置高度约束,这是 WebView Height + labelLineHeight 的添加。

问题是UILabel 即使在设置了高度限制后也能获得树干。是的,我也使用了layoutIfNeeded()

我只是在UITableViewCell 上使用UILabel 寻找UIWebView 的动态高度。

【问题讨论】:

【参考方案1】:

您不需要为 UILabel 设置任何高度,您只需将底部空间设置为顶部空间并将 numberOfLines 设置为 0 以及 UILabel 的宽度。供参考,请看下面这两张图片:

希望这会有所帮助。

【讨论】:

以上是关于在 UITableview swift 中使用 UILabel 和 UIWebView 设置 heightForRow的主要内容,如果未能解决你的问题,请参考以下文章

使用swift在UITableView中添加UIButton(跟随按钮)

如何在swift 3中的UITableView中进行变量和使用

UITableView 没有在 Swift 3 中使用 Index 正确显示数据

如何使用swift在ios中动态/编程添加多个UITableView? [关闭]

如何在 Swift 中使用 UITableView 仅使用单元格(不是部分/标题)进行扩展?

如何在 uilabel 中使用多行并根据 Swift 中的标签高度自动扩展 uitableview 行高?