Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 与top&;底部布局指南_Ios_Autolayout_Nslayoutconstraint - Fatal编程技术网

Ios 与top&;底部布局指南

Ios 与top&;底部布局指南,ios,autolayout,nslayoutconstraint,Ios,Autolayout,Nslayoutconstraint,从视图和controller.topLayoutGuide&controller.bottomLayoutGuide以编程方式设置NSLayoutconstraints时遇到一些问题 在viewDidLoad中使用此代码: _mainView.translatesAutoresizingMaskIntoConstraints = NO; [self.view addSubview:_mainView]; [self.view removeConstraints:self.view.constra

从视图和controller.topLayoutGuide&controller.bottomLayoutGuide以编程方式设置NSLayoutconstraints时遇到一些问题

在viewDidLoad中使用此代码:

_mainView.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:_mainView];
[self.view removeConstraints:self.view.constraints];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[_mainView]-0-|" options:NSLayoutFormatAlignAllBaseline metrics:nil views:NSDictionaryOfVariableBindings(_mainView)]];
id top = self.topLayoutGuide;
id bottom = self.bottomLayoutGuide;
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[top]-0-[_mainView]-0-[bottom]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(top, _mainView, bottom)]];
[self.view layoutSubviews];
结果是:

(_mainView具有深灰色背景色)

如果我设置了与superview相关的约束,它将起作用:

_mainView.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:_mainView];
[self.view removeConstraints:self.view.constraints];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[_mainView]-0-|" options:NSLayoutFormatAlignAllBaseline metrics:nil views:NSDictionaryOfVariableBindings(_mainView)]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[_mainView]-0-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_mainView)]];
[self.view layoutSubviews];

我的错误在哪里? 视图控制器层次结构为uitabbarcontroller->uinavigationController->myViewController


解决了

错误是:

[self.view removeConstraints:self.view.constraints];
我用密码修改了密码

for(NSLayoutConstraint *c in self.view.constraints)
    if(c.firstItem == _mainView || c.secondItem == _mainView)
       [self.view removeConstraint:c];
它成功了。
无论如何,谢谢!;)

检查self.topLayoutGuide和self.bottomLayoutGuide是否为零。您可能忘记在Interface Builder中设置插座。

已解决!!如果(c.firstItem==|u mainView | | c.secondItem==_mainView)[self.view removeConstraint:c];“我在(self.view.constraints中的NSLayoutConstraint*c)中使用了“[self.view removeConstraints:self.view.constraints];”行,那么它就起作用了。