我想让当前对象被触及touchesMoved
。这不要与 touchLocation (CGPoint) 混淆,而是用户正在触摸的实际对象。使用UITouch
总是返回初始触摸(正如它在苹果文档中所说),而不是当前或最新的触摸。
我有一个网格点 ( UIImageViews
),可以是 3 x 3 到 20 x 20。
当用户在屏幕上拖动他们的手指时,会绘制一条跟踪用户手指的线。当用户与网格点相交时,线的起点会捕捉到该点并继续跟踪手指,本质上允许您在网格上绘制形状。
目前我有一个 for 循环来检查触摸位置是否与网格点相交。这确实有效,但由于明显的原因,当它们是 400 个网格点时,它非常慢。
我也尝试过手势识别器,但这些会取消触摸。
任何帮助/建议将不胜感激,谢谢!
编辑:这就是我在 touchesMoved 中所拥有的。
UITouch* touch = [touches anyObject];
CGPoint touchLocation =[touch locationInView:self];
for (int i=100; i<tagInt; i++) {
UIImageView *img=(UIImageView*)[self.view viewWithTag:i];
if (CGRectContainsPoint(img.frame, touchLocation)) {
//Drawing code setNeedsDisplay etc
}
}