gpt4 book ai didi

iphone - MapKit map View :viewForAnnotation has no effect on pin color

转载 作者:行者123 更新时间:2023-12-03 19:58:11 24 4
gpt4 key购买 nike

我似乎无法更改图钉颜色。

我有我的 View Controller 扩展 <MKMapViewDelegate>并实现mapView:viewForAnnotation我很接近,但一定缺少一些东西。任何帮助将不胜感激。

MainViewController.h

#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
#import "StopAnnotation.h"

#define METERS_PER_MILE 1609.344

@interface MainViewController : UIViewController <MKMapViewDelegate> {

}
@property (weak, nonatomic) IBOutlet MKMapView *mapView;

@end

MapViewController.m

#import "MainViewController.h"

@implementation MainViewController
@synthesize mapView=_mapView;

- (void)viewWillAppear:(BOOL)animated
{
CLLocationCoordinate2D zoomLocation;
zoomLocation.latitude = 43.066667;
zoomLocation.longitude = -89.4;

MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(zoomLocation, METERS_PER_MILE, METERS_PER_MILE);

MKCoordinateRegion adjustRegion = [_mapView regionThatFits:viewRegion];

[_mapView setRegion:adjustRegion animated:YES];
[_mapView addAnnotation:[[StopAnnotation alloc] initWithCoordinate:zoomLocation]];
}

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation {
MKPinAnnotationView *pav = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:nil];
pav.pinColor = MKPinAnnotationColorPurple;
return pav;
}

// the rest of the methods are default, i.e. viewDid* and shouldAutorotate*, etc...

StopAnnotation.h

#import <Foundation/Foundation.h>
#import <MapKit/MapKit.h>

@interface StopAnnotation : NSObject <MKAnnotation> {
CLLocationCoordinate2D coordinate;
NSString *title;
NSString *subtitle;
}
- (id)initWithCoordinate:(CLLocationCoordinate2D)c;
@end

StopAnnotation.m

#import "StopAnnotation.h"

@implementation StopAnnotation
@synthesize coordinate;

- (NSString *)subtitle {
return @"subtitle";
}

- (NSString *)title {
return @"title";
}

- (id)initWithCoordinate:(CLLocationCoordinate2D)c {
coordinate = c;
NSLog(@"%f,%f", c.latitude, c.longitude);
return self;
}

@end

我正在做一个练习,代码大部分来自 here

谢谢!!

最佳答案

您必须将MainViewController设置为mapView的委托(delegate),即如果您没有设置MainViewController,那么如果您在

中放置断点,则 map View 可能会生成默认引脚
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation

它真的被调用了吗?

关于iphone - MapKit map View :viewForAnnotation has no effect on pin color,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7769959/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com