【问题标题】:pin drop animation针落动画
【发布时间】:2011-11-23 15:03:19
【问题描述】:

默认的 pin drop 动画在我的应用中不起作用,这是我编写的一些代码:

- (void)viewDidLoad {
    /*
        some code...
    */
    [theMapView addAnnotation:addAnnotation];
    [addAnnotation release];
}

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation{
    MKPinAnnotationView *annoView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation 
                                                            reuseIdentifier:@"current"];
    annoView.animatesDrop = YES;
    annoView.pinColor = MKPinAnnotationColorGreen;
    return annoView;
}

现在pin只是在屏幕上显示为默认红色,没有任何动画,采用MKMapViewDelegate协议,任何人都可以看到这里有什么问题吗?

【问题讨论】:

  • 您确定调用了委托方法吗?您是否设置了 MapView 委托属性?
  • 你在哪里调用这个方法?我在这个 viewController 中只有一个 MKMapView 的实例。
  • 您需要控制从地图拖动到文件所有者并选择委托。还要控制从文件所有者拖动到您的 MapView 以确保您的地图可以接收注释。
  • 在你已经初始化 MapView 的地方试试这个,记下 [theMapView setDelegate:self];

标签: iphone mkmapview mkpinannotationview


【解决方案1】:

第一次使用:

[yourMap_view setDelegate:self];

在 ViewDidLoad 中

然后调用这个作为放置动画:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
MKPinAnnotationView *pinView = nil;
if(annotation!= map_view.userLocation)
{
    static NSString *defaultPin = @"pinIdentifier";
    pinView = (MKPinAnnotationView*)[map_view dequeueReusableAnnotationViewWithIdentifier:defaultPin];
    if(pinView == nil)
        pinView = [[[MKPinAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:defaultPin]autorelease];
    pinView.pinColor = MKPinAnnotationColorPurple; //Optional
    pinView.canShowCallout = YES; // Optional
    pinView.animatesDrop = YES;
}
else
{
    [map_view.userLocation setTitle:@"You are Here!"];
}
return pinView;
}

【讨论】:

  • 这个方法是被框架调用还是我必须调用它?
  • @EliMiller,如果您设置了地图视图的委托。并粘贴viewForAnnotation方法,只要在地图上看到地图视图的注释就会触发。
  • 有关如何执行此操作的信息非常稀少,但我发现此解决方案对我有用。值得注意的是 pinColor 或 canShowCallout 属性不是必需的。
  • @iNoob :我知道它很晚。但是我对放置动画感到很困惑。我实现了你的代码,工作正常,还在正确的位置放置了引脚,但我的问题是,放置动画不是那么流畅。大头针只出现在顶部,然后直接指向位置。无法获得流畅的动画。我正在为 iOS6 做这个。请帮帮我
  • @NSS:不确定动画是否流畅。也许是因为视图很“重”,mapview 非常消耗内存。如果您有时间,您可以使用仅带有地图和图钉放置动画的示例应用程序,并在设备上测试它是否仍然不那么流畅。动画在设备上相当不错,因为它是由操作系统处理的。在 iOS 6 中阅读某处地图比 5 更消耗内存,我不记得链接的确切帖子。
猜你喜欢
  • 1970-01-01
  • 2017-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-10
  • 2011-03-15
相关资源
最近更新 更多