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

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

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

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

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

@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 } } 
  • Swift: удалить ограничения, которые влияют на UIView или подключаются к нему?
  • Горизонтальное ограничение не работает корректно в UIScrollView. (программные ограничения)
  • Добавить «Вертикальный интервал» программно в быстром
  • Как скрыть UIView и удалить «пустое» пространство? -iOS / MonoTouch
  • Можно ли установить высоту и ширину UIView программно, не устанавливая источник?
  • Значения уравнения ограничения iOS
  • AVPlayerViewController - нет автоматической компоновки - невозможно одновременное удовлетворение ограничений.
  • Просмотр не обновляется после изменения автоматических ограничений компоновки
  • Swift - UITableViewCell класс contentView программные ограничения не имеют ширины
  • UITextView не отображается в UIScrollView
  • Ограничения, не работающие с UITextView
  • Interesting Posts

    Как программировать пользовательские действия UITableviewrowaction в uitableviewcell?

    Почему splitViewController: collapseSecondaryViewController: onPrimaryViewController: не вызывается на iPhone 6 Plus?

    Как вы используете строку синтаксического анализа в swift?

    void (^) (NSData *), что это значит?

    Использование делегатов для передачи данных из одного TableView в другое

    Переключение контроллеров просмотра без контроллера навигации

    iOS CoreBluetooth: сохранение и восстановление состояния

    AFNetworking и фоновые переводы

    Переопределить метод init UIView в swift

    анимация масштабирования ios CATransform3DMakeScale

    Bluetooth Speaker Воспроизведение и управление с использованием возможности Dual Mode в устройстве iOS? без использования протокола iAP

    на iOS, как я могу сместить navigationItem.leftBarButtonItem по горизонтали вправо?

    Неизвестное имя типа «AFNetworkReachabilityStatus», RestKit внезапно перестает работать

    Переходный делегат для анимации UITabBarController

    Несколько пользовательских типов ячеек на таблицу UITableView (iPhone)

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