6

Me gustaría mostrar una hoja de acción que se desliza desde justo debajo de la barra de estado superior.Cómo mostrar UIActionSheet justo debajo de la barra de estado de navegación superior en iPhone

Cuando uso la barra de navegación como la vista para mostrar, la hoja todavía se muestra en la parte inferior de la pantalla. ¿Cómo puedo mostrarlo originando desde la parte superior en su lugar?

La clase Voy a llamar al siguiente código de es un 'UIViewController'

UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:@"Hello" delegate:nil 
      cancelButtonTitle:nil 
      destructiveButtonTitle:nil 
      otherButtonTitles:nil]; 

UINavigationBar *navBar = self.navigationController.navigationBar; 

[sheet showInView:navBar]; 

que he visto algunas aplicaciones muestran un deslizamiento hacia fuera del cajón de algún tipo, desde donde la barra de estado es (por ejemplo.: Twitterrific) ¿Cómo se hace esto?

Respuesta

4

Apple ha declarado que simplemente les gustaría que todas las hojas de acción funcionen de la misma manera y que se deslicen desde la misma dirección. Por lo tanto, no hay una forma anunciada de manipular fácilmente sus animaciones y cosas por el estilo.

+0

¿Qué hay de ubicación, aunque? La hoja de acción no solo se anima desde la parte inferior de una vista, sino que parece animarse siempre desde la parte inferior de la pantalla. – gerry3

+0

No siempre: con una barra de pestañas, se muestra desde arriba, a menos que muestres InView: en la ventana exterior. –

+0

Pensé que al usar la barra de navegación que se encuentra en la parte superior (y también hereda de UIView), podría hacer que se deslice desde la parte superior. Pero no, no funciona de esa manera. –

0

Claro que es posible. No es realmente fácil, pero lo es. Hágalo así:

UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle...]; 
sheet.transform = CGAffineTransformmakeRotation(M_PI); 
[sheet showInView:view]; 

La vista en la que se presenta (aquí llamada vista) también se debe transformar. Haga también:

view.transform = CGAffineTransformMakeRotation(M_PI); 

Utilice por ejemplo una vista vacía, que solo tiene el trabajo de presentar esta Hoja de Acción.

espero que era understanable. ^^

Sandro Meier

+0

Esto invierte la hoja y la vista; pero si la vista contiene cosas, se mostrarán al revés. – user1071136

Cuestiones relacionadas