MKMapView được xem pin của nó từ phương pháp đại biểu của nó mapView:viewForAnnotation: Vì vậy, bạn phải:
- Đặt điều khiển xem của bạn khi đại biểu của bản đồ.
- Triển khai mapXem: viewForAnnotation: trong bộ điều khiển của bạn.
Đặt điều khiển của bạn như đại biểu
@interface MapViewController : UIViewController <MKMapViewDelegate>
Đánh dấu giao diện với các giao thức đại biểu. Điều này cho phép bạn thiết lập bộ điều khiển như là người đại diện của MKMapView trong Interface Builder (IB). Mở tệp .xib chứa bản đồ của bạn, nhấp chuột phải vào MKMapView và kéo lối ra delegate
vào bộ điều khiển của bạn.
Nếu bạn muốn sử dụng mã thay vì IB, hãy thêm self.yourMapView.delegate=self;
vào phương thức viewDidLoad của bộ điều khiển. Kết quả sẽ giống nhau.
Thực hiện MapView: viewForAnnotation:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
// this part is boilerplate code used to create or reuse a pin annotation
static NSString *viewId = @"MKPinAnnotationView";
MKPinAnnotationView *annotationView = (MKPinAnnotationView*)
[self.mapView dequeueReusableAnnotationViewWithIdentifier:viewId];
if (annotationView == nil) {
annotationView = [[[MKPinAnnotationView alloc]
initWithAnnotation:annotation reuseIdentifier:viewId] autorelease];
}
// set your custom image
annotationView.image = [UIImage imageNamed:@"emoji-ghost.png"];
return annotationView;
}
Bạn có thể chỉ cho tôi một ví dụ về cách thực hiện việc này không? Tôi mới đến mục tiêu c. Cảm ơn – 3sl