Что я пытаюсь сделать: Я пытаюсь использовать ограничения автоопределения, чтобы динамически показывать/скрыть виды, но я хочу, чтобы представления эффективно занимали 0 при скрытии (поэтому нормальное скрытое свойство мне не полезно).Невозможно установить множитель автоопределения iOS в ноль
подход: Я программно делать все мое расположение с помощью NSLayoutConstraints (примечание, используя Xamarin C#, а не Objective C), так что я пытаюсь программно переключаться между набором «видимых» ограничений (нормальное расположение , это всегда работало нормально) и «скрыть» ограничения, которые устанавливают ширину и высоту в ноль.
Я делаю некоторые базовые тесты, где я могу удалить ограничение ширины, а затем установить новый, чтобы делать все, что захочу. Но, когда я пытаюсь определить (не говоря уже о добавлении к представлению) ограничение с множителем и константой нуля, множитель в NSLayoutConstraint волшебным образом изменится на 1. Например, мое ограничение на скрытую ширину определяется как:
NSLayoutConstraint c1 = NSLayoutConstraint.Create(view, NSLayoutAttribute.Width, NSLayoutRelation.Equal, null, NSLayoutAttribute.NoAttribute, 0f, 0f);
Я проверяю ограничение c1
, множитель равен 1, а константа равна 0. view
- это представление, к которому я добавляю ограничение (UIButton
в этом случае).
Вопрос: Можно ли установить множитель ограничений автоопределения в 0? Если да, есть ли что-то особенное в отношении UIButton
, что мешает мне это делать? В идеале, я хотел бы иметь возможность сделать это шоу/скрыть практически для любого UIView
.
Ах, поэтому со вторым элементом (представлением), который является «null» и вторым атрибутом «NoAttribute», множитель 1 и константа 0 эффективно вычисляет ширину до 0? Мне это кажется странным, особенно если оно эффективно приравнивается к 0, почему бы просто не дать мне поставить 0! Я сделаю это. – Camputer
В iOS 7 существовали допустимые условия, которые были запрещены в 8. Множители 0, выравнивая левые края к передним краям, два имени два. – MongoTheGeek
Цветение раздражает вместе с предотвращением мультипликативной анимации/настройки – Sam