Выравнивание текста UILabel после поворота с ограничениями автоматического макета - PullRequest
0 голосов
/ 11 апреля 2019

Я пытаюсь получить строку текста, совпадающую с тем, что при повороте является вершиной UILabel. В настоящее время в каждом UICollectionViewCell я устанавливаю поворот этикетки на 180 градусов. Текст метки выровнен по левому краю, однако, как показано на прилагаемом изображении, это не должно иметь никакого значения.

Я не могу установить текст перед выполнением этого из-за UICollectionViewController удаления очереди из ячейки, поэтому в данный момент в конструкторе текст метки не установлен, однако, я предварительно проверил установку его на «AAA» и это не имело никакого эффекта.

label.transform = CGAffineTransform(rotationAngle: CGFloat.pi / 2)
NSLayoutConstraint.activate([
    label.centerXAnchor.constraint(equalTo: centerXAnchor),
    label.bottomAnchor.constraint(equalTo: bottomAnchor, constant: -15)])

Результаты:

enter image description here

1 Ответ

0 голосов
/ 11 апреля 2019

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

Быстрое решение этой проблемы - добавить ограничение ширины для каждой из ваших меток, а затем установить выравнивание текста на .right.

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

Что-нибудь еще, и вам, вероятно, придется переопределить метод рисования и создать подкласс UILabel.

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