我有这个简单的观点:
- (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...
}
我想设置redBox宽度增加的动画。
我试过这个:
widthConstraint.constant = 100;
[UIView animateWithDuration:1
animations:^{
[self.view layoutIfNeeded];
}
];
这会将视图的宽度增加100并对其进行动画处理,但我需要将其增加一个比例到其superview的宽度。换句话说,我想将widthConstraint
的{{1}}设置为multiplier
。
但是NSLayoutConstraint
’s multiplier
is readonly!这是否意味着每次我想要对其0.8
进行更改动画时,我是否必须删除,修改和重新添加widthConstraint
?还是有更好的方式?