HDMultipleScrollListSubVC.m 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. //
  2. // HDMultipleScrollListSubVC.m
  3. // HDCollectionView_Example
  4. //
  5. // Created by HaoDong chen on 2019/5/21.
  6. // Copyright © 2019 donggelaile. All rights reserved.
  7. //
  8. #import "HDMultipleScrollListSubVC.h"
  9. #import "HDMultipleScrollListMainVC.h"
  10. @interface HDMultipleScrollListSubVC ()<HDMultipleScrollListViewScrollViewDidScroll>
  11. {
  12. void (^scrollCallBack)(UIScrollView*);
  13. }
  14. @end
  15. @implementation HDMultipleScrollListSubVC
  16. @synthesize collectionV = _collectionV;
  17. - (void)viewDidLoad {
  18. [super viewDidLoad];
  19. [self setUp];
  20. }
  21. - (void)setUp
  22. {
  23. self.automaticallyAdjustsScrollViewInsets = NO;
  24. _collectionV = [HDCollectionView hd_makeHDCollectionView:^(HDCollectionViewMaker *maker) {
  25. maker.hd_isNeedTopStop(YES);
  26. }];
  27. [self.collectionV hd_setShouldRecognizeSimultaneouslyWithGestureRecognizer:^BOOL(UIGestureRecognizer *selfGestture, UIGestureRecognizer *otherGesture) {
  28. if ([otherGesture.view isKindOfClass:[UICollectionView class]]) {
  29. UICollectionView *cv = (UICollectionView*)otherGesture.view;
  30. if (cv.contentSize.width > cv.frame.size.width) {
  31. return NO;//不同时响应横向滑动的手势
  32. }
  33. }
  34. return YES;//响应最底层的mainSc
  35. }];
  36. __hd_WeakSelf
  37. [self.collectionV hd_setScrollViewDidScrollCallback:^(UIScrollView *scrollView) {
  38. [weakSelf scDicScroll:scrollView];
  39. }];
  40. CGFloat safeBottom = 0;
  41. if (@available(iOS 11.0, *)) {
  42. safeBottom = [[UIApplication sharedApplication].delegate window].safeAreaInsets.bottom;
  43. } else {
  44. // Fallback on earlier versions
  45. }
  46. self.collectionV.collectionV.contentInset = UIEdgeInsetsMake(0, 0, safeBottom, 0);
  47. [self.view addSubview:self.collectionV];
  48. }
  49. - (void)viewDidLayoutSubviews
  50. {
  51. [super viewDidLayoutSubviews];
  52. self.collectionV.frame = self.view.bounds;
  53. }
  54. - (void)scDicScroll:(UIScrollView*)sc
  55. {
  56. if (scrollCallBack) {
  57. scrollCallBack(sc);
  58. }
  59. }
  60. - (void)HDMultipleScrollListViewScrollViewDidScroll:(nonnull void (^)(UIScrollView * _Nonnull))ScrollCallback {
  61. scrollCallBack = ScrollCallback;
  62. }
  63. @end