可拖动的 MKPinAnnotationView 不起作用。 draggable = YES,callout有title和subtitle,setCoordinate实现

Posted

技术标签:

【中文标题】可拖动的 MKPinAnnotationView 不起作用。 draggable = YES,callout有title和subtitle,setCoordinate实现【英文标题】:MKPinAnnotationView draggable not working. draggable = YES, callout has title and subtitle, and setCoordinate is implemented 【发布时间】:2013-03-15 10:27:32 【问题描述】:

当我尝试拖动图钉时,它不会移动。当我触摸它时,它会变暗。但是,它永远不会抬起,也永远不会移动。

这是我的注释类的头文件:

#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
#import <Parse/Parse.h>

@interface GeoPointAnnotation : NSObject <MKAnnotation>

- (id)initWithObject:(PFObject *)aObject;

@property (nonatomic, readwrite, assign) CLLocationCoordinate2D coordinate;
@property (nonatomic, readonly, copy) NSString *title;
@property (nonatomic, readonly, copy) NSString *subtitle;

- (void)setCoordinate:(CLLocationCoordinate2D)newCoordinate;

@end

这是我在视图控制器中创建注释的地方:

- (void)updateMap

    [self.mapView removeAnnotations:self.mapView.annotations];

    PFGeoPoint *geoPoint = [self.post location];

    // center the map around the geopoint
    [self.mapView setRegion:MKCoordinateRegionMake(
       CLLocationCoordinate2DMake(geoPoint.latitude, geoPoint.longitude),
       MKCoordinateSpanMake(0.01, 0.01)
       )];

    GeoPointAnnotation *annotation = [[GeoPointAnnotation alloc] initWithObject:self.post.object];
    [self.mapView addAnnotation:annotation];


// from Geolocations by Parse
#pragma mark - MKMapViewDelegate

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation 
    static NSString *GeoPointAnnotationIdentifier = @"RedPin";

    MKPinAnnotationView *annotationView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:GeoPointAnnotationIdentifier];

    if (!annotationView) 
        annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:GeoPointAnnotationIdentifier];
        annotationView.pinColor = MKPinAnnotationColorRed;
        annotationView.canShowCallout = YES;
        annotationView.draggable = YES;
        annotationView.animatesDrop = YES;
    

    return annotationView;

有什么想法吗?

【问题讨论】:

查看***.com/questions/12558753/… 【参考方案1】:

发现问题:我忘记在我的 Storyboard xib 中连接 Map View 的委托。 h/t Nitin Gohel - 谢谢!

【讨论】:

我也是!你不是一个人。您应该接受您作为答案发布。

以上是关于可拖动的 MKPinAnnotationView 不起作用。 draggable = YES,callout有title和subtitle,setCoordinate实现的主要内容,如果未能解决你的问题,请参考以下文章

实现 MKPinAnnotationView 拖动功能?

MKPinAnnotationView 禁用选择/突出显示但不提升和拖动

拖动我的 MKAnnotationView 后拖动地图不会移动 MKAnnotationView

MKPinAnnotationView 不动

MKPinAnnotationView - 不同引脚的不同动作

自定义 MKPinAnnotationView 颜色