11

我正在开发一个故事书应用程序,我想做如下视频中的页面卷曲。

演示视频

谁能告诉我如何做到这一点。

更新:

我希望这个卷页器支持 iOS 4.3+。UIPageViewController 仅适用于 iOS 6。

4

6 回答 6

2

您可能要考虑UIPageViewController. 它在创建使用页面卷曲动画的应用程序时非常有用。这是文档链接

于 2013-01-18T05:25:28.640 回答
2

您可以为此使用 UIView 的动画效果。我想这应该可以帮助你

[UIView beginAnimations:@"Curl" context:nil];
[UIView setAnimationDuration:2.0];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:contentView cache:YES];
[UIView commitAnimations];

其中 contentView 是您应用动画的视图。通过改变持续时间和动画曲线,您可以修改动画效果。

于 2013-02-19T05:12:26.500 回答
1

有两种方法:

  1. 困难的方法是自己实现所有东西(从头开始,使用图层、蒙版、变换和渐变),而且很头疼。

  2. 简单的方法,UIPageViewController按照@Zen 的建议阅读文档。它非常有用,可为您提供所需的确切动画(如视频所示)。或者,使用一些第三方代码。

如果您没有时间限制,那么我会说,走第一种方式。你会学到很多东西。

干杯,玩得开心:)

编辑

以下是示例应用程序的链接:

https://www.dropbox.com/s/x4qo2igrzvnkj16/CurlAnimationProject.zip

检查它并告诉我你的想法。

于 2013-02-14T12:29:31.397 回答
0

正如在答案中多次提到的 UIPageViewController (苹果文档)是你应该看的东西。

实现相当简单,控制器使用 2 个委托

  • 数据源:通过 2 个主要方法控制要显示的内容(您的页面)
  • 委托:控制其行为

它实现了从页面滚动到页面的滑动手势,并且可以在视图底部提供页面控件。

对于从页面到页面的转换,您可以设置滚动动画(适合照片/投资组合类型)或您正在寻找的页面卷曲。

于 2013-03-04T08:49:05.267 回答
0

您可以通过以下方式制作页面卷曲/翻转效果

对于横向模式:

[UIView beginAnimations:@"Curl" context:nil];
[UIView setAnimationDuration:2.0];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:contentView cache:YES];
[UIView commitAnimations];

对于纵向模式:

[UIView beginAnimations:@"Curl" context:nil];
[UIView setAnimationDuration:2.0];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlLeft forView:contentView cache:YES];
[UIView commitAnimations];
于 2013-03-06T05:42:46.127 回答
0
SettingViewController *svc = [[SettingViewController alloc]initWithNibName:@"SettingViewController" bundle:nil];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:2];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[self.navigationController pushViewController:svc animated:YES];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.navigationController.view cache:NO];
[UIView commitAnimations];
于 2013-02-28T11:28:02.110 回答