Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/122.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS取消某些区域中的触摸事件_Ios_Uitouch - Fatal编程技术网

iOS取消某些区域中的触摸事件

iOS取消某些区域中的触摸事件,ios,uitouch,Ios,Uitouch,是否有办法取消视图中某些区域的触摸事件?我有一个自定义UIView,我只想处理触摸事件,如果它们距离屏幕边缘100像素。假设您使用的是Interface Builder,只需使用另一个UIView即可。调整其大小,并将其放置在希望发生触摸事件的位置。然后,使自定义视图能够触摸激活。以编程方式,我个人不知道如何做。正如Justin所说,在interface builder中添加自定义UIView(或以编程方式),然后将其添加到视图中。让我们称之为视图接触区域。然后在Viewcontroller.m

是否有办法取消视图中某些区域的触摸事件?我有一个自定义UIView,我只想处理触摸事件,如果它们距离屏幕边缘100像素。

假设您使用的是Interface Builder,只需使用另一个UIView即可。调整其大小,并将其放置在希望发生触摸事件的位置。然后,使自定义视图能够触摸激活。以编程方式,我个人不知道如何做。

正如Justin所说,在interface builder中添加自定义UIView(或以编程方式),然后将其添加到视图中。让我们称之为视图接触区域。然后在Viewcontroller.m文件中,实现

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
-(void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
-(void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
方法(取决于您尝试执行的操作),在这些方法中:

    UITouch *touch = [touches anyObject];
    CGPoint location = [touch locationInView:self.view];
if (CGRectContainsPoint(touchArea.frame, location)) {

//code to execute

}
事实上,我认为即使将CGRect作为实例变量放在视图上也可以工作,但以上就是我实现它的方法