2011-07-08 13 views
6

Ok, me gusta mucho el efecto pagecurl, solo un problema, al enviar un correo electrónico de respuesta desde dentro de la aplicación, partialPageCurl cubre el botón cancelar y la mayoría del botón de enviar para el correo. Los botones todavía funcionan, pero los usuarios no los verán. ¿Hay alguna manera de obtener partialPageCurl a fullPageCurl donde está casi completamente fuera de la pantalla? ¡Gracias por adelantado! Aquí está actualmente cómo estoy impulsando la vista.¿Hay una página completa? Actualizado

- (IBAction)HelpClicked{ 

MoreHelp *More = [[MoreHelp alloc] initWithNibName:nil bundle:nil]; 

More.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
[self presentModalViewController:More animated:YES]; 

[More release]; 
} 
+0

[Aquí obtendrá información sobre cómo la página se curva.] (Http://oleb.net/blog/2010/06/app-store-safe-page-curl-animations/) – ram

+0

Una página curvada es lo que vea cuándo cambia el tipo de mapa en la aplicación Mapas, no lo que ve en la aplicación iBooks. – hatfinch

Respuesta

3

No existe una página variante rizo completo para UIModalTransitionStyle.

Si esto es lo que necesita, entonces usted mismo debe implementarlo manualmente. Es más complejo que hacer un controlador de vista modal simple pero factible.

Este código cortado solo funciona en el diseño de retrato predeterminado, y necesitará ajustes para sus necesidades. Pero espero que esto le dé una idea de lo que debe hacer:

UIView* view = viewController.view; 
view.frame = self.view.window.bounds; 
[UIView transitionWithView:self.view.window 
        duration:0.2 
        options:UIViewAnimationOptionTransitionCurlUp 
       animations:^(void) { 
        [self.view.window addSubview:view]; 
       } 
       completion:^(BOOL finished) { 
        [viewController.view removeFromSuperview]; 
        [viewController presentModalViewController:viewController 
                 animated:NO]; 
       }]; 
+0

Creo que al tratar de usar su ejemplo, necesitaría crear un IBOutlet UIView, y copiar mi xib actual como UIView dentro del mismo xib que estoy iniciando desde el correcto. Entonces, si mi IBOutlet se llama "aboutView", reemplazaría 'viewController.view' con' aboutView.view' correcto?Espero que tenga sentido ... – Jason

+0

@Jason - Suena bien para mí. – PeyloW

+0

Esto no funciona ... 'UIView * view = aboutView.view; view.frame = self.view.window.bounds; [UIView transitionWithView: self.view.window Duración: 0,2 opciones: UIViewAnimationOptionTransitionCurlUp animaciones:^(void) { [self.view.window addSubview: view]; } finalización:^(BOOL finalizado) { [aboutView.view removeFromSuperview]; [aboutView presentModalViewController: viewController animated: NO]; }]; – Jason

4

Consulte el código de UICatalog en la biblioteca del desarrollador de Apple. Aquí está el enlace: http://developer.apple.com/library/ios/#samplecode/UICatalog/Introduction/Intro.html

Al ejecutarlo, seleccione Transiciones desde UITableView. Vea la acción del botón 'Curl Image'. Si eso es lo que necesita ...

Encontrará el método curlAction: en la clase TransitionViewController. Básicamente tiene dos imágenes dentro de una vista. Basándose en cuál se muestra y qué fue la transición anterior (curl up o curl down), muestra la otra imagen de forma que parece curvar una página y luego curvarla. La imagen de curvatura desaparecerá por completo. Estoy seguro de que puede adaptarla a su UI.

es prácticamente la misma que la respuesta de PeyloW única que utiliza el viejo setAnimation: par. commitAnimation

+0

He agregado código para mostrar lo que estoy haciendo actualmente. Parece que no puedo hacer que esto funcione, ¡necesito ayuda! – Jason

1

de excelentes sugerencias de xs2bush PeyloW y sin duda le dará una página completa c url. Sin embargo, sospecho que buscas un curl de página más que parcial y menos completo. No creo que haya una API para esto, pero ¿qué tal un truco que podría funcionar?

Utilice el método de PeyloW o xs2bush, pero también ejecute un temporizador con una duración ligeramente inferior a la duración de la animación UIViewAnimationOptionTransitionCurlUp.

Cuando el tiempo se agota, congelar la animación y quitarlo de la UIView que se encrespa para arriba:

curledView.frame = [[curledView.layer presentationLayer] frame]; 
[curledView.layer removeAllAnimations]; 

Con suerte, esto le conseguirá el efecto deseado.

1

Usaría la respuesta de PeyloW, pero hay otra manera. Agregue un UIView a la vista modal que va a presentar (en viewDidLoad), y colóquelo en la esquina superior izquierda, y asígnele un backgroundColor de [UIColor clearColor]. De esta forma, la vista no se verá en la pantalla, pero la transición de curvatura de página se verá obligada a desprenderse de la pantalla para 'mostrar' la vista de esquina superior izquierda.

Cuestiones relacionadas