【问题标题】:MKMapView fade in but won't fade out via animationMKMapView 淡入但不会通过动画淡出
【发布时间】:2011-08-06 00:45:54
【问题描述】:

当我们成功找到地址时,我一直在尝试淡入 MKMapView,并在 long & lat == 0 时淡出视图。我在委托中有代码:

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

简单的操作在正确的时间按预期工作(例如,setHidden:YES 或 setHidden:NO)。

我的问题是,虽然每次调用淡入似乎都能正常工作,但淡出动画似乎并没有发生。好像唯一的调用是 setHidden:YES。

我的渐变代码如下:

 //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 中使用动画块时会得到相同的行为。

有什么想法吗?

谢谢

【问题讨论】:

    标签: ios animation mkmapview fade


    【解决方案1】:

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

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

    【讨论】:

    • 成功!它起作用了...为什么调用 .hidden 有关系?
    • self.map.hidden=YES;与 [self.map setHidden:YES] 相同;不同之处在于,您在设置动画后立即将 hidden 设置为 YES,这并没有给动画足够的时间来完成。
    猜你喜欢
    • 2016-01-21
    • 1970-01-01
    • 2014-01-20
    • 2012-12-18
    • 2020-12-06
    • 2019-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多