我一直在尝试使用自定义MKOverlayPathView子类和自定义类向地图视图添加半圆,但我无法在地图视图中显示任何内容。我使用UIBezierPath为圆圈创建路径,但无论我尝试什么,我都看不到自己的路径...... 有没有人有一个示例程序,其中UIBezierPath被用作叠加?
谢谢!
添
编辑:回答安娜的问题:
我可以毫无问题地绘制MKCircleViews,但我似乎很难为MKOVerlay(Path)View定制子类。委托已设置,NSLog确认我的叠加层实际已添加,只有查看部分丢失...
我的overlay类的头文件下面。评论和变量都是荷兰语,如果有人想要翻译,我可以提供,但我认为一切都应该清楚。我创建了一个具有中心坐标和半径的叠加层。
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属性。
答案 0 :(得分:1)
好吧,我终于找到了我做错了什么!它实际上比我想象的容易!
解决方案:
通过使用自定义类,我自己做得太难了......