MKMapView исчезает, но не исчезает с помощью анимации - PullRequest
1 голос
/ 05 августа 2011

Я пытался исчезнуть в MKMapView, когда мы успешно нашли адрес, и исчезнуть в представлении, когда long & lat == 0. У меня есть код в делегате:

- (void)didCompleteMapsRequestWithLatitude:(double)latitude andLongitude:(double)longitude

Простые действия работают как положено (например, setHidden: YES или setHidden: NO) в правильное время.

Моя проблема в том, что, хотя постепенное появление, кажется, работает хорошо каждый раз, когда оно вызывается, анимация исчезновения, по-видимому, не происходит. Это как если бы единственный вызов setHidden: ДА.

Мой код исчезновения следующий:

 //no location found
 if (location.latitude == 0 && location.longitude == 0)
    {
        //fade out
        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:1.0];
        [UIView setAnimationDelegate:self];

        [self.map setAlpha:0.0];

        [UIView commitAnimations];

        [self.map setHidden:YES];

    }
    //we found the location on the map
    else
    {
        [self.map setHidden:NO];

        //fade in
        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:1.0];
        [UIView setAnimationDelegate:self];

        [self.map setAlpha:1.0];

        [UIView commitAnimations];
    }

Примечание. То же самое я получаю, используя анимационные блоки с iOS 4.0.

Есть мысли?

Спасибо

1 Ответ

3 голосов
/ 05 августа 2011

Я думаю, вам нужно запустить [self.map setHidden: YES] после завершения анимации, например:

[UIView animateWithDuration:1.0
            animations:^{ 
                self.map.alpha=0.0;
            } 
            completion:^(BOOL finished){
                self.map.hidden=YES;
            }];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...