gpt4 book ai didi

ios - 如何支持使用 UILabel 自动调整 UITableViewCell 的大小

转载 作者:搜寻专家 更新时间:2023-11-01 05:57:51 24 4
gpt4 key购买 nike

我想弄清楚如何为包含 uitextview 的 tableview 单元格获取正确的高度,以便显示 uitextview 中的所有内容。 textview 不可编辑且不可滚动,这意味着 uitextview 的字符串是已知的。我尝试简单地返回 heightForRowAtIndexPath 中 Storyboard 中的 tableview 单元格的高度,但如果它太大,则会切断内容。我还尝试在 heightForRowAtIndexPath 中计算 textView 的高度,但它在运行时抛出错误:

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
let cellInfo = UserCellsArray[indexPath.section]
switch cellInfo {
case .userInfo: return 104
case .ubio:
let cell = tableView.dequeueReusableCellWithIdentifier(cellInfo.description, forIndexPath: indexPath) as! UserProfileTableViewCell //error
let oldHeight = cell.userBio.frame.size.height
cell.userBio.text = self.bio
var bodyframe = cell.userBio.frame
bodyframe.size = cell.userBio.contentSize
let newHeight = cell.userBio.contentSize.height
return tableView.rowHeight - oldHeight + newHeight
}
}

最佳答案

这是你需要做的:

  1. 需要在您的单元格中使用自动布局并为 UILabel 设置适当的约束。由于我们要调整 UILabel 的大小以适合其设置的文本,因此我们将行数值设置为 0。然后将前导、尾随、底部和顶部约束设置到 UILabel。请在此处查看屏幕截图:

    Lines as 0 enter image description here

  2. 在您的 TableView Controller > viewDidLoad 中调用这两行:

      tableView.estimatedRowHeight = 50.0  //Give an approximation here
    tableView.rowHeight = UITableViewAutomaticDimension

    并实现委托(delegate)方法:

     override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat{
    return UITableViewAutomaticDimension
    }

关于ios - 如何支持使用 UILabel 自动调整 UITableViewCell 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34348555/

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