我有这个代码来绘制圆角矩形:
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是否在我的矩形内,考虑圆角?
答案 0 :(得分:3)
您可以将其构建为UIBezierPath
,然后使用CGContextRef
,而不是直接将其构建到这样的-[UIBezierPath containsPoint:]
中。
当您准备好将路径呈现到上下文中时,您可以通过以下方式执行此操作:
CGContextAddPath(ctx, [myBezierPath CGPath]);