MKMapView淡入但不会通过动画淡出

时间:2011-08-05 16:39:52

标签: ios animation mkmapview fade

当我们成功找到地址时,我一直在尝试淡入MKMapView,并在长时间和淡出时淡出视图。 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 个答案:

答案 0 :(得分:3)

我认为你需要在动画完成时运行[self.map setHidden:YES],如下所示:

[UIView animateWithDuration:1.0
            animations:^{ 
                self.map.alpha=0.0;
            } 
            completion:^(BOOL finished){
                self.map.hidden=YES;
            }];