如何在UIView中创建可控制的翻转效果(拖动时尽可能快地翻转)

时间:2010-04-17 17:20:44

标签: iphone uiview touch drag flip

我有一张卡(你可以说是一张闪卡)

我能做什么:

手指扫过闪卡时,卡片会转动。这是通过检测发生的 touchesBegan和touchesMoved然后我做像

这样的事情
[UIView beginAnimations:@"View Flip" context:nil]; 
[UIView setAnimationDuration:0.5]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
if (left) {
    [UIView setAnimationTransition: UIViewAnimationTransitionFlipFromLeft forView:self.flashCardView cache:YES];
}else{
    [UIView setAnimationTransition: UIViewAnimationTransitionFlipFromRight forView:self.flashCardView cache:YES];
}

我不能做什么(但想要):

我想以某种方式拖动翻盖。 想象一下,你有一张闪卡,你认为你知道答案,你开始翻转卡,因为你想看看你是否正确,但是......没有停止......你犹豫,把卡转回去它的方式,重新思考,得到真正的答案,然后最后翻看,看你是犹豫不决。

现在我只有:一旦你开始翻转,你就无法阻止它。

那么你对如何做到这一点有任何暗示吗?要读些什么?我还在开始理解可可和iPhone开发

编辑我现在更有经验,但我还没有做过这样的自定义动画,也许有人可以给我一个电梯?

1 个答案:

答案 0 :(得分:2)

您无法实现预设UIView动画的功能,因为动画是一次性的,无法截取。您可以使用OpenGL进行真正的3D转换(您需要的是围绕轴的旋转),或者为了更快的实现,尝试CALayer转换为绘制的建议。

Here是在OpenGL中实现的交互式3D页面翻转的示例。它使用私有API,但它可以帮助您了解如何响应用户输入并适当地应用转换。