0
如果我在XIB中創建一個視圖,在一個視圖控制器中以編程方式實例化它,然後顯示它,視圖保持與它在XIB中的大小相同。如果我嘗試提供自動佈局約束來糾正此問題,它通常會與由佈局系統設置的UIView-Encapsulated-Layout-Height
約束衝突。如何防止視圖的高度由其XIB設置?
我該如何擺脫來自XIB的高度限制?
如果我在XIB中創建一個視圖,在一個視圖控制器中以編程方式實例化它,然後顯示它,視圖保持與它在XIB中的大小相同。如果我嘗試提供自動佈局約束來糾正此問題,它通常會與由佈局系統設置的UIView-Encapsulated-Layout-Height
約束衝突。如何防止視圖的高度由其XIB設置?
我該如何擺脫來自XIB的高度限制?
您只需將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;