Переключение ограничения при определенном условии

Настройка: Я разработал UIButton с нижним constraint X, приоритетом 999. В дополнение к этому constraint UIButton также имеет другое constraint Y, приоритет 1000, но этот отмечен как installed = false .

Y связан с @IBOutlet в моем UIViewController с сильной ссылкой.

On viewDidLoad() : Если заданное условие является истинным, я активирую constraint Y, выполняя Y.isActive = true , а затем view.layoutIfNeeded() , который в конечном итоге вызывает updateConstraints() если это необходимо. Если условие ложно, я ничего не делаю.

Мое ожидание: когда условие истинно, я ожидаю, что представление применит constraint Y к кнопке и отбросит X. Когда условие ложно, я ожидаю, что UIButton будет иметь только constraint X.

Результат: похоже, что constraint Y не применяется вообще, даже если условие выполнено.

Я был бы признателен за любые мысли по этому поводу, это для меня кажется чем-то, что должно работать.

Благодарю.

PS Я использую быстро, но я не против, если предоставленный ответ находится в Obj-C.

One Solution collect form web for “Переключение ограничения при определенном условии”

Кажется, что ошибка при использовании IB, когда установка свойства ограничения как деинсталлированного не всегда будет работать должным образом, как «неактивная», но скорее будет создавать проблемы при активации / деактивации данного ограничения.

В качестве обходного пути всегда указывайте ограничения как установленные, но для тех ограничений, которые должны быть неактивными при загрузке, перейдите к атрибутам проверки идентификатора / пользователя, заданным пользователем, и добавьте «active» в качестве логического значения в false (unchecked)

Здесь найдено решение: https://stackoverflow.com/a/33079428/691868

  • Применение физики Box2D к UIView против CALayer
  • Перемещение текстового поля вверх, когда клавиатура закрывает его
  • Многострочный UILabel с настройкамиFontSizeToFitWidth
  • Что происходит с поддерживаемой ячейкой очереди UICollectionView при получении предупреждения о памяти?
  • Преобразование обновления UIDynamicItem вручную
  • Подкласс NSTextStorage вызывает сбои в ссылке доступа
  • Что произойдет, если пользователь закроет приложение, которое уже находится в фоновом режиме?
  • Использование свойств аннотации UIDocumentInteractionController
  • Переопределение устаревших методов UIKit. Могу ли я получить предупреждение?
  • UIStackView Скрыть вид анимации
  • Что именно делает параметр bool в animateWithDuration: анимация: завершение:
  • Interesting Posts

    Автозаполнение в IOS Xamarin

    Внешний вид UINavigationBar и ошибка в Facebook-Sheet

    Можем ли мы использовать речевую структуру во время видеосъемки?

    Карты Google в iOS6

    iOS7 Инструмент выбора раскадровки не работает :(

    Как я могу использовать сегментированный элемент заполнения пространства на панели инструментов в приложении iOS?

    Как определить, какой EKevent был изменен

    Обнаружение, когда вы находитесь в / из основного потока в Xamarin.iOS

    Swift – – : непризнанный селектор, отправленный в экземпляр 0x104fb1420

    Разница IOS в использовании компактных обычных и компактных классов любого размера

    UISearchController сохраняется после segue

    Добавление слоя камеры на изображения неправильной формы IOS

    Для сохранения в iOS App Store вам нужно добавить учетную запись Apple id, которая зарегистрирована в программе разработчика ios для команды разработчиков

    Сохранение устройства SecKeyRef создало пару открытых / закрытых ключей на диске

    Несколько вызовов веб-службы на одном и том же устройстве viewController iphone

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.