Я создал XIB и использовал AutoLayout. Он отлично отображается, если я проверю его в окне предварительного просмотра.
Теперь я попытался загрузить этот NIB, а затем добавить его в качестве подвида в другой ViewController, используя следующий код:
myNibView = [[NSBundle mainBundle]loadNibNamed:@"CustomNib" owner:self options:nil].lastObject;
myNibView.translatesAutoresizingMaskIntoConstraints = NO;
[self.view myNibView];
На этот раз он рассеивает все виды, как показано на изображении ниже.
Я включил ведение журнала и проверил фрейм SubView, но фрейм XIB (SubView) изменился в соответствии с представлением UIViewController, но Subviews XIB не согласовывались с этим.
2015-03-21 14:38:13.527 [3015:77723] newSubview.frame before = {{0, 0}, {420, 613}}
2015-03-21 14:38:13.633 [3015:77723] containerView.bounds after = {{0, 0}, {320, 504}}
2015-03-21 14:38:13.634 [3015:77723] newSubview.frame after = {{0, 0}, {320, 504}}
Есть ли какая-нибудь идея, как добавить XIB в качестве подпредставления в другое, сохранив ограничения автоматического макета, чтобы он работал правильно, как это было в XIB?