如何在按钮上为视图设置动画点击iOS?

时间:2015-01-30 08:05:24

标签: ios objective-c animation uiview

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

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];

这适用于第一次点击按钮。当我一次又一次按下按钮时,这不再是动画了。这是第一次动画。有没有办法这样做?

提前致谢!

1 个答案:

答案 0 :(得分:0)

原因是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];
}];