先谢谢了,请帮我分析下,谢谢
主要代码如下:
-(void)loadView
{
[super loadView];
self.leftView.translatesAutoresizingMaskIntoConstraints = NO;
self.rightView.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:self.leftView];
[self.view addSubview:self.rightView];
}
- (void)updateViewConstraints
{
NSLayoutConstraint *width = [NSLayoutConstraint constraintWithItem:self.leftView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:50];
NSLayoutConstraint *height = [NSLayoutConstraint constraintWithItem:self.leftView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:self.leftView attribute:NSLayoutAttributeWidth multiplier:1.0 constant:0];
NSLayoutConstraint *left = [NSLayoutConstraint constraintWithItem:self.leftView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:20.f];
NSLayoutConstraint *top = [NSLayoutConstraint constraintWithItem:self.leftView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.leftView attribute:NSLayoutAttributeLeft multiplier: 1.f constant:0];
[NSLayoutConstraint activateConstraints:@[width, height,left, top]];
[super updateViewConstraints];
}
输出:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** +[NSLayoutConstraint constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:]: A multiplier of 0 or a nil second item together with a location for the first attribute creates an illegal constraint of a location equal to a constant. Location attributes must be specified in pairs'
NSLayoutConstraint *left = [NSLayoutConstraint constraintWithItem:self.leftView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:20.f];
NSLayoutAttributeLeft 这个属性的toItem 不能为nil