2012-07-20 68 views
9

我一直在研究iBooks的克隆應用程序,在過去的兩天裏,我一直在嘗試使iBook應用程序執行的書籍封面流程動畫化。UIViewControllers轉換效果就像iBooks書的開放效果?

這是iBooks的截圖,我有我的書櫃完全一樣:

enter image description here

當用戶點擊任何一本書我想執行這樣的動畫過渡:

enter image description here

enter image description here

你可以看到書灣在左側翻轉,白色視圖是用於加載書籍內容的新視圖控制器。

任何人都可以請幫我解決這個問題嗎?我想要執行完全相同的動畫。與兩個視圖控制器。

+1

相似問題: http://stackoverflow.com/questions/8499601/open-close-unfolding-book-animation-in-ibooks – 2012-07-20 06:03:27

+0

感謝您的回覆,但問題是有UIView動畫和UiViewController動畫之間的區別。 – munibsiddiqui 2012-07-20 06:13:38

+0

如果您想要在兩個視圖控制器之間切換,您可能/可能會將其實現爲自定義輪播。該代碼與兩個視圖之間的轉換類似。我相信在去年的WWDC會議上,Core Animation會議視頻在視頻結尾處有一個自定義的細節(火:P)。 – 2012-07-20 08:16:29

回答

1

注: LibraryViewController - 貨架啄書籍 ReadingViewController - 在閱讀出現的ViewController(見問題的最後一個圖像)

讓我們說封面是UIImageView。使用iOS 5.0或更高版本,您可以添加readingViewController作爲LibrabryViewController的子視圖。然後其中一個動畫縮放書本(readingViewController + UIIMageView)。我建議在這裏動畫一個UIView,這是兩個容器。 第二個是fliping封面:

UIIMageView.transform = CGAffineTransformMake(a,b,c,d,tx,ty); 我想a和d應爲-1這裏 See more for CGAffineTransform

附:這似乎是一個有趣的問題。請讓我知道,如果我建議的方法是可能的!

4

檢查出來可能B本可以幫助你:

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無非是烏拉圭回合的觀點

+0

M34和M14值適用於iPhone,但不適用於iPad。 – 2014-02-04 21:22:19

5

我有一些代碼在GitHub上一個iBook的開放效果的演示,可以看到iBooksOpen

+0

hi郭,我可以在我的應用程序中使用您的iBooksOpen項目嗎?我找不到許可證。它是開源的嗎?謝謝 – Max 2013-07-11 18:49:23