У меня есть прокрутка и внутри него - изображение в раскадровке. У меня есть iboutlets к файлу, в котором находится этот код со ссылками на эти представления. Их называют scrollView
и соответственно. Я пытаюсь программно добавить много UILabels под графиком внутри scrollview, но я даже не могу его отобразить.Добавление UILabel для прокруткиView Programmatically с помощью AutoLayout (swift)
Ограничение ширины, которое я добавил, не вызывает никаких проблем, но остальные три ограничения получают ошибки времени выполнения, содержащие The view hierarchy is not prepared for the constraint
. Я хочу ограничить верхнюю часть метки до нижней части графика, слева от метки слева от scrollview, а нижнюю часть метки - в нижней части прокрутки. Что я делаю не так?
Обновленный код:
var noteBodyLabel = UILabel()
noteBodyLabel.text = "test asdf asd fasdf a sdf asdf as dfa sdf safd"
noteBodyLabel.setTranslatesAutoresizingMaskIntoConstraints(false)
var widthCons = NSLayoutConstraint(
item: noteBodyLabel,
attribute: .Width,
relatedBy: .Equal,
toItem: nil,
attribute: .NotAnAttribute,
multiplier: 1, constant: 280)
let topCons = NSLayoutConstraint(
item: noteBodyLabel,
attribute: .Top,
relatedBy: .Equal,
toItem: graph,
attribute: .Bottom,
multiplier: 1, constant: 0);
let bottomCons = NSLayoutConstraint(
item: noteBodyLabel,
attribute: .Bottom,
relatedBy: .Equal,
toItem: scrollView,
attribute: .Bottom,
multiplier: 1, constant: 0);
let leftCons = NSLayoutConstraint(
item: noteBodyLabel,
attribute: .Left,
relatedBy: .Equal,
toItem: scrollView,
attribute: .Left,
multiplier: 1, constant: 0);
scrollView.addSubview(noteBodyLabel)
noteBodyLabel.addConstraints([topCons,leftCons,bottomCons,widthCons])
Ошибки связаны с тем, что вы создаете ограничения между двумя представлениями, которые не находятся в одном и том же дереве. Перед добавлением ограничений вызовите 'scrollView.addSubview (noteBodyLabel)'. –
@AaronBrager посмотрим на мой обновленный код. Это все еще происходит. – maxhud
«Не подготовлено к ограничению» означает, что один вид в ваших ограничениях не был добавлен в иерархию представлений. Вы уверены, что все представления были добавлены в виде подпунктов? –