我有这个代码来绘制圆角矩形:
void ContextAddRoundedRect(CGContextRef ctx, CGRect rect, CGFloat radius) {
CGFloat minX = CGRectGetMinX(rect);
CGFloat maxX = CGRectGetMaxX(rect);
CGFloat minY = CGRectGetMinY(rect);
CGFloat maxY = CGRectGetMaxY(rect);
CGContextMoveToPoint(ctx, minX + radius, minY);
CGContextAddArcToPoint(ctx, maxX, minY, maxX, minY + radius, radius);
CGContextAddArcToPoint(ctx, maxX, maxY, maxX - radius, maxY, radius);
CGContextAddArcToPoint(ctx, minX, maxY, minX, maxY - radius, radius);
CGContextAddArcToPoint(ctx, minX, minY, minX + radius, minY, radius);
}
我将把它转换为CGMutablePathRef
用于绘图,因为这样我就可以使用-[UIBezierPath containsPoint:]
(+bezierPathWithCGPath:
首先使用,如评论和答案中所述。)
CGMutablePathRef
与直接在 CGContext 上绘图相比,使用是否有任何严重/已知的缺点?我的猜测是它不是首发,但也许我缺少一些东西。
(我知道我必须释放它)