0

我正在尝试围绕视图的一个边缘翻转 UIView,就好像视图是日历的页面,刚性页面像这样移动:Calendar

我正在尝试这样做:

[UIView transitionWithView:self.upperCard
                      duration:0.5
                       options:UIViewAnimationOptionTransitionFlipFromBottom
                    animations:^{
                            topView.frame = [self bottomHalfRectFromBounds];
                            bottomView.frame = [self topHalfRectFromBounds];
                            topView.flippedOver = YES;
                            bottomView.flippedOver = NO;
                       }
                    completion:NULL];

[self setNeedsDisplay];

这种方法的唯一问题是,因为视图帧的动画是线性的,翻转动画也是如此,所以动画彼此不合时宜(这是由于以恒定速度翻转可见区域的事实视图与 Cos(t) 成正比,如果您不知道,请学习一些数学;P)。

所以基本上我要么在寻找一种让帧动画具有缓动功能的方法......要么是一种完全替代的方法......我不希望它看起来像一个页面卷曲,因为它将用于记分牌应用程序,所以请不要只告诉我使用 UIViewAnimationOptionCurlDown 选项:P

谢谢你的时间!

4

1 回答 1

0

一般来说,为视图的框架设置动画并不是解决这个问题的好方法:它会导致视图在动画的每一步都必须重新绘制自己,而且,正如您所注意到的,它看起来不像翻转,而是一个线性刻度。

查看这个答案——特别是它的第二部分,讨论如何在 CA 中进行操作——以获得更好的方法。

于 2013-05-24T22:27:46.483 回答