检测UITouch与视图的冲突

时间:2015-10-26 17:12:34

标签: ios objective-c uitouch hittest touchesmoved

我在检测不同视图的触摸碰撞时遇到了一些问题。我已将MyView标记设置为1,因此在if语句中我将检测标记是否为1以外的其他内容,以获取信息,如果我的手指触摸了MyView中的任何其他视图。

在touchesMoved中,我正在检测手指在屏幕上的移动碰撞,如:

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint p = [touch locationInView:self];

MyView = [self hitTest:p withEvent:nil];

if(MyView.tag =! 1)
{
 NSLog(@"Other view detected");
}

}

此代码工作正常,直到我更快地移动手指。我想,如果快速移动手指,并非所有位置都被检测到。这就是框架的工作原理。因此我想到了一些其他的选择,比如Bresenham的线条算法,以获得所有位置。但是这个选项有点慢,有时也没有检测到其他视图。

我正在开发类似于迷宫游戏的项目,我正在检测我的手指是否撞到了墙壁。这不是真正的游戏,但我想用SpriteKit制作它,但将所有节点定位到正确位置真的太过分了。 真的很酷,我可以在界面构建器中定位视图,并可以构建带有视图的迷宫。

我需要一个建议或解决方案,我应该怎么做。是否有其他框架,即返回手指移动的所有位置?或者我应该使用像SpriteKit这样的框架吗?

0 个答案:

没有答案