如果page上方还有一层UI控件的话,不去除边缘点击手势会造成手势的冲突干扰。
首先我做的处理是设置pageView的手势代理
for (UIGestureRecognizer *gr in _pageViewController.gestureRecognizers) {
if ([gr isKindOfClass:[UIPanGestureRecognizer class]]) {
gr.delegate = self;
}
}
-(BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch (UITouch *)touch {
if ([gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]]) {
return NO;
}
return YES;
}
但是这样处理,会在第一页忘前翻页和在最后一页往后翻页出现crash,而且不清楚原因。
正确处理方法:
新建一个UIpageControlller的类别
#import <UIKit/UIKit.h>
@interface UIPageViewController (YCGestureTool)
@end
#import "UIPageViewController+YCGestureTool.h"
@implementation UIPageViewController (YCGestureTool)
-(BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
if ([gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]]) {
return NO;
}
return YES;
}
完美解决!