swift 3:UITable cell multiple lines问题

时间:2017-05-14 18:01:18

标签: xcode swift3 cell

因此,我尝试为合适的单元格详细信息创建多行文本,但是当我设置cell.numberOfLines = 0时,我得到多行,但没有正确的单元格间距。我也尝试过调用cellAutoDimentions,但没有区别

    cell.detailTextLabel?.numberOfLines = 0

我在程序中运行该代码时得到以下结果

enter image description here

正如你可以看到文本如果被推出单元格的边界,在这种情况下我谈论的是顶部和底部而不是右边,这个问题我知道如何通过改变的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


}

1 个答案:

答案 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
}