BMKOverlayPathView.h 2.18 KB
Newer Older
曹云霄's avatar
曹云霄 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
/*
*  BMKOverlayPathView.h
*  BMapKit
*
*  Copyright 2011 Baidu Inc. All rights reserved.
*
*/

#import <UIKit/UIKit.h>
#import "BMKOverlayView.h"

/// 该类定义了一个基本的OverlayView,并且在BMapKit中预置了几个经常使用的OverlayView
@interface BMKOverlayPathView : BMKOverlayView {
@package    
    UIColor *_fillColor;
    UIColor *_strokeColor;
    
    CGFloat _lineWidth;
    CGLineJoin _lineJoin;
    CGLineCap _lineCap;
    CGFloat _miterLimit;
    CGFloat _lineDashPhase;
    NSArray *_lineDashPattern;
    
    CGPathRef _path;
}

/// 填充颜色
@property (strong) UIColor *fillColor;
/// 画笔颜色
@property (strong) UIColor *strokeColor;

/// 画笔宽度,默认为0
@property CGFloat lineWidth;
/// LineJoin,默认为kCGLineJoinRound
@property CGLineJoin lineJoin;
/// LineCap,默认为kCGLineCapRound
@property CGLineCap lineCap;
/// miterLimit,在样式为kCGLineJoinMiter时有效,默认为10
@property CGFloat miterLimit;
/// lineDashPhase, 默认为0
@property CGFloat lineDashPhase;
/// lineDashPattern,一个NSNumbers的数组,默认为nil
@property (copy) NSArray *lineDashPattern;

/**
 *生成要绘制的path,子类需要重写此函数,并且对path属性赋值:self.path = newPath;
 */
- (void)createPath;
/// path对象
@property CGPathRef path;

/**
 *刷新path,调用该函数将会使已经缓存的path失效,将会重新调用createPath来生成新的path对象
 */
- (void)invalidatePath;


/**
 *应用画笔属性
 *@param context CGContext对象
 *@param zoomScale 当前的zoomScale
 */
- (void)applyStrokePropertiesToContext:(CGContextRef)context
                           atZoomScale:(BMKZoomScale)zoomScale;

/**
 *应用画刷属性
 *@param context CGContext对象
 *@param zoomScale 当前的zoomScale
 */
- (void)applyFillPropertiesToContext:(CGContextRef)context
                         atZoomScale:(BMKZoomScale)zoomScale;
/**
 *绘制path
 *@param path 要绘制的CGPath
 *@param context CGContext对象
 */
- (void)strokePath:(CGPathRef)path inContext:(CGContextRef)context;

/**
 *填充path
 *@param path 要绘制的CGPath
 *@param context CGContext对象
 */
- (void)fillPath:(CGPathRef)path inContext:(CGContextRef)context;

@end