不熟悉CGContextAddArcToPoint()
用法的同學(xué)可以先看下這個(gè)例子
CGContextRef context=UIGraphicsGetCurrentContext();
CGContextSetRGBStrokeColor(context,1,0,0,1);
CGContextMoveToPoint(context,150,50);
CGContextAddLineToPoint(context,100,80);
CGContextAddLineToPoint(context,130,150);
CGContextMoveToPoint(context,150,50);//圓弧的起始點(diǎn)
CGContextAddArcToPoint(context,100,80,130,150,50);
CGContextStrokePath(context);
20130926134549046.png
繪制一個(gè)地圖的AnnotationView的邊框
let kArrorHeigh: CGFloat = 10.0
class CustomCallOutView: UIView {
override func drawRect(rect: CGRect) {
drawInContext(UIGraphicsGetCurrentContext())
layer.shadowColor = UIColor.blackColor().CGColor
layer.shadowOpacity = 1.0
layer.shadowOffset = CGSize(width: 0, height: 0)
}
func drawInContext(context: CGContextRef) {
CGContextSetLineWidth(context, 2.0)
CGContextSetFillColorWithColor(context, UIColor.orangeColor().CGColor)
drawPath(context)
CGContextFillPath(context)
}
func drawPath(context: CGContextRef) {
var radius:CGFloat = 6.0
var minX = CGRectGetMinX(bounds)
var maxX = CGRectGetMaxX(bounds)
var midX = CGRectGetMidX(bounds)
var minY = CGRectGetMinY(bounds)
var maxY = CGRectGetMaxY(bounds) - kArrorHeigh
//開始繪制起始點(diǎn) 1
CGContextMoveToPoint(context, midX + kArrorHeigh, maxY)
//點(diǎn)2 和 點(diǎn)1 之間繪制成一條直線
CGContextAddLineToPoint(context, midX, maxY + kArrorHeigh)
//點(diǎn)2 和 點(diǎn)1 之間繪制成一條直線
CGContextAddLineToPoint(context, midX - kArrorHeigh, maxY)
//點(diǎn)3, 點(diǎn)4 和 點(diǎn) 5 之間繪制一條帶弧度的直角線
CGContextAddArcToPoint(context, minX, maxY, minX, minX, radius)
CGContextAddArcToPoint(context, minX, minX, maxX, minY, radius)
CGContextAddArcToPoint(context, maxX, minY, maxX, maxY, radius)
CGContextAddArcToPoint(context, maxX, maxY, minX, maxY, radius)
CGContextClosePath(context)
}
Artboard 1@3x.png