Пользовательский UITableViewCell обновляет ограничения из файла XIB при вращении
Так что я подкласс UITableViewCell и есть соответствующий файл XIB для него.
Для простоты скажем, у меня есть 3 UILabel
с рядом.
Все они имеют интервал 8 друг к другу и изменяются в соответствии с его содержимым, кроме первого, который занимает оставшееся пространство в ячейке.
Первая метка (Label1) имеет ограниченные пробелы для других меток и суперпредставления. Эти ограничения имеют свои Installed
свойство не проверено и связано с моим подклассом через IBOutlet
s.
Визуально это может выглядеть так:
[Label1] - Интервал - [Label2] - Интервал - [Label3]
В зависимости от отображаемых данных, право 2 UILabel
s могут быть скрыты. Если первый скрыт, он должен выглядеть так:
[Label1] - Интервал - [Label3]
Сокрытие этикетки сделано в tableView:cellForRowAtIndexPath:
в котором я также вызываю метод для установки соответствующего ограничения из xib-файла, к которому можно получить доступ через IBOutlet
, Это работает отлично. Но при повороте устройства ограничения перезагружаются из xib-файла, в котором нет ограничений. Installed
, но updateConstraints
не вызывается снова на моем UITableViewCell
Подкласс, все портит.
Один из способов исправить это - вместо вызова метода, который устанавливает соответствующее активное ограничение, в tableView:cellForRowAtIndexPath:
я мог бы позвонить в layoutSubviews
в моем UITableViewCell
-subclass. Но я думаю, что вы не должны обновлять ограничения в layoutSubviews
,