因此,我尝试为合适的单元格详细信息创建多行文本,但是当我设置cell.numberOfLines = 0时,我得到多行,但没有正确的单元格间距。我也尝试过调用cellAutoDimentions,但没有区别
cell.detailTextLabel?.numberOfLines = 0
我在程序中运行该代码时得到以下结果
正如你可以看到文本如果被推出单元格的边界,在这种情况下我谈论的是顶部和底部而不是右边,这个问题我知道如何通过改变的CGRect。此外,代码不允许超过2行
更新:
以下是我的代码的整个部分
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return itorStorage.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = self.messageField.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! MessageCustomCell
cell.backgroundColor = LightBlue
cell.textLabel?.text = itorStorage[indexPath.row].name
cell.textLabel?.textColor = .white
cell.detailTextLabel?.text = itorStorage[indexPath.row].text
cell.detailTextLabel?.textColor = .white
cell.pic.image = itorStorage[indexPath.row].image
cell.timeStamp.text = itorStorage[indexPath.row].time
cell.detailTextLabel?.numberOfLines = 0
cell.detailTextLabel?.lineBreakMode = .byWordWrapping
return cell
}
override init() {
super.init()
messageField.delegate = self
messageField.dataSource = self
messageField.tableFooterView = UIView(frame: CGRect.zero)
messageField.rowHeight = UITableViewAutomaticDimension
messageField.allowsSelection = false
self.messageField.register(MessageCustomCell.self, forCellReuseIdentifier: "Cell")
ratingView.didFinishTouchingCosmos = didTouchCosmos
}
答案 0 :(得分:0)
我认为您需要实施estimatedHeightForRowAt
以及将rowHeight
设置为UITableViewAutomaticDimension
。像这样:
override func viewDidLoad() {
super.viewDidLoad()
tableView.rowHeight = UITableViewAutomaticDimension
}
override func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
return 120.0
}