我想要触摸touchesMoved
中的当前对象。这不会与touchLocation(CGPoint)混淆,而是用户正在触摸的实际对象。使用UITouch
始终会返回初始触摸(如苹果文档中所述),而不是当前触摸或最新触摸。在触摸中获取当前触摸移动
我有斑点(UIImageViews
)的一个网格,可以通过20.
当用户拖动他们的手指的线绘制在屏幕跟踪用户手指上由3是3到20。当用户与网格点相交时,线条的起点捕捉到该点并继续跟踪手指,基本上允许您在网格上绘制形状。
目前我有一个for循环,检查touchlocation是否与网格点相交。这确实有用,但由于显而易见的原因,它们非常缓慢,因为它们有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
}
}
您正在绘制一个正方形网格?你只能用数学来做到这一点。没有视图匹配需要..基本上,你应该得到的位置'[aTouch locationInView:containerView]'并检查位置的正确性。 – calimarkus
基本上我想检查touchlocation是否与'UIImageViews'的一个相交 –
如何继承UIImageView,然后使用每个视图自己的touchesMoved委托方法来找出触摸的位置? – jimpic