我有一个主页视图设置。在此我有一个设置到插座的子视图。通过这个出口,我将一个单独的 xib 文件注入到页面中。
我可以在这个注入的 xib 上设置哪些属性,以便它随着设备方向增长/收缩?直接在主视图中的子视图可以增长和缩小,但是这个子视图的注入内容似乎总是固定的宽度。我怎样才能让它们延伸,即覆盖景观中的红色区域?
注意,我是一名设计师,使用界面生成器来创建它。我将不胜感激允许我通过接口构建器解决此问题的答案。如果没有,那么欢迎使用代码答案(仅作为最后的手段)。
请参阅显示设置的图表:
我有一个主页视图设置。在此我有一个设置到插座的子视图。通过这个出口,我将一个单独的 xib 文件注入到页面中。
我可以在这个注入的 xib 上设置哪些属性,以便它随着设备方向增长/收缩?直接在主视图中的子视图可以增长和缩小,但是这个子视图的注入内容似乎总是固定的宽度。我怎样才能让它们延伸,即覆盖景观中的红色区域?
注意,我是一名设计师,使用界面生成器来创建它。我将不胜感激允许我通过接口构建器解决此问题的答案。如果没有,那么欢迎使用代码答案(仅作为最后的手段)。
请参阅显示设置的图表:
我很确定我认为当前的 blueView 不了解其父视图是正确的,因此您无法在 xib 本身中设置约束,并且需要在代码中进行。
要使用代码来实现,假设 redView 是上图中红色视图的 Iboutlet。
使用您的 nib 创建您的 blueView,但确保 translatesAutoresizingMaskIntoConstraints 等于 no:
CustomView *blueView = [CustonView alloc] init]; // or what not
// atached the xib, should really be done in init of CustomView
NSArray *subviewArray = [[NSBundle mainBundle] loadNibNamed:@"myXib" owner:self options:nil];
UIView *mainView = [subviewArray objectAtIndex:0];
[blueView addSubview:mainView];
blueView.translatesAutoresizingMaskIntoConstraints = NO;
[self.redview addSubview:blueView]
添加约束:
[self.redView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[blueView]|" options:0 metrics:nil views:@{@"blueView":blueView}]];
[self.redView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[blueView]|" options:0 metrics:nil views:@{@"blueView":blueView}]];
布朗厄尔
如果redView
只有,blueSubView
那么您可以按以下方式访问它
UIView *blueView = [redView SubViews]ObjectAtIndex:0];
now you canset the frame of blueSubView.
[blueView setframe:CGRectMake(100,100,100,100)];
希望这会帮助你。