Программно добавленная константа не работает

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

Представление было добавлено к доске объявлений для контроллера вида, но на самом деле не добавлено в представление контроллера представления до тех пор, пока оно не появится (см. Снимок экрана ниже).

введите описание изображения здесь

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

@IBOutlet var loadingView: LoadingView! override func viewDidLoad() { super.viewDidLoad() displayLoadingView(true) } func displayLoadingView(display: Bool) { if display { view.addSubview(loadingView) let widthConstraint = NSLayoutConstraint(item: loadingView, attribute: .Width, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1.0, constant: 50.0) view.addConstraint(widthConstraint) } } 

2 Solutions collect form web for “Программно добавленная константа не работает”

set translatesAutoresizingMaskIntoConstraints = false для любого представления, которое вы устанавливаете ограничениями программно.

из яблочного документа :
translatesAutoresizingMaskIntoConstraints

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

Вы не устанавливаете все необходимые ограничения, и это может быть причиной. Рассмотрим следующий пример. Интерфейс MyView определен в автономном xib-файле. Надеюсь, поможет:

  class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() guard let myView = loadFromNib("MyView") else { return } view.addSubview(myView) myView.translatesAutoresizingMaskIntoConstraints = false view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-15-[myView]-15-|", options: NSLayoutFormatOptions.DirectionLeadingToTrailing, metrics: nil, views: ["myView": myView])) view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-15-[myView]-15-|", options: NSLayoutFormatOptions.DirectionLeadingToTrailing, metrics: nil, views: ["myView": myView])) } func loadFromNib(cls: String) -> UIView? { return NSBundle.mainBundle().loadNibNamed(cls, owner: nil, options: nil)[0] as? UIView } } 
  • Внутренняя ошибка автоматической компоновки при удалении представления
  • Странная ошибка UIView-Encapsulated-Layout-Height
  • Ограничения не работают при изменении размера UIView через анимацию
  • UITableView при изменении ограничения, влияющего на высоту ячейки после удаления, заканчивается сломанными ограничениями
  • Анимация кадра UIView с ограничениями
  • Ограничения на UIScrollView с подкачкой
  • iOS 8 - Найти ограничения для UIView с идентификатором
  • Как создать автоматический макет с существующим пользовательским представлением с несколькими подзонами в iOS 6
  • Горизонтальное ограничение не работает корректно в UIScrollView. (программные ограничения)
  • Добавление ограничения в UITableVIEW headerview
  • Ограничения UIStoryboard на UIView
  • Как установить ограничение верхнего пространства для конкретного устройства в iOS?
  • Interesting Posts

    Ошибка Xcode 7 каждый раз, когда я пытаюсь распечатать что-то в консоли отладчика

    Данные HealthKit недоступны в фоновом режиме

    Быстродействующий код: как запустить определенный контроллер представления после получения удаленного push-уведомления

    Показать 2 страницы PDF в режиме ландшафта

    heightForHeaderInSection не получает вызов?

    Когда вам нужно связать Frameworks и библиотеки с проектом XCode?

    CocoaPods с XCode 6.0.1 – Как я могу исправить рамы Pods, появляющиеся в красном?

    как эффективно и динамично менять значение словаря словаря

    IOS: установка языка по умолчанию в xcode для моего приложения

    как сохранить мои значения uitextfield в viewController, когда я звоню?

    Как они делают эти фантастические экраны Splash?

    Добавление профиля создания нового устройства в существующий проект

    Как вы имитируете и тестируете Обновление приложения на Android и iphone?

    iOS – Facebook – вы должны обновить это приложение до Graph API v2.x

    Не удалось выполнить компиляцию для iOS 10 после Sierra Update

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