6

Je souhaite afficher une feuille d'action glissant juste en dessous de la barre d'état la plus haute.Comment afficher UIActionSheet juste en dessous de la barre d'état de navigation supérieure sur l'iPhone

Lorsque j'utilise la barre de navigation comme vue à afficher, la feuille est toujours affichée en bas de l'écran. Comment puis-je le montrer à partir du haut à la place?

La classe j'appelle le code suivant à partir est un « UIViewController »

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

UINavigationBar *navBar = self.navigationController.navigationBar; 

[sheet showInView:navBar]; 

J'ai vu quelques applications montrent un glissement sur le tiroir d'une sorte où la barre d'état est (par exemple.: Twitterrific) Comment cela se passe-t-il?

Répondre

4

Apple a déclaré qu'il souhaitait simplement que toutes les feuilles d'action fonctionnent de la même manière et glissaient dans la même direction. Par conséquent, il n'y a aucune façon annoncée de manipuler facilement leurs animations et autres.

+0

Qu'en est-il bien lieu? La feuille d'action n'anime pas seulement depuis le bas d'une vue, elle semble toujours animer depuis le bas de l'écran. – gerry3

+0

Pas toujours: avec une barre d'onglets, elle s'affiche par dessus, sauf si vous affichezInView: sur la fenêtre externe. –

+0

Je pensais en utilisant la barre de navigation qui est placée en haut (et hérite aussi de UIView), je serais capable de le faire glisser par le haut. Mais non, ça ne marche pas comme ça. –

0

Bien sûr que c'est possible. Pas vraiment facile mais ça l'est. Procédez comme ceci:

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

La vue dans laquelle elle est présentée (appelée ici vue) doit également être transformée. Faites aussi:

view.transform = CGAffineTransformMakeRotation(M_PI); 

Utilisez par exemple une vue vide, qui a juste le travail de présenter cette ActionSheet.

J'espère que c'était understanable. ^^

Sandro Meier

+0

Ceci inverse à la fois la feuille et la vue; mais si la vue contient des choses, elles se montreront à l'envers. – user1071136