我试图制作一个动画,只需将Y轴向上移动约50个点即可。 动画有效,但一旦完成,它将返回原来的位置。
UIView* view = [self.view viewWithTag:50];
[UIView animateWithDuration:0.5
delay:0.1
options: UIViewAnimationOptionCurveEaseOut
animations:^
{
CGRect frame = view.frame;
frame.origin.y = 230;
frame.origin.x = 30;
view.frame = frame;
}
completion:^(BOOL finished)
{
NSLog(@"Completed");
}];
答案 0 :(得分:2)
您的布局限制将拉回来。这是目前非常普遍的问题。您必须修改NSLayoutConstraint对象以反映对视图的更改。
E.g。 Constraint.constant + = 50;
搜索堆栈溢出以查询其他问题,例如您在询问之前要询问的问题。
答案 1 :(得分:0)
为了完整性,需要在动画中更改和更新约束,如下所示:
- (IBAction)moveAction:(id)sender {
self.spaceConstraint.constant += 220;
[UIView animateWithDuration:0.5 animations:^{
[self.imageView layoutIfNeeded];
}];
}