Импорт этих рамочные:
#import <MapKit/MapKit.h>
Включите этот делегат
@interface ViewController() <MKMapViewDelegate>
Добавьте этот код на свой ранее существовавшего метода viewDidLoad
(void)viewDidLoad
{
// Tile system URL template goes here
NSString *template = @"http://tile.openstreetmap.org/{z}/{x}/{y}.png";
// Associating overlay with URL template
MKTileOverlay *overlay = [[MKTileOverlay alloc] initWithURLTemplate:template];
// Allowing overlays on MKMapView & disabling Apple map data
overlay.canReplaceMapContent = YES;
// Adding overlay to MKMapView above Apple lables
[self.mapView addOverlay:overlay level:MKOverlayLevelAboveLabels];
// Linking the delegate to allow the next method to be called
self.mapView.delegate = self;
}
И это где-то в своем классе, что это делегат MAPview (в скорее всего, контроллер вида).
(MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay
{
if ([overlay isKindOfClass:[MKTileOverlay class]]) {
// Overlay the tile with the new template
return [[MKTileOverlayRenderer alloc] initWithTileOverlay:overlay];
}
return nil;
}