7.2. Handling the Events of a Map View
Problem
You want to handle various events that a map view can send to its delegate.
Solution
Assign a delegate object that conforms to the MKMapViewDelegate protocol to the delegate property of an instance of the
MKMapView class:
/* Create a map as big as our view */self.myMapView=[[MKMapViewalloc]initWithFrame:self.view.bounds];/* Set the map type to Satellite */self.myMapView.mapType=MKMapTypeSatellite;self.myMapView.delegate=self;self.myMapView.autoresizingMask=UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;/* Add it to our view */[self.viewaddSubview:self.myMapView];
This code can easily run in the viewDidLoad method of a view controller object
that has a property named MapView of
type MKMapView:
#import <UIKit/UIKit.h>#import <MapKit/MapKit.h>@interfaceHandling_the_Events_of_a_Map_ViewViewController:UIViewController<MKMapViewDelegate>@property(nonatomic,strong)MKMapView*myMapView;@end
Discussion
The delegate object of an instance of the MKMapView class
must implement the methods defined in the MKMapViewDelegate protocol in order to receive
various messages from the map view and, as we will see
later, to provide information to the map view. Various methods are defined in the MKMapViewDelegate protocol, such as the
mapViewWillStartLoadingMap: method that will get called in the delegate object whenever the map loading process starts. Bear in mind that a delegate for a map view is not a required object, ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access