Если я создаю стандартный UIView let aView = UIView()
и добавлю к нему ограничения, то программа будет отображаться на экране.Пользовательский UIView с использованием ограничений программно
Однако, если я создаю пользовательское представление, которое наследует от UIView class CustomView: UIView
, тогда создайте экземпляр этого представления let aView = CustomView()
и добавьте ему ограничения, вид не появится на экране. Но если я добавлю экземпляр пользовательского представления с фреймом let aView = CustomView(frame: CGRectMake(0,0,100,100))
, появится пользовательское представление.
Вам нужно предоставить кадр для пользовательского представления, чтобы оно отображалось на экране?
Обновлено:
Мои ограничения
let leftConstraint: NSLayoutConstraint = NSLayoutConstraint(item: aView, attribute: NSLayoutAttribute.Left, relatedBy: NSLayoutRelation.Equal, toItem: self, attribute: NSLayoutAttribute.Left, multiplier: 1.0, constant: 50)
let topConstraint: NSLayoutConstraint = NSLayoutConstraint(item: aView, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: self, attribute: NSLayoutAttribute.Top, multiplier: 1.0, constant: 0)
let rightConstraint: NSLayoutConstraint = NSLayoutConstraint(item: aView, attribute: NSLayoutAttribute.Right, relatedBy: NSLayoutRelation.Equal, toItem: self, attribute: NSLayoutAttribute.Right, multiplier: 1.0, constant: 0)
let bottomConstraint: NSLayoutConstraint = NSLayoutConstraint(item: aView, attribute: NSLayoutAttribute.Bottom, relatedBy: NSLayoutRelation.Equal, toItem: self, attribute: NSLayoutAttribute.Bottom, multiplier: 1.0, constant: 20)
Я хотел бы, чтобы не иметь, чтобы указать ширину и высоту ограничений и пусть края определяют размер представления.
Можно ли это сделать?
Нет, вам не нужно предоставлять кадр вручную, если вы используете автозапуск. Можете ли вы поделиться ограничениями, которые вы применяете к 'aView', когда они не появляются, и кто-то может помочь. – rickerbh