Невозможно программно установить множитель NSLayoutConstraint в swift … "Невозможно присвоить результат этого выражения

Я пытаюсь программно установить ограничение для множителя в swift, и когда я устанавливаю значение, он просто дает мне ошибку: «Невозможно назначить результат этого выражения» …

Я объявил NSLayoutConstraint с IBOutlet, а затем установил множитель, как и я с константой для другого, который отлично работает, но этот не примет его …

@IBOutlet weak var clockWidthConstraint: NSLayoutConstraint! override func updateViewConstraints() { super.updateViewConstraints() confirmTopConstraint.constant = 40.0 clockWidthConstraint.multiplier = 0.1 // Gives me the error! } 

Есть идеи?

One Solution collect form web for “Невозможно программно установить множитель NSLayoutConstraint в swift … "Невозможно присвоить результат этого выражения”

Да, это только чтение:

 var multiplier: CGFloat { get } 

Вы можете указать множитель только во время создания. Напротив, вы можете изменить свойство постоянной constant во время выполнения:

 var constant: CGFloat 

Редактировать:

Это требует немного усилий, но для изменения неизменяемых свойств вам необходимо создать новое ограничение и скопировать все, кроме свойства, которое вы хотите изменить. Я продолжаю разыгрывать разные методы для этого, но в настоящее время я изучаю эту форму:

 let constraint = self.aspectRatioConstraint.with() { (inout c:NSLayoutConstraint.Model) in c.multiplier = self.aspectRatio } 

или используется в более реалистичном контексте:

 var aspectRatio:CGFloat = 1.0 { didSet { // remove, update, and add constraint self.removeConstraint(self.aspectRatioConstraint) self.aspectRatioConstraint = self.aspectRatioConstraint.with() { (inout c:NSLayoutConstraint.Model) in c.multiplier = self.aspectRatio } self.addConstraint(self.aspectRatioConstraint) self.setNeedsLayout() }} 

Если код поддержки:

 extension NSLayoutConstraint { class Model { init(item view1: UIView, attribute attr1: NSLayoutAttribute, relatedBy relation: NSLayoutRelation, toItem view2: UIView?, attribute attr2: NSLayoutAttribute, multiplier: CGFloat, constant c: CGFloat, priority:UILayoutPriority = 1000) { self.firstItem = view1 self.firstAttribute = attr1 self.relation = relation self.secondItem = view2 self.secondAttribute = attr2 self.multiplier = multiplier self.constant = c self.priority = priority } var firstItem:UIView var firstAttribute:NSLayoutAttribute var relation:NSLayoutRelation var secondItem:UIView? var secondAttribute:NSLayoutAttribute var multiplier:CGFloat = 1.0 var constant:CGFloat = 0 var priority:UILayoutPriority = 1000 } func priority(priority:UILayoutPriority) -> NSLayoutConstraint { self.priority = priority; return self } func with(configure:(inout Model)->()) -> NSLayoutConstraint { // build and configure model var m = Model( item: self.firstItem as! UIView, attribute: self.firstAttribute, relatedBy: self.relation, toItem: self.secondItem as? UIView, attribute: self.secondAttribute, multiplier: self.multiplier, constant: self.constant) configure(&m) // build and return contraint from model var constraint = NSLayoutConstraint( item: m.firstItem, attribute: m.firstAttribute, relatedBy: m.relation, toItem: m.secondItem, attribute: m.secondAttribute, multiplier: m.multiplier, constant: m.constant) return constraint } } 
  • NSLayoutConstraints и динамическая установка ширины / высоты представления
  • Перемещение представлений с ограничениями
  • Программные проблемы анимации NSLayoutConstraint
  • Как удалить ограничения из всех подзонов внутри моего супервизора?
  • iOS: addConstraints: сбой приложения
  • Переключение ограничения при определенном условии
  • Определите НОВЫЙ кадр навигационной панели ПЕРЕД НАЧАЛОМ фактического вращения - iOS
  • Черный экран после настройки translatesAutoresizingMaskIntoConstraints к NO
  • iOS 7: Рамка замедленного просмотра для «Ярлык-этикетка» будет отличаться во время выполнения
  • Преимущества установки Constraints vs Настройка фреймов UIViews
  • Добавить ограничение, не указанное в меню «Редактор» в Xcode
  • Interesting Posts

    Невозможно экспортировать аудиофайлы через «открыть в:» из приложения Voice Memos

    Поворот и обрезка изображения IOS

    Core Bluetooth замедляется при отправке пакетов

    UILocalNotification dosen't запрашивает после 10 минут в фоновом режиме

    Ошибка Xcode 7: «Отсутствует идентификатор подписки на распространение iOS для …»

    Тестирование восстановления iCloud с помощью тестового приложения

    Веб-старт Java на iPad

    Использование протоколов в виде типов массивов и функциональных параметров в быстрых

    Как объявить рекурсивные перечисления с помощью Swift 2.0

    Как реализовать экран входа в систему iOS, который отображается только для пользователей, не прошедших проверку подлинности

    iPhone Objective C – wait_fences: не удалось получить ответ: 10004003

    Понимание БПФ в aurioTouch2

    Линии сглаживания при использовании CATransform3DRotate

    Как создать файл Cartfile? Или легко добавить фреймворки в ваше приложение?

    Навигация по фрагментации старых / новых устройств iOS

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