Мне кажется, что это довольно распространенная парадигма, чтобы показать/скрыть UIViews
, чаще всего UILabels
, в зависимости от бизнес-логики. Мой вопрос: как лучше всего использовать AutoLayout для ответа на скрытые представления, как если бы их кадр был 0x0. Ниже приведен пример динамического списка из 1-3 функций.
Сейчас у меня есть 10px верхнее пространство от кнопки до последней метки, которая, очевидно, не будет скользить, когда ярлык будет скрыт. На данный момент я создал выход для этого ограничения и изменял константу в зависимости от того, сколько ярлыков я показываю. Это, очевидно, немного хаки, так как я использую отрицательные постоянные значения, чтобы нажимать кнопку над скрытыми фреймами. Это также плохо, потому что это не ограничивается действительными элементами макета, просто подлые статические вычисления, основанные на известных высотах/заполнении других элементов, и, очевидно, борьба с тем, для чего был создан AutoLayout.
Я мог бы просто создать новые ограничения в зависимости от динамических ярлыков, но это много микроменеджмента и много многословия для попытки просто свернуть некоторые пробелы. Есть ли лучшие подходы? Изменение размера кадра 0,0 и разрешение AutoLayout делать свою работу без каких-либо ограничений? Полностью удалить взгляды?
Честно говоря, просто изменение константы из контекста скрытого представления требует отдельной строки кода с простым вычислением. Повторное создание новых ограничений с помощью constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:
кажется настолько тяжелым.