gpt4 book ai didi

iphone - 我需要一个非常简单的 MKCircle 覆盖实现

转载 作者:可可西里 更新时间:2023-11-01 05:01:25 27 4
gpt4 key购买 nike

我的 View 上有一张小 map ,我想将 MKCircle 叠加层拖放到它上面。我在创建监视区域时拥有所有坐标和半径。我想将这个区域显示给用户,这样他们就会知道边界是什么。

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

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

最佳答案

我猜测为什么使用示例代码不起作用:您没有将 View Controller 连接为 map View 的委托(delegate)。这样做的第一步是确保 Controller 实现 MKMapViewDelegate 协议(protocol),就像这样(在它的头文件中):

#import <MapKit/MapKit.h>

@interface MyViewController : UIViewController <MKMapViewDelegate>

如果您从 XIB 设置 View Controller ,按住 Ctrl 从 map View 拖动到您的 Controller 实例并将其连接为 map View 的 delegate 导出。如果您在代码中设置它,请在您的 -loadView-viewDidLoad 中调用 theMapView.delegate = self;

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

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

...将导致 map View 调用其委托(delegate)的 -mapView:viewForOverlay: 方法,您可以像这样实现它:

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

关于iphone - 我需要一个非常简单的 MKCircle 覆盖实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7199832/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com