我有一个主页面视图设置。在这个内部,我有一个儿童视图,设置到一个插座。通过这个出口我正在页面中注入一个单独的xib文件。
我可以在此注入的xib上设置哪些属性,以便它随设备方向增长/缩小?直接在主视图中的子视图可以增长和缩小,但是此子视图的注入内容似乎始终是固定宽度。如何使它们延伸,即覆盖景观中的红色区域?
N.b。我是一名设计师,使用界面构建器来创建它。我希望能够通过接口buidler解决这个问题的答案。如果没有,那么欢迎代码答案(仅作为最后的手段)。
请参阅显示设置的图表:
答案 0 :(得分:4)
我很确定我认为当前的blueView不了解它的超级视图是正确的,所以你不能在xib中设置约束,并且需要在代码中完成。
要使用代码执行此操作,假设redView是上面图片中红色视图的Iboutlet。
使用你的笔尖创建你的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}]];
Booranger
答案 1 :(得分:-2)
如果redView
只有blueSubView
,那么您可以按照以下方式访问它
UIView *blueView = [redView SubViews]ObjectAtIndex:0];
now you canset the frame of blueSubView.
[blueView setframe:CGRectMake(100,100,100,100)];
希望这会对你有帮助。