我有这个简单的看法:
- (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];
}
];
这会使 View 的宽度增加100并对其进行动画处理,但是我需要将其增加一定比例,使其与父 View 的宽度成比例。换句话说,我想将
widthConstraint
的multiplier
设置为0.8
。但是
NSLayoutConstraint
’s multiplier
is readonly!这是否意味着我每次想对widthConstraint
进行更改动画时都必须删除,修改和重新添加multiplier
,还是有更好的方法? 最佳答案
不幸的是,没有更好的方法。用另一个乘数删除和重新加法是您唯一的选择。请提交一个您希望看到multiplier
被读写的错误。