当用户点击屏幕时,应该在用户触摸的位置绘制圆圈。我的代码怎么了?
{
BOOL _touchHasBegun;
CGPoint whereUserClicked;
float pointWhereUserClickedX;
float pointWhereUserClickedY;
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
_touchHasBegun = YES;
}
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetRGBStrokeColor(context, 0, 0, 225, 1);
CGContextSetRGBFillColor(context, 0, 0, 255, 1);
CGRect rectangle = CGRectMake(pointWhereUserClickedX, pointWhereUserClickedY, 10, 10);
CGContextStrokeEllipseInRect(context, rectangle);
}
答案 0 :(得分:0)
首先,您需要调用setNeedsDisplay
来强制调用drawRect:
。这可以通过触摸事件处理程序完成。
其次,您不是在触摸点周围绘制围绕,而是使用触摸点作为圆角。
这应该纠正:
const CGFloat width = 10.0;
const CGFloat height = 10.0;
CGRect rectangle = CGRectMake(pointWhereUserClickedX - (width / 2.0),
pointWhereUserClickedY + (height / 2.0),
width,
height);