swift: TableViewCell не обновляет ограничения до прокрутки - PullRequest
0 голосов
/ 06 марта 2019

У меня есть tableviewCell, содержащая 2 метки.Правый имеет фиксированную ширину и задний интервал для супервизора, а левый - фиксированный начальный интервал для супервизора и трейлинг к правой метке.Иногда мне нужен только левый ярлык, и в этом случае я хочу, чтобы левый имел фиксированный конечный пробел вместо супервизора.Итак, я создал второе неактивное ограничение и сделал это в своем коде:

if(entry.right.isEmpty) {
    tableCell?.longConstraint.isActive = true
    tableCell?.shortConstraint.isActive = false        
    tableCell?.rightLabel.isHidden = true
} else {
    tableCell?.longConstraint.isActive = false
    tableCell?.shortConstraint.isActive = true
    tableCell?.rightLabel.isHidden = false
}

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

Ответы [ 2 ]

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

Попробуйте добавить этот код после программной корректировки ограничений

tableCell?.setNeedsLayout()
tableCell?.layoutIfNeeded()

Надеюсь, что это работает

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

Для простоты вы можете встроить их в горизонтальное UIStackview и установить

self.rightlb.isHidden = true

, и оно автоматически исчезнет без ширины, также в вашем текущем коде убедитесь, что

tableCell?.layoutIfNeeded()

после изменения ограничений

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