6.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, which 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 = [[MKMapView alloc]
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.view addSubview: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>
@interface Handling_the_Events_of_a_Map_ViewViewController
: UIViewController <MKMapViewDelegate>
@property (nonatomic, strong) MKMapView *myMapView;
@endDiscussion
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 ...
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