iOS Comment faire disparaître UIAlertView avec un clic de n'importe où?
Je veux rejeter UIAlertView n'importe où en dehors avec un robinet. Je veux montrer une UIAlertView sans aucun bouton.
J'ai norme UIAlertView codes ici, mais j'ai besoin d'avis sur comment le faire disparaître, si c'est possible.
Avec UITouch? Avec UITapGestureRecognizer?
Merci.
EDIT:
dans le viewDidLoad
alertview initialisation ici avec le nom "alerte"
if (alert)
{
emptyview = [[UIView alloc]initWithFrame:CGRectMake(0,0,320,480)];
emptyview.backgroundColor = [UIColor clearColor];
[self.view addSubview:emptyview];
[emptyview addSubview:alert];
NSLog (@"emptyview is there!");
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
[emptyview addGestureRecognizer:singleTap];
[singleTap release];
}
Mais ce emptyview ne pas répondre à tous et il ne répond pas à handleSingleTap sélecteur, j'ai réécrit un peu:
-(void)handleSingleTap:(UITapGestureRecognizer *)sender{
[alert dismissWithClickedButtonIndex:0 animated:YES];
[emptyview removeFromSuperview];
}
J'ai besoin de cette emptyview lors de l'alerte lorsque l'alerte est affichée ensuite, je peux rejeter alerte avec un robinet.
J'ai essayé:
if (alert)
{
emptyview = [[UIView alloc]initWithFrame:CGRectMake(0,0,320,480)];
emptyview.backgroundColor = [UIColor clearColor];
[self.view addSubview:emptyview];
[emptyview addSubview:alert];
NSLog (@"emptyview is there!");
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
[alert addGestureRecognizer:singleTap];
[singleTap release];
}
Bien sûr, l'alerte a répondu à handleSingleTap fonction. Qu'ai-je mal avec emptyview?
DEUXIÈME EDIT:
Ce que je veux atteindre dans ce cas est de montrer un petit point de vue avec des explications, après la sélection d'un mot, même fonction dans l'application Kindle, si vous en avez un.
Je devrais peut-être créer une UIView au lieu de UIAlertView? Mais la petite vue en application Kindle est tellement agréable avec de l'ombre en-dessous, comment est-il possible?
OriginalL'auteur wagashi | 2011-11-24
Vous devez vous connecter pour publier un commentaire.
On dirait que vous vous êtes essentiellement en essayant de recréer un "Toast" sur iOS. Bonne nouvelle, quelqu'un l'a déjà fait. Voir à ce projet.
Edit: Ne souhaitez pas utiliser iToast. J'aime votre style, moins de code qu'il est. Voici ce que je viens avec. Il semble évident que d'autres ont dit que la seule façon de surmonter la modale de la nature de la
UIAlertView
est d'ajouter un superview pour gérer les événements tactiles. Mais vous n'avez pas à le faire manuellement à chaque fois, envisager de sous-classementUIAlertView
. Essayez quelque chose comme ceci:Edit: @wagashi, Merci de bien vouloir accepter ma réponse, et merci pour le heads up sur
setFrame:
être un bon endroit pour ajuster la taille. Votre code est très toast comme des petits alerte, cependant quand je l'ai essayé j'ai trouvé que si le message a été long la vue semblait tomber en morceaux. J'ai donc modifiésetFrame:
pour réduire la taille de l'alerte par environ la taille d'un bouton, et de rester centré sur l'écran. De sorte que la classe de précision répond à la question du titre "iOS Comment faire disparaître UIAlertView avec un clic de n'importe où?"NoButtonAlertView.h
NoButtonAlertView.m
Avec cette simple
UIAlertView
sous-classe et de sesUIView
sous-classe d'une couverture, vous pouvez l'utiliser simplement comme vous le feriez d'un standardUIAlertView
. Comme:Donnera:
c'était infiniment utile! J'ai ajouté dans .m : ` - (void)setFrame:(CGRect)rect { //[super setFrame:CGRectMake(0, 0, rect.taille.width, 300)]; [super setFrame:CGRectMake(0, 0, 100, 100)]; //le code ci-dessous rend UIAlertView être centré. //auto.centre = CGPointMake(320/2, 480/2); //mon custom cgpointmake auto.centre = CGPointMake(200, 400); }`
Oui, vous avez répondu à ma question. Cependant, je ne vais pas mettre beaucoup d'informations dans mon "alerte", de sorte CGRectMake 0,0,100,100 est tout simplement parfait dans mon cas. Je me demande si il est possible de changer la taille de police du texte à l'intérieur UIAlertView?
et votre une autre solution pour CGRectMake est également utile, merci encore.
Alerte de vue ne semble pas être rejeté avec ios 7 🙁
OriginalL'auteur NJones
Après montrant UIAlertView ajouter à votre vue-contrôleur (ou même fenêtre) vide UIView avec la taille de l'écran. Joindre à cette vue UITapGestureRecognizer
Maintenant dans
handleSingleTap
méthode, vous pouvez rejeter UIAlertView et de supprimer ce point de vue à partir de la fenêtreOui, bonne idée. Il enregistre d'écrire plusieurs lignes de code. En tout cas, vous avez besoin de la poignée du robinet d'action.
Par curiosité, pourquoi utiliser un
UIAlertView
à tous? Mettre un écranUIButton
en face de tous les autres points de vue avec n'importe quel texte et la couleur d'arrière-plan w/ alpha que vous aimez (ou amateur).C'est une bonne idée. Mais je pense que je ne le crois pas très logiquement, veuillez voir mon edit.
C'est aussi une bonne idée. Je suis un peu beaucoup plus que débutant. Veuillez voir mon deuxième édition pour ce que je veux atteindre.
OriginalL'auteur beryllium