Вы можете сделать это с помощью кругового Greater-чем или равной ширине ограничений:
@"H:|[locationLabel(>=websiteLabel)]-5-[location]|"
@"H:|[websiteLabel(>=remarksLabel)]-5-[website]|"
@"H:|[remarksLabel(>=locationLabel)]-5-[remarks]|"
![Labels with applied constraints](https://i.stack.imgur.com/ld6be.png)
(извините за странные цвета :))
UPDATE: Я «Мы просто проверили простые« равные »круговые ограничения, и они работают и в моем случае. Тем не менее, я думаю, что «равные» ограничения не указывают «основной» ярлык каким-либо образом, они просто указывают, что метки должны быть равны. И если все они равны наименьшей метке, это тоже прекрасно. Поэтому в «равном» случае это, вероятно, зависит от порядка ограничений.
Теперь давайте рассмотрим две гипотетические метки («Ярлык» и «Метка ярлыка» (LL для краткости)), которые связаны с помощью ограничений «> =».
Предупреждение: следующий текст - это просто предположение, я никогда не видел реальной реализации автоопределения. Я просто знаю, что он использует сложную систему линейных уравнений, чтобы найти решение, которое удовлетворяет всем ограничениям как можно ближе.
Механизм автоотключения (AE) берет первый ярлык и делает его как можно меньшим из-за обнимания содержимого. На данный момент LL игнорируется. Затем AE берет вторую метку. В случае равных ограничений он должен был бы сделать его коротким, как и первые метки, потому что первая метка уже обработана. Но в случае ограничения «> =» AE может сделать вторую метку более длинной. Однако теперь это влияет на ограничение «L> = LL», и AE должен вернуться к L и обработать его еще раз, используя новые данные (в случае ограничения «==» это остановится уже, потому что не возникло конфликтов) , Единственное решение теперь состоит в том, чтобы сделать первый ярлык длиннее, что делает AE, потому что он не вносит никаких конфликтов.
Таким образом, в нескольких итерациях AE заканчивается тем, что все метки имеют одинаковую ширину (ширину самой длинной метки).
Попробуйте, как это '@ "H: | [locationLabel (== websiteLabel)] - 5- [место] |"' – Gandalf
Пробовали, документы говорят, что они необязательно в этом случае, и это не сработало тот же результат, что и без – Haagenti
ooops, пропустил очко. Это не будет работать, если вы не укажете ширину по крайней мере одного конкретного элемента в горизонтальном направлении. Скажем, «locationLabel» и «location» распространяются по всему экрану по горизонтали. Теперь система не знает, что каждая из них имеет ширину. 'locationLabel' может быть равна ширине' websiteLabel' или 'remarksLabel', но не имеет разрешаемой ширины во время выполнения. Поэтому либо решите, что как «locationLabel», так и «location» также будут иметь одинаковую ширину или какое-либо конкретное отношение, или при условии, что любая из них имеет фиксированную ширину. Это должно решить. – Gandalf