当我们成功找到地址时,我一直在尝试淡入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动画块获得相同的行为。
有什么想法吗?
由于
答案 0 :(得分:3)
我认为你需要在动画完成时运行[self.map setHidden:YES],如下所示:
[UIView animateWithDuration:1.0
animations:^{
self.map.alpha=0.0;
}
completion:^(BOOL finished){
self.map.hidden=YES;
}];