ios - 如何动态设置tableview单元格高度?

标签 ios iphone swift uitableview heightforrowatindexpath

我正在 Swift 中使用 Tableview 现在我遇到了 tableview 单元格高度的问题。我正在聊天屏幕上工作,所以我有文本、图像。所以我拿了一个原型(prototype)单元来管理屏幕。 现在下面是我的高度代码

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    if msg_type == "Image"  {
        return 150
    }else if msg_type == "Text"{
        return UITableViewAutomaticDimension

    }
}

所以文本单元没有达到我的预期,但在这里我不知道我的错误在哪里,还有一件事,如果我返回 UITableViewAutomaticDimension 它对于文本消息而不是图像工作正常。 请帮助我提前致谢。

最佳答案

像这样动态调整高度

1-将其放入 viewDidLoad

     self.tableView.rowHeight = UITableViewAutomaticDimension;
     self.tableView.estimatedRowHeight = 150.0;

2- 在 cellForRow 中返回单元格之前

    cell.layoutSubviews()

    cell.layoutIfNeeded()

3-在单元 xib 或 Storyboard原型(prototype)中从上到下正确 Hook 约束

所以,无论是包含固定高度图像的单元格(如您想要的 150 )还是多行文本,它都会正确布局

4-不要实现 heightForRowAt

关于ios - 如何动态设置tableview单元格高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48113552/

相关文章:

iphone - iOS上的文件关联-从Safari打开纯文本文件

swift - 遍历从 MongoDB 获取的字符串数组

ios - 找不到适用于 iOS PhoneGap 的 PushPlugin

ios - 以编程方式添加的 UIView 的自动布局

javascript - 带有解析的 iOS HTML InnerText

iphone - 核心数据强制自定义映射模型/策略而不是轻量级迁移

iphone - 难以解析包含 '\u00' 等字符的响应

ios - 如何使用 Swift 将字符串连同特殊字符和符号传递到 API 中?

ios - 从货币中删除小数位?

swift - 从 NSInputStream 读取 IntegerType