3

我正在开发一个应用程序,它在立方体上方显示四个视图,您可以从右侧和左侧滚动滑动。我使用 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 或一些我可以用来解决这个问题的视图失真功能?

非常感谢你,圣诞快乐!!

4

1 回答 1

1

一种方法是设置layer.speed为零(这样动画不会自行移动),并layer.timeOffset根据平移手势识别器的移动进行设置。设置timeOffset控制动画的进度,当timeOffset达到动画持续时间时,100% 完成。

另一个问题的答案中已发布了一个示例:https ://stackoverflow.com/a/22652663/209855

于 2016-04-22T00:11:43.173 回答