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

时间:2018-07-11 08:16:08

标签: ios swift uitableview uiwebview

我只是在寻找UIWebViewUILabelUITableViewCell的动态高度。

This is great example for UIWebView in UITableViewCell

但是我在UILabel中使用UIWebViewUITableViewCell

我已将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高度+ labelLineHeight。

即使设置了高度限制,问题仍然是UILabel。是的,我也使用过layoutIfNeeded()

我只是在寻找UIWebViewUILabelUITableViewCell的动态高度。

1 个答案:

答案 0 :(得分:0)

您不需要为UILabel设置任何高度,只需将底部空间设置为and顶部空间,并将numberOfLines设置为0,并将UILabel的宽度设置为0。作为参考,请参见下面的两张图片: example 1

example 2

希望这会有所帮助。