使用以下代码,我在按钮点击时显示带有动画的视图。
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];
这适用于第一次点击按钮。当我一次又一次按下按钮时,这不再是动画了。这是第一次动画。有没有办法这样做?
提前致谢!
答案 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];
}];