如何:在MKMapView上显示MKOverlay
我需要在地图上显示MKOverlay,但无法实际显示。
我正在关注苹果“ 位置感知编程指南”中的示例 ,并且不会显示覆盖图。 任何帮助将不胜感激,这是我所做的第一个iPhone应用程序,所以我可能会错过简单的东西。
NavViewController.h
#import <UIKit/UIKit.h> #import <MapKit/MapKit.h> @interface NavViewController : UIViewController <MKMapViewDelegate> { } @property (weak, nonatomic) IBOutlet MKMapView *mapView; @end
NavViewController.m
#import "MSUNavViewController.h" #import <CoreLocation/CoreLocation.h> - (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; } - (void)viewDidLoad { [super viewDidLoad]; // 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"; [_mapView addOverlay:poly]; }
故事板:
任何编码build议将不胜感激。 谢谢!
确保将mapView的delegate
设置为视图控制器实例(在这种情况下也许是File's owner
)。
在界面构build器中,右键单击地图视图,从代理右侧的空心圆中拖动到左侧窗格中占位符部分的文件所有者图标。
对于故事板,连接到视图控制器图标而不是文件的所有者。
- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay
by return nil;
尝试添加else
之前。
- (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; } else return nil; }
你解决了你的问题吗? 只需从代表(在屏幕截图中)旁边的圆圈拖到名称为圆圈的圆圈中。在检查器中有一个设置,可以让您显示您所在的位置。 你做了需要中心地图说viewDidLoad所以它显示在科罗拉多州..
- Core Data父级ManagedObjectContext是否需要与子级上下文共享一个并发types?
- 如何将数据从UIViewController发送到Swift ios中的UITabBarControllers第一个选项卡
- ios将数据从TabbarController传递到Storyboard中的ViewController
- UITextView链接点击识别被延迟
- 如何在Swift中在UITableView上滚动UITextView
- 如何设置iOS UITextField边框颜色? (RubyMotion + iOS)
- Xcode 5铛:错误:链接器命令失败,退出代码1(使用-v看到调用)
- Swift 3将数据从一个ViewController传递到另一个ViewController
- iOS 9方向自动旋转animation不工作,但始终在主线程