我的应用程序中有四个视图控制器,都是从一个普通的UIViewController类扩展而来的。我想在底部为我的所有视图控制器添加一个视图。
现在我在基础视图控制器的viewDidLoad方法中添加该视图,如此
UIView *contentView = [[UIView alloc]initWithFrame:self.view.frame];
UIView *wrapperView = [[UIView alloc]initWithFrame:self.view.frame];
UIView *commonView = [[UIView alloc]init];
commonView = <common view>;
[contentView setTranslatesAutoresizingMaskIntoConstraints:NO];
[wrapperView setTranslatesAutoresizingMaskIntoConstraints:NO];
wrapperView.backgroundColor = [UIColor blueColor];
contentView.backgroundColor = [UIColor greenColor];
contentView = self.view;
[wrapperView addSubview:contentView];
[wrapperView addSubview:commonView];
self.view = wrapperView;
当我关闭特定故事板的自动布局时,这工作正常。但是当我启用autolayout时,我在屏幕上显示绿色(contentView)。
在上面的代码运行之前,视图控制器有9个自动布局约束,在上面的代码片段之后,对self.view没有约束
有没有办法添加self.view的autolayout约束?
答案 0 :(得分:0)
删除此行:
contentView = self.view;
该行导致contentView(代码的第一行)的初始化基本上是无操作。
为什么在添加视图时尝试重置整个布局?看起来你可以初始化commonView并将其直接添加到self.view:
UIView *commonView = [[UIView alloc] init];
commonView = <common view>;
[self.view addSubview:commonView];