我试图围绕视图的一个边缘翻转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
谢谢你的时间!
答案 0 :(得分:0)
一般来说,动画视图的框架不是解决此问题的好方法:它会导致视图必须在动画的每一步重绘自己,并且,正如您所注意到的,它看起来不像翻转就像线性刻度一样。
查看this answer - 特别是第二部分,讨论如何在CA中进行更好的方法。