9

我一直在开发应用程序,它是 iBooks 的克隆,在过去的两天里,我一直在尝试像 iBook app perform 那样为书籍封面流制作动画。

这是一个 iBooks 屏幕截图,我的书架是这样的:

在此处输入图像描述

当用户点击任何一本书时,我想像这样执行动画转换:

在此处输入图像描述

在此处输入图像描述

您可以在左侧看到书籍封面翻转,白色视图是用于加载书籍内容的新视图控制器。

谁能帮我解决这个问题?我想执行完全相同的动画。有两个视图控制器。

4

4 回答 4

5

我在 github 上编写了一个 ibook 打开效果演示,你可以看到iBooksOpen

于 2013-03-08T07:19:58.890 回答
4

看看它可能会帮助你:

   coverView.layer.anchorPoint=CGPointMake(0, .5);
  coverView.center = CGPointMake(coverView.center.x - coverView.bounds.size.width/2.0f, coverView.center.y);

    NSLog(@"%f",coverView.layer.anchorPoint.y);

    [UIView animateWithDuration:.5 delay:0 options:UIViewAnimationCurveEaseIn  animations:^{
        coverView.transform = CGAffineTransformMakeTranslation(0,0);
        CATransform3D _3Dt = CATransform3DIdentity;
        _3Dt =CATransform3DMakeRotation(3.141f/2.0f,0.0f,-1.0f,0.0f);
        _3Dt.m34 = 0.001f;
        _3Dt.m14 = -0.0015f;
        coverView.layer.transform =_3Dt;
    } completion:^(BOOL finished){
        if (finished) {
            [self animateCurrentViewController];
            [self toolBarAndNavigationBarNeedToShow:YES];
        }
    }];

CoverView 只不过是你的观点

于 2012-10-09T06:06:59.087 回答
1

图例: LibraryViewController- 书架上的东西 ReadingViewController- 发生阅读的 ViewController(见问题的最后一张图片)

可以说封面是UIImageView。使用 iOS 5.0+,您可以将其添加readingViewControllerLibrabryViewController. 然后其中一个动画是缩放书籍(readingViewController + UIIMageView)。我建议在这里制作一个 UIView 动画,它是两者的容器。第二个是翻盖:

UIIMageView.transform = CGAffineTransformMake(a,b,c,d,tx,ty); 我认为 a 和 d 应该是 -1 在这里 查看 CGAffineTransform 的更多信息

PS这似乎是一个有趣的问题。如果我建议的方法可行,请告诉我!

于 2012-09-26T11:17:29.273 回答
0

我不确定,但也许你可以试试 UIPageViewController,它会给你书本效果。这里是链接:http: //developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIPageViewControllerClassReferenceClassRef/UIPageViewControllerClassReference.html

于 2012-07-20T05:55:33.883 回答