Я пытаюсь добавить ограничения на кнопку входа в facebook sdk.add constraints programatically swift
У меня есть кнопка внутри прокрутки, и я пытаюсь добавить верхнее ограничение на метку, которая также находится в представлении прокрутки. Я могу успешно добавить ограничение по высоте без ошибок времени выполнения, но фактическое ограничение, похоже, не применяется к кнопке.
@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», причина: «Невозможно установить ограничение на просмотр. Сдерживает ли ссылка что-то извне поддерева представления? Это незаконно.
Как ярлык, так и кнопка facebook находятся в моем прокрутке? Я даже распечатал orLbl.superview и loginFBButton.superview, и я получаю необязательный uiscrollview для обоих
Вы пытались выяснить, какое из двух ограничений вызывает исключение? – freytag
@freytag да, как упоминалось в вопросе, именно тогда, когда я добавил верхнее ограничение, произошел сбой. Другой пользователь предложил добавить ограничения в scrollview вместо loginFBButton. Я сделал это и не получил ошибок во время выполнения, но тогда моя кнопка facebook находится в верхнем левом углу экрана, а ярлык полностью не отображается. – user2363025