1

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

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 是否在我的矩形内?

4

1 回答 1

3

与其直接将其构建成CGContextRef这样,您可以将其构建为UIBezierPath,然后使用-[UIBezierPath containsPoint:].

当您准备好将路径实际呈现到上下文中时,您可以通过以下方式进行:

CGContextAddPath(ctx, [myBezierPath CGPath]);
于 2013-01-12T22:44:49.990 回答