Установить приоритет для UIStackView iOS - PullRequest
0 голосов
/ 09 апреля 2019

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

enter image description here

Это мой StackView

enter image description here

1 Ответ

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

Вот пример, следующий за тем, что вы хотите:

enter image description here

Во-первых, UIStackView действительно усложнит ситуацию, потому что мы хотимнастроить расстояние между каждой меткой.Я просто использовал начальные и конечные ограничения для размещения каждой метки в строке.

Хитрость заключается в том, чтобы установить правильный приоритет сопротивления сжатию контента и приоритет объятия контента для каждогоэтикетка.Во-первых, мы хотим, чтобы 0s всегда соответствовал размеру его контента, поэтому мы устанавливаем приоритет сопротивления сжатию контента на 1000. Приоритет объятия контента может оставаться по умолчанию равным 250.

Я такжеразделите знак @ на его собственную метку, поскольку мы всегда хотим, чтобы он появлялся.Установите для него приоритет сопротивления сжатию контента на 1000 и оставьте приоритет объятия контента равным 250.

Далее, для shrink_label мы установили приоритет сопротивления сжатию контента на 749, а приоритет объятия контента на1000. То есть, мы хотим, чтобы shrink_label никогда не пытался расти больше, чем его размер текстового содержимого, и мы хотим, чтобы он позволял сжимать его содержимое, если нам нужно.

Наконец,для laaabel мы устанавливаем приоритет объятия контента равным 1000, а приоритет сопротивления сжатию контента - 750. Таким образом, метка будет занимать столько места, сколько может, и, поскольку ее приоритет сопротивления сжатию на 1 вышечем shrink_label , shrink_label будет сжиматься до laaabel .

Вы можете прочитать о сжатии контента и обнимании контента в Appleдокументы здесь:

https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/AutolayoutPG/ViewswithIntrinsicContentSize.html

Полный исходный код для моего примера приложения доступен здесь:

https://github.com/elliotfiske/StackOverflowContentHuggingExample

...