新しいアプリにMKMapViewを追加してみました。ピンの画像を変更できるように、カスタムMKAnnotationView->を作成しました。ピンをドラッグしようとするまで、すべてが機能します。私が何をしても、それはうまくいきません。あと1つだけ言いたいことがあります。MapViewは、大きなtableViewセルのサブビューです。しかし、パンとズームは適切に機能するので、それとは関係がないと思います...
これが私のコードです:
MKAnnotation
@interface MyAnnotation : NSObject <MKAnnotation> {
}
//MKAnnotation
@property (nonatomic, assign) CLLocationCoordinate2D coordinate;
@end
@implementation MyAnnotation
@synthesize coordinate;
@end
MKAnnotationView
@interface MyAnnotationView : MKAnnotationView {
}
@end
@implementation MyAnnotationView
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:CGRectMake(self.frame.origin.x, self.frame.origin.y, 38, 43)];
if (self) {
// Initialization code
UIImage* theImage = [UIImage imageNamed:@"partyPin.png"];
if (!theImage)
return nil;
self.image = theImage;
}
return self;
}
@end
MapViewが含まれるビュー-メソッドの委任-MKAnnotationと「addAnnotation」を初期化する部分は含まれません
- (MKAnnotationView *)mapView:(MKMapView *)lmapView viewForAnnotation:(id <MKAnnotation>)annotation {
MyAnnotationView *myAnnotationView = (myAnnotationView *)[lmapView dequeueReusableAnnotationViewWithIdentifier:@"myView"];
if(myAnnotationView == nil) {
myAnnotationView = [[MyAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"myView"];
}
myAnnotationView.draggable = YES;
myAnnotationView.annotation = annotation;
return myAnnotationView;
}
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)annotationView didChangeDragState:(MKAnnotationViewDragState)newState fromOldState:(MKAnnotationViewDragState)oldState
{
if (newState == MKAnnotationViewDragStateEnding)
{
CLLocationCoordinate2D droppedAt = annotationView.annotation.coordinate;
NSLog(@"dropped at %f,%f", droppedAt.latitude, droppedAt.longitude);
}
}
誰かが私が逃したものを見ますか?
よろしくお願いします!