Bläddra i källkod

添加了JXPagingView/Paging

南鑫林 5 år sedan
förälder
incheckning
3f8c41ca9d
15 ändrade filer med 34 tillägg och 661 borttagningar
  1. 1 0
      RainbowPlanet/Podfile
  2. 16 12
      RainbowPlanet/Podfile.lock
  3. 0 20
      RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj
  4. 2 2
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/ViewController/Main/CommunityViewController.swift
  5. 2 2
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/ViewController/Recommend/CommunityRecommnendSuperViewController.swift
  6. 2 1
      RainbowPlanet/RainbowPlanet/Modules/MineModule/PersonalCenter/OtherPersonalCenter/ViewController/OtherPersonalCenterViewController.swift
  7. 1 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/PersonalCenter/PersonalCenterView/PersonViewUserAndOtherListView.swift
  8. 2 1
      RainbowPlanet/RainbowPlanet/Modules/MineModule/PersonalCenter/UserPersonalCenter/ViewController/UserPersonalCenterViewController.swift
  9. 2 2
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/PublishMusicAbout/PublishMusicChooseView.swift
  10. 2 2
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/PublishMusicAbout/PublishRecordMusicView.swift
  11. 2 2
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/PublishViewController.swift
  12. 2 2
      RainbowPlanet/RainbowPlanet/Modules/SearchModule/SearchResult/ViewController/SearchResultViewController.swift
  13. 0 181
      RainbowPlanet/RainbowPlanet/Tools/JXPagingView-Swift/JXPagingListContainerView.swift
  14. 0 26
      RainbowPlanet/RainbowPlanet/Tools/JXPagingView-Swift/JXPagingMainTableView.swift
  15. 0 408
      RainbowPlanet/RainbowPlanet/Tools/JXPagingView-Swift/JXPagingView.swift

+ 1 - 0
RainbowPlanet/Podfile

@@ -40,6 +40,7 @@ target 'RainbowPlanet' do
   pod 'LYEmptyView'
   # 分段导航栏
   pod 'JXSegmentedView'
+  pod 'JXPagingView/Paging'
   # 轮播
   pod 'FSPagerView'
   # 小红点

+ 16 - 12
RainbowPlanet/Podfile.lock

@@ -24,7 +24,7 @@ PODS:
   - BMKLocationKit (1.5.0)
   - Bugly (2.5.0)
   - Cache (5.2.0)
-  - DeviceKit (2.2.0)
+  - DeviceKit (2.3.0)
   - DPScrollNumberLabel (0.0.2)
   - ESTabBarController-swift (2.7)
   - FBRetainCycleDetector (0.1.4)
@@ -37,13 +37,14 @@ PODS:
   - InputBarAccessoryView (4.3.1):
     - InputBarAccessoryView/Core (= 4.3.1)
   - InputBarAccessoryView/Core (4.3.1)
-  - IQKeyboardManagerSwift (6.5.0)
+  - IQKeyboardManagerSwift (6.5.1)
   - JSONModel (1.7.0)
-  - JXSegmentedView (0.0.20)
+  - JXPagingView/Paging (1.1.18)
+  - JXSegmentedView (1.0.0)
   - KeychainAccess (3.2.0)
-  - Kingfisher (5.8.1):
-    - Kingfisher/Core (= 5.8.1)
-  - Kingfisher/Core (5.8.1)
+  - Kingfisher (5.8.2):
+    - Kingfisher/Core (= 5.8.2)
+  - Kingfisher/Core (5.8.2)
   - lottie-ios (3.1.3)
   - LYEmptyView (1.3.1)
   - Masonry (1.1.0)
@@ -118,6 +119,7 @@ DEPENDENCIES:
   - InputBarAccessoryView
   - IQKeyboardManagerSwift
   - JSONModel (~> 1.7.0)
+  - JXPagingView/Paging
   - JXSegmentedView
   - KeychainAccess
   - Kingfisher
@@ -173,6 +175,7 @@ SPEC REPOS:
     - InputBarAccessoryView
     - IQKeyboardManagerSwift
     - JSONModel
+    - JXPagingView
     - JXSegmentedView
     - KeychainAccess
     - Kingfisher
@@ -214,7 +217,7 @@ SPEC CHECKSUMS:
   BMKLocationKit: 40d267478acd8704ddebd0e9deaddc727b13df9f
   Bugly: 3ca9f255c01025582df26f9222893b383c7e4b4e
   Cache: 807c5d86d01a177f06ede9865add3aea269bbfd4
-  DeviceKit: ee5d2ec3bc8ad3847f9f0f202de0be09448707e1
+  DeviceKit: da103891aa928d89f64ea8dd8aca738c5f3d8ac0
   DPScrollNumberLabel: 5124eaccf3029bb84116de391e1273cba676f4f5
   ESTabBarController-swift: 4fb52ad03d94d0717ef97bc9eb09a5abfdded0a2
   FBRetainCycleDetector: 46f8179bbb1c587deee3ea838a1a3ee02acf5015
@@ -222,11 +225,12 @@ SPEC CHECKSUMS:
   FSPagerView: 670405b2f18e2a87fa37f20b00de783e562c25a8
   FWPopupView: 8357f7ab0185e1dcaaf888fbc8ee81ab8dccab72
   InputBarAccessoryView: 58a348be7ea2736c7eec60e5c315511c2dbb39fd
-  IQKeyboardManagerSwift: 6cd19976c6e871907c4ed9127c2d3affdd4defc2
+  IQKeyboardManagerSwift: 9ac7524fad9f9fe9a3b98c927e7772471ca546d2
   JSONModel: 840bc0fcffb24b8454d2c026bf26fea454b8e98d
-  JXSegmentedView: d31931eeb8ad8bf1e8faa1623126a32206bfcfd2
+  JXPagingView: 34bc70f962404e1a0b092ef643e5ccf6882119b2
+  JXSegmentedView: 257773dde0c65f86c9d873c5cf93d15c76e170cc
   KeychainAccess: 3b1bf8a77eb4c6ea1ce9404c292e48f948954c6b
-  Kingfisher: de969e451c81ca6c07a454bc36fea84b8b08c3c7
+  Kingfisher: 3adc15096595f5aed800bb0d5cb757fc58b2d2dd
   lottie-ios: 496ac5cea1bbf1a7bd1f1f472f3232eb1b8d744b
   LYEmptyView: b6d418cfa38b78df0cf243f9a9c25ccbdc399922
   Masonry: 678fab65091a9290e40e2832a55e7ab731aad201
@@ -255,6 +259,6 @@ SPEC CHECKSUMS:
   YYText: 5c461d709e24d55a182d1441c41dc639a18a4849
   ZipArchive: e25a4373192673e3229ac8d6e9f64a3e5713c966
 
-PODFILE CHECKSUM: e28b16f655a536fe034b8be76c48be0b09d791c9
+PODFILE CHECKSUM: 29872dc6d56e23549133bb64997309d23d15b978
 
-COCOAPODS: 1.8.0
+COCOAPODS: 1.8.3

+ 0 - 20
RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj

@@ -130,9 +130,6 @@
 		A738D66F225D9BD900EEE860 /* UMLoginModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A738D66E225D9BD900EEE860 /* UMLoginModel.swift */; };
 		A73911AD229CD62F0033177E /* AlamofireReachabilityManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A73911AC229CD62F0033177E /* AlamofireReachabilityManager.swift */; };
 		A73911B3229ECE340033177E /* UICollectionViewLeftAlignedLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = A73911B1229ECE340033177E /* UICollectionViewLeftAlignedLayout.m */; };
-		A739121A229F75F50033177E /* JXPagingMainTableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7391213229F75F50033177E /* JXPagingMainTableView.swift */; };
-		A739121B229F75F50033177E /* JXPagingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7391214229F75F50033177E /* JXPagingView.swift */; };
-		A739121D229F75F50033177E /* JXPagingListContainerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7391216229F75F50033177E /* JXPagingListContainerView.swift */; };
 		A73A56D322DC59A3004920FE /* PushModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A73A56D222DC59A3004920FE /* PushModel.swift */; };
 		A73A56D922DC8378004920FE /* UpdateVersionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A73A56D822DC8378004920FE /* UpdateVersionView.swift */; };
 		A73A56DB22DC9AB5004920FE /* UpdateVersionModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A73A56DA22DC9AB5004920FE /* UpdateVersionModel.swift */; };
@@ -809,9 +806,6 @@
 		A73911AC229CD62F0033177E /* AlamofireReachabilityManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlamofireReachabilityManager.swift; sourceTree = "<group>"; };
 		A73911B1229ECE340033177E /* UICollectionViewLeftAlignedLayout.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UICollectionViewLeftAlignedLayout.m; sourceTree = "<group>"; };
 		A73911B2229ECE340033177E /* UICollectionViewLeftAlignedLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UICollectionViewLeftAlignedLayout.h; sourceTree = "<group>"; };
-		A7391213229F75F50033177E /* JXPagingMainTableView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JXPagingMainTableView.swift; sourceTree = "<group>"; };
-		A7391214229F75F50033177E /* JXPagingView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JXPagingView.swift; sourceTree = "<group>"; };
-		A7391216229F75F50033177E /* JXPagingListContainerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JXPagingListContainerView.swift; sourceTree = "<group>"; };
 		A73A56D222DC59A3004920FE /* PushModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PushModel.swift; sourceTree = "<group>"; };
 		A73A56D822DC8378004920FE /* UpdateVersionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateVersionView.swift; sourceTree = "<group>"; };
 		A73A56DA22DC9AB5004920FE /* UpdateVersionModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UpdateVersionModel.swift; sourceTree = "<group>"; };
@@ -2201,16 +2195,6 @@
 			path = AlamofireReachabilityManager;
 			sourceTree = "<group>";
 		};
-		A7391212229F75F50033177E /* JXPagingView-Swift */ = {
-			isa = PBXGroup;
-			children = (
-				A7391214229F75F50033177E /* JXPagingView.swift */,
-				A7391213229F75F50033177E /* JXPagingMainTableView.swift */,
-				A7391216229F75F50033177E /* JXPagingListContainerView.swift */,
-			);
-			path = "JXPagingView-Swift";
-			sourceTree = "<group>";
-		};
 		A73A56D122DC598F004920FE /* PushModel */ = {
 			isa = PBXGroup;
 			children = (
@@ -3034,7 +3018,6 @@
 				A7DF50D922A556C300998908 /* BrowsePictures */,
 				A790706222B9DF81008CE279 /* TextLimitTool */,
 				BD108C8D22A60A2000837DAB /* HGImagePicker */,
-				A7391212229F75F50033177E /* JXPagingView-Swift */,
 				A7146346228EFCE20066099B /* SKUDataFilter */,
 				A7274C51228EE635000E3A07 /* SwiftScan */,
 				A7274C4E228EE5EF000E3A07 /* PhotoAndCameraManager */,
@@ -5666,7 +5649,6 @@
 				A7C3DD1C226422D200FA262E /* SwiftMoyaNetWorkServiceSMS.swift in Sources */,
 				A72623D322C1FFD100AEF875 /* CommunityPostMyModel.swift in Sources */,
 				A770E5F522D5BC2000CBD0A4 /* ShareCommonStr.swift in Sources */,
-				A739121D229F75F50033177E /* JXPagingListContainerView.swift in Sources */,
 				A72A7386223396CB00B21995 /* SwiftMoyaNetWorkManager.swift in Sources */,
 				BD10121122DEBAF0008DF528 /* CommunityRecommendMusicListModel.swift in Sources */,
 				A7E19FAA22BA2CF1009BCCE1 /* SearchUserListViewController.swift in Sources */,
@@ -5910,7 +5892,6 @@
 				BD61227C22C35C7F00D3F513 /* AliyunMediaConfig.m in Sources */,
 				A7F2D6BD22B09F930093000B /* CommunityNavigationBarView.swift in Sources */,
 				A7274C5C228EE636000E3A07 /* LBXScanLineAnimation.swift in Sources */,
-				A739121A229F75F50033177E /* JXPagingMainTableView.swift in Sources */,
 				A7C2566F22CB7A0C00420828 /* CommunityPostDetailModel.swift in Sources */,
 				A7CC7524227190FB003C4F38 /* AccountSecurityView.swift in Sources */,
 				A784F29D234C370F00E49140 /* PhotoAlbumUtil.swift in Sources */,
@@ -6041,7 +6022,6 @@
 				A72623E722C469B700AEF875 /* SearchMemberListModel.swift in Sources */,
 				A7A98DFD227E84F4005306E9 /* SwiftMoyaServiceProductApi.swift in Sources */,
 				BD01B1FB22BC673A00CE9F36 /* PublishTakePhotoController.swift in Sources */,
-				A739121B229F75F50033177E /* JXPagingView.swift in Sources */,
 				A7D07CCF22B77E0200186014 /* UserPersonalCenterOrderCollectionViewCell.swift in Sources */,
 				BD0808EC22C5BA3100D12E6A /* AliyunCompositionInfo.m in Sources */,
 				A78168E22341CE1D00033496 /* PublishNewEffectFilterBeautyView.swift in Sources */,

+ 2 - 2
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/ViewController/Main/CommunityViewController.swift

@@ -405,7 +405,7 @@ class CommunityViewController: BaseViewController {
     //4.初始化JXSegmentedListContainerView
     private lazy var listContainerView: JXSegmentedListContainerView = {
         let listContainerView = JXSegmentedListContainerView(dataSource: self)
-        listContainerView.didAppearPercent = 0.01
+//        listContainerView.didAppearPercent = 0.01
         listContainerView.defaultSelectedIndex = 1
         return listContainerView
     }()
@@ -485,7 +485,7 @@ extension CommunityViewController : JXSegmentedViewDelegate {
     // 正在滚动中的回调
     func segmentedView(_ segmentedView: JXSegmentedView, scrollingFrom leftIndex: Int, to rightIndex: Int, percent: CGFloat) {
         //传递scrolling事件给listContainerView,必须调用!!!
-        listContainerView.segmentedViewScrolling(from: leftIndex, to: rightIndex, percent: percent, selectedIndex: segmentedView.selectedIndex)
+//        listContainerView.segmentedViewScrolling(from: leftIndex, to: rightIndex, percent: percent, selectedIndex: segmentedView.selectedIndex)
 
     }
     

+ 2 - 2
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/ViewController/Recommend/CommunityRecommnendSuperViewController.swift

@@ -138,7 +138,7 @@ class CommunityRecommnendSuperViewController: BaseViewController {
     //4.初始化JXSegmentedListContainerView
     private lazy var listContainerView: JXSegmentedListContainerView = {
         let listContainerView = JXSegmentedListContainerView(dataSource: self)
-        listContainerView.didAppearPercent = 0.01
+//        listContainerView.didAppearPercent = 0.01
         listContainerView.scrollView.isScrollEnabled = false
         return listContainerView
     }()
@@ -168,7 +168,7 @@ extension CommunityRecommnendSuperViewController: JXSegmentedViewDelegate {
     }
     
     func segmentedView(_ segmentedView: JXSegmentedView, scrollingFrom leftIndex: Int, to rightIndex: Int, percent: CGFloat) {
-        listContainerView.segmentedViewScrolling(from: leftIndex, to: rightIndex, percent: percent, selectedIndex: segmentedView.selectedIndex)
+//        listContainerView.segmentedViewScrolling(from: leftIndex, to: rightIndex, percent: percent, selectedIndex: segmentedView.selectedIndex)
     }
 }
 

+ 2 - 1
RainbowPlanet/RainbowPlanet/Modules/MineModule/PersonalCenter/OtherPersonalCenter/ViewController/OtherPersonalCenterViewController.swift

@@ -8,6 +8,7 @@
 
 import UIKit
 import JXSegmentedView
+import JXPagingView
 import RxSwift
 import SwiftyMediator
 import Kingfisher
@@ -245,7 +246,7 @@ extension OtherPersonalCenterViewController: JXPagingViewDelegate {
     }
     
     func viewForPinSectionHeader(in pagingView: JXPagingView) -> UIView {
-        pagingView.pinSectionHeaderVerticalOffset = kNavBarTotalHeight
+        pagingView.pinSectionHeaderVerticalOffset = Int(kNavBarTotalHeight)
         return segmentedView
     }
     

+ 1 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/PersonalCenter/PersonalCenterView/PersonViewUserAndOtherListView.swift

@@ -8,6 +8,7 @@
 
 import UIKit
 import SwiftyMediator
+import JXPagingView
 
 class PersonViewUserAndOtherListView: BaseView {
     

+ 2 - 1
RainbowPlanet/RainbowPlanet/Modules/MineModule/PersonalCenter/UserPersonalCenter/ViewController/UserPersonalCenterViewController.swift

@@ -8,6 +8,7 @@
 
 import UIKit
 import JXSegmentedView
+import JXPagingView
 import RxSwift
 import SwiftyMediator
 import ESTabBarController_swift
@@ -378,7 +379,7 @@ extension UserPersonalCenterViewController: JXPagingViewDelegate {
     }
     
     func viewForPinSectionHeader(in pagingView: JXPagingView) -> UIView {
-        pagingView.pinSectionHeaderVerticalOffset = kNavBarTotalHeight
+        pagingView.pinSectionHeaderVerticalOffset = Int(kNavBarTotalHeight)
         return segmentedView
     }
     

+ 2 - 2
RainbowPlanet/RainbowPlanet/Modules/PublishModule/PublishMusicAbout/PublishMusicChooseView.swift

@@ -264,7 +264,7 @@ class PublishMusicChooseView: BaseView {
     //4.初始化JXSegmentedListContainerView
     private lazy var listContainerView: JXSegmentedListContainerView = {
         let listContainerView = JXSegmentedListContainerView(dataSource: self)
-        listContainerView.didAppearPercent = 0.01
+//        listContainerView.didAppearPercent = 0.01
         listContainerView.defaultSelectedIndex = 0
         return listContainerView
     }()
@@ -290,7 +290,7 @@ extension PublishMusicChooseView : JXSegmentedViewDelegate {
     // 正在滚动中的回调
     func segmentedView(_ segmentedView: JXSegmentedView, scrollingFrom leftIndex: Int, to rightIndex: Int, percent: CGFloat) {
         //传递scrolling事件给listContainerView,必须调用!!!
-        listContainerView.segmentedViewScrolling(from: leftIndex, to: rightIndex, percent: percent, selectedIndex: segmentedView.selectedIndex)
+//        listContainerView.segmentedViewScrolling(from: leftIndex, to: rightIndex, percent: percent, selectedIndex: segmentedView.selectedIndex)
     }
     
     /// 是否允许点击选中目标index的item

+ 2 - 2
RainbowPlanet/RainbowPlanet/Modules/PublishModule/PublishMusicAbout/PublishRecordMusicView.swift

@@ -188,7 +188,7 @@ class PublishRecordMusicView: BaseView {
     //4.初始化JXSegmentedListContainerView
     private lazy var listContainerView: JXSegmentedListContainerView = {
         let listContainerView = JXSegmentedListContainerView(dataSource: self)
-        listContainerView.didAppearPercent = 0.01
+//        listContainerView.didAppearPercent = 0.01
         listContainerView.defaultSelectedIndex = 0
         return listContainerView
     }()
@@ -214,7 +214,7 @@ extension PublishRecordMusicView : JXSegmentedViewDelegate {
     // 正在滚动中的回调
     func segmentedView(_ segmentedView: JXSegmentedView, scrollingFrom leftIndex: Int, to rightIndex: Int, percent: CGFloat) {
         //传递scrolling事件给listContainerView,必须调用!!!
-        listContainerView.segmentedViewScrolling(from: leftIndex, to: rightIndex, percent: percent, selectedIndex: segmentedView.selectedIndex)
+//        listContainerView.segmentedViewScrolling(from: leftIndex, to: rightIndex, percent: percent, selectedIndex: segmentedView.selectedIndex)
     }
     
     /// 是否允许点击选中目标index的item

+ 2 - 2
RainbowPlanet/RainbowPlanet/Modules/PublishModule/PublishViewController.swift

@@ -137,7 +137,7 @@ class PublishViewController: BaseViewController {
     //4.初始化JXSegmentedListContainerView
     private lazy var listContainerView: JXSegmentedListContainerView = {
         let listContainerView = JXSegmentedListContainerView(dataSource: self)
-        listContainerView.didAppearPercent = 0.01
+//        listContainerView.didAppearPercent = 0.01
         listContainerView.defaultSelectedIndex = 0
         listContainerView.scrollView.isScrollEnabled = false
         return listContainerView
@@ -189,7 +189,7 @@ extension PublishViewController : JXSegmentedViewDelegate {
         self.segmentedView.backgroundColor = .clear
 
         //传递scrolling事件给listContainerView,必须调用!!!
-        listContainerView.segmentedViewScrolling(from: leftIndex, to: rightIndex, percent: percent, selectedIndex: segmentedView.selectedIndex)
+//        listContainerView.segmentedViewScrolling(from: leftIndex, to: rightIndex, percent: percent, selectedIndex: segmentedView.selectedIndex)
     }
     
     /// 是否允许点击选中目标index的item

+ 2 - 2
RainbowPlanet/RainbowPlanet/Modules/SearchModule/SearchResult/ViewController/SearchResultViewController.swift

@@ -152,7 +152,7 @@ class SearchResultViewController: BaseViewController {
     //4.初始化JXSegmentedListContainerView
     private lazy var listContainerView: JXSegmentedListContainerView = {
         let listContainerView = JXSegmentedListContainerView(dataSource: self)
-        listContainerView.didAppearPercent = 0.01
+//        listContainerView.didAppearPercent = 0.01
         return listContainerView
     }()
     
@@ -189,7 +189,7 @@ extension SearchResultViewController : JXSegmentedViewDelegate {
     // 正在滚动中的回调
     func segmentedView(_ segmentedView: JXSegmentedView, scrollingFrom leftIndex: Int, to rightIndex: Int, percent: CGFloat) {
         //传递scrolling事件给listContainerView,必须调用!!!
-        listContainerView.segmentedViewScrolling(from: leftIndex, to: rightIndex, percent: percent, selectedIndex: segmentedView.selectedIndex)
+//        listContainerView.segmentedViewScrolling(from: leftIndex, to: rightIndex, percent: percent, selectedIndex: segmentedView.selectedIndex)
     }
     
     /// 是否允许点击选中目标index的item

+ 0 - 181
RainbowPlanet/RainbowPlanet/Tools/JXPagingView-Swift/JXPagingListContainerView.swift

@@ -1,181 +0,0 @@
-//
-//  DQEventMatchLiveListContainerView.swift
-//  DQGuess
-//
-//  Created by jiaxin on 2018/5/16.
-//  Copyright © 2018年 jingbo. All rights reserved.
-//
-
-import UIKit
-
-@objc public protocol JXPagingListContainerViewDelegate {
-
-    func numberOfRows(in listContainerView: JXPagingListContainerView) -> Int
-
-    func listContainerView(_ listContainerView: JXPagingListContainerView, viewForListInRow row: Int) -> UIView
-
-    func listContainerView(_ listContainerView: JXPagingListContainerView, willDisplayCellAt row: Int)
-
-    func listContainerView(_ listContainerView: JXPagingListContainerView, didEndDisplayingCellAt row: Int)
-}
-
-@objc public protocol JXPagingListContainerCollectionViewGestureDelegate {
-    @objc optional func pagingListContainerCollectionViewGestureRecognizerShouldBegin(collectionView: JXPagingListContainerCollectionView, gestureRecognizer: UIGestureRecognizer) -> Bool
-    @objc optional func pagingListContainerCollectionViewGestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool
-}
-
-public class JXPagingListContainerCollectionView: UICollectionView, UIGestureRecognizerDelegate {
-    public var isNestEnabled = false
-    public weak var gestureDelegate: JXPagingListContainerCollectionViewGestureDelegate?
-
-    public override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
-        //如果有代理,就以代理的处理为准
-        if let result = self.gestureDelegate?.pagingListContainerCollectionViewGestureRecognizerShouldBegin?(collectionView: self, gestureRecognizer: gestureRecognizer) {
-            return result
-        }else {
-            if isNestEnabled {
-                //没有代理,但是isNestEnabled为true
-                if gestureRecognizer.isMember(of: NSClassFromString("UIScrollViewPanGestureRecognizer")!) {
-                    let panGesture = gestureRecognizer as! UIPanGestureRecognizer
-                    let velocityX = panGesture.velocity(in: panGesture.view!).x
-                    if velocityX > 0 {
-                        //当前在第一个页面,且往左滑动,就放弃该手势响应,让外层接收,达到多个PagingView左右切换效果
-                        if self.contentOffset.x == 0 {
-                            return false
-                        }
-                    }else if velocityX < 0 {
-                        //当前在最后一个页面,且往右滑动,就放弃该手势响应,让外层接收,达到多个PagingView左右切换效果
-                        if self.contentOffset.x + self.bounds.size.width == self.contentSize.width {
-                            return false
-                        }
-                    }
-                }
-                return true
-            }
-        }
-        return true
-    }
-
-    public func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
-        if let result = gestureDelegate?.pagingListContainerCollectionViewGestureRecognizer?(gestureRecognizer, shouldRecognizeSimultaneouslyWith: otherGestureRecognizer) {
-            return result
-        }
-        return false;
-    }
-}
-
-open class JXPagingListContainerView: UIView {
-    open var collectionView: JXPagingListContainerCollectionView!
-    unowned var delegate: JXPagingListContainerViewDelegate
-    weak var mainTableView: JXPagingMainTableView?
-
-    private var selectedIndexPath: IndexPath?
-
-    public init(delegate: JXPagingListContainerViewDelegate) {
-        self.delegate = delegate
-
-        super.init(frame: CGRect.zero)
-
-        self.initializeViews()
-    }
-
-    @available(*, unavailable)
-    required public init?(coder aDecoder: NSCoder) {
-        fatalError("init(coder:) has not been implemented")
-    }
-
-    open func initializeViews() {
-        let layout = UICollectionViewFlowLayout()
-        layout.minimumLineSpacing = 0
-        layout.minimumInteritemSpacing = 0
-        layout.scrollDirection = .horizontal
-        collectionView = JXPagingListContainerCollectionView(frame: self.bounds, collectionViewLayout: layout)
-        collectionView.backgroundColor = .white
-        collectionView.showsVerticalScrollIndicator = false
-        collectionView.showsHorizontalScrollIndicator = false
-        collectionView.isPagingEnabled = true
-        collectionView.bounces = false
-        collectionView.dataSource = self
-        collectionView.delegate = self
-        collectionView.scrollsToTop = false
-        collectionView.register(UICollectionViewCell.classForCoder(), forCellWithReuseIdentifier: "cell")
-        if #available(iOS 10.0, *) {
-            collectionView.isPrefetchingEnabled = false
-        }
-        if #available(iOS 11.0, *) {
-            collectionView.contentInsetAdjustmentBehavior = .never
-        }
-        self.addSubview(collectionView)
-    }
-
-    override open func layoutSubviews() {
-        super.layoutSubviews()
-
-        collectionView.frame = self.bounds
-        if selectedIndexPath != nil && self.delegate.numberOfRows(in: self) >= 1 + selectedIndexPath!.item {
-            collectionView.scrollToItem(at: selectedIndexPath!, at: UICollectionView.ScrollPosition.centeredHorizontally, animated: false)
-        }
-    }
-
-    open func reloadData() {
-        self.collectionView.reloadData()
-    }
-
-    open func deviceOrientationDidChanged() {
-        selectedIndexPath = IndexPath(item: Int(collectionView.contentOffset.x/bounds.size.width), section: 0)
-    }
-}
-
-extension JXPagingListContainerView: UICollectionViewDataSource, UICollectionViewDelegate {
-    
-    public func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
-        return self.delegate.numberOfRows(in: self)
-    }
-
-    public func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
-        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath)
-        for view in cell.contentView.subviews {
-            view.removeFromSuperview()
-        }
-        let listView = self.delegate.listContainerView(self, viewForListInRow: indexPath.item)
-        listView.frame = cell.bounds
-        cell.contentView.addSubview(listView)
-        return cell
-    }
-
-    public func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
-        self.delegate.listContainerView(self, willDisplayCellAt: indexPath.item)
-    }
-
-    public func collectionView(_ collectionView: UICollectionView, didEndDisplaying cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
-        self.delegate.listContainerView(self, didEndDisplayingCellAt: indexPath.item)
-    }
-
-    public func collectionView(_ collectionView: UICollectionView, shouldHighlightItemAt indexPath: IndexPath) -> Bool {
-        return false
-    }
-
-    public func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
-        self.mainTableView?.isScrollEnabled = true
-    }
-
-    public func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
-        self.mainTableView?.isScrollEnabled = true
-    }
-
-    public func scrollViewDidEndScrollingAnimation(_ scrollView: UIScrollView) {
-        self.mainTableView?.isScrollEnabled = true
-    }
-
-    public func scrollViewDidScroll(_ scrollView: UIScrollView) {
-        if scrollView.isTracking || scrollView.isDecelerating {
-            self.mainTableView?.isScrollEnabled = false
-        }
-    }
-}
-
-extension JXPagingListContainerView: UICollectionViewDelegateFlowLayout {
-    public func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
-        return self.bounds.size
-    }
-}

+ 0 - 26
RainbowPlanet/RainbowPlanet/Tools/JXPagingView-Swift/JXPagingMainTableView.swift

@@ -1,26 +0,0 @@
-//
-//  JXPagingViewMainTableView.swift
-//  JXPagingView
-//
-//  Created by jiaxin on 2018/5/22.
-//  Copyright © 2018年 jiaxin. All rights reserved.
-//
-
-import UIKit
-
-@objc public protocol JXPagingMainTableViewGestureDelegate {
-    //如果headerView(或其他地方)有水平滚动的scrollView,当其正在左右滑动的时候,就不能让列表上下滑动,所以有此代理方法进行对应处理
-    func mainTableViewGestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool
-}
-
-open class JXPagingMainTableView: UITableView, UIGestureRecognizerDelegate {
-    open weak var gestureDelegate: JXPagingMainTableViewGestureDelegate?
-
-    public func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
-        if gestureDelegate != nil {
-            return gestureDelegate!.mainTableViewGestureRecognizer(gestureRecognizer, shouldRecognizeSimultaneouslyWith:otherGestureRecognizer)
-        }else {
-            return gestureRecognizer.isKind(of: UIPanGestureRecognizer.classForCoder()) && otherGestureRecognizer.isKind(of: UIPanGestureRecognizer.classForCoder())
-        }
-    }
-}

+ 0 - 408
RainbowPlanet/RainbowPlanet/Tools/JXPagingView-Swift/JXPagingView.swift

@@ -1,408 +0,0 @@
-//
-//  JXPagingView.swift
-//  JXPagingView
-//
-//  Created by jiaxin on 2018/5/22.
-//  Copyright © 2018年 jiaxin. All rights reserved.
-//
-
-import UIKit
-
-@objc public protocol JXPagingViewListViewDelegate: NSObjectProtocol {
-
-    /// 返回listView
-    ///
-    /// - Returns: UIView
-    func listView() -> UIView
-
-    /// 返回listView内部持有的UIScrollView或UITableView或UICollectionView
-    /// 主要用于mainTableView已经显示了header,listView的contentOffset需要重置时,内部需要访问到外部传入进来的listView内的scrollView
-    ///
-    /// - Returns: listView内部持有的UIScrollView或UITableView或UICollectionView
-    func listScrollView() -> UIScrollView
-
-
-    /// 当listView内部持有的UIScrollView或UITableView或UICollectionView的代理方法`scrollViewDidScroll`回调时,需要调用该代理方法传入的callback
-    ///
-    /// - Parameter callback: `scrollViewDidScroll`回调时调用的callback
-    func listViewDidScrollCallback(callback: @escaping (UIScrollView)->())
-
-    /// 将要重置listScrollView的contentOffset
-    @objc optional func listScrollViewWillResetContentOffset()
-
-    /// 列表显示的时候调用
-    @objc optional func listDidAppear()
-
-    /// 列表消失的时候调用
-    @objc optional func listDidDisappear()
-}
-
-@objc public protocol JXPagingViewDelegate: NSObjectProtocol {
-
-
-    /// tableHeaderView的高度,因为内部需要比对判断,只能是整型数
-    ///
-    /// - Parameter pagingView: JXPagingViewView
-    /// - Returns: height
-    func tableHeaderViewHeight(in pagingView: JXPagingView) -> Int
-
-
-    /// 返回tableHeaderView
-    ///
-    /// - Parameter pagingView: JXPagingViewView
-    /// - Returns: view
-    func tableHeaderView(in pagingView: JXPagingView) -> UIView
-
-
-    /// 返回悬浮HeaderView的高度,因为内部需要比对判断,只能是整型数
-    ///
-    /// - Parameter pagingView: JXPagingViewView
-    /// - Returns: height
-    func heightForPinSectionHeader(in pagingView: JXPagingView) -> Int
-
-
-    /// 返回悬浮HeaderView。我用的是自己封装的JXCategoryView(Github:https://github.com/pujiaxin33/JXCategoryView),你也可以选择其他的三方库或者自己写
-    ///
-    /// - Parameter pagingView: JXPagingViewView
-    /// - Returns: view
-    func viewForPinSectionHeader(in pagingView: JXPagingView) -> UIView
-
-    /// 返回列表的数量
-    ///
-    /// - Parameter pagingView: pagingView description
-    /// - Returns: 列表的数量
-    func numberOfLists(in pagingView: JXPagingView) -> Int
-
-    /// 根据index初始化一个对应列表实例,需要是遵从`JXPagerViewListViewDelegate`协议的对象。
-    /// 如果列表是用自定义UIView封装的,就让自定义UIView遵从`JXPagerViewListViewDelegate`协议,该方法返回自定义UIView即可。
-    /// 如果列表是用自定义UIViewController封装的,就让自定义UIViewController遵从`JXPagerViewListViewDelegate`协议,该方法返回自定义UIViewController即可。
-    /// 注意:一定要是新生成的实例!!!
-    ///
-    /// - Parameters:
-    ///   - pagingView: pagingView description
-    ///   - index: 新生成的列表实例
-    func pagingView(_ pagingView: JXPagingView, initListAtIndex index: Int) -> JXPagingViewListViewDelegate
-
-    /// mainTableView的滚动回调,用于实现头图跟随缩放
-    ///
-    /// - Parameter scrollView: JXPagingViewMainTableView
-    @objc optional func mainTableViewDidScroll(_ scrollView: UIScrollView)
-}
-
-open class JXPagingView: UIView {
-    public weak var delegate: JXPagingViewDelegate!
-    open var mainTableView: JXPagingMainTableView!
-    open var listContainerView: JXPagingListContainerView!
-    public var validListDict = [Int:JXPagingViewListViewDelegate]() //当前已经加载过可用的列表字典,key就是index值,value是对应的列表。
-    open var pinSectionHeaderVerticalOffset: CGFloat = 0  //顶部固定sectionHeader的垂直偏移量。数值越大越往下沉。
-    public var isListHorizontalScrollEnabled = true {
-        didSet {
-            refreshListHorizontalScrollEnabledState()
-        }
-    }
-    open var automaticallyDisplayListVerticalScrollIndicator = true //是否允许当前列表自动显示或隐藏列表是垂直滚动指示器。true:悬浮的headerView滚动到顶部开始滚动列表时,就会显示,反之隐藏。false:内部不会处理列表的垂直滚动指示器。默认为:true。
-    public var currentScrollingListView: UIScrollView?
-    public var currentList: JXPagingViewListViewDelegate?
-    private var currentDeviceOrientation: UIDeviceOrientation?
-    private var currentIndex: Int = 0
-    private var retainedSelf: JXPagingView?
-    private var isWillRemoveFromWindow: Bool = false
-    private var isFirstMoveToWindow: Bool = true
-
-    deinit {
-        NotificationCenter.default.removeObserver(self)
-    }
-
-    public init(delegate: JXPagingViewDelegate) {
-        self.delegate = delegate
-        super.init(frame: CGRect.zero)
-
-        initializeViews()
-    }
-
-    @available(*, unavailable)
-    required public init?(coder aDecoder: NSCoder) {
-        fatalError("init(coder:) has not been implemented")
-    }
-
-    open func initializeViews(){
-        mainTableView = JXPagingMainTableView(frame: CGRect.zero, style: .plain)
-        mainTableView.showsVerticalScrollIndicator = false
-        mainTableView.showsHorizontalScrollIndicator = false
-        mainTableView.separatorStyle = .none
-        mainTableView.dataSource = self
-        mainTableView.delegate = self
-        mainTableView.scrollsToTop = false
-        mainTableView.tableHeaderView = self.delegate.tableHeaderView(in: self)
-        mainTableView.register(UITableViewCell.classForCoder(), forCellReuseIdentifier: "cell")
-        addSubview(mainTableView)
-
-        if #available(iOS 11.0, *) {
-            mainTableView.contentInsetAdjustmentBehavior = .never
-        } 
-
-        listContainerView = JXPagingListContainerView(delegate: self)
-        listContainerView.mainTableView = mainTableView
-
-        refreshListHorizontalScrollEnabledState()
-
-        self.currentDeviceOrientation = UIDevice.current.orientation
-        NotificationCenter.default.addObserver(self, selector: #selector(deviceOrientationDidChange(notification:)), name: UIDevice.orientationDidChangeNotification, object: nil)
-    }
-
-    open override func willMove(toWindow newWindow: UIWindow?) {
-        if self.isFirstMoveToWindow {
-            //第一次调用过滤,因为第一次列表显示通知会从willDisplayCell方法通知
-            self.isFirstMoveToWindow = false
-            return
-        }
-        //当前页面push到一个新的页面时,willMoveToWindow会调用三次。第一次调用的newWindow为nil,第二次调用间隔1ms左右newWindow有值,第三次调用间隔400ms左右newWindow为nil。
-        //根据上述事实,第一次和第二次为无效调用,可以根据其间隔1ms左右过滤掉
-        if newWindow == nil {
-            self.isWillRemoveFromWindow = true
-            //当前页面被pop的时候,willMoveToWindow只会调用一次,而且整个页面会被销毁掉,所以需要循环引用自己,确保能延迟执行currentListDidDisappear方法,触发列表消失事件。由此可见,循环引用也不一定是个坏事。是天使还是魔鬼,就看你如何对待它了。
-            self.retainedSelf = self
-            self.perform(#selector(currentListDidDisappear), with: nil, afterDelay: 0.02)
-        }else {
-            if self.isWillRemoveFromWindow {
-                self.isWillRemoveFromWindow = false
-                NSObject.cancelPreviousPerformRequests(withTarget: self, selector: #selector(currentListDidDisappear), object: nil)
-            }else {
-                self.currentListDidAppear()
-            }
-        }
-    }
-
-    override open func layoutSubviews() {
-        super.layoutSubviews()
-
-        mainTableView.frame = self.bounds
-    }
-
-    open func reloadData() {
-        self.currentList = nil
-        self.currentScrollingListView = nil
-
-        for list in validListDict.values {
-            list.listView().removeFromSuperview()
-        }
-        validListDict.removeAll()
-
-        self.mainTableView.tableHeaderView = self.delegate.tableHeaderView(in: self)
-        self.mainTableView.reloadData()
-        self.listContainerView.reloadData()
-    }
-
-    open func preferredProcessListViewDidScroll(scrollView: UIScrollView) {
-        if (self.mainTableView.contentOffset.y < getMainTableViewMaxContentOffsetY()) {
-            //mainTableView的header还没有消失,让listScrollView一直为0
-            self.currentList?.listScrollViewWillResetContentOffset?()
-            currentScrollingListView!.contentOffset = CGPoint.zero
-            if automaticallyDisplayListVerticalScrollIndicator {
-                currentScrollingListView!.showsVerticalScrollIndicator = false
-            }
-        } else {
-            //mainTableView的header刚好消失,固定mainTableView的位置,显示listScrollView的滚动条
-            self.mainTableView.contentOffset = CGPoint(x: 0, y: getMainTableViewMaxContentOffsetY())
-            if automaticallyDisplayListVerticalScrollIndicator {
-                currentScrollingListView!.showsVerticalScrollIndicator = true
-            }
-        }
-    }
-
-    open func preferredProcessMainTableViewDidScroll(_ scrollView: UIScrollView) {
-        if (self.currentScrollingListView != nil && self.currentScrollingListView!.contentOffset.y > 0) {
-            //mainTableView的header已经滚动不见,开始滚动某一个listView,那么固定mainTableView的contentOffset,让其不动
-            self.mainTableView.contentOffset = CGPoint(x: 0, y: getMainTableViewMaxContentOffsetY())
-        }
-
-        if (self.mainTableView.contentOffset.y < getMainTableViewMaxContentOffsetY()) {
-            //mainTableView已经显示了header,listView的contentOffset需要重置
-            for list in self.validListDict.values {
-                list.listScrollViewWillResetContentOffset?()
-                list.listScrollView().contentOffset = CGPoint.zero
-            }
-        }
-
-        if scrollView.contentOffset.y > getMainTableViewMaxContentOffsetY() && self.currentScrollingListView?.contentOffset.y == 0 {
-            //当往上滚动mainTableView的headerView时,滚动到底时,修复listView往上小幅度滚动
-            self.mainTableView.contentOffset = CGPoint(x: 0, y: getMainTableViewMaxContentOffsetY())
-        }
-    }
-
-    //MARK: - Private
-
-    func refreshListHorizontalScrollEnabledState() {
-        listContainerView.collectionView.isScrollEnabled = isListHorizontalScrollEnabled
-    }
-
-    func getMainTableViewMaxContentOffsetY() -> CGFloat {
-        return CGFloat(self.delegate.tableHeaderViewHeight(in: self)) - pinSectionHeaderVerticalOffset
-    }
-
-    func getPinSectionHeaderHeight() -> CGFloat {
-        return CGFloat(self.delegate.heightForPinSectionHeader(in: self))
-    }
-
-    /// 外部传入的listView,当其内部的scrollView滚动时,需要调用该方法
-    func listViewDidScroll(scrollView: UIScrollView) {
-        self.currentScrollingListView = scrollView
-
-        preferredProcessListViewDidScroll(scrollView: scrollView)
-    }
-
-    @objc func deviceOrientationDidChange(notification: Notification) {
-        if self.currentDeviceOrientation != UIDevice.current.orientation {
-            self.currentDeviceOrientation = UIDevice.current.orientation
-            //前后台切换也会触发该通知,所以不相同的时候才处理
-            mainTableView.reloadData()
-            listContainerView.deviceOrientationDidChanged()
-            listContainerView.reloadData()
-        }
-    }
-
-    @objc func currentListDidDisappear() {
-        let list = self.validListDict[self.currentIndex]
-        list?.listDidDisappear?()
-        self.isWillRemoveFromWindow = false
-        self.retainedSelf = nil
-    }
-
-    func currentListDidAppear() {
-        self.listDidAppear(index: self.currentIndex)
-    }
-
-    func listDidAppear(index: Int) {
-        let count = self.delegate.numberOfLists(in: self)
-        if count <= 0 || index >= count {
-            return
-        }
-        self.currentIndex = index
-        let list = self.validListDict[index]
-        list?.listDidAppear?()
-    }
-
-    func listDidDisappear(index: Int) {
-        let count = self.delegate.numberOfLists(in: self)
-        if count <= 0 || index >= count {
-            return
-        }
-        self.currentIndex = index
-        let list = self.validListDict[index]
-        list?.listDidDisappear?()
-    }
-}
-
-//MARK: - UITableViewDataSource, UITableViewDelegate
-extension JXPagingView: UITableViewDataSource, UITableViewDelegate {
-    public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
-        return 1
-    }
-
-    public func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
-        return self.bounds.height - getPinSectionHeaderHeight() - pinSectionHeaderVerticalOffset
-    }
-
-    public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
-        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
-        for subview in cell.contentView.subviews {
-            subview.removeFromSuperview()
-        }
-        listContainerView.frame = cell.contentView.bounds
-        cell.contentView.addSubview(listContainerView)
-        return cell
-    }
-
-    public func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
-        return getPinSectionHeaderHeight()
-    }
-
-    public func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
-        return self.delegate.viewForPinSectionHeader(in: self)
-    }
-
-    //加上footer之后,下滑滚动就变得丝般顺滑了
-    public func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
-        return 1
-    }
-
-    public func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
-        let footerView = UIView(frame: CGRect.zero)
-        footerView.backgroundColor = UIColor.clear
-        return footerView
-    }
-
-    public func scrollViewDidScroll(_ scrollView: UIScrollView) {
-        //用户正在上下滚动的时候,就不允许左右滚动
-        if scrollView.isTracking && isListHorizontalScrollEnabled {
-            self.listContainerView.collectionView.isScrollEnabled = false
-        }
-
-        if scrollView.contentOffset.y < pinSectionHeaderVerticalOffset && scrollView.contentOffset.y >= 0 {
-            //因为设置了contentInset.top,所以顶部会有对应高度的空白区间,所以需要设置负数抵消掉
-            scrollView.contentInset = UIEdgeInsets(top: -scrollView.contentOffset.y, left: 0, bottom: 0, right: 0)
-        }else if scrollView.contentOffset.y > pinSectionHeaderVerticalOffset {
-            //固定的位置就是contentInset.top
-            scrollView.contentInset = UIEdgeInsets(top: pinSectionHeaderVerticalOffset, left: 0, bottom: 0, right: 0)
-        }
-
-        preferredProcessMainTableViewDidScroll(scrollView)
-
-        self.delegate.mainTableViewDidScroll?(scrollView)
-    }
-
-    public func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
-        if isListHorizontalScrollEnabled {
-            self.listContainerView.collectionView.isScrollEnabled = true
-        }
-    }
-
-    public func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
-        if isListHorizontalScrollEnabled {
-            self.listContainerView.collectionView.isScrollEnabled = true
-        }
-    }
-
-    public func scrollViewDidEndScrollingAnimation(_ scrollView: UIScrollView) {
-        if isListHorizontalScrollEnabled {
-            self.listContainerView.collectionView.isScrollEnabled = true
-        }
-    }
-}
-
-extension JXPagingView: JXPagingListContainerViewDelegate {
-    public func numberOfRows(in listContainerView: JXPagingListContainerView) -> Int {
-        return self.delegate.numberOfLists(in: self)
-    }
-    public func listContainerView(_ listContainerView: JXPagingListContainerView, viewForListInRow row: Int) -> UIView {
-        var list = validListDict[row]
-        if list == nil {
-            list = self.delegate.pagingView(self, initListAtIndex: row)
-            list?.listViewDidScrollCallback {[weak self, weak list] (scrollView) in
-                self?.currentList = list
-                self?.listViewDidScroll(scrollView: scrollView)
-            }
-            validListDict[row] = list!
-        }
-        for listItem in validListDict.values {
-            if listItem === list {
-                listItem.listScrollView().scrollsToTop = true
-            }else {
-                listItem.listScrollView().scrollsToTop = false
-            }
-        }
-        return list!.listView()
-    }
-
-    public func listContainerView(_ listContainerView: JXPagingListContainerView, willDisplayCellAt row: Int) {
-        self.listDidAppear(index: row)
-        self.currentScrollingListView = validListDict[row]?.listScrollView()
-    }
-
-    public func listContainerView(_ listContainerView: JXPagingListContainerView, didEndDisplayingCellAt row: Int) {
-        self.listDidDisappear(index: row)
-    }
-}
-
-
-