2014-04-16 2 views
0

J'ai un MKMapView - qui fonctionne bien. J'ai maintenant quelques notifications que le ViewController répond à quand la couverture de réseau tombe en panne. Quand cela arrive, je veux montrer un UIView simple avec un UILabel qui indique à l'utilisateur que le réseau est en panne.Ajouter une couverture réseau UIView à MKMapView

J'ai beaucoup de problèmes pour y arriver. J'ai construit la vue dans l'Interface Builder et je suis initialisant comme si dans viewDidLoad:

self.networkWarningView = [[[NSBundle mainBundle] loadNibNamed:@"NetworkWarningView" 
                  owner:nil 
                  options:nil] lastObject]; 

self.networkWarningView.frame = CGRectMake((self.view.bounds.size.width/2) - 140, (self.view.bounds.size.height/2) - 45, 280, 70); 

Je suis la manipulation d'un réseau vers le bas notification à l'aide de cette méthode:

-(void)handleNetworkWarning 
    { 

     self.hasNetworkFailure = YES; 

     BOOL shouldBeAdded = YES; 
     for(UIView *view in [self.view subviews]){ 
      if([view isEqual:self.networkWarningView]){ 
       shouldBeAdded = NO; 
      } 
     } 

     if(shouldBeAdded){ 

      self.networkWarningView.alpha = 0.0; 

      [self.view addSubview:self.networkWarningView]; 

      [UIView animateWithDuration:0.7 animations:^{ 
       self.networkWarningView.alpha = 1.0; 
      }]; 
     } 

    } 

J'ai essayé d'ajouter the warningView à la vue du contrôleur de vue ET à la vue de la carte - mais aucune de ces approches ne fonctionne. Je voudrais "animer" l'avertissement quand il se produit.

Tout conseil sur la meilleure façon de superposer une vue sur un MkMapView serait apprécié. Je pensais que ce serait simple ....

Merci

Répondre

1

C'était stupide. Toute personne travaillant avec Mapkit - se souvient que toutes les notifications qui devraient entraîner une modification de l'interface utilisateur doivent être envoyées au thread principal. Je les envoyais à un fil de travail de base donc pas étonnant que rien ne se passait!

Questions connexes