我有这个简单的观点:
- (void)viewDidLoad { [super viewDidLoad]; redBox = [[UIView alloc] init]; [redBox setBackgroundColor:[UIColor redColor]]; [redBox setTranslatesAutoresizingMaskIntoConstraints:NO]; [self.view addSubview:redBox]; //H: widthConstraint = [NSLayoutConstraint constraintWithItem:redBox attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeWidth multiplier:0.5 constant:0.0]; [self.view addConstraint:widthConstraint]; //More constraints... }
我试过这个:
widthConstraint.constant = 100; [UIView animateWithDuration:1 animations:^{ [self.view layoutIfNeeded]; } ];
这会将视图的宽度增加100并对其进行动画处理,但我需要将其增加一个与其超视图宽度成比例的量.换句话说,我想将widthConstraint的乘数设置为0.8.
但是NSLayoutConstraint
’s multiplier
is readonly!这是否意味着每次我想要对其乘数进行动画处理时,我必须删除,修改和重新添加widthConstraint,还是有更好的方法?