когда UITableViewCell макет и ограничения становятся окончательными? - PullRequest
0 голосов
/ 04 марта 2019

У меня есть метка в TableViewCell, и я установлю ее текст, бросая переменную в ячейку (например, myText), например так:

class ProjectManagementTableViewCell: UITableViewCell {
    @IBOutlet weak var myLabel: UILabel!

    var myText: String? {
        didSet {
            if let _myText = self.myText {
                self.myLabel.text = _myText
            } else {
                self.myLabel.text = ""
            }
        }
    }

    override func awakeFromNib() {
        super.awakeFromNib()
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    }
}

Я не исправил размер ширины myLabel в InterfaceBuilder,поэтому я ожидаю, что он получит изменение размера в соответствии с текстом, полученным из функции cellForRowAt.все хорошо до сих пор.но я хочу, чтобы ширина метки была меньше некоторого значения, и кроме этого у меня есть изображение, которое я хочу на расстоянии 10 пунктов от конца текста метки.поэтому мне нужно иметь доступ к ширине метки или позиции элементов UIE после того, как они будут переставлены в ответ на назначение текста метке.Я пробовал несколько мест, чтобы найти, когда я могу получить доступ к новым значениям для позиций кадра, но у меня не получилось, например, awakeFromNib и didSet of myText.поэтому, когда я могу получить доступ к конечным значениям фреймов и ограничений в UITableViewCell?

1 Ответ

0 голосов
/ 04 марта 2019

На самом деле вам не нужно

var myText: String? {
    didSet {
        if let _myText = self.myText {
            self.myLabel.text = _myText
        } else {
            self.myLabel.text = ""
        }
    }
}

, просто присвойте текст внутри

let cell = //
cell.lbl.text = "text_here"

или создайте функцию конфигурации внутри пользовательского класса ячеек и вызовите его

размер метки изменится в соответствии с текущими ограничениями

и конечные кадры внутри

override func layoutSubviews()
   super.layoutSubviews()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...