Удерживать текст в определенном месте, а затем динамически перемещать его, если это необходимо - PullRequest
0 голосов
/ 15 января 2019

Я делаю UITableView с двумя метками. Я ограничил secondLabel до +12 от firstLabel, то есть он будет двигаться вдоль , если firstLabel содержит много текста. Однако это означает, что если firstLabel почти не содержит текста, secondLabel переместится назад . Что я могу сделать, чтобы сделать эту работу?

Я бы хотел, чтобы это отреагировало так:

secondLabel остается на месте, несмотря на то, что в firstLabel:

очень мало текста
_________________________________________________________
|                                                        |
|  [abc]        [secondLabel]                            |
|________________________________________________________|

secondLabel движется вперед из-за firstLabel с большим количеством текста для отображения:

__________________________________________________________
|                                                        |
|  [extralongfirstLabel] [secondLabel]                   |
|________________________________________________________|

Тексты firstLabel и secondLabel будут иметь различное количество текста. firstLabel ведущая сторона должна быть ограничена полем SuperView. secondLabel будет поддерживать расстояние 12 от передней стороны firstLabel, но затем останется 56,5 от SuperView, если не ограничивать firstLabel (когда он содержит мало текста).

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

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

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Итак, для первой метки установите ведущее ограничение, равное супервизору с константой, как вы хотите.

Теперь для второй метки установите два ведущих ограничения.

  1. Один равен трейлинг-ограничению первой метки с некоторым статическим константа (означает отношение равно ) и с более низким приоритетом (установите его приоритет ниже, чем для второго ведущего ограничения, например 999)

    enter image description here

  2. Второе, равное ведущему ограничению супервизора отношение больше или равно

enter image description here

Ограничения:

enter image description here


Результат: enter image description here

enter image description here

0 голосов
/ 15 января 2019

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

Во-первых, обязательное (приоритет 1000) ограничение больше или равно для размещения переднего края второго ярлыка в 12 точках от заднего края первого ярлыка.

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

Когда второе ограничение нарушено, первое ограничение будет контролировать расстояние между метками.

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