2014-09-20 66 views
2

我在这里有iOS程序,覆盖整个容器视图的地图视图。我希望地图视图能够处理UIScreenEdgeRecognizer,因为它覆盖了整个容器视图。 我认为最好让gestureRecognizers数组引用识别器。但是地图视图的平移手势正在中断屏幕边缘识别器。我试过gestureRecognizer:shouldFailRequireFailureOfGestureRecognizer和所有这些,但它仍然无法正常工作。但是你会推荐解决方案吗?我可以让容器视图的gestureRecognizers数组引用屏幕边缘识别器吗?如何使用覆盖整个视图的地图视图来处理UIScreenEdgeGestureRecognizer?

+0

您需要向我们展示您的代码或您的XIB布局。 – 2014-09-20 13:18:55

回答

4

我所做的是在边缘添加一个宽度为10pt的宽度和清晰背景的视图,我需要手势识别器,并将手势识别器添加到此视图。

在图片中,右侧的白色矩形是具有手势识别器的视图。您应该更改背景颜色以清除颜色。

A way to add a UIScreenEdgePanGestureRecognizer on a map view

视图插座:

@property (weak, nonatomic) IBOutlet UIView *rightEdgeGestureView; 

手势识别添加到屏幕右边缘的观点:

- (void)setupGestureRecognizer { 

     UIScreenEdgePanGestureRecognizer *gestureRecognizer = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(gestureHandler:)]; 
     gestureRecognizer.edges = UIRectEdgeRight; 
     [_rightEdgeGestureView addGestureRecognizer:gestureRecognizer]; 
} 
+0

好主意。非常感谢。 – 2016-12-06 17:10:09

+0

绝妙的主意!,非常感谢。 – 2017-11-26 21:27:49