Comment puis-je présenter une UIView à partir du bas de l'écran comme un UIActionSheet?
J'aimerais une UIView à glisser vers le haut à partir du bas de l'écran (et de rester le milieu de l'écran) comme un UIActionSheet. Comment puis-je y arriver?
Mise à JOUR:
Je suis en utilisant le code suivant:
TestView* test = [[TestView alloc] initWithNibName:@"TestView" bundle:nil];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.4];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
test.view.center = CGPointMake(160,100);
//test.view.frame = CGRectMake(0, 0, 160, 210);
[[[UIApplication sharedApplication] keyWindow] addSubview:test.view];
[UIView commitAnimations];
Le point de vue semble s'animer à partir de le coin, et apparaissant dans le coin. Comment puis-je le faire glisser vers le haut à partir du bas? La proximité des!
mis à jour le post avec un peu de code qui devrait l'aider
un autre bon exemple: github.com/homeyer/CustomUIActionSheet
un autre bon exemple: github.com/homeyer/CustomUIActionSheet
OriginalL'auteur Sheehan Alam | 2010-07-28
Vous devez vous connecter pour publier un commentaire.
Faire ce que Matt a fait ici, mais il suffit de changer les valeurs et la direction. J'ai le code à la maison pour ce faire par le bas si vous avez besoin d'elle plus tard (je vais mettre à jour ce post).
Lien: http://cocoawithlove.com/2009/05/intercepting-status-bar-touches-on.html
Aussi, n'oubliez pas de prendre le morceau de code qui se déplace à l'écran principal vers le bas (donc à la place de la UIView saute juste sur le dessus, comme un ActionSheet)
Mis à jour avec le code:
C'est ce que j'utilise dans un de mes apps pour afficher/masquer un peu "options" affichage:
Un moyen simple serait de simplement désactiver l'interaction de l'utilisateur (c'est à dire
[someView setUserInteractionEnabled: NO];
) de ce point de vue. Une meilleure approche serait d'abord de montrer un autre point de vue avec une sorte de semi-transparent dégradé avec l'interaction de l'utilisateur désactivé et animer votre nouveau point de vue. De cette manière, il fait sens pour l'utilisateur que depuis l'autre point de vue est quelque peu estompée, qu'ils ne peuvent plus interagir avec elle. Sinon elle pourrait penser que quelque chose est cassé. Il suffit de penser comment un UIAlertView fait cela. Lorsque vous avez terminé avec lui, il suffit de retirer les deux points de vueOriginalL'auteur iwasrobbed
Un autre moyen serait d'utiliser le présent de l'modal-vue-contrôleur à la vue-contrôleur:
presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated
Pour plus d'infos, jetez un oeil à la UIViewController documentation.
MODIFIER: Si vous voulez un milieu de vue à l'écran, vous aurez besoin de l'animer en position de @jtbandes a souligné. Je suggère aussi d'ajouter quelques bonbons à UIView bloc d'animation:
Vous pouvez le déplacer à nouveau si besoin pour le plein écran ou de le rejeter.
Merci pour l'astuce! J'y suis presque. J'ai modifié mon post pour montrer mon code. Il n'est pas exactement le glissement vers le haut.
Comment sur une vue comme la libre ups application? C'est comme un centre de notification vue que l'utilisateur peut faire glisser/slide et peut même réglementer la façon dont les à présent en haut ou en bas, la vue est affichée au dessus de l'autre vue.
OriginalL'auteur xmr
Vous aurez à déplacer le point de vue vous-même, par l'établissement de ses
center
ouframe
. Je vous laisse comprendre ce que pour la mettre à. Mais pour l'animation:OriginalL'auteur jtbandes
Découvrez ce post: http://blog.yetanotherjosh.com/post/33685102199/3-ways-to-do-a-vertical-transition-with
Je vais à la fenêtre modale approche.
OriginalL'auteur chickeninabiscuit
D'essayer cette solution.... il fonctionne
OriginalL'auteur Sourabh Sharma