La vue d'alerte montre le rectangle blanc dans iOS7
Le code suivant fonctionne parfaitement à partir de iOS 5 à l'article 6.1. J'ai même avoir des applications dans le magasin avec le code:
-(void)showActivityIndicator
{
if(!mLoadingView) //
{
mLoadingView = [[UIAlertView alloc] initWithTitle:@"" message:@"" delegate:self cancelButtonTitle:nil otherButtonTitles:nil];
mLoadingView.tag = kAlertViewTag;
}
[mLoadingView show];
}
- (void)willPresentAlertView:(UIAlertView *)alertView
{
if (alertView.tag == kAlertViewTag)
{
UIActivityIndicatorView *actInd = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
actInd.frame = CGRectMake(128.0f, 45.0f, 25.0f, 25.0f);
[alertView addSubview:actInd];
[actInd startAnimating];
UILabel *l = [[UILabel alloc]init];
l.text = NSLocalizedString(@"PRODUCT_PURCHASE_INDICATOR_TITLE", @"Please wait...");
l.font = [UIFont fontWithName:@"Helvetica" size:16];
float strWidth = [l.text sizeWithFont:l.font].width;
float frameWidth = alertView.frame.size.width;
l.frame = CGRectMake((frameWidth - strWidth)/2, -25, 210, 100);
l.textColor = [UIColor whiteColor];
l.shadowColor = [UIColor blackColor];
l.shadowOffset = CGSizeMake(1.0, 1.0);
l.backgroundColor = [UIColor clearColor];
[alertView addSubview:l];
}
}
Il va montrer de l'affichage des alertes sans boutons et avec l'indicateur d'activité et de l'étiquette. Toutefois, dans iOS7 je ne peux voir qu'blanc rectangle arrondi, pas de voyant d'activité.
Que puis-je faire pour avoir ce travail à partir d'iOS 5 à 7?
Mise à jour:
D'être le plus descriptif, je suis en ajoutant des captures d'écran. Voici iOS 5 à 6,1 capture d'écran. Fonctionne très bien.
Voici iOS7. Comme vous pouvez le voir, même de la taille est plus petite. On dirait qu'il est pas complètement initialisé ou quelque chose.
source d'informationauteur Pablo
Vous devez vous connecter pour publier un commentaire.
maintenant
addSubview
n'est pas disponible dansUIAlertView
dans iOS7La
UIAlertView
classe est destiné à être utilisé comme tel et ne prend pas en charge le sous-classement. Le point de vue de la hiérarchie de cette classe est privée et ne doit pas être modifiéeComme alternative, vous pouvez utiliser
SVProgressHUD
.À partir de iOS 7 à partir, vous pouvez le faire:
pour obtenir du contenu personnalisé dans un standard de l'affichage des alertes.
J'ai eu à résoudre ce problème très rapidement, donc j'ai construit un iOS7 UIAlertView de style UIView avec ses animations, qui peut être étendue avec le contenu personnalisé.
Il y a peut être d'autres personnes qui peuvent utiliser ma solution, j'ai donc fait le code complet est disponible sur Github.
Aussi, si vous souhaitez continuer à utiliser la UIAlertView sous les précédentes versions de système d'exploitation, vous avez la fourche à la fourchette le code. Il pourrait être aussi mauvais que cela puisse paraître, je suis en utilisant les suivantes:
(S'il vous plaît être conscient que ce n'est pas une réelle solution - si Apple ne veut pas que nous d'utiliser les boîtes de dialogue pour toutes sortes de choses, alors on ne devrait probablement pas.)