我正在用手指应用程序绘图。
我想设置一个起点和终点。
我的项目就是这样,它的背景会告诉您绘制的方向。当用户点击终点时,背景将发生变化。
我尝试了这个
接触开始...
drawPoint = [touch locationInView:self.view];
CGRect writingStartPoint = CGRectMake(90, 800, 30, 30);
CGRect writingEndPoint = CGRectMake(390, 800, 30, 30);
if (CGRectContainsPoint(writingStartPoint, drawPoint))
{
//something
}
if (CGRectContainsPoint(writingEndPoint, drawPoint))
{
//change background
}
它不起作用。
还有另一种方法吗?
最佳答案
您应该检查是否在触摸移动或结束方法的最后一个矩形中触摸
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
CGPoint drawPoint = [touch locationInView:self.view];
CGRect writingStartPoint = CGRectMake(90, 800, 30, 30);
if (CGRectContainsPoint(writingStartPoint, drawPoint))
{
//something
}
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
CGPoint drawPoint = [touch locationInView:self.view];
CGRect writingEndPoint = CGRectMake(390, 800, 30, 30);
if (CGRectContainsPoint(writingEndPoint, drawPoint))
{
//change background if you want user see change without lift finger up
}
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
CGPoint drawPoint = [touch locationInView:self.view];
CGRect writingEndPoint = CGRectMake(390, 800, 30, 30);
if (CGRectContainsPoint(writingEndPoint, drawPoint))
{
//change background when user lift finger up
}
}
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
// handle cancel event
}