Я пытаюсь следовать инструкциям наложения, приведенным здесь:
https://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/LocationAwarenessPG/AnnotatingMaps/AnnotatingMaps.html#//apple_ref/doc/uid/TP40009497-CH6-SW15+
но наложение не отображается. Вот шаг за шагом из того, что я сделал до сих пор:
1.) Добавлен новый объект View Controller в раскадровку
2.) Добавлен объект вида карты в новый контроллер вида
3.) Пошел в File, New, New File ..., подкласс UIViewController, назвал его «MapViewController», который добавил три файла в мой проект: MapViewController.h, MapViewController.m и MapViewController.xib
4.) Затем я пошел к контроллеру представления и определил его класс как MapViewController
5.) Затем «Control» + щелкнул объект MKMapView в MapViewController.h, который создал: «@property (слабый, не атомарный) IBOutlet MKMapView * MKPolygonView;
6.) Затем я добавил соответствующий код в мои файлы .h и .m, чтобы отразить пример, который я включу в копию ниже
Когда я запускаю симулятор iOS, карта отображается, но наложение не отображается. Что я делаю не так?
MapViewController.h:
//
// MapViewController.h
// GeoShapes
//
// Created by Template User on 4/1/12.
// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//
#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
@interface MapViewController : UIViewController <MKMapViewDelegate> {
IBOutlet MKMapView *map;
}
@property (weak, nonatomic) IBOutlet MKMapView *MKPolygonView;
@end
MapViewController.m:
//
// MapViewController.m
// GeoShapes
//
// Created by Template User on 4/1/12.
// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//
#import "MapViewController.h"
@implementation MapViewController
@synthesize MKPolygonView;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)didReceiveMemoryWarning
{
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
#pragma mark - View lifecycle
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}
- (void)viewDidUnload
{
[self setMKPolygonView:nil];
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
// Define an overlay that covers Colorado.
CLLocationCoordinate2D points[4];
points[0] = CLLocationCoordinate2DMake(41.000512, -109.050116);
points[1] = CLLocationCoordinate2DMake(41.002371, -102.052066);
points[2] = CLLocationCoordinate2DMake(36.993076, -102.041981);
points[3] = CLLocationCoordinate2DMake(36.99892, -109.045267);
MKPolygon* poly = [MKPolygon polygonWithCoordinates:points count:4];
poly.title = @"Colorado";
[map addOverlay:poly];
}
- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay
{
if ([overlay isKindOfClass:[MKPolygon class]])
{
MKPolygonView* aView = [[MKPolygonView alloc] initWithPolygon: (MKPolygon*)overlay];
aView.fillColor = [[UIColor cyanColor] colorWithAlphaComponent:0.2];
aView.strokeColor = [[UIColor blueColor] colorWithAlphaComponent:0.7];
aView.lineWidth = 3;
return aView;
}
return nil;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
@end