我正在调整我正在制作的应用。我希望我的子视图能够在屏幕上的任何位置向左或向右检测触摸。现在它是一个子视图,我只能检测其范围内的触摸。我尝试更改子视图的边界,但这会导致子视图完全从屏幕上消失。可以在我的子视图之外检测到我的触摸位置吗?
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;
}
答案 0 :(得分:0)
如果您的子视图是实施拦截触摸的代码的视图,您可以拦截仅在该视图上的触摸 。
如果你想拦截触摸超出子视图,你必须(并且在概念上正确)在你的上海华
答案 1 :(得分:0)
手势识别器可以适合您的情况,具体取决于您尝试接受的内容。如果您的情况适合,您可以在子视图窗口中添加一个。您可以通过您的视图窗口属性访问它。然后在手势识别器代码中,您可以在视图中使用&#34;命中测试&#34;和&#34;在视图坐标之间转换&#34; UIView的方法,以确定触摸是否在您的视图中。当您的对象从superview中移除或被取消分配时,请务必从窗口中删除手势识别器。