Активировать ограничения в uitableviewcell не работает в первый раз

У меня есть следующая иерархия в UITableViewCell.

UITableViewCell
-UIView1
--UILabel1
-UIView2
--UILabel2

Я хочу, чтобы UIView1 был скрыт по высоте, когда UILabel1 не имеет текста. Для этого я взял ограничение высоты 0 для UIView1 с первоначально удаленным состоянием.

Теперь в cellForRowAtIndexPath я активирую это ограничение, когда я проверяю, что строка для Label1 пуста или нет?

Это не работает для первого загрузки ячейки, и когда я просматриваю таблицу, это ограничение применяется. Я использую [cell layoutIfNeeded] после активации ограничений, но, похоже, он не работает здесь для первой загрузки.

Как я могу взломать эту проблему?

1 ответ

Мне удалось решить эту проблему, создав два ограничения и изменив их приоритеты во время выполнения.

Приоритет ограничения происходит в layoutSubviews() подкласса UITableViewCell.

Надеюсь, это поможет!

licensed under cc by-sa 3.0 with attribution.