我正在开发一个应用程序,它在多维数据集上方显示四个视图,您可以从右向左滚动。我很容易使用这样的CATransitions实现这种交互:
[self.view1 addSubview:nextTo1];
CATransition *animation = [CATransition animation];
[animation setDuration:0.5];
[animation setType:@"cube"];
[animation setSubtype:kCATransitionFromRight];
[animation setTimingFunction:[CAMediaTimingFunctionfunctionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[[self.view1 layer] addAnimation:animation forKey:@"cube"];
然后我用滑动手势挂钩了一切,一切正常。 问题是客户要求平移手势,因此在动画期间立方体旋转应该跟随手指而我真的不知道如何在没有例如OpenGL的情况下实现它(这可能会变得更加昂贵,简单的过渡) 。 有没有办法对CATransitions或某些视图失真函数进行更多控制,我可以用它来解决这个问题?
非常感谢圣诞快乐!
答案 0 :(得分:1)
这样做的一种方法是将layer.speed
设置为零(以便动画不会单独移动),并根据平移手势识别器的移动设置layer.timeOffset
。设置timeOffset
控制动画的进度,当timeOffset
达到动画持续时间时,它会100%完成。
在另一个问题的答案中发布了一个例子:https://stackoverflow.com/a/22652663/209855