JXCategoryCollectionView.m 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. //
  2. // JXCategoryCollectionView.m
  3. // UI系列测试
  4. //
  5. // Created by jiaxin on 2018/3/21.
  6. // Copyright © 2018年 jiaxin. All rights reserved.
  7. //
  8. #import "JXCategoryCollectionView.h"
  9. @interface JXCategoryCollectionView ()<UIGestureRecognizerDelegate>
  10. @end
  11. @implementation JXCategoryCollectionView
  12. - (void)setIndicators:(NSArray<UIView<JXCategoryIndicatorProtocol> *> *)indicators {
  13. for (UIView *indicator in _indicators) {
  14. //先移除之前的indicator
  15. [indicator removeFromSuperview];
  16. }
  17. _indicators = indicators;
  18. for (UIView *indicator in indicators) {
  19. [self addSubview:indicator];
  20. }
  21. }
  22. - (void)layoutSubviews
  23. {
  24. [super layoutSubviews];
  25. for (UIView<JXCategoryIndicatorProtocol> *view in self.indicators) {
  26. [self sendSubviewToBack:view];
  27. }
  28. }
  29. - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
  30. if (self.gestureDelegate && [self.gestureDelegate respondsToSelector:@selector(categoryCollectionView:gestureRecognizerShouldBegin:)]) {
  31. return [self.gestureDelegate categoryCollectionView:self gestureRecognizerShouldBegin:gestureRecognizer];
  32. }
  33. return YES;
  34. }
  35. - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
  36. if (self.gestureDelegate && [self.gestureDelegate respondsToSelector:@selector(categoryCollectionView:gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:)]) {
  37. return [self.gestureDelegate categoryCollectionView:self gestureRecognizer:gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:otherGestureRecognizer];
  38. }
  39. return NO;
  40. }
  41. @end