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