2012-07-20 8 views
9

He estado trabajando en una aplicación que es una copia de iBooks, y en los últimos 2 días he intentado animar el flujo de la portada del libro como la aplicación iBook.UIViewControllers Transitions Effect Like iBooks ¿Efecto de apertura de libro?

Esta es una captura de iBooks, tengo mi estante de libros exactamente como esta:

enter image description here

Cuando el usuario toca en cualquier libro que quiero llevar a cabo la transición de animación como esto:

enter image description here

enter image description here

Puedes ver el libro cala r flip on left y white view es del nuevo viewcontroller que sirve para cargar el contenido del libro.

¿Alguien puede ayudarme con este problema? Quiero realizar exactamente la misma animación. con dos viewcontrollers.

+1

similares pregunta: http://stackoverflow.com/questions/8499601/open-close-unfolding-book-animation-in-ibooks –

+0

Gracias por responder, pero hay una diferencia entre la animación de UIView y la animación de UiViewController. – munibsiddiqui

+0

Podría/probablemente implementaría esto como una transición personalizada si desea hacer la transición entre dos controladores de vista. El código sería similar a la transición entre dos vistas. Creo que los últimos años el video de la sesión de la WWDC para Core Animation tuvo una transición personalizada (con fuego: P) al final del video. –

Respuesta

0

No estoy seguro, pero puede ser que usted puede probar UIPageViewController, le dará efecto de libro. aquí está el enlace: http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIPageViewControllerClassReferenceClassRef/UIPageViewControllerClassReference.html

+0

Gracias por la respuesta rápida, pero señor UipageViewController le da un efecto rizo durante el cambio de páginas que ya he logrado, lo que quiero es el efecto de apertura de portada – munibsiddiqui

1

Leyenda: LibraryViewController - la manivela de estante con libros ReadingViewController - ViewController donde se produce la lectura (ver última imagen de la cuestión)

permite decir la cubierta es UIImageView. Con iOS 5.0+ puede agregar readingViewController como una subvista de LibrabryViewController. Luego, una de las animaciones es acercar el libro (readingViewController + UIIMageView). Sugiero aquí animando un UIView que es un contenedor de ambos. segundo es fliping la cubierta:

UIIMageView.transform = CGAffineTransformMake(a,b,c,d,tx,ty); creo que A y D debe ser -1 aquí See more for CGAffineTransform

P. S. Esto parece un problema interesante. Por favor, avíseme si mi método sugerido es posible.

4

Compruébelo usted mismo puede b este puede ayudar a:

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 no es más que ur de vista

+0

Los valores m34 y m14 funcionan bien para iPhone, pero no para iPad. –

5

tengo código de una demo ibook efecto abierta en github, se puede ver iBooksOpen

+0

hi Guo, ¿puedo usar su proyecto iBooksOpen en mi aplicación?No puedo encontrar la licencia. ¿Es de código abierto? Gracias – Max

Cuestiones relacionadas