在UIView子视图之外检测触摸

时间:2014-05-04 22:01:48

标签: ios objective-c

我正在调整我正在制作的应用。我希望我的子视图能够在屏幕上的任何位置向左或向右检测触摸。现在它是一个子视图,我只能检测其范围内的触摸。我尝试更改子视图的边界,但这会导致子视图完全从屏幕上消失。可以在我的子视图之外检测到我的触摸位置吗?

UITouch *touch = [touches anyObject];
    touchLocation = [touch locationInView:self.superview];

    if(touchLocation.x < self.center.x) //touches occur to the left
    {
        right = false;
    }

    if(touchLocation.x > self.center.x) //touches occur to the right
    {
        right = true;
    }

2 个答案:

答案 0 :(得分:0)

如果您的子视图实施拦截触摸的代码的视图,您可以拦截仅在该视图上的触摸

如果你想拦截触摸超出子视图,你必须并且在概念上正确)在你的上海华

答案 1 :(得分:0)

手势识别器可以适合您的情况,具体取决于您尝试接受的内容。如果您的情况适合,您可以在子视图窗口中添加一个。您可以通过您的视图窗口属性访问它。然后在手势识别器代码中,您可以在视图中使用&#34;命中测试&#34;和&#34;在视图坐标之间转换&#34; UIView的方法,以确定触摸是否在您的视图中。当您的对象从superview中移除或被取消分配时,请务必从窗口中删除手势识别器。