CGXVerticalMenuContainerCollectionView.m 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. //
  2. // CGXVerticalMenuContainerCollectionView.m
  3. // CGXVerticalMenuView-OC
  4. //
  5. // Created by CGX on 2018/05/01.
  6. // Copyright © 2019 CGX. All rights reserved.
  7. //
  8. #import "CGXVerticalMenuContainerCollectionView.h"
  9. @implementation CGXVerticalMenuContainerCollectionView
  10. - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
  11. if (self.gestureDelegate && [self.gestureDelegate respondsToSelector:@selector(menuContainerCollectionView:gestureRecognizerShouldBegin:)]) {
  12. return [self.gestureDelegate menuContainerCollectionView:self gestureRecognizerShouldBegin:gestureRecognizer];
  13. }else {
  14. if (self.isNestEnabled) {
  15. if ([gestureRecognizer isMemberOfClass:NSClassFromString(@"UIScrollViewPanGestureRecognizer")]) {
  16. CGFloat velocityY = [(UIPanGestureRecognizer *)gestureRecognizer velocityInView:gestureRecognizer.view].y;
  17. //x大于0就是往下滑
  18. if (velocityY > 0) {
  19. if (self.contentOffset.y == 0) {
  20. return NO;
  21. }
  22. }else if (velocityY < 0) {
  23. //x小于0就是往上滑
  24. if (self.contentOffset.y + self.bounds.size.height == self.contentSize.height) {
  25. return NO;
  26. }
  27. }
  28. }
  29. }
  30. }
  31. return YES;
  32. }
  33. - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
  34. if (self.gestureDelegate && [self.gestureDelegate respondsToSelector:@selector(menuContainerCollectionView:gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:)]) {
  35. return [self.gestureDelegate menuContainerCollectionView:self gestureRecognizer:gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:otherGestureRecognizer];
  36. }
  37. return NO;
  38. }
  39. /*
  40. // Only override drawRect: if you perform custom drawing.
  41. // An empty implementation adversely affects performance during animation.
  42. - (void)drawRect:(CGRect)rect {
  43. // Drawing code
  44. }
  45. */
  46. @end