gpt4 book ai didi

ios - UITableView 单元格不使用标签文本自动调整大小

转载 作者:行者123 更新时间:2023-11-28 12:07:36 26 4
gpt4 key购买 nike

编辑 编辑:我在一个新项目中从头开始。每个 Storyboard导出都是相同的,VC 代码也是如此。有趣的是,它有效。

编辑:大家好,我要放弃了。每个答案都开始成为一个主题的变体,而那个主题并没有解决这个问题。感谢您的尝试。

ViewDidLoad 中,我设置了:tableView.estimatedRowHeight = 85.0, tableView.rowHeight = UITableViewAutomaticDimension

我还在 Storyboard中设置了:内容 View 的自动调整大小约束。 enter image description here

要换行的标签,标签行到0

然而,标签文本仍然溢出了它的单元格。完整的字符串是:“你好?如果我写了一个长句子会怎样?”

enter image description here

有什么建议吗?

这是整个 View Controller : enter image description here这是选择了标签的 Storyboard: enter image description here

推荐功能后: enter image description here结果: enter image description here

最佳答案

您没有设置 heightForRowAt indexPath..为此,您应该首先获得文本的大小在我的例子中,我通过

func rectForText(text: String, font: UIFont, maxSize: CGSize) -> CGSize
{
let attrString = NSAttributedString.init(string: text, attributes: [NSAttributedStringKey.font:font])
let rect = attrString.boundingRect(with: maxSize, options: NSStringDrawingOptions.usesLineFragmentOrigin, context: nil)
let size = CGSize(width: rect.size.width, height: rect.size.height)//(, )
return size
}

并根据您的文本设置单元格的高度,在我的情况

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat
{
var totalHeight : CGFloat = 0
let str = yourString
let size : CGSize = rectForText(text: str, font:UIFont.boldSystemFont(ofSize: 15.0) , maxSize : CGSize(width: 200 * (SCREEN_WIDTH / 320), height: 20000) )
totalHeight = size.height
return CGFloat(totalHeight)
}

可能适合你

关于ios - UITableView 单元格不使用标签文本自动调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49122802/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com