Настройка UITableViewCell с большим количеством текста внутри - PullRequest
0 голосов
/ 02 мая 2018

Я делаю пользовательский UITableViewCell, в котором я должен ввести три текстовых поля, теперь проблема заключается в том, что поле с именем Descirizione действительно очень широкое, и я должен найти способ показать все три поля! это также создает проблему при отображении поля Prezzo , которое перемещается, когда поле Descrizione очень большое.

Изображение отображаемого текста ниже

enter image description here

CustomTableViewCellArticolo.swift

import UIKit
import Foundation

class CustomTableViewCellArticolo: UITableViewCell {

    let labCodArt = UILabel()
    let labDescrizione = UILabel()
    let labPrezzo = UILabel()

    override init(style: UITableViewCellStyle, reuseIdentifier: String?) {

        super.init(style: style, reuseIdentifier: reuseIdentifier)

        labCodArt.translatesAutoresizingMaskIntoConstraints = false
        labDescrizione.translatesAutoresizingMaskIntoConstraints = false
        labPrezzo.translatesAutoresizingMaskIntoConstraints = false

        contentView.addSubview(labCodArt)
        contentView.addSubview(labDescrizione)
        contentView.addSubview(labPrezzo)

        let viewsDict = [
            "CodArt": labCodArt,
            "Descrizione": labDescrizione,
            "Prezzo": labPrezzo,
        ] as [String: Any]

        contentView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:[Prezzo]-15-[Descrizione]", options: [], metrics: nil, views: viewsDict))
        contentView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-[CodArt]-5-[Descrizione]-|", options: [], metrics: nil, views: viewsDict))
        contentView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-[CodArt]-|", options: [], metrics: nil, views: viewsDict))
        contentView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-[Descrizione]-[Prezzo]-|", options: [], metrics: nil, views: viewsDict))
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

UIViewController.swift

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    TableViewArticoli.beginUpdates()
    let cell = TableViewArticoli.dequeueReusableCell(withIdentifier: "MyCell", for: indexPath) as! CustomTableViewCellArticolo
    cell.labCodArt.text = filteredData[indexPath.row].CodArt
    cell.labDescrizione.text = filteredData[indexPath.row].Descrizione
    cell.labPrezzo.text = " € \(filteredData[indexPath.row].Prezzo!)"
    TableViewArticoli.endUpdates()
    return cell
}

1 Ответ

0 голосов
/ 02 мая 2018

Сразу после этой строки:

contentView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-[Descrizione]-[Prezzo]-|", options: [], metrics: nil, views: viewsDict))

Добавить эту строку:

labPrezzo.setContentCompressionResistancePriority(UILayoutPriority.required, for: .horizontal)
labDescrizione.adjustsFontSizeToFitWidth = true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...