我想在放大图标上执行以下约束动画
一开始我希望我的图标位于屏幕右侧,然后将其移到文本字段的左侧:
___________________
|___________________| O-
to
___________________
O- |___________________|
所以我所做的是在我的超级视图右侧的图标上设置优先级为1000的约束A. 并在我的文本字段左侧的图标上添加另一个约束B,优先级为750
然后当我想要执行我的动画时,我删除了约束A,所以我希望图标移动到我的texfield的左边,但它没有移动
怎么做?
约束A:
约束B:
动画的一些代码:
[UIView animateWithDuration:0.5 animations:^{
self.view.alpha = 1;
} completion:^(BOOL finished) {
//animating the icon
[self.view removeConstraint:_loupeSuperviewLeftMargin];//remove constraint A
[self.view setNeedsUpdateConstraints];
UIView animateWithDuration:0.5f animations:^{
[self.view invalidateIntrinsicContentSize];
[self.view layoutIfNeeded];
}];
}];
答案 0 :(得分:1)
如果我给标签(我使用了一个按钮进行测试)这两个约束给标签(低优先级约束可以有任何优先级高达749 - 如果我使用750,两个视图都消失了)它对我有用,
然后在代码中,我删除了高优先级,
- (IBAction)moveButton:(id)sender {
[self.view removeConstraint:self.rightCon]; // rightCon is the high priority constraint
[UIView animateWithDuration:1 animations:^{
[self.view layoutIfNeeded];
}];
}
请确保在两个视图的超视图上调用removeConstraint,这两个视图之间有间距约束 - 这是拥有该约束的superview。