добавить ограничения программно быстро
Я пытаюсь добавить ограничения на кнопку входа в Facebook SDK.
У меня есть кнопка в представлении прокрутки, и я пытаюсь добавить ограничение сверху для метки, которая также находится в представлении прокрутки. Я могу успешно добавить ограничение высоты без ошибок времени выполнения, но фактическое ограничение, похоже, не применяется к кнопке.
@IBOutlet weak var orLbl: UILabel!
@IBOutlet weak var scrollView: UIScrollView!
override func viewDidLoad() {
super.viewDidLoad()
var loginFBButton = FBSDKLoginButton()
loginFBButton.readPermissions = ["public_profile", "email"]
let heightConstraint = NSLayoutConstraint(
item: loginFBButton,
attribute: NSLayoutAttribute.Height,
relatedBy: NSLayoutRelation.Equal,
toItem: nil,
attribute: NSLayoutAttribute.NotAnAttribute,
multiplier: 1,
constant: 41)
let topConstraint = NSLayoutConstraint(
item: loginFBButton,
attribute: NSLayoutAttribute.TopMargin,
relatedBy: NSLayoutRelation.Equal,
toItem: self.orLbl,
attribute: NSLayoutAttribute.BottomMargin,
multiplier: 1,
constant: 31)
let leadingConstraint = NSLayoutConstraint(
item: loginFBButton,
attribute: NSLayoutAttribute.Leading,
relatedBy: NSLayoutRelation.Equal,
toItem: self.registerButton,
attribute: NSLayoutAttribute.Left,
multiplier: 1,
constant: 0)
let trailingConstraint = NSLayoutConstraint(
item: loginFBButton,
attribute: NSLayoutAttribute.Leading,
relatedBy: NSLayoutRelation.Equal,
toItem: self.registerButton,
attribute: NSLayoutAttribute.Right,
multiplier: 1,
constant: 0)
self.scrollView.addSubview(loginFBButton)
//loginFBButton.center = self.scrollView.center
loginFBButton.addConstraints([heightConstraint, topConstraint])
}
Затем, когда я добавляю верхнее ограничение, я получаю ошибку во время выполнения:
При добавлении в представление элементы ограничения должны быть потомками этого представления (или самого представления). Это приведет к сбою, если необходимо разрешить ограничение до того, как будет собрана иерархия представлений.
Завершение работы приложения из-за необработанного исключения «NSGenericException», причина: «Невозможно установить ограничение для представления. Ссылка ссылается на что-то извне поддерева представления? Это незаконно.
И ярлык, и кнопка «Фейсбук» в моем представлении прокрутки? Я даже распечатал orLbl.superview и loginFBButton.superview, и я получаю необязательный uiscrollview для обоих