Как сделать строку таблицы и высоту метки в соответствии с текстом метки в swift? - PullRequest
0 голосов
/ 25 марта 2020

Я делаю экран, связанный с чатом, здесь я поместил вид внутри ячейки табличного вида и метку на виде сбоку.

для вида, и я дал ведущий, трейлинг, верх, низ

для метка, которую я задал ограничениями: ведущий, конечный, верхний, нижний

, но здесь текст ячейки и метки не подходит, иногда для короткого текста ячейка становится большой, а для длинного текста она остается такой же, как и при ее появлении

enter image description here

вот код:

   func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat 
   {
    if indexPath.section==0 {
        if (indexPath.row%2)==0
        {
            let cell:ReceiverChatTableViewCell = (chatTableView.dequeueReusableCell(withIdentifier: "ReceiverChatTableViewCell") as! ReceiverChatTableViewCell?)!

            let font = UIFont(name: "Helvetica", size: 20.0)

            var height = heightForView(text: cell.receiverTextLbl.text!, font: font!, width: 100.0)

            if height<60
            {
                height=60
            }

            return height
        } 
    }

    else
    {
        return 50
    }
    return UITableView.automaticDimension
  }


 func heightForView(text:String, font:UIFont, width:CGFloat) -> CGFloat{
    let label:UILabel = UILabel(frame: CGRect(x: 0, y: 0, width: width, height: CGFloat.greatestFiniteMagnitude))
    label.numberOfLines = 1000
    label.lineBreakMode = NSLineBreakMode.byWordWrapping
    label.font = font
    label.text = text

    label.sizeToFit()

    return label.frame.height
}

пожалуйста, помогите мне решить код.

...