如何防止视图的高度被其XIB设置?

时间:2016-08-20 20:08:10

标签: ios xcode autolayout interface-builder xib

如果我在XIB中创建一个视图,在视图控制器中以编程方式实例化它,并显示它,那么视图将保持与XIB中相同的大小。如果我尝试提供自动布局约束来纠正此问题,它通常会与布局系统设置的UIView-Encapsulated-Layout-Height约束冲突。

如何摆脱来自XIB的高度约束?

1 个答案:

答案 0 :(得分:0)

您需要做的就是将视图上的translatesAutoresizingMaskIntoConstraints属性设置为NO。这告诉布局系统不要自动从您在XIB中设置的值创建任何约束,就像视图的自由形式高度一样。只有在Interface Builder中明确规定的约束才会在运行时创建。

例如:

NSArray<UIView *> *views = [[NSBundle mainBundle] loadNibNamed:NSStringFromClass([MyCustomView class]) owner:self options:nil];

MyCustomView *view = (MyCustomView *)views.firstObject;
view.translatesAutoresizingMaskIntoConstraints = NO;