【问题标题】:I need a dead simple implementation of MKCircle overlay我需要一个简单的 MKCircle 覆盖实现
【发布时间】:2011-08-26 03:47:38
【问题描述】:

我的视图上有一张小地图,我想在上面放置一个 MKCircle 叠加层。在创建监控区域时,我拥有所有坐标和半径。我想将此区域显示给用户,以便他们知道边界是什么。

对于我的一生,互联网上没有一个好的教程可以让我只需要在我的地图上画一个圆圈就可以完成。

作为先驱...我使用了 Apple 的示例,但没有成功。 Regions 示例应该是需要的,但我能做的就是放下图钉,没有圆圈。我什至将他们的课程直接复制到我的项目中……不高兴。因此,如果您能给我指出一个很好的示例或准确地布局需要在简单的 ViewController 中实现的内容,我将不胜感激。

【问题讨论】:

    标签: iphone ios mkmapview mkannotation mkoverlay


    【解决方案1】:

    我猜为什么使用示例代码不起作用:您没有将视图控制器连接为地图视图的委托。这样做的第一步是确保控制器实现 MKMapViewDelegate 协议,如下所示(在其头文件中):

    #import <MapKit/MapKit.h>
    
    @interface MyViewController : UIViewController <MKMapViewDelegate>
    

    如果您从 XIB 设置视图控制器,请按住 Ctrl 键从地图视图拖动到您的控制器实例,并将其连接为地图视图的 delegate 出口。如果您在代码中设置它,请在您的-loadView-viewDidLoad 中调用theMapView.delegate = self;

    然后,在某个时候(例如,在您的 -viewDidLoad 中),

    [theMapView addOverlay:[MKCircle circleWithCenterCoordinate:someCoordinate radius:someRadius]];
    

    ...将导致地图视图调用其委托的-mapView:viewForOverlay: 方法,您可以实现如下内容:

    -(MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay {
        MKCircleView *circleView = [[MKCircleView alloc] initWithCircle:(MKCircle *)overlay];
        circleView.fillColor = [UIColor blueColor];
        return [circleView autorelease];
    }
    

    【讨论】:

    • 我在代码中调用了委托,但你是对的,我没有将 mapView 连接到我的 .xib 中的委托。我这样做了,圆圈立即在地图上掉了下来。非常感谢!
    • 如果您已经以编程方式设置代理但它不起作用,则可能是您设置得太早,而您的地图视图出口为nil。只有在-loadView 完成后,即在第一次调用theViewController.view 之后,才能设置网点;您可以在-viewWillAppear:-viewDidLoad 等中使用它们,但-init(或-initWithNibName:bundle: 或其他)不起作用。
    • 它是-(MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id )overlay
    【解决方案2】:

    这是

    -(MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <
    MKOverlay>)overlay
    

    对于完整的委托方法,请参阅 a complete answer 了解像我这样完全迷失的人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-20
      • 1970-01-01
      • 1970-01-01
      • 2015-08-29
      • 1970-01-01
      • 2020-03-12
      • 1970-01-01
      • 2013-03-27
      相关资源
      最近更新 更多