【发布时间】:2012-01-28 06:25:01
【问题描述】:
我的应用程序主视图中包含一个视图(屏幕中间的一个正方形)。我编写了以下代码,如果您将视图向左滑动,则将视图从屏幕向右滑动:
- (IBAction)swipeLeft:(id)sender
{
CGRect initCardViewFrame = self.cardView.frame;
CGRect movedCardToRightViewFrame = CGRectMake(initCardViewFrame.origin.x + 1000, initCardViewFrame.origin.y, initCardViewFrame.size.width, initCardViewFrame.size.height);
[UIView animateWithDuration:0.7
animations:^{self.cardView.frame = movedCardToRightViewFrame;}
completion:nil];
}
这很好用,但是我想扩展代码,以便一旦正方形离开屏幕右侧,它就会从左侧回到中间。我不确定如何在窗口左侧“重新绘制”它,然后将其滑回中间。我试过重做帧,但动画只显示动画块中的最后一帧移动。我假设我需要将视图推离屏幕,然后在屏幕左侧的外侧重新绘制它,然后将其滑到中间。当然,除非有更直观的方法。
更新:
我已经在下面回答了这个问题,但我不禁认为有更好的方法可以做到这一点,而无需将 UIView 动画相互嵌套。这是解决这个问题的唯一方法吗?
【问题讨论】:
标签: objective-c ios animation uiview