Ограничения, не соблюдаемые при загрузке из XIB
Итак, у меня есть следующий XIB
Этот XIB при загрузке в виде tableviewcell выглядит следующим образом
С тех пор я решил, что мне не понадобится TableView, поэтому я изменил свой класс XIB с UITableViewCell на UIView. В ViewController я добавил этот код в viewDidLoad ()
var nView = MyChartView.instanceFromNib() as! MyChartView
self.view.addSubview(nView)
И я получил это в результате
Как вы можете видеть, он игнорирует поля и продолжает правую сторону (игнорировать красный цвет, так как я использовал его, чтобы попытаться решить проблему. Отсутствие данных диаграммы также не является проблемой). Я распечатал ширину рамки xib и увидел, что она немного больше, чем размер экрана, но я не смог исправить это. Кто-нибудь может решить эту проблему?
2 ответа:
При программном добавлении подвида необходимо также добавить ограничения между подвидом и его супервизором
var nView = MyChartView.instanceFromNib() as! MyChartView self.view.addSubview(nView) nView.translatesAutoresizingMaskIntoConstraints = false view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|[nView]|", options: [], metrics: nil, views: ["nView": nView])) view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|[nView]|", options: [], metrics: nil, views: ["nView": nView]))