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