有没有办法取消视图某些区域中的触摸事件?我有一个自定义的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/

10-12 01:32