我正在开发一个应用程序,它在立方体上方显示四个 View ,您可以从右侧和左侧滑动滚动。我已经使用 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 的情况下实现它(这可能比简单的转换更昂贵) . 有没有一种方法可以更好地控制 CATransition 或我可以用来解决此问题的某些 View 失真函数?
非常感谢,圣诞快乐!!
最佳答案
这样做的一种方法是将 layer.speed
设置为零(这样动画就不会自行移动),并根据从你的平移手势识别器移动。设置 timeOffset
控制动画的进度,当 timeOffset
达到动画持续时间时,它 100% 完成。
这方面的一个例子已经发布在另一个问题的答案中:https://stackoverflow.com/a/22652663/209855
关于ios - 带有平移手势的 CATransition Cube,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20707596/