Завершение приложения из-за неотображенного исключения «NSInvalidArgumentException», причина: Неизвестный атрибут макета '

Im пытается добавить ограничение программно на кнопку внутри UIView :

 let constraint = NSLayoutConstraint(item: arrowButton, attribute: NSLayoutAttribute.LeadingMargin, relatedBy: NSLayoutRelation.Equal, toItem: self, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1, constant: 10) arrowButton.addConstraint(constraint) 

Я хочу, чтобы главный край кнопки был 10 из левого поля представления. Этот код запускается внутри представления, поэтому self – это представление. Приведенный выше код дает ошибку:

 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** +[NSLayoutConstraint constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:]: Unknown layout attribute' 

Что я делаю не так?

NSLayoutAttribute.NotAnAttribute ,

Я думаю, что здесь проблема. Вы передаете NotAnAttribute

Кроме того, это должно быть self.addConstraint(constraint)

NSLayoutAttributeNotAnAttribute:

Значение заполнитель, которое используется для указания того, что второй элемент и второй атрибут ограничения не используются в каких-либо вычислениях. Используйте это значение при создании ограничения, которое присваивает константу атрибуту. Например, item1.height> = 40. Если ограничение имеет только один элемент, установите второй элемент в nil и установите второй атрибут в NSLayoutAttributeNotAnAttribute.

У вас есть два элемента: arrowButton и self , но вы указываете NSLayoutAttributeNotAnAttribute говоря, что мне нужен только один элемент. Вот почему он потерпел неудачу.

Я предлагаю вам использовать storybard или xib, чтобы сначала практиковать автомат, почувствовав, как он работает, и затем начните его кодировать. Вы явно неправильно понимаете автоматическую компоновку. Если вы определяете отношение макета двух представлений, то NSLayoutAttributeNotAnAttribute никогда не будет действительным для использования.

  • Когда видео воспроизводится с использованием AVPLayer, оно останавливает фоновые музыкальные файлы ios
  • Анимация текста UIButton для зажимания и фиксации не работает
  • Как передать строку с помощью NSNotificationCenter?
  • Как проверить приложение установлено или нет в телефоне
  • Страница камеры Instagram
  • Делегирование между двумя ViewControllers без segues
  • Перейти ко второму viewController без segues
  • Как вызвать UICollectionView, встроенный в жесты салфетки, из режима «Жест» в представлении? (желательно в быстрой)
  • Быстрая высота изображения
  • Как программно изменить имя приложения iOS?
  • Создание пользовательской клавиатуры внутри приложения не внешнего
  • Interesting Posts

    Макет для преобразования макета с нетривиальным вариантом использования UICollectionView

    Как уменьшить размер аудиофайла, когда я сохраняю его из библиотеки аудио iphone в папку моего приложения?

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

    Загрузочная строка NSKeyedUnarchiever запускает крах приложения

    Как сделать Text Shadow в ios

    Отображать аннотации для объекта 3D-модели на iOS

    Как использовать пользовательские файлы шрифтов с пространством в именах файлов

    Дайте пользователю бесплатную оплату в приложении

    swift Экспортировать анимацию CAShapeLayer в gif

    Протокол / делегат не работает

    Лучшая практика для вызова метода программно, где методName – (void) animatePageX, где x = 1 через 25

    Автоматическая компоновка для программно добавленных UIViews

    Предотвращение сбоев при подклассификации PFUser

    Раскадровка для разработки заставки

    Сохранить изображение из сканера штрих-кода iOS 7

    Давайте будем гением компьютера.