我一直在尝试使用自定义 MKOverlayPathView 子类和确认的自定义类向地图视图添加半圈,但我无法在地图视图上显示任何内容。我使用 UIBezierPath 来创建圆圈的路径,但无论我尝试什么,我都看不到我的路径...有没有人有一个示例程序,其中 UIBezierPath 被用作覆盖?
谢谢!
蒂姆
编辑:回答安娜的问题:
我可以毫无问题地绘制 MKCircleViews,但我似乎在为 MKOVerlay(Path)View 的自定义子类上苦苦挣扎。委托已设置,并且 NSLog 确认我的叠加层实际上已添加,仅缺少 View 部分......
在我的覆盖类的头文件下方。注释和变量是荷兰语,如果有人想要翻译,我可以提供,但我认为一切都应该清楚。我创建了一个具有中心坐标和半径的叠加层。
boundingMapRect 是从中心坐标计算的。原点是中心减去 x 和 y 的半径,宽度 + 高度是半径的两倍。
@interface PZRMijnOverlay : NSObject <MKOverlay>
{
}
//een property die een bezierpath beschrijft, naar de 2 standaard overlay properties
@property (nonatomic, strong) UIBezierPath *bezierPath;
@property (nonatomic) CLLocationDistance straal;
//class method
+(PZRMijnOverlay *)bezierCirkelMetCenterCoordinate: (CLLocationCoordinate2D)coordinaat enStraal: (CLLocationDistance)eenStraal;
//een eigen designated init
-(id)initWithCenterCoordinate: (CLLocationCoordinate2D)coordinaat enStraal: (CLLocationDistance)eenStraal;
@end
这是 de viewForOverlay 方法的实现:
PZROverlayView *overlayView = [[PZROverlayView alloc] initWithOverlay:(PZRMijnOverlay *)overlay];
overlayView.strokeColor = [UIColor redColor];
overlayView.lineWidth = 10;
//overlayView.strokeColor = [UIColor blackColor];
return overlayView;
现在我想我应该覆盖我的 PZROverlayView 类中的 createPath 方法,但我不知道需要什么代码去那里。我尝试创建一个 UIBezierPath,将其转换为 CGPath 并将其分配给 MKOverlayPathView 超类的 path 属性。