Как соответствовать стандартному UITableViewCell X-position / ведущее ограничение в статическом UITableView? - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть статическое представление UITable с 4 ячейками: первая и последняя ячейки являются пользовательскими, а вторая и третья ячейки используют встроенный стиль («Базовый» и «Правая деталь» соответственно).У меня есть следующие ограничения на метку в первой и последней ячейках:

  • label.leading = superview.leading + 20
  • label.Center Y = superview.Center Y

У меня возникают проблемы при сопоставлении ограничений для моих пользовательских меток UITableViewCell с метками UITableViewCell по умолчанию (с использованием встроенных стилей).

Для определенных устройств (например, iPhone XR) положение X меток совпадает для всех четырех ячеек (20):

iPhone XR

Но для других устройств (например, iPhone Xs) положение Xметки не совпадают (16 против 20):

iPhone Xs

Обратите внимание, что позиция X первой и последней ячеек больше (20), чем позициявторая и третья ячейка (16).

Сначала я подумал, что ограничения для ячеек по умолчанию варьируются в зависимости от классов размеров устройства, но iPhone XR и X имеют компактную ширину (wC) и обычная высота (ч).

Любая идея, как я могу соответствоватьОграничения метки моей пользовательской ячейки соответствуют ограничениям метки ячейки UITableView по умолчанию?

1 Ответ

0 голосов
/ 24 февраля 2019

textLabel и detailTextLabel присутствуют даже в подклассах UITableViewCell.Хотя использование textLabel вместо пользовательской метки решило бы проблему с левым полем, по-прежнему существует проблема с UISwitch на правой стороне.

Однако вы можете выровнять свой макет с лидирующим ограничением textLabel и конечный из detailTextLabel.

if let leadingAnchor = cell?.textLabel?.leadingAnchor {
    myLabel.leadingAnchor.constraint(equalTo: leadingAnchor).isActive = true
}

if let trailingAnchor = cell?.detailTextLabel?.trailingAnchor {
    mySwitch.trailingAnchor.constraint(equalTo: trailingAnchor).isActive = true
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...