圆角矩形内点?

时间:2013-01-12 22:40:41

标签: ios uikit geometry

我有这个代码来绘制圆角矩形:

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);
}

如何判断给定的CGPoint是否在我的矩形内,考虑圆角?

1 个答案:

答案 0 :(得分:3)

您可以将其构建为UIBezierPath,然后使用CGContextRef,而不是直接将其构建到这样的-[UIBezierPath containsPoint:]中。

当您准备好将路径呈现到上下文中时,您可以通过以下方式执行此操作:

CGContextAddPath(ctx, [myBezierPath CGPath]);