有没有办法取消视图某些区域中的触摸事件?我有一个自定义的UIView,仅在触摸事件距屏幕边缘100像素时才要处理。
最佳答案
正如Justin所说,在界面构建器中(或以编程方式)添加一个自定义UIView并将其添加到视图中。我们将该视图称为touchArea。然后在您的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作为放置在视图上的实例变量也可以使用,但是以上是我如何实现的。
关于ios - iOS取消某些地区的触摸事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10592188/