WMScrollView.m 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. //
  2. // WMScrollView.m
  3. // WMPageController
  4. //
  5. // Created by lh on 15/11/21.
  6. // Copyright (c) 2015年 yq. All rights reserved.
  7. //
  8. #import "WMScrollView.h"
  9. @implementation WMScrollView
  10. #pragma mark - <UIGestureRecognizerDelegate>
  11. - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
  12. // iOS横向滚动的scrollView和系统pop手势返回冲突的解决办法: http://blog.csdn.net/hjaycee/article/details/49279951
  13. // 兼容系统pop手势 / FDFullscreenPopGesture / 如有自定义手势,需自行在此处判断
  14. if ([otherGestureRecognizer.view isKindOfClass:NSClassFromString(@"UILayoutContainerView")]) {
  15. if (otherGestureRecognizer.state == UIGestureRecognizerStateBegan && self.contentOffset.x == 0) {
  16. return YES;
  17. }
  18. }
  19. // ReSideMenu 及其他一些手势的开启,需要在这自行此有些。目前还没完全兼容好,会引起一个小问题
  20. if (self.otherGestureRecognizerSimultaneously) {
  21. // 再判断系统手势的state是began还是fail,同时判断scrollView的位置是不是正好在最左边
  22. if (otherGestureRecognizer.state == UIGestureRecognizerStateBegan && self.contentOffset.x == 0) {
  23. return YES;
  24. }
  25. }
  26. return NO;
  27. }
  28. - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRequireFailureOfGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
  29. //MARK: UITableViewCell 自定义手势可能要在此处自行定义
  30. if ([otherGestureRecognizer.view isKindOfClass:NSClassFromString(@"UITableViewWrapperView")] && [otherGestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) {
  31. return YES;
  32. }
  33. return NO;
  34. }
  35. @end