Я пытаюсь программным образом добавить представление в UIScrollView таким образом, чтобы при изменении размера подзаголовка пользовательский интерфейс UIScrollView автоматически сопоставлялся.Установить ограничения на представление, которое добавлено в UIScrollView?
Я попытался это:
private var _contentView = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
addSubview(_contentView)
let leading = NSLayoutConstraint(item: _contentView, attribute: NSLayoutAttribute.Leading, relatedBy: NSLayoutRelation.Equal, toItem: self, attribute: NSLayoutAttribute.Leading, multiplier: 1, constant: 0)
let trailing = NSLayoutConstraint(item: _contentView, attribute: NSLayoutAttribute.Trailing, relatedBy: NSLayoutRelation.Equal, toItem: self, attribute: NSLayoutAttribute.Trailing, multiplier: 1, constant: 0)
let top = NSLayoutConstraint(item: _contentView, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: self, attribute: NSLayoutAttribute.Top, multiplier: 1, constant: 0)
let bottom = NSLayoutConstraint(item: _contentView, attribute: NSLayoutAttribute.Bottom, relatedBy: NSLayoutRelation.Equal, toItem: self, attribute: NSLayoutAttribute.Bottom, multiplier: 1, constant: 0)
self.addConstraints([leading,trailing,top,bottom])
Но я получаю сообщение об ошибке во время выполнения примерно не в состоянии удовлетворять ограничения.
Я также попытался установить ограничение с визуальным форматом и получить подобную ошибку:
let viewsDictionary = ["contentView":_contentView]
let hConstraints = NSLayoutConstraint.constraintsWithVisualFormat("H:|-0-[contentView]-0-|", options: NSLayoutFormatOptions.DirectionLeadingToTrailing, metrics: nil, views: viewsDictionary)
let vConstraints = NSLayoutConstraint.constraintsWithVisualFormat("V:|-0-[contentView]-0-|", options: NSLayoutFormatOptions.DirectionLeadingToTrailing, metrics: nil, views: viewsDictionary)
self.addConstraints(hConstraints)
self.addConstraints(vConstraints)
Как правильно добавить ограничение?
Это избавляет от ошибки, но не делает contentSize подходящим для размера subview. –
@AaronBratcher см. Мое редактирование. – rounak
Я устанавливаю размер рамки подзаголовка, а затем вызываю requireUpdateConstraints() для каждого. –