Так что я пытаюсь добавить UIVIew в UIScrollView программно с ограничениями. Я просто не вижу UIView в симуляторе. У меня есть IBOutlet для UIScrollview ... поэтому я не уверен, почему я столкнулся с этой проблемой.Ошибка при попытке добавить UIView внутри прокрутки с программным обеспечением с ограничениями в SWIFT
override func viewDidAppear(animated: Bool) {
let ownerUIView:UIView! = UIView()
var innerLabel:UILabel = UILabel()
ownerUIView.translatesAutoresizingMaskIntoConstraints = false
innerLabel.translatesAutoresizingMaskIntoConstraints = false
innerLabel.text = "Test text"
ownerUIView.addSubview(innerLabel)
importantScroll.addSubview(ownerUIView)
ownerUIView.backgroundColor = UIColor.blueColor()
let constraint1 = NSLayoutConstraint(item: ownerUIView, attribute: NSLayoutAttribute.Leading, relatedBy: NSLayoutRelation.Equal, toItem: importantScroll, attribute: NSLayoutAttribute.Leading, multiplier: 1, constant: 10)
let constraint2 = NSLayoutConstraint(item: ownerUIView, attribute: NSLayoutAttribute.Trailing, relatedBy: NSLayoutRelation.Equal, toItem: importantScroll, attribute: NSLayoutAttribute.Trailing, multiplier: 1, constant: 10)
let constraint3 = NSLayoutConstraint(item: ownerUIView, attribute: .Height, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1, constant: 60)
let constraint4 = NSLayoutConstraint(item: ownerUIView, attribute: .Top , relatedBy: .Equal, toItem: importantScroll, attribute: NSLayoutAttribute.Top , multiplier: 1, constant: 20)
NSLayoutConstraint.activateConstraints([constraint1,constraint2,constraint3,constraint4])
}
Я удалил ограничения и до сих пор не вижу UILabel или UIVIew. Если я удалю UILable, тогда я увижу синий UIView.
let ownerUIView:UIView = UIView(frame: CGRect(x: 10, y: 10, width: 200, height: 200))
let innerLabel:UILabel = UILabel(frame: CGRect(x: 10, y: 10, width: 100, height: 100))
ownerUIView.translatesAutoresizingMaskIntoConstraints = false
innerLabel.translatesAutoresizingMaskIntoConstraints = false
innerLabel.text = "Test text"
ownerUIView.addSubview(innerLabel)
importantScroll.addSubview(ownerUIView)
ownerUIView.backgroundColor = UIColor.blueColor()
Привет, спасибо за это ... есть ли способ получить правую сторону UIView до 10 полей? – BostonMacOSX
Есть ли причина, по которой программные ограничения заданы? Если вы примените автоспуск в раскадровке, это будет очень просто. Вы можете обратиться к этому [link] (https://spin.atomicobject.com/2014/03/05/uiscrollview-autolayout-ios/). – woogii
@BostonMacOSX Я обновил свой ответ. – woogii