J'ai une application sur iTunes store qui affiche des UILabel
et UIWebView
sur UIAlertView
. Selon la vidéo de la session, addSubView
pour UIAlertView
ne fonctionnera pas. Ils ont parlé de ContentView
. Mais dans le GM SDK Seeds, je n'ai pas pu trouver cette propriété et il ne semble pas y avoir d'autre moyen.
La seule chose que je puisse faire est de créer une sous-classe personnalisée de UIView
et de la faire fonctionner comme UIAertView
. Pouvez-vous suggérer une autre solution simple?
Merci pour l'aide.
Vous pouvez vraiment changer accessoryView en customContentView dans iOS7 (et il semble que dans iOS8 aussi) UIAlertView
[alertView setValue:customContentView forKey:@"accessoryView"];
Essayez ce code:
UIAlertView *av = [[UIAlertView alloc] initWithTitle:@"TEST" message:@"subview" delegate:nil cancelButtonTitle:@"NO" otherButtonTitles:@"YES", nil];
UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 80, 40)];
[av setValue:v forKey:@"accessoryView"];
v.backgroundColor = [UIColor yellowColor];
[av show];
N'oubliez pas que vous devez définir personnalisé accessoireView avant l'appel [alertView show]
AddSubview n'est pas possible à partir d'iOS 7.
La seule façon est de créer une sous-classe UIView personnalisée qui peut agir comme UIAlertView. J'ai pu découvrir quelques composants sur Github.
Le lien Alerte personnalisée semble bien fonctionner. En mettant la vérification de la version appropriée, on peut s'identifier pour opter pour UIAlertView ou CustomAlertView natif.
L'ajout d'une sous-vue à un UIAlertView
est différent dans iOS7 des versions antérieures d'iOS. Essayez quelque chose comme ceci:
if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1) {
[myAlertView setValue:myCustomView forKey:@"accessoryView"]; //works only in iOS7
} else {
myAlertView.message = @"\n"; //or just add \n to the end of the message (it's a workaround to create space inside the alert view
[myAlertView addSubview:myCustomView];
}
[myAlertView show]; //show the alert AFTER CUSTOMIZATION