iOS:动画视图移回原始位置

时间:2014-11-22 19:06:33

标签: ios objective-c iphone

我试图制作一个动画,只需将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");

     }];

2 个答案:

答案 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];
    }];
}