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

Настройка: Я разработал 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

  • Как вращать UIView вокруг его надлежащего центра без искажений / перекосов
  • Как перевести OpenGLES modelView в CATransform3D?
  • Как создать стандартную кнопку для доступа к iOS?
  • Как я могу сделать UITableView с большим заголовком VoiceOver совместимым?
  • Как загрузить UIImage из файла без кеширования в Monotouch?
  • - игнорирует вертикальное смещение
  • Недостатки использования CGMutablePathRef?
  • добавить изображение в ячейку uitableview
  • UIKit Dynamics изменяет структуру представления с коллизиями
  • UIGraphicsGetImageFromCurrentImageContext утечка памяти с предварительным просмотром
  • UIDocumentInteractionController - Изменение фона Цвет и предотвращение всплывающего окна состояния
  • Как вы получаете доступ к полю userLabel компонентов компоновщика интерфейса в Xcode?
  • Interesting Posts

    Преобразование из NSDate в NSString с переносом основной базы данных по атрибуту Не отображает строку надлежащим образом

    Как осуществляется выравнивание линии UILabels?

    Форматирование текста для текста аккорда и песни Textview или UiLabel Swift

    Арифметика быстрых указателей и разыменование; преобразование некоторого C-подобного кода карты в Swift

    Предварительный просмотр камеры OpenCV на iOS растянулся

    CTFramesetterSuggestFrameSizeWithConstraints: какие атрибуты могут быть установлены?

    индексирование с использованием sectionIndexTitlesForTableView при наличии нескольких разделов

    Я хочу месяц в трех алфавитном формате, но МММ возвращает номер месяца с «М» в начале в iOS UIDatePicker

    Только один результат, показанный в тестовой панели Game Center – нормально?

    Переопределение представления объема в iOS

    Выделяемая текстура CAMetalLayer является странной на некоторых устройствах

    iPad Full Screen Modal View через TabBarController?

    При экспорте приложения из xcode не найдено соответствующих профилей подготовки

    Создание пользовательской международной клавиатуры для iPhone

    Кордова – Включите «Кодовый знак при копировании» для рамки iOS в файле plugin.xml

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