0

我已经做到了,UILongPressGestureRecognizer 会丢下一个图钉,但我希望它是动画的。所以我尝试在 press: 方法中设置 animatesDrop 属性,我没有收到任何错误,但它不起作用。我不知道我是否将属性设置在错误的位置,或者什么。

这是代码。

-(void)viewDidLoad
{
    UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc]initWithTarget:self
                                                                                       action:@selector(press:)];
longPress.minimumPressDuration = 0.5f; //user needs to press for 2 seconds
[longPress setDelegate:self];
[worldView addGestureRecognizer:longPress];
[worldView setShowsUserLocation:YES];

}

-(void)press:(UILongPressGestureRecognizer *)recognizer
{
    CGPoint touchPoint = [recognizer locationInView:worldView];
    CLLocationCoordinate2D touchMapCoordinate = [worldView convertPoint:touchPoint toCoordinateFromView:worldView];

if (UIGestureRecognizerStateBegan == recognizer.state) {
    BNRMapPoint *mp = [[BNRMapPoint alloc]initWithCoordinate:touchMapCoordinate
                                                       title:@"Some Title"];
    [worldView addAnnotation:mp];
    [mp setAnimatesDrop:YES];
}

}

任何帮助,将不胜感激。

4

1 回答 1

2

setAnimatesDrop:是 MKPinAnnotationView 的一种方法,而您BNRMapPoint似乎是实现MKAnnotation协议的注释类。

您需要提供mapView:viewForAnnotation:为您的注释返回 MKPinAnnotationView 的方法,您可以在其中将 MKPinAnnotationView 的animatesDrop属性设置为YES.

可以参考苹果的示例代码MapCallouts

于 2012-09-14T01:50:56.230 回答