如何在按钮单击 iOS 时为视图设置动画?

How to animate a view on button click iOS?

使用以下代码,我将在单击按钮时显示带有动画的视图。

UIViewController *modalView = self.pageViewController;

[self.view addSubview:modalView.view];

[UIView animateWithDuration:1 animations:^{
    CGRect currentRect = modalView.view.frame;
    currentRect.origin.y = 650.0f;
    currentRect.size.height = 295.0f;
    [modalView.view setFrame:currentRect];
    [modalView.view removeFromSuperview];

}];

[self.view addSubview:_pageViewController.view];
[self.pageViewController didMoveToParentViewController:self];

第一次点击按钮时效果很好。当我一次又一次地按下按钮时,这不再是动画了。这是第一次制作动画。有什么办法吗?

提前致谢!

原因是 modalView.view 的框架最初与

不同
currentRect.origin.y = 650.0f;
currentRect.size.height = 295.0f;

所以当改变它的帧动画时。 但是下次你执行按钮的动作时modalView.view的当前帧和你设置的那个帧是一样的。所以根本没有什么动画。 此外,您应该将 [modalView.view removeFromSuperview]; 从动画块移动到完成块

[UIView animateWithDuration:1 animations:^{
    CGRect currentRect = modalView.view.frame;
    currentRect.origin.y = 650.0f;
    currentRect.size.height = 295.0f;
    [modalView.view setFrame:currentRect];} 
completion:^(BOOL finished) {
    [modalView.view removeFromSuperview];
}];