BMKOverlayPathView.h 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. /*
  2. * BMKOverlayPathView.h
  3. * BMapKit
  4. *
  5. * Copyright 2011 Baidu Inc. All rights reserved.
  6. *
  7. */
  8. #import <UIKit/UIKit.h>
  9. #import "BMKOverlayView.h"
  10. /// 该类定义了一个基本的OverlayView
  11. @interface BMKOverlayPathView : BMKOverlayView {
  12. @package
  13. UIColor *_fillColor;
  14. UIColor *_strokeColor;
  15. CGFloat _lineWidth;
  16. CGLineJoin _lineJoin;
  17. CGLineCap _lineCap;
  18. CGFloat _miterLimit;
  19. CGFloat _lineDashPhase;
  20. NSArray *_lineDashPattern;
  21. CGPathRef _path;
  22. }
  23. /// 填充颜色
  24. @property (strong) UIColor *fillColor;
  25. /// 画笔颜色
  26. @property (strong) UIColor *strokeColor;
  27. /// 画笔宽度,默认为0
  28. @property CGFloat lineWidth;
  29. /// LineJoin,默认为kCGLineJoinRound
  30. @property CGLineJoin lineJoin;
  31. /// LineCap,默认为kCGLineCapRound
  32. @property CGLineCap lineCap;
  33. /// miterLimit,在样式为kCGLineJoinMiter时有效,默认为10
  34. @property CGFloat miterLimit;
  35. /// lineDashPhase, 默认为0
  36. @property CGFloat lineDashPhase;
  37. /// lineDashPattern,一个NSNumbers的数组,默认为nil
  38. @property (copy) NSArray *lineDashPattern;
  39. /**
  40. *生成要绘制的path,子类需要重写此函数,并且对path属性赋值:self.path = newPath;
  41. */
  42. - (void)createPath;
  43. /// path对象
  44. @property CGPathRef path;
  45. /**
  46. *刷新path,调用该函数将会使已经缓存的path失效,将会重新调用createPath来生成新的path对象
  47. */
  48. - (void)invalidatePath;
  49. /**
  50. *应用画笔属性
  51. *@param context CGContext对象
  52. *@param zoomScale 当前的zoomScale
  53. */
  54. - (void)applyStrokePropertiesToContext:(CGContextRef)context
  55. atZoomScale:(BMKZoomScale)zoomScale;
  56. /**
  57. *应用画刷属性
  58. *@param context CGContext对象
  59. *@param zoomScale 当前的zoomScale
  60. */
  61. - (void)applyFillPropertiesToContext:(CGContextRef)context
  62. atZoomScale:(BMKZoomScale)zoomScale;
  63. /**
  64. *绘制path
  65. *@param path 要绘制的CGPath
  66. *@param context CGContext对象
  67. */
  68. - (void)strokePath:(CGPathRef)path inContext:(CGContextRef)context;
  69. /**
  70. *填充path
  71. *@param path 要绘制的CGPath
  72. *@param context CGContext对象
  73. */
  74. - (void)fillPath:(CGPathRef)path inContext:(CGContextRef)context;
  75. @end