├── .github └── ISSUE_TEMPLATE │ ├── bug--.md │ └── feature--.md ├── .gitignore ├── Document ├── JXPagingView原理.md ├── 侧滑手势处理.md └── 全屏手势处理.md ├── Examples ├── JXPagerViewExample-OC │ ├── JXPagerViewExample-OC.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ └── contents.xcworkspacedata │ ├── JXPagerViewExample-OC.xcworkspace │ │ └── contents.xcworkspacedata │ ├── JXPagerViewExample-OC │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ ├── Contents.json │ │ │ └── down.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── down.png │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── Example │ │ │ ├── BGImageHeader │ │ │ │ ├── BGImageHeaderViewController.h │ │ │ │ └── BGImageHeaderViewController.m │ │ │ ├── Banner │ │ │ │ ├── BannerViewController.h │ │ │ │ └── BannerViewController.m │ │ │ ├── Common │ │ │ │ ├── BaseNavigationController.h │ │ │ │ ├── BaseNavigationController.m │ │ │ │ ├── DetailViewController.h │ │ │ │ ├── DetailViewController.m │ │ │ │ ├── ListViewController.h │ │ │ │ ├── ListViewController.m │ │ │ │ ├── PagingViewBannerTableHeaderView.h │ │ │ │ ├── PagingViewBannerTableHeaderView.m │ │ │ │ ├── PagingViewController.h │ │ │ │ ├── PagingViewController.m │ │ │ │ ├── PagingViewTableHeaderView.h │ │ │ │ ├── PagingViewTableHeaderView.m │ │ │ │ ├── TestListBaseView.h │ │ │ │ ├── TestListBaseView.m │ │ │ │ ├── TestTableViewCell.h │ │ │ │ ├── TestTableViewCell.m │ │ │ │ ├── UIWindow+JXSafeArea.h │ │ │ │ └── UIWindow+JXSafeArea.m │ │ │ ├── CustomCategory │ │ │ │ ├── CustomCategoryViewController.h │ │ │ │ └── CustomCategoryViewController.m │ │ │ ├── CustomPinView │ │ │ │ ├── CustomPinViewViewController.h │ │ │ │ └── CustomPinViewViewController.m │ │ │ ├── DynamicHeader │ │ │ │ ├── DynamicHeader.h │ │ │ │ ├── DynamicHeader.m │ │ │ │ ├── DynamicHeaderViewController.h │ │ │ │ └── DynamicHeaderViewController.m │ │ │ ├── FullScreenGesture │ │ │ │ ├── FullScreenGestureScrollView.h │ │ │ │ ├── FullScreenGestureScrollView.m │ │ │ │ ├── FullScreenGestureViewController.h │ │ │ │ └── FullScreenGestureViewController.m │ │ │ ├── HeaderPosition │ │ │ │ ├── HeaderPositionViewController.h │ │ │ │ └── HeaderPositionViewController.m │ │ │ ├── HeaderPositionChange │ │ │ │ ├── HeaderPositionChangeViewController.h │ │ │ │ └── HeaderPositionChangeViewController.m │ │ │ ├── MainTableViewOffset │ │ │ │ ├── MainTableViewOffsetViewController.h │ │ │ │ └── MainTableViewOffsetViewController.m │ │ │ ├── NavigationBarHidden │ │ │ │ ├── NaviBarHiddenViewController.h │ │ │ │ └── NaviBarHiddenViewController.m │ │ │ ├── Nest │ │ │ │ ├── PagingNestCategoryListViewController.h │ │ │ │ ├── PagingNestCategoryListViewController.m │ │ │ │ ├── PagingNestCategoryViewController.h │ │ │ │ ├── PagingNestCategoryViewController.m │ │ │ │ ├── TestNestListBaseView.h │ │ │ │ └── TestNestListBaseView.m │ │ │ ├── Refresh │ │ │ │ ├── ListRefreshViewController.h │ │ │ │ ├── ListRefreshViewController.m │ │ │ │ ├── RefreshViewController.h │ │ │ │ └── RefreshViewController.m │ │ │ ├── ReloadWithoutInitList │ │ │ │ ├── ReloadWithoutInitListViewController.h │ │ │ │ └── ReloadWithoutInitListViewController.m │ │ │ ├── ScrollToListCell │ │ │ │ ├── ScrollToListCellViewController.h │ │ │ │ └── ScrollToListCellViewController.m │ │ │ ├── ScrollToTop │ │ │ │ ├── ScrollToTopViewController.h │ │ │ │ └── ScrollToTopViewController.m │ │ │ ├── Smooth │ │ │ │ ├── JXPagerSmoothCollectionFlowLayout.h │ │ │ │ ├── JXPagerSmoothCollectionFlowLayout.m │ │ │ │ ├── SmoothCustomPagerHeaderViewController.h │ │ │ │ ├── SmoothCustomPagerHeaderViewController.m │ │ │ │ ├── SmoothListCollectionViewController.h │ │ │ │ ├── SmoothListCollectionViewController.m │ │ │ │ ├── SmoothListScrollViewController.h │ │ │ │ ├── SmoothListScrollViewController.m │ │ │ │ ├── SmoothListViewController.h │ │ │ │ ├── SmoothListViewController.m │ │ │ │ ├── SmoothTableView.h │ │ │ │ ├── SmoothTableView.m │ │ │ │ ├── SmoothViewController.h │ │ │ │ ├── SmoothViewController.m │ │ │ │ └── SmoothViewDefines.h │ │ │ ├── TabBar │ │ │ │ ├── TabBarExampleViewController.h │ │ │ │ └── TabBarExampleViewController.m │ │ │ ├── XIBHeader │ │ │ │ ├── XIBHeader.h │ │ │ │ ├── XIBHeader.m │ │ │ │ ├── XIBHeader.xib │ │ │ │ ├── XIBHeaderViewController.h │ │ │ │ └── XIBHeaderViewController.m │ │ │ └── Zoom │ │ │ │ ├── ZoomViewController.h │ │ │ │ └── ZoomViewController.m │ │ ├── Info.plist │ │ ├── PrefixHeader.pch │ │ ├── ViewController.h │ │ ├── ViewController.m │ │ └── main.m │ ├── Podfile │ ├── Podfile.lock │ └── Pods │ │ ├── FDFullscreenPopGesture │ │ ├── FDFullscreenPopGesture │ │ │ ├── UINavigationController+FDFullscreenPopGesture.h │ │ │ └── UINavigationController+FDFullscreenPopGesture.m │ │ ├── LICENSE │ │ └── README.md │ │ ├── Headers │ │ ├── Private │ │ │ ├── FDFullscreenPopGesture │ │ │ │ └── UINavigationController+FDFullscreenPopGesture.h │ │ │ ├── JXCategoryView │ │ │ │ ├── JXCategoryBaseCell.h │ │ │ │ ├── JXCategoryBaseCellModel.h │ │ │ │ ├── JXCategoryBaseView.h │ │ │ │ ├── JXCategoryCollectionView.h │ │ │ │ ├── JXCategoryDotCell.h │ │ │ │ ├── JXCategoryDotCellModel.h │ │ │ │ ├── JXCategoryDotView.h │ │ │ │ ├── JXCategoryFactory.h │ │ │ │ ├── JXCategoryImageCell.h │ │ │ │ ├── JXCategoryImageCellModel.h │ │ │ │ ├── JXCategoryImageView.h │ │ │ │ ├── JXCategoryIndicatorBackgroundView.h │ │ │ │ ├── JXCategoryIndicatorBallView.h │ │ │ │ ├── JXCategoryIndicatorCell.h │ │ │ │ ├── JXCategoryIndicatorCellModel.h │ │ │ │ ├── JXCategoryIndicatorComponentView.h │ │ │ │ ├── JXCategoryIndicatorDotLineView.h │ │ │ │ ├── JXCategoryIndicatorImageView.h │ │ │ │ ├── JXCategoryIndicatorLineView.h │ │ │ │ ├── JXCategoryIndicatorParamsModel.h │ │ │ │ ├── JXCategoryIndicatorProtocol.h │ │ │ │ ├── JXCategoryIndicatorRainbowLineView.h │ │ │ │ ├── JXCategoryIndicatorTriangleView.h │ │ │ │ ├── JXCategoryIndicatorView.h │ │ │ │ ├── JXCategoryListContainerView.h │ │ │ │ ├── JXCategoryNumberCell.h │ │ │ │ ├── JXCategoryNumberCellModel.h │ │ │ │ ├── JXCategoryNumberView.h │ │ │ │ ├── JXCategoryTitleCell.h │ │ │ │ ├── JXCategoryTitleCellModel.h │ │ │ │ ├── JXCategoryTitleImageCell.h │ │ │ │ ├── JXCategoryTitleImageCellModel.h │ │ │ │ ├── JXCategoryTitleImageView.h │ │ │ │ ├── JXCategoryTitleVerticalZoomCell.h │ │ │ │ ├── JXCategoryTitleVerticalZoomCellModel.h │ │ │ │ ├── JXCategoryTitleVerticalZoomView.h │ │ │ │ ├── JXCategoryTitleView.h │ │ │ │ ├── JXCategoryView.h │ │ │ │ ├── JXCategoryViewAnimator.h │ │ │ │ ├── JXCategoryViewDefines.h │ │ │ │ └── UIColor+JXAdd.h │ │ │ ├── JXPagingView │ │ │ │ ├── JXPagerListContainerView.h │ │ │ │ ├── JXPagerListRefreshView.h │ │ │ │ ├── JXPagerMainTableView.h │ │ │ │ ├── JXPagerSmoothView.h │ │ │ │ ├── JXPagerView.h │ │ │ │ └── JXRTLFlowLayout.h │ │ │ └── MJRefresh │ │ │ │ ├── MJRefresh.h │ │ │ │ ├── MJRefreshAutoFooter.h │ │ │ │ ├── MJRefreshAutoGifFooter.h │ │ │ │ ├── MJRefreshAutoNormalFooter.h │ │ │ │ ├── MJRefreshAutoStateFooter.h │ │ │ │ ├── MJRefreshBackFooter.h │ │ │ │ ├── MJRefreshBackGifFooter.h │ │ │ │ ├── MJRefreshBackNormalFooter.h │ │ │ │ ├── MJRefreshBackStateFooter.h │ │ │ │ ├── MJRefreshComponent.h │ │ │ │ ├── MJRefreshConfig.h │ │ │ │ ├── MJRefreshConst.h │ │ │ │ ├── MJRefreshFooter.h │ │ │ │ ├── MJRefreshGifHeader.h │ │ │ │ ├── MJRefreshHeader.h │ │ │ │ ├── MJRefreshNormalHeader.h │ │ │ │ ├── MJRefreshStateHeader.h │ │ │ │ ├── NSBundle+MJRefresh.h │ │ │ │ ├── UIScrollView+MJExtension.h │ │ │ │ ├── UIScrollView+MJRefresh.h │ │ │ │ └── UIView+MJExtension.h │ │ └── Public │ │ │ ├── FDFullscreenPopGesture │ │ │ └── UINavigationController+FDFullscreenPopGesture.h │ │ │ ├── JXCategoryView │ │ │ ├── JXCategoryBaseCell.h │ │ │ ├── JXCategoryBaseCellModel.h │ │ │ ├── JXCategoryBaseView.h │ │ │ ├── JXCategoryCollectionView.h │ │ │ ├── JXCategoryDotCell.h │ │ │ ├── JXCategoryDotCellModel.h │ │ │ ├── JXCategoryDotView.h │ │ │ ├── JXCategoryFactory.h │ │ │ ├── JXCategoryImageCell.h │ │ │ ├── JXCategoryImageCellModel.h │ │ │ ├── JXCategoryImageView.h │ │ │ ├── JXCategoryIndicatorBackgroundView.h │ │ │ ├── JXCategoryIndicatorBallView.h │ │ │ ├── JXCategoryIndicatorCell.h │ │ │ ├── JXCategoryIndicatorCellModel.h │ │ │ ├── JXCategoryIndicatorComponentView.h │ │ │ ├── JXCategoryIndicatorDotLineView.h │ │ │ ├── JXCategoryIndicatorImageView.h │ │ │ ├── JXCategoryIndicatorLineView.h │ │ │ ├── JXCategoryIndicatorParamsModel.h │ │ │ ├── JXCategoryIndicatorProtocol.h │ │ │ ├── JXCategoryIndicatorRainbowLineView.h │ │ │ ├── JXCategoryIndicatorTriangleView.h │ │ │ ├── JXCategoryIndicatorView.h │ │ │ ├── JXCategoryListContainerView.h │ │ │ ├── JXCategoryNumberCell.h │ │ │ ├── JXCategoryNumberCellModel.h │ │ │ ├── JXCategoryNumberView.h │ │ │ ├── JXCategoryTitleCell.h │ │ │ ├── JXCategoryTitleCellModel.h │ │ │ ├── JXCategoryTitleImageCell.h │ │ │ ├── JXCategoryTitleImageCellModel.h │ │ │ ├── JXCategoryTitleImageView.h │ │ │ ├── JXCategoryTitleVerticalZoomCell.h │ │ │ ├── JXCategoryTitleVerticalZoomCellModel.h │ │ │ ├── JXCategoryTitleVerticalZoomView.h │ │ │ ├── JXCategoryTitleView.h │ │ │ ├── JXCategoryView.h │ │ │ ├── JXCategoryViewAnimator.h │ │ │ ├── JXCategoryViewDefines.h │ │ │ └── UIColor+JXAdd.h │ │ │ ├── JXPagingView │ │ │ ├── JXPagerListContainerView.h │ │ │ ├── JXPagerListRefreshView.h │ │ │ ├── JXPagerMainTableView.h │ │ │ ├── JXPagerSmoothView.h │ │ │ ├── JXPagerView.h │ │ │ └── JXRTLFlowLayout.h │ │ │ └── MJRefresh │ │ │ ├── MJRefresh.h │ │ │ ├── MJRefreshAutoFooter.h │ │ │ ├── MJRefreshAutoGifFooter.h │ │ │ ├── MJRefreshAutoNormalFooter.h │ │ │ ├── MJRefreshAutoStateFooter.h │ │ │ ├── MJRefreshBackFooter.h │ │ │ ├── MJRefreshBackGifFooter.h │ │ │ ├── MJRefreshBackNormalFooter.h │ │ │ ├── MJRefreshBackStateFooter.h │ │ │ ├── MJRefreshComponent.h │ │ │ ├── MJRefreshConfig.h │ │ │ ├── MJRefreshConst.h │ │ │ ├── MJRefreshFooter.h │ │ │ ├── MJRefreshGifHeader.h │ │ │ ├── MJRefreshHeader.h │ │ │ ├── MJRefreshNormalHeader.h │ │ │ ├── MJRefreshStateHeader.h │ │ │ ├── NSBundle+MJRefresh.h │ │ │ ├── UIScrollView+MJExtension.h │ │ │ ├── UIScrollView+MJRefresh.h │ │ │ └── UIView+MJExtension.h │ │ ├── JXCategoryView │ │ ├── LICENSE │ │ ├── README.md │ │ └── Sources │ │ │ ├── Base │ │ │ ├── JXCategoryBaseCell.h │ │ │ ├── JXCategoryBaseCell.m │ │ │ ├── JXCategoryBaseCellModel.h │ │ │ ├── JXCategoryBaseCellModel.m │ │ │ ├── JXCategoryBaseView.h │ │ │ └── JXCategoryBaseView.m │ │ │ ├── Common │ │ │ ├── JXCategoryCollectionView.h │ │ │ ├── JXCategoryCollectionView.m │ │ │ ├── JXCategoryFactory.h │ │ │ ├── JXCategoryFactory.m │ │ │ ├── JXCategoryIndicatorParamsModel.h │ │ │ ├── JXCategoryIndicatorParamsModel.m │ │ │ ├── JXCategoryIndicatorProtocol.h │ │ │ ├── JXCategoryListContainerView.h │ │ │ ├── JXCategoryListContainerView.m │ │ │ ├── JXCategoryViewAnimator.h │ │ │ ├── JXCategoryViewAnimator.m │ │ │ ├── JXCategoryViewDefines.h │ │ │ ├── UIColor+JXAdd.h │ │ │ └── UIColor+JXAdd.m │ │ │ ├── Dot │ │ │ ├── JXCategoryDotCell.h │ │ │ ├── JXCategoryDotCell.m │ │ │ ├── JXCategoryDotCellModel.h │ │ │ ├── JXCategoryDotCellModel.m │ │ │ ├── JXCategoryDotView.h │ │ │ └── JXCategoryDotView.m │ │ │ ├── Image │ │ │ ├── JXCategoryImageCell.h │ │ │ ├── JXCategoryImageCell.m │ │ │ ├── JXCategoryImageCellModel.h │ │ │ ├── JXCategoryImageCellModel.m │ │ │ ├── JXCategoryImageView.h │ │ │ └── JXCategoryImageView.m │ │ │ ├── Indicator │ │ │ ├── IndicatorViews │ │ │ │ ├── JXCategoryIndicatorBackgroundView.h │ │ │ │ ├── JXCategoryIndicatorBackgroundView.m │ │ │ │ ├── JXCategoryIndicatorBallView.h │ │ │ │ ├── JXCategoryIndicatorBallView.m │ │ │ │ ├── JXCategoryIndicatorComponentView.h │ │ │ │ ├── JXCategoryIndicatorComponentView.m │ │ │ │ ├── JXCategoryIndicatorDotLineView.h │ │ │ │ ├── JXCategoryIndicatorDotLineView.m │ │ │ │ ├── JXCategoryIndicatorImageView.h │ │ │ │ ├── JXCategoryIndicatorImageView.m │ │ │ │ ├── JXCategoryIndicatorLineView.h │ │ │ │ ├── JXCategoryIndicatorLineView.m │ │ │ │ ├── JXCategoryIndicatorRainbowLineView.h │ │ │ │ ├── JXCategoryIndicatorRainbowLineView.m │ │ │ │ ├── JXCategoryIndicatorTriangleView.h │ │ │ │ └── JXCategoryIndicatorTriangleView.m │ │ │ ├── JXCategoryIndicatorCell.h │ │ │ ├── JXCategoryIndicatorCell.m │ │ │ ├── JXCategoryIndicatorCellModel.h │ │ │ ├── JXCategoryIndicatorCellModel.m │ │ │ ├── JXCategoryIndicatorView.h │ │ │ └── JXCategoryIndicatorView.m │ │ │ ├── JXCategoryView.h │ │ │ ├── Number │ │ │ ├── JXCategoryNumberCell.h │ │ │ ├── JXCategoryNumberCell.m │ │ │ ├── JXCategoryNumberCellModel.h │ │ │ ├── JXCategoryNumberCellModel.m │ │ │ ├── JXCategoryNumberView.h │ │ │ └── JXCategoryNumberView.m │ │ │ ├── Title │ │ │ ├── JXCategoryTitleCell.h │ │ │ ├── JXCategoryTitleCell.m │ │ │ ├── JXCategoryTitleCellModel.h │ │ │ ├── JXCategoryTitleCellModel.m │ │ │ ├── JXCategoryTitleView.h │ │ │ └── JXCategoryTitleView.m │ │ │ ├── TitleImage │ │ │ ├── JXCategoryTitleImageCell.h │ │ │ ├── JXCategoryTitleImageCell.m │ │ │ ├── JXCategoryTitleImageCellModel.h │ │ │ ├── JXCategoryTitleImageCellModel.m │ │ │ ├── JXCategoryTitleImageView.h │ │ │ └── JXCategoryTitleImageView.m │ │ │ └── VerticalZoomTitle │ │ │ ├── JXCategoryTitleVerticalZoomCell.h │ │ │ ├── JXCategoryTitleVerticalZoomCell.m │ │ │ ├── JXCategoryTitleVerticalZoomCellModel.h │ │ │ ├── JXCategoryTitleVerticalZoomCellModel.m │ │ │ ├── JXCategoryTitleVerticalZoomView.h │ │ │ └── JXCategoryTitleVerticalZoomView.m │ │ ├── Local Podspecs │ │ └── JXPagingView.podspec.json │ │ ├── MJRefresh │ │ ├── LICENSE │ │ ├── MJRefresh │ │ │ ├── Base │ │ │ │ ├── MJRefreshAutoFooter.h │ │ │ │ ├── MJRefreshAutoFooter.m │ │ │ │ ├── MJRefreshBackFooter.h │ │ │ │ ├── MJRefreshBackFooter.m │ │ │ │ ├── MJRefreshComponent.h │ │ │ │ ├── MJRefreshComponent.m │ │ │ │ ├── MJRefreshFooter.h │ │ │ │ ├── MJRefreshFooter.m │ │ │ │ ├── MJRefreshHeader.h │ │ │ │ └── MJRefreshHeader.m │ │ │ ├── Custom │ │ │ │ ├── Footer │ │ │ │ │ ├── Auto │ │ │ │ │ │ ├── MJRefreshAutoGifFooter.h │ │ │ │ │ │ ├── MJRefreshAutoGifFooter.m │ │ │ │ │ │ ├── MJRefreshAutoNormalFooter.h │ │ │ │ │ │ ├── MJRefreshAutoNormalFooter.m │ │ │ │ │ │ ├── MJRefreshAutoStateFooter.h │ │ │ │ │ │ └── MJRefreshAutoStateFooter.m │ │ │ │ │ └── Back │ │ │ │ │ │ ├── MJRefreshBackGifFooter.h │ │ │ │ │ │ ├── MJRefreshBackGifFooter.m │ │ │ │ │ │ ├── MJRefreshBackNormalFooter.h │ │ │ │ │ │ ├── MJRefreshBackNormalFooter.m │ │ │ │ │ │ ├── MJRefreshBackStateFooter.h │ │ │ │ │ │ └── MJRefreshBackStateFooter.m │ │ │ │ └── Header │ │ │ │ │ ├── MJRefreshGifHeader.h │ │ │ │ │ ├── MJRefreshGifHeader.m │ │ │ │ │ ├── MJRefreshNormalHeader.h │ │ │ │ │ ├── MJRefreshNormalHeader.m │ │ │ │ │ ├── MJRefreshStateHeader.h │ │ │ │ │ └── MJRefreshStateHeader.m │ │ │ ├── MJRefresh.bundle │ │ │ │ ├── arrow@2x.png │ │ │ │ ├── en.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── ko.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── ru.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── uk.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── zh-Hans.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ └── zh-Hant.lproj │ │ │ │ │ └── Localizable.strings │ │ │ ├── MJRefresh.h │ │ │ ├── MJRefreshConfig.h │ │ │ ├── MJRefreshConfig.m │ │ │ ├── MJRefreshConst.h │ │ │ ├── MJRefreshConst.m │ │ │ ├── NSBundle+MJRefresh.h │ │ │ ├── NSBundle+MJRefresh.m │ │ │ ├── UIScrollView+MJExtension.h │ │ │ ├── UIScrollView+MJExtension.m │ │ │ ├── UIScrollView+MJRefresh.h │ │ │ ├── UIScrollView+MJRefresh.m │ │ │ ├── UIView+MJExtension.h │ │ │ └── UIView+MJExtension.m │ │ └── README.md │ │ ├── Manifest.lock │ │ ├── Pods.xcodeproj │ │ └── project.pbxproj │ │ └── Target Support Files │ │ ├── FDFullscreenPopGesture │ │ ├── FDFullscreenPopGesture-dummy.m │ │ ├── FDFullscreenPopGesture-prefix.pch │ │ ├── FDFullscreenPopGesture.debug.xcconfig │ │ ├── FDFullscreenPopGesture.release.xcconfig │ │ └── FDFullscreenPopGesture.xcconfig │ │ ├── JXCategoryView │ │ ├── JXCategoryView-dummy.m │ │ ├── JXCategoryView-prefix.pch │ │ ├── JXCategoryView.debug.xcconfig │ │ ├── JXCategoryView.release.xcconfig │ │ └── JXCategoryView.xcconfig │ │ ├── JXPagingView │ │ ├── JXPagingView-dummy.m │ │ ├── JXPagingView-prefix.pch │ │ ├── JXPagingView.debug.xcconfig │ │ ├── JXPagingView.release.xcconfig │ │ ├── JXPagingView.xcconfig │ │ └── ResourceBundle-JXPagerView-JXPagingView-Info.plist │ │ ├── MJRefresh │ │ ├── MJRefresh-dummy.m │ │ ├── MJRefresh-prefix.pch │ │ ├── MJRefresh.debug.xcconfig │ │ ├── MJRefresh.release.xcconfig │ │ └── MJRefresh.xcconfig │ │ └── Pods-JXPagerViewExample-OC │ │ ├── Pods-JXPagerViewExample-OC-acknowledgements.markdown │ │ ├── Pods-JXPagerViewExample-OC-acknowledgements.plist │ │ ├── Pods-JXPagerViewExample-OC-dummy.m │ │ ├── Pods-JXPagerViewExample-OC-resources-Debug-input-files.xcfilelist │ │ ├── Pods-JXPagerViewExample-OC-resources-Debug-output-files.xcfilelist │ │ ├── Pods-JXPagerViewExample-OC-resources-Release-input-files.xcfilelist │ │ ├── Pods-JXPagerViewExample-OC-resources-Release-output-files.xcfilelist │ │ ├── Pods-JXPagerViewExample-OC-resources.sh │ │ ├── Pods-JXPagerViewExample-OC.debug.xcconfig │ │ └── Pods-JXPagerViewExample-OC.release.xcconfig ├── JXPagingViewExample │ ├── JXPagingViewExample.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ └── contents.xcworkspacedata │ ├── JXPagingViewExample.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ ├── JXPagingViewExample │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── Example │ │ │ ├── CategoryNestPaging │ │ │ │ ├── NestSubjectViewController.swift │ │ │ │ └── NestViewController.swift │ │ │ ├── CollectionView │ │ │ │ └── CollectionViewViewController.swift │ │ │ ├── Common │ │ │ │ ├── BaseNavigationController.swift │ │ │ │ ├── BaseViewController.swift │ │ │ │ ├── DetailViewController.swift │ │ │ │ ├── JXPagingViewListViewable.swift │ │ │ │ ├── ListCollectionViewController.swift │ │ │ │ ├── ListViewController.swift │ │ │ │ ├── PagingViewTableHeaderView.swift │ │ │ │ ├── TestListBaseView.swift │ │ │ │ └── UIWindow+JXSafeArea.swift │ │ │ ├── HeaderPosition │ │ │ │ └── HeaderPositionViewController.swift │ │ │ ├── HeightChange │ │ │ │ ├── HeightChangeAnimationTableHeaderView.swift │ │ │ │ ├── HeightChangeAnimationViewController.swift │ │ │ │ └── HeightChangeViewController.swift │ │ │ ├── NavigationBarHidden │ │ │ │ └── NaviHiddenViewController.swift │ │ │ ├── PagingNestCategory │ │ │ │ ├── PagingNestCategoryExampleViewController.swift │ │ │ │ └── PagingNestCategoryFirstLayerViewController.swift │ │ │ ├── PagingNestPaging │ │ │ │ ├── PagingNestPagingExampleViewController.swift │ │ │ │ └── PagingNestPagingSubpageViewController.swift │ │ │ ├── PagingNestTwoCategory │ │ │ │ ├── PagingNestTwoCategoryExampleViewController.swift │ │ │ │ ├── PagingNestTwoCategoryFirstLayerViewController.swift │ │ │ │ └── PagingNestTwoCategorySecondLayerViewController.swift │ │ │ ├── Refresh │ │ │ │ ├── ListCacheViewController.swift │ │ │ │ ├── ListRefreshViewController.swift │ │ │ │ └── RefreshViewController.swift │ │ │ ├── Smooth │ │ │ │ ├── SmoothListViewController.swift │ │ │ │ └── SmoothViewController.swift │ │ │ ├── VCContainer │ │ │ │ ├── VCListViewController.swift │ │ │ │ └── VCViewController.swift │ │ │ └── Zoom │ │ │ │ └── ZoomViewController.swift │ │ ├── Info.plist │ │ ├── Swift-Bridge-Objective-C.h │ │ └── ViewController.swift │ ├── Podfile │ ├── Podfile.lock │ └── Pods │ │ ├── JXSegmentedView │ │ ├── LICENSE │ │ ├── README-English.md │ │ └── Sources │ │ │ ├── AttributeTitle │ │ │ ├── JXSegmentedTitleAttributeCell.swift │ │ │ ├── JXSegmentedTitleAttributeDataSource.swift │ │ │ └── JXSegmentedTitleAttributeItemModel.swift │ │ │ ├── Common │ │ │ ├── JXSegmentedAnimator.swift │ │ │ ├── JXSegmentedListContainerView.swift │ │ │ └── JXSegmentedViewTool.swift │ │ │ ├── Core │ │ │ ├── JXSegmentedBaseCell.swift │ │ │ ├── JXSegmentedBaseDataSource.swift │ │ │ ├── JXSegmentedBaseItemModel.swift │ │ │ ├── JXSegmentedCollectionView.swift │ │ │ └── JXSegmentedView.swift │ │ │ ├── Dot │ │ │ ├── JXSegmentedDotCell.swift │ │ │ ├── JXSegmentedDotDataSource.swift │ │ │ └── JXSegmentedDotItemModel.swift │ │ │ ├── Indicator │ │ │ ├── JXSegmentedComponetGradientView.swift │ │ │ ├── JXSegmentedIndicatorBackgroundView.swift │ │ │ ├── JXSegmentedIndicatorBaseView.swift │ │ │ ├── JXSegmentedIndicatorDotLineView.swift │ │ │ ├── JXSegmentedIndicatorDoubleLineView.swift │ │ │ ├── JXSegmentedIndicatorGradientView.swift │ │ │ ├── JXSegmentedIndicatorImageView.swift │ │ │ ├── JXSegmentedIndicatorLineView.swift │ │ │ ├── JXSegmentedIndicatorParamsModel.swift │ │ │ ├── JXSegmentedIndicatorProtocol.swift │ │ │ ├── JXSegmentedIndicatorRainbowLineView.swift │ │ │ └── JXSegmentedIndicatorTriangleView.swift │ │ │ ├── Number │ │ │ ├── JXSegmentedNumberCell.swift │ │ │ ├── JXSegmentedNumberDataSource.swift │ │ │ └── JXSegmentedNumberItemModel.swift │ │ │ ├── Title │ │ │ ├── JXSegmentedTitleCell.swift │ │ │ ├── JXSegmentedTitleDataSource.swift │ │ │ └── JXSegmentedTitleItemModel.swift │ │ │ ├── TitleGradient │ │ │ ├── JXSegmentedTitleGradientCell.swift │ │ │ ├── JXSegmentedTitleGradientDataSource.swift │ │ │ └── JXSegmentedTitleGradientItemModel.swift │ │ │ ├── TitleImage │ │ │ ├── JXSegmentedTitleImageCell.swift │ │ │ ├── JXSegmentedTitleImageDataSource.swift │ │ │ └── JXSegmentedTitleImageItemModel.swift │ │ │ └── TitleOrImage │ │ │ ├── JXSegmentedTitleOrImageCell.swift │ │ │ ├── JXSegmentedTitleOrImageDataSource.swift │ │ │ └── JXSegmentedTitleOrImageItemModel.swift │ │ ├── Local Podspecs │ │ └── JXPagingView.podspec.json │ │ ├── MJRefresh │ │ ├── LICENSE │ │ ├── MJRefresh │ │ │ ├── Base │ │ │ │ ├── MJRefreshAutoFooter.h │ │ │ │ ├── MJRefreshAutoFooter.m │ │ │ │ ├── MJRefreshBackFooter.h │ │ │ │ ├── MJRefreshBackFooter.m │ │ │ │ ├── MJRefreshComponent.h │ │ │ │ ├── MJRefreshComponent.m │ │ │ │ ├── MJRefreshFooter.h │ │ │ │ ├── MJRefreshFooter.m │ │ │ │ ├── MJRefreshHeader.h │ │ │ │ └── MJRefreshHeader.m │ │ │ ├── Custom │ │ │ │ ├── Footer │ │ │ │ │ ├── Auto │ │ │ │ │ │ ├── MJRefreshAutoGifFooter.h │ │ │ │ │ │ ├── MJRefreshAutoGifFooter.m │ │ │ │ │ │ ├── MJRefreshAutoNormalFooter.h │ │ │ │ │ │ ├── MJRefreshAutoNormalFooter.m │ │ │ │ │ │ ├── MJRefreshAutoStateFooter.h │ │ │ │ │ │ └── MJRefreshAutoStateFooter.m │ │ │ │ │ └── Back │ │ │ │ │ │ ├── MJRefreshBackGifFooter.h │ │ │ │ │ │ ├── MJRefreshBackGifFooter.m │ │ │ │ │ │ ├── MJRefreshBackNormalFooter.h │ │ │ │ │ │ ├── MJRefreshBackNormalFooter.m │ │ │ │ │ │ ├── MJRefreshBackStateFooter.h │ │ │ │ │ │ └── MJRefreshBackStateFooter.m │ │ │ │ └── Header │ │ │ │ │ ├── MJRefreshGifHeader.h │ │ │ │ │ ├── MJRefreshGifHeader.m │ │ │ │ │ ├── MJRefreshNormalHeader.h │ │ │ │ │ ├── MJRefreshNormalHeader.m │ │ │ │ │ ├── MJRefreshStateHeader.h │ │ │ │ │ └── MJRefreshStateHeader.m │ │ │ ├── MJRefresh.bundle │ │ │ │ ├── arrow@2x.png │ │ │ │ ├── en.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── ko.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── ru.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── uk.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── zh-Hans.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ └── zh-Hant.lproj │ │ │ │ │ └── Localizable.strings │ │ │ ├── MJRefresh.h │ │ │ ├── MJRefreshConfig.h │ │ │ ├── MJRefreshConfig.m │ │ │ ├── MJRefreshConst.h │ │ │ ├── MJRefreshConst.m │ │ │ ├── NSBundle+MJRefresh.h │ │ │ ├── NSBundle+MJRefresh.m │ │ │ ├── UIScrollView+MJExtension.h │ │ │ ├── UIScrollView+MJExtension.m │ │ │ ├── UIScrollView+MJRefresh.h │ │ │ ├── UIScrollView+MJRefresh.m │ │ │ ├── UIView+MJExtension.h │ │ │ └── UIView+MJExtension.m │ │ └── README.md │ │ ├── Manifest.lock │ │ ├── Pods.xcodeproj │ │ └── project.pbxproj │ │ └── Target Support Files │ │ ├── JXPagingView │ │ ├── JXPagingView-Info.plist │ │ ├── JXPagingView-dummy.m │ │ ├── JXPagingView-prefix.pch │ │ ├── JXPagingView-umbrella.h │ │ ├── JXPagingView.debug.xcconfig │ │ ├── JXPagingView.modulemap │ │ ├── JXPagingView.release.xcconfig │ │ ├── JXPagingView.xcconfig │ │ └── ResourceBundle-JXPagingView-JXPagingView-Info.plist │ │ ├── JXSegmentedView │ │ ├── JXSegmentedView-Info.plist │ │ ├── JXSegmentedView-dummy.m │ │ ├── JXSegmentedView-prefix.pch │ │ ├── JXSegmentedView-umbrella.h │ │ ├── JXSegmentedView.debug.xcconfig │ │ ├── JXSegmentedView.modulemap │ │ ├── JXSegmentedView.release.xcconfig │ │ └── JXSegmentedView.xcconfig │ │ ├── MJRefresh │ │ ├── MJRefresh-Info.plist │ │ ├── MJRefresh-dummy.m │ │ ├── MJRefresh-prefix.pch │ │ ├── MJRefresh-umbrella.h │ │ ├── MJRefresh.debug.xcconfig │ │ ├── MJRefresh.modulemap │ │ ├── MJRefresh.release.xcconfig │ │ └── MJRefresh.xcconfig │ │ └── Pods-JXPagingViewExample │ │ ├── Pods-JXPagingViewExample-Info.plist │ │ ├── Pods-JXPagingViewExample-acknowledgements.markdown │ │ ├── Pods-JXPagingViewExample-acknowledgements.plist │ │ ├── Pods-JXPagingViewExample-dummy.m │ │ ├── Pods-JXPagingViewExample-frameworks-Debug-input-files.xcfilelist │ │ ├── Pods-JXPagingViewExample-frameworks-Debug-output-files.xcfilelist │ │ ├── Pods-JXPagingViewExample-frameworks-Release-input-files.xcfilelist │ │ ├── Pods-JXPagingViewExample-frameworks-Release-output-files.xcfilelist │ │ ├── Pods-JXPagingViewExample-frameworks.sh │ │ ├── Pods-JXPagingViewExample-umbrella.h │ │ ├── Pods-JXPagingViewExample.debug.xcconfig │ │ ├── Pods-JXPagingViewExample.modulemap │ │ └── Pods-JXPagingViewExample.release.xcconfig ├── down.png └── lufei.jpg ├── JXPagingView.podspec ├── JXRTLFlowLayout.swift ├── LICENSE ├── Package.swift ├── README.md └── Sources ├── JXPagerView ├── JXPagerListContainerView.h ├── JXPagerListContainerView.m ├── JXPagerListRefreshView.h ├── JXPagerListRefreshView.m ├── JXPagerMainTableView.h ├── JXPagerMainTableView.m ├── JXPagerSmoothView.h ├── JXPagerSmoothView.m ├── JXPagerView.h ├── JXPagerView.m ├── JXRTLFlowLayout.h └── JXRTLFlowLayout.m ├── JXPagingView ├── JXPagingListContainerView.swift ├── JXPagingListRefreshView.swift ├── JXPagingMainTableView.swift ├── JXPagingSmoothView.swift ├── JXPagingView.swift └── JXRTLFlowLayout.swift └── PrivacyInfo.xcprivacy /.github/ISSUE_TEMPLATE/bug--.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug提交 3 | about: 提交清晰明了的bug 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **bug提交前阅读** 11 | 1.请先仔细阅读文档,尤其是【其他注意事项】文档,里面有常见问题的解决方案; 12 | 2.请先搜索已有的Issues,尝试找到相同问题的讨论; 13 | 3.请先阅读相关类的API、源码,尝试从源码找到答案; 14 | 4.如果以上步骤都未能解决你的疑问,欢迎提交ISSUE; 15 | 16 | **bug描述** 17 | 请简单描述你的bug现象。 18 | 19 | **版本号** 20 | 1.JXPagingView版本号:? 21 | 2.OC还是Swift版本:? 22 | 3.手机系统版本号:? 23 | 4.手机型号:? 24 | 25 | **复现步骤** 26 | 1. 遇到问题的相关效果、类是:? 27 | 2.具体的操作步骤是:? 28 | 29 | **截图、GIF** 30 | 提供bug出现时的截图或者GIF。 31 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature--.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature提交 3 | about: 提交清晰明了的Feature 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Feature描述** 11 | 请简单描述你想要的效果:? 12 | 13 | **参考效果** 14 | 如果你想要实现一个其他APP已有的效果: 15 | 1.参考APP名字:? 16 | 2.目标页面路径:? 17 | 3.目标效果截图:? 18 | 19 | **其他补充** 20 | 关于目标效果的其他说明:? 21 | -------------------------------------------------------------------------------- /Document/JXPagingView原理.md: -------------------------------------------------------------------------------- 1 | # JXPagingView原理 2 | 3 | ## 视图层级 4 | 5 | ![structure](https://github.com/pujiaxin33/JXExampleImages/blob/master/JXPaingView/JXPagingView%20Structure.png) 6 | 7 | ## 主列表与子列表的垂直滚动交互 8 | 9 | `JXPagerMainTableView`实现了代理方法`- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer`,当两个`gestureRecognizer`都是`UIPanGestureRecognizer`时,即是主列表滚动手势和子列表滚动手势时,让两个手势同时响应。这时,滚动子列表时就会同步让主列表滚动。 10 | 11 | 为了实现子列表从下滚动到上面,并且让分类选择器视图悬浮到顶部,就需要在主列表和子列表的`scrollViewDidScroll`代理方法做特殊处理。 12 | 13 | ### 主列表`scrollViewDidScroll`滚动处理 14 | 15 | - mainTableView的header已经滚动不见,开始滚动某一个listView,那么固定mainTableView的contentOffset,让其不动 16 | - mainTableView已经显示了header,listView的contentOffset需要重置 17 | 18 | ### 子列表`scrollViewDidScroll`滚动处理 19 | 20 | - mainTableView的header还没有消失,让listScrollView一直为0 21 | - mainTableView的header刚好消失,固定mainTableView的位置,显示listScrollView的滚动条,子列表继续滚动 22 | 23 | ## 子列表的左右滚动交互 24 | 25 | 子列表都是被添加到`JXPagerListContainerView`的`collectionView`的cell上面的,当`collectionView`左右滚动的时候,会禁止主列表的滚动`self.mainTableView.scrollEnabled = NO;`。这样子就实现了,左右滚动时,无法上下滚动。 26 | 27 | 28 | -------------------------------------------------------------------------------- /Document/侧滑手势处理.md: -------------------------------------------------------------------------------- 1 | # 侧滑手势处理 2 | 3 | ``` 4 | self.navigationController?.interactivePopGestureRecognizer?.delegate = self 5 | ``` 6 | 7 | ``` 8 | // MARK: - UIGestureRecognizerDelegate 9 | extension xxVC { 10 | func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool { 11 | if String(describing: otherGestureRecognizer.view.self).contains("JXPagingView"), let scrollView = otherGestureRecognizer.view as? UIScrollView { 12 | if scrollView.contentOffset.x <= 0 { 13 | return true 14 | } 15 | } 16 | return false 17 | } 18 | } 19 | ``` 20 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2018/9/12. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Assets.xcassets/down.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "down.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Assets.xcassets/down.imageset/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pujiaxin33/JXPagingView/8aa5663720ebfab0c4df41cfca04b113f832c5b2/Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Assets.xcassets/down.imageset/down.png -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/BGImageHeader/BGImageHeaderViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // BGImageHeaderViewController.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2020/1/2. 6 | // Copyright © 2020 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "PagingViewController.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface BGImageHeaderViewController : PagingViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/Banner/BannerViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // BannerViewController.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2019/2/25. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "PagingViewController.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface BannerViewController : PagingViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/Common/BaseNavigationController.h: -------------------------------------------------------------------------------- 1 | // 2 | // BaseNavigationController.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2019/3/15. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface BaseNavigationController : UINavigationController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/Common/DetailViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // DetailViewController.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2019/1/28. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface DetailViewController : UIViewController 14 | @property (nonatomic, copy) NSString *infoString; 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/Common/DetailViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // DetailViewController.m 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2019/1/28. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "DetailViewController.h" 10 | 11 | @interface DetailViewController () 12 | @property (nonatomic, strong) UILabel *titleLabel; 13 | @end 14 | 15 | @implementation DetailViewController 16 | 17 | - (void)viewDidLoad { 18 | [super viewDidLoad]; 19 | 20 | self.view.backgroundColor = [UIColor whiteColor]; 21 | 22 | self.titleLabel = [[UILabel alloc] init]; 23 | self.titleLabel.font = [UIFont systemFontOfSize:25]; 24 | self.titleLabel.text = self.infoString; 25 | [self.view addSubview:self.titleLabel]; 26 | } 27 | 28 | - (void)viewDidLayoutSubviews { 29 | [super viewDidLayoutSubviews]; 30 | 31 | [self.titleLabel sizeToFit]; 32 | self.titleLabel.center = self.view.center; 33 | } 34 | 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/Common/ListViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ListViewController.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2019/12/30. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "JXPagerView.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface ListViewController : UIViewController 15 | @property (nonatomic, strong) UITableView *tableView; 16 | @property (nonatomic, strong) NSMutableArray *dataSource; 17 | @property (nonatomic, assign) BOOL isNeedFooter; 18 | @property (nonatomic, assign) BOOL isNeedHeader; 19 | @property (nonatomic, assign) BOOL isHeaderRefreshed; //默认为YES 20 | @end 21 | 22 | NS_ASSUME_NONNULL_END 23 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/Common/PagingViewBannerTableHeaderView.h: -------------------------------------------------------------------------------- 1 | // 2 | // PagingViewBannerTableHeaderView.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2019/2/25. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface PagingViewBannerTableHeaderView : UIView 14 | @property (nonatomic, strong) UICollectionView *collectionView; 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/Common/PagingViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // OCExampleViewController.h 3 | // JXPagingView 4 | // 5 | // Created by jiaxin on 2018/8/27. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "JXPagerView.h" 11 | #import "PagingViewTableHeaderView.h" 12 | #import "ListViewController.h" 13 | #import "JXCategoryTitleView.h" 14 | 15 | static const CGFloat JXTableHeaderViewHeight = 200; 16 | static const CGFloat JXheightForHeaderInSection = 50; 17 | 18 | @interface PagingViewController : UIViewController 19 | 20 | @property (nonatomic, strong) JXPagerView *pagerView; 21 | @property (nonatomic, strong) PagingViewTableHeaderView *userHeaderView; 22 | @property (nonatomic, strong, readonly) JXCategoryTitleView *categoryView; 23 | @property (nonatomic, assign) BOOL isNeedFooter; 24 | @property (nonatomic, assign) BOOL isNeedHeader; 25 | - (JXPagerView *)preferredPagingView; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/Common/PagingViewTableHeaderView.h: -------------------------------------------------------------------------------- 1 | // 2 | // PagingViewTableHeaderView.h 3 | // JXCategoryView 4 | // 5 | // Created by jiaxin on 2018/8/27. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface PagingViewTableHeaderView : UIView 12 | 13 | - (void)scrollViewDidScroll:(CGFloat)contentOffsetY; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/Common/TestListBaseView.h: -------------------------------------------------------------------------------- 1 | // 2 | // TestListBaseView.h 3 | // JXCategoryView 4 | // 5 | // Created by jiaxin on 2018/8/27. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "JXPagerView.h" 11 | 12 | @interface TestListBaseView : UIView 13 | 14 | @property (nonatomic, weak) UINavigationController *naviController; 15 | @property (nonatomic, strong) UITableView *tableView; 16 | @property (nonatomic, strong) NSMutableArray *dataSource; 17 | @property (nonatomic, assign) BOOL isNeedFooter; 18 | @property (nonatomic, assign) BOOL isNeedHeader; 19 | 20 | - (void)beginFirstRefresh; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/Common/TestTableViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // TestTableViewCell.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2018/9/12. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface TestTableViewCell : UITableViewCell 12 | @property (nonatomic, copy) void(^bgButtonClicked)(void); 13 | @end 14 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/Common/UIWindow+JXSafeArea.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIWindow+JXSafeArea.h 3 | // JXCategoryView 4 | // 5 | // Created by jiaxin on 2018/9/29. 6 | // Copyright © 2018 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface UIWindow (JXSafeArea) 14 | 15 | - (UIEdgeInsets)jx_layoutInsets; 16 | 17 | - (CGFloat)jx_navigationHeight; 18 | 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/Common/UIWindow+JXSafeArea.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIWindow+JXSafeArea.m 3 | // JXCategoryView 4 | // 5 | // Created by jiaxin on 2018/9/29. 6 | // Copyright © 2018 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "UIWindow+JXSafeArea.h" 10 | 11 | @implementation UIWindow (JXSafeArea) 12 | 13 | - (UIEdgeInsets)jx_layoutInsets { 14 | if (@available(iOS 11.0, *)) { 15 | UIEdgeInsets safeAreaInsets = self.safeAreaInsets; 16 | if (safeAreaInsets.bottom > 0) { 17 | //参考文章:https://mp.weixin.qq.com/s/Ik2zBox3_w0jwfVuQUJAUw 18 | return safeAreaInsets; 19 | } 20 | return UIEdgeInsetsMake(20, 0, 0, 0); 21 | } 22 | return UIEdgeInsetsMake(20, 0, 0, 0); 23 | } 24 | 25 | - (CGFloat)jx_navigationHeight { 26 | CGFloat statusBarHeight = [self jx_layoutInsets].top; 27 | return statusBarHeight + 44; 28 | } 29 | 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/CustomCategory/CustomCategoryViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // CustomCategoryViewController.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2020/1/15. 6 | // Copyright © 2020 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "PagingViewController.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface CustomCategoryViewController : PagingViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/CustomPinView/CustomPinViewViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // CustomPinViewViewController.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2020/1/9. 6 | // Copyright © 2020 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "PagingViewController.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface CustomPinViewViewController : PagingViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/DynamicHeader/DynamicHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // DynamicHeader.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2020/5/22. 6 | // Copyright © 2020 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface DynamicHeader : UIView 14 | 15 | @property(nonatomic, copy) void(^didRequested)(CGFloat); 16 | - (void)startRequest; 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/DynamicHeader/DynamicHeaderViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // DynamicHeaderViewController.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2020/5/22. 6 | // Copyright © 2020 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "PagingViewController.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface DynamicHeaderViewController : PagingViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/FullScreenGesture/FullScreenGestureScrollView.h: -------------------------------------------------------------------------------- 1 | // 2 | // FullScreenGestureScrollView.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2020/4/21. 6 | // Copyright © 2020 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface FullScreenGestureScrollView : UIScrollView 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/FullScreenGesture/FullScreenGestureScrollView.m: -------------------------------------------------------------------------------- 1 | // 2 | // FullScreenGestureScrollView.m 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2020/4/21. 6 | // Copyright © 2020 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "FullScreenGestureScrollView.h" 10 | 11 | //如果你自定义的类,还要支持categoryView嵌套pagingView,你自己把JXPagerListContainerScrollView类的里面的gestureRecognizerShouldBegin方法复制过来即可。 12 | @implementation FullScreenGestureScrollView 13 | 14 | //详情参考:https://github.com/forkingdog/FDFullscreenPopGesture#view-controller-with-scrollview 15 | - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { 16 | if (self.contentOffset.x <= 0) { 17 | if ([otherGestureRecognizer.delegate isKindOfClass:NSClassFromString(@"_FDFullscreenPopGestureRecognizerDelegate")]) { 18 | return YES; 19 | } 20 | } 21 | return NO; 22 | } 23 | 24 | 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/FullScreenGesture/FullScreenGestureViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // FullScreenGestureViewController.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2020/4/21. 6 | // Copyright © 2020 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "PagingViewController.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface FullScreenGestureViewController : PagingViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/HeaderPosition/HeaderPositionViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // HeaderPositionViewController.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2019/3/13. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "PagingViewController.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface HeaderPositionViewController : PagingViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/HeaderPosition/HeaderPositionViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // HeaderPositionViewController.m 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2019/3/13. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "HeaderPositionViewController.h" 10 | #import "JXPagerListRefreshView.h" 11 | 12 | @interface HeaderPositionViewController () 13 | 14 | @end 15 | 16 | @implementation HeaderPositionViewController 17 | 18 | - (void)viewDidLoad { 19 | [super viewDidLoad]; 20 | 21 | self.pagerView.pinSectionHeaderVerticalOffset = 100; 22 | } 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/HeaderPositionChange/HeaderPositionChangeViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // HeaderPositionChangeViewController.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2020/1/9. 6 | // Copyright © 2020 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "PagingViewController.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface HeaderPositionChangeViewController : PagingViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/HeaderPositionChange/HeaderPositionChangeViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // HeaderPositionChangeViewController.m 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2020/1/9. 6 | // Copyright © 2020 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "HeaderPositionChangeViewController.h" 10 | 11 | @interface HeaderPositionChangeViewController () 12 | 13 | @end 14 | 15 | @implementation HeaderPositionChangeViewController 16 | 17 | - (void)viewDidLoad { 18 | [super viewDidLoad]; 19 | 20 | self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"切换" style:UIBarButtonItemStylePlain target:self action:@selector(didNaviRightItemClick)]; 21 | } 22 | 23 | - (void)didNaviRightItemClick { 24 | if (self.pagerView.pinSectionHeaderVerticalOffset == JXTableHeaderViewHeight) { 25 | self.pagerView.pinSectionHeaderVerticalOffset = 0; 26 | }else { 27 | self.pagerView.pinSectionHeaderVerticalOffset = JXTableHeaderViewHeight; 28 | } 29 | [self.pagerView reloadData]; 30 | } 31 | 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/MainTableViewOffset/MainTableViewOffsetViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MainTableViewOffsetViewController.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2019/12/30. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "PagingViewController.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MainTableViewOffsetViewController : PagingViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/NavigationBarHidden/NaviBarHiddenViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // NaviBarHiddenViewController.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2018/9/12. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "PagingViewController.h" 10 | 11 | @interface NaviBarHiddenViewController : PagingViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/Nest/PagingNestCategoryListViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // PagingNestCategoryListViewController.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2019/12/30. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface PagingNestCategoryListViewController : UIViewController 14 | @property (nonatomic, strong) UIScrollView *contentScrollView; 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/Nest/PagingNestCategoryViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // NestViewController.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2018/10/26. 6 | // Copyright © 2018 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface PagingNestCategoryViewController : UIViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/Nest/TestNestListBaseView.h: -------------------------------------------------------------------------------- 1 | // 2 | // TestNestListBaseView.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2018/10/26. 6 | // Copyright © 2018 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface TestNestListBaseView : UIView 13 | 14 | @property (nonatomic, copy) void(^scrollCallback)(UIScrollView *scrollView); 15 | @property (nonatomic, strong) UITableView *tableView; 16 | @property (nonatomic, strong) NSMutableArray *dataSource; 17 | 18 | @end 19 | 20 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/Refresh/ListRefreshViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ListRefreshViewController.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2018/9/12. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "PagingViewController.h" 10 | 11 | @interface ListRefreshViewController : PagingViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/Refresh/ListRefreshViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ListRefreshViewController.m 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2018/9/12. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "ListRefreshViewController.h" 10 | #import "JXPagerListRefreshView.h" 11 | #import "JXCategoryView.h" 12 | 13 | @interface ListRefreshViewController () 14 | 15 | @end 16 | 17 | @implementation ListRefreshViewController 18 | 19 | - (void)viewDidLoad { 20 | [super viewDidLoad]; 21 | 22 | self.isNeedHeader = YES; 23 | self.isNeedFooter = NO; 24 | } 25 | 26 | - (JXPagerView *)preferredPagingView { 27 | return [[JXPagerListRefreshView alloc] initWithDelegate:self]; 28 | } 29 | 30 | #pragma mark - JXCategoryViewDelegate 31 | 32 | - (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index { 33 | self.navigationController.interactivePopGestureRecognizer.enabled = (index == 0); 34 | } 35 | 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/Refresh/RefreshViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // RefreshViewController.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2018/9/12. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "PagingViewController.h" 10 | 11 | @interface RefreshViewController : PagingViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/ReloadWithoutInitList/ReloadWithoutInitListViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ReloadWithoutInitListViewController.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2019/6/13. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "ListRefreshViewController.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface ReloadWithoutInitListViewController : ListRefreshViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/ScrollToListCell/ScrollToListCellViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ScrollToListCellViewController.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2019/6/21. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "PagingViewController.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface ScrollToListCellViewController : PagingViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/ScrollToTop/ScrollToTopViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ScrollToTopViewController.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2019/6/21. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "PagingViewController.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface ScrollToTopViewController : PagingViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/ScrollToTop/ScrollToTopViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ScrollToTopViewController.m 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2019/6/21. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "ScrollToTopViewController.h" 10 | 11 | @interface ScrollToTopViewController () 12 | 13 | @end 14 | 15 | @implementation ScrollToTopViewController 16 | 17 | - (void)viewDidLoad { 18 | [super viewDidLoad]; 19 | 20 | self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"滚到顶部" style:UIBarButtonItemStylePlain target:self action:@selector(scrollToTargetItem)]; 21 | } 22 | 23 | - (void)scrollToTargetItem { 24 | //必须让self.pagerView.currentScrollingListView滚动到顶部,才能触发main列表的滚动所以这里的animated必须是NO 25 | [self.pagerView.currentScrollingListView setContentOffset:CGPointZero animated:NO]; 26 | //然后让self.pagerView.mainTableView滚动到顶部,这里的animated可以为YES 27 | [self.pagerView.mainTableView setContentOffset:CGPointZero animated:NO]; 28 | } 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/Smooth/JXPagerSmoothCollectionFlowLayout.h: -------------------------------------------------------------------------------- 1 | // 2 | // JXPagerSmoothCollectionFlowLayout.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2019/12/31. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface JXPagerSmoothCollectionFlowLayout : UICollectionViewFlowLayout 14 | @property (nonatomic, assign) CGFloat pinCategoryHeight; //悬浮header的高度 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/Smooth/JXPagerSmoothCollectionFlowLayout.m: -------------------------------------------------------------------------------- 1 | // 2 | // JXPagerSmoothCollectionFlowLayout.m 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2019/12/31. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "JXPagerSmoothCollectionFlowLayout.h" 10 | 11 | @implementation JXPagerSmoothCollectionFlowLayout 12 | 13 | - (CGSize)collectionViewContentSize { 14 | CGFloat minContentSizeHeight = self.collectionView.bounds.size.height - self.pinCategoryHeight; 15 | CGSize size = [super collectionViewContentSize]; 16 | if (size.height < minContentSizeHeight) { 17 | return CGSizeMake(size.width, minContentSizeHeight); 18 | } 19 | return size; 20 | } 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/Smooth/SmoothCustomPagerHeaderViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // SmoothCustomPagerHeaderViewController.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2019/11/18. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "SmoothViewController.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface SmoothCustomPagerHeaderViewController : SmoothViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/Smooth/SmoothListCollectionViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // SmoothListCollectionViewController.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2019/11/18. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "JXPagerSmoothView.h" 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface SmoothListCollectionViewController : UIViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/Smooth/SmoothListScrollViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // SmoothListScrollViewController.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2019/11/18. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "JXPagerSmoothView.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface SmoothListScrollViewController : UIViewController 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/Smooth/SmoothListViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // SmoothListViewController.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2019/11/18. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "JXPagerSmoothView.h" 11 | #import "SmoothViewController.h" 12 | 13 | @protocol SmoothListViewControllerDelegate 14 | 15 | - (CGFloat)pagerHeaderContainerHeight; 16 | - (void)startHeaderRefresh; 17 | - (void)endHeaderRefresh; 18 | 19 | @end 20 | 21 | NS_ASSUME_NONNULL_BEGIN 22 | 23 | @interface SmoothListViewController : UIViewController 24 | -(instancetype)initWithType:(SmoothListType)type; 25 | @property (nonatomic, weak) id delegate; 26 | @property (nonatomic, assign) BOOL isNeedHeaderRefresh; 27 | @property (nonatomic, assign) BOOL isNeedFooterLoad; 28 | @end 29 | 30 | NS_ASSUME_NONNULL_END 31 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/Smooth/SmoothTableView.h: -------------------------------------------------------------------------------- 1 | // 2 | // SmoothTableView.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by tony on 2021/11/20. 6 | // Copyright © 2021 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface SmoothTableView : UITableView 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/Smooth/SmoothTableView.m: -------------------------------------------------------------------------------- 1 | // 2 | // SmoothTableView.m 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by tony on 2021/11/20. 6 | // Copyright © 2021 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "SmoothTableView.h" 10 | 11 | @implementation SmoothTableView 12 | 13 | - (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated { 14 | [self setContentOffset:CGPointMake(self.contentOffset.x, rect.origin.y) animated:animated]; 15 | } 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/Smooth/SmoothViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // SmoothViewController.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2019/11/15. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "JXPagerSmoothView.h" 11 | #import "JXCategoryTitleView.h" 12 | 13 | typedef NS_ENUM(NSUInteger, SmoothListType) { 14 | SmoothListType_TableView, 15 | SmoothListType_CollectionView, 16 | SmoothListType_ScrollView, 17 | SmoothListType_InputHeader, 18 | }; 19 | 20 | NS_ASSUME_NONNULL_BEGIN 21 | 22 | @interface SmoothViewController : UIViewController 23 | 24 | @property (nonatomic, strong) JXPagerSmoothView *pager; 25 | @property (nonatomic, strong) JXCategoryTitleView *categoryView; 26 | @property (nonatomic, assign) SmoothListType type; 27 | 28 | @end 29 | 30 | NS_ASSUME_NONNULL_END 31 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/Smooth/SmoothViewDefines.h: -------------------------------------------------------------------------------- 1 | // 2 | // SmoothViewDefines.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2019/12/31. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #define SmoothViewPinCategoryHeight 50 12 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/TabBar/TabBarExampleViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // TabBarExampleViewController.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2020/1/11. 6 | // Copyright © 2020 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface TabBarExampleViewController : UITabBarController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/TabBar/TabBarExampleViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // TabBarExampleViewController.m 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2020/1/11. 6 | // Copyright © 2020 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "TabBarExampleViewController.h" 10 | #import "PagingViewController.h" 11 | 12 | @interface TabBarExampleViewController () 13 | 14 | @end 15 | 16 | @implementation TabBarExampleViewController 17 | 18 | - (void)viewDidLoad { 19 | [super viewDidLoad]; 20 | 21 | NSMutableArray *list = [NSMutableArray array]; 22 | for (int index = 1; index <= 3; index++) { 23 | PagingViewController *vc = [[PagingViewController alloc] init]; 24 | vc.tabBarItem = [[UITabBarItem alloc] initWithTitle:[NSString stringWithFormat:@"第%d页", index] image:nil selectedImage:nil]; 25 | [list addObject:vc]; 26 | } 27 | self.viewControllers = list; 28 | } 29 | 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/XIBHeader/XIBHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // XIBHeader.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2020/4/21. 6 | // Copyright © 2020 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface XIBHeader : UIView 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/XIBHeader/XIBHeader.m: -------------------------------------------------------------------------------- 1 | // 2 | // XIBHeader.m 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2020/4/21. 6 | // Copyright © 2020 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "XIBHeader.h" 10 | 11 | @implementation XIBHeader 12 | 13 | /* 14 | // Only override drawRect: if you perform custom drawing. 15 | // An empty implementation adversely affects performance during animation. 16 | - (void)drawRect:(CGRect)rect { 17 | // Drawing code 18 | } 19 | */ 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/XIBHeader/XIBHeaderViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // XIBHeaderViewController.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2020/4/21. 6 | // Copyright © 2020 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "PagingViewController.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface XIBHeaderViewController : PagingViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/XIBHeader/XIBHeaderViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // XIBHeaderViewController.m 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2020/4/21. 6 | // Copyright © 2020 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "XIBHeaderViewController.h" 10 | #import "XIBHeader.h" 11 | 12 | @interface XIBHeaderViewController () 13 | @property (nonatomic, strong) XIBHeader *xibHeader; 14 | @end 15 | 16 | @implementation XIBHeaderViewController 17 | 18 | - (void)viewDidLoad { 19 | //因为继承的原因,要提前初始化 20 | self.xibHeader = (XIBHeader *)[[[NSBundle mainBundle] loadNibNamed:NSStringFromClass([XIBHeader class]) owner:nil options:nil] lastObject]; 21 | 22 | [super viewDidLoad]; 23 | 24 | 25 | } 26 | 27 | 28 | - (UIView *)tableHeaderViewInPagerView:(JXPagerView *)pagerView { 29 | return self.xibHeader; 30 | } 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/Zoom/ZoomViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZoomViewController.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2018/9/12. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "PagingViewController.h" 11 | 12 | @interface ZoomViewController : PagingViewController 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/Example/Zoom/ZoomViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ZoomViewController.m 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2018/9/12. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "ZoomViewController.h" 10 | 11 | @implementation ZoomViewController 12 | 13 | - (void)pagerView:(JXPagerView *)pagerView mainTableViewDidScroll:(UIScrollView *)scrollView { 14 | [self.userHeaderView scrollViewDidScroll:scrollView.contentOffset.y]; 15 | } 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/PrefixHeader.pch: -------------------------------------------------------------------------------- 1 | // 2 | // PrefixHeader.pch 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2019/11/22. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | #ifndef PrefixHeader_pch 10 | #define PrefixHeader_pch 11 | 12 | // Include any system framework and library headers here that should be included in all compilation units. 13 | // You will also need to set the Prefix Header build setting of one or more of your targets to reference this file. 14 | 15 | #import 16 | #import 17 | 18 | #endif /* PrefixHeader_pch */ 19 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2018/9/12. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UITableViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/JXPagerViewExample-OC/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // JXPagerViewExample-OC 4 | // 5 | // Created by jiaxin on 2018/9/12. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '11.0' 2 | 3 | target 'JXPagerViewExample-OC' do 4 | pod 'JXPagingView/Pager', :path => '../../../JXPagingView' 5 | pod 'JXCategoryView' 6 | pod 'MJRefresh', '3.4.0' 7 | pod 'FDFullscreenPopGesture', '1.1' 8 | end 9 | 10 | post_install do |installer| 11 | installer.pods_project.targets.each do |target| 12 | target.build_configurations.each do |config| 13 | config.build_settings["IPHONEOS_DEPLOYMENT_TARGET"] = "11.0" 14 | end 15 | end 16 | end 17 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - FDFullscreenPopGesture (1.1) 3 | - JXCategoryView (1.5.2) 4 | - JXPagingView/Pager (2.1.4) 5 | - MJRefresh (3.4.0) 6 | 7 | DEPENDENCIES: 8 | - FDFullscreenPopGesture (= 1.1) 9 | - JXCategoryView 10 | - JXPagingView/Pager (from `../../../JXPagingView`) 11 | - MJRefresh (= 3.4.0) 12 | 13 | SPEC REPOS: 14 | trunk: 15 | - FDFullscreenPopGesture 16 | - JXCategoryView 17 | - MJRefresh 18 | 19 | EXTERNAL SOURCES: 20 | JXPagingView: 21 | :path: "../../../JXPagingView" 22 | 23 | SPEC CHECKSUMS: 24 | FDFullscreenPopGesture: a8a620179e3d9c40e8e00256dcee1c1a27c6d0f0 25 | JXCategoryView: b284d35a7a8772eada05dd78642233e1eb763ea8 26 | JXPagingView: 28ab45ab0f9811153ef28266071877d42483ba8c 27 | MJRefresh: 95b08b3b8b6457d2c69510439e0349599050ea34 28 | 29 | PODFILE CHECKSUM: bb35b410cb7c8a13532e92ba5eb10ce93a1a130c 30 | 31 | COCOAPODS: 1.16.2 32 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/FDFullscreenPopGesture/UINavigationController+FDFullscreenPopGesture.h: -------------------------------------------------------------------------------- 1 | ../../../FDFullscreenPopGesture/FDFullscreenPopGesture/UINavigationController+FDFullscreenPopGesture.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryBaseCell.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Base/JXCategoryBaseCell.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryBaseCellModel.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Base/JXCategoryBaseCellModel.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryBaseView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Base/JXCategoryBaseView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryCollectionView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Common/JXCategoryCollectionView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryDotCell.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Dot/JXCategoryDotCell.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryDotCellModel.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Dot/JXCategoryDotCellModel.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryDotView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Dot/JXCategoryDotView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryFactory.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Common/JXCategoryFactory.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryImageCell.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Image/JXCategoryImageCell.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryImageCellModel.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Image/JXCategoryImageCellModel.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryImageView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Image/JXCategoryImageView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryIndicatorBackgroundView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Indicator/IndicatorViews/JXCategoryIndicatorBackgroundView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryIndicatorBallView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Indicator/IndicatorViews/JXCategoryIndicatorBallView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryIndicatorCell.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Indicator/JXCategoryIndicatorCell.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryIndicatorCellModel.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Indicator/JXCategoryIndicatorCellModel.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryIndicatorComponentView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Indicator/IndicatorViews/JXCategoryIndicatorComponentView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryIndicatorDotLineView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Indicator/IndicatorViews/JXCategoryIndicatorDotLineView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryIndicatorImageView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Indicator/IndicatorViews/JXCategoryIndicatorImageView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryIndicatorLineView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Indicator/IndicatorViews/JXCategoryIndicatorLineView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryIndicatorParamsModel.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Common/JXCategoryIndicatorParamsModel.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryIndicatorProtocol.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Common/JXCategoryIndicatorProtocol.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryIndicatorRainbowLineView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Indicator/IndicatorViews/JXCategoryIndicatorRainbowLineView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryIndicatorTriangleView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Indicator/IndicatorViews/JXCategoryIndicatorTriangleView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryIndicatorView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Indicator/JXCategoryIndicatorView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryListContainerView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Common/JXCategoryListContainerView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryNumberCell.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Number/JXCategoryNumberCell.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryNumberCellModel.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Number/JXCategoryNumberCellModel.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryNumberView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Number/JXCategoryNumberView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryTitleCell.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Title/JXCategoryTitleCell.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryTitleCellModel.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Title/JXCategoryTitleCellModel.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryTitleImageCell.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/TitleImage/JXCategoryTitleImageCell.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryTitleImageCellModel.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/TitleImage/JXCategoryTitleImageCellModel.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryTitleImageView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/TitleImage/JXCategoryTitleImageView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryTitleVerticalZoomCell.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomCell.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryTitleVerticalZoomCellModel.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomCellModel.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryTitleVerticalZoomView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryTitleView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Title/JXCategoryTitleView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/JXCategoryView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryViewAnimator.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Common/JXCategoryViewAnimator.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/JXCategoryViewDefines.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Common/JXCategoryViewDefines.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXCategoryView/UIColor+JXAdd.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Common/UIColor+JXAdd.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXPagingView/JXPagerListContainerView.h: -------------------------------------------------------------------------------- 1 | ../../../../../../Sources/JXPagerView/JXPagerListContainerView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXPagingView/JXPagerListRefreshView.h: -------------------------------------------------------------------------------- 1 | ../../../../../../Sources/JXPagerView/JXPagerListRefreshView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXPagingView/JXPagerMainTableView.h: -------------------------------------------------------------------------------- 1 | ../../../../../../Sources/JXPagerView/JXPagerMainTableView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXPagingView/JXPagerSmoothView.h: -------------------------------------------------------------------------------- 1 | ../../../../../../Sources/JXPagerView/JXPagerSmoothView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXPagingView/JXPagerView.h: -------------------------------------------------------------------------------- 1 | ../../../../../../Sources/JXPagerView/JXPagerView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/JXPagingView/JXRTLFlowLayout.h: -------------------------------------------------------------------------------- 1 | ../../../../../../Sources/JXPagerView/JXRTLFlowLayout.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/MJRefresh/MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/MJRefresh.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/MJRefresh/MJRefreshAutoFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshAutoFooter.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/MJRefresh/MJRefreshAutoGifFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/MJRefresh/MJRefreshAutoNormalFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/MJRefresh/MJRefreshAutoStateFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/MJRefresh/MJRefreshBackFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshBackFooter.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/MJRefresh/MJRefreshBackGifFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/MJRefresh/MJRefreshBackNormalFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/MJRefresh/MJRefreshBackStateFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/MJRefresh/MJRefreshComponent.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshComponent.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/MJRefresh/MJRefreshConfig.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/MJRefreshConfig.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/MJRefresh/MJRefreshConst.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/MJRefreshConst.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/MJRefresh/MJRefreshFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshFooter.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/MJRefresh/MJRefreshGifHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshGifHeader.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/MJRefresh/MJRefreshHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshHeader.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/MJRefresh/MJRefreshNormalHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshNormalHeader.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/MJRefresh/MJRefreshStateHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshStateHeader.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/MJRefresh/NSBundle+MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/NSBundle+MJRefresh.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/MJRefresh/UIScrollView+MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIScrollView+MJExtension.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/MJRefresh/UIScrollView+MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIScrollView+MJRefresh.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Private/MJRefresh/UIView+MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIView+MJExtension.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/FDFullscreenPopGesture/UINavigationController+FDFullscreenPopGesture.h: -------------------------------------------------------------------------------- 1 | ../../../FDFullscreenPopGesture/FDFullscreenPopGesture/UINavigationController+FDFullscreenPopGesture.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryBaseCell.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Base/JXCategoryBaseCell.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryBaseCellModel.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Base/JXCategoryBaseCellModel.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryBaseView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Base/JXCategoryBaseView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryCollectionView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Common/JXCategoryCollectionView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryDotCell.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Dot/JXCategoryDotCell.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryDotCellModel.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Dot/JXCategoryDotCellModel.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryDotView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Dot/JXCategoryDotView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryFactory.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Common/JXCategoryFactory.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryImageCell.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Image/JXCategoryImageCell.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryImageCellModel.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Image/JXCategoryImageCellModel.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryImageView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Image/JXCategoryImageView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryIndicatorBackgroundView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Indicator/IndicatorViews/JXCategoryIndicatorBackgroundView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryIndicatorBallView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Indicator/IndicatorViews/JXCategoryIndicatorBallView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryIndicatorCell.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Indicator/JXCategoryIndicatorCell.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryIndicatorCellModel.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Indicator/JXCategoryIndicatorCellModel.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryIndicatorComponentView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Indicator/IndicatorViews/JXCategoryIndicatorComponentView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryIndicatorDotLineView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Indicator/IndicatorViews/JXCategoryIndicatorDotLineView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryIndicatorImageView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Indicator/IndicatorViews/JXCategoryIndicatorImageView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryIndicatorLineView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Indicator/IndicatorViews/JXCategoryIndicatorLineView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryIndicatorParamsModel.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Common/JXCategoryIndicatorParamsModel.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryIndicatorProtocol.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Common/JXCategoryIndicatorProtocol.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryIndicatorRainbowLineView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Indicator/IndicatorViews/JXCategoryIndicatorRainbowLineView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryIndicatorTriangleView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Indicator/IndicatorViews/JXCategoryIndicatorTriangleView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryIndicatorView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Indicator/JXCategoryIndicatorView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryListContainerView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Common/JXCategoryListContainerView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryNumberCell.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Number/JXCategoryNumberCell.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryNumberCellModel.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Number/JXCategoryNumberCellModel.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryNumberView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Number/JXCategoryNumberView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryTitleCell.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Title/JXCategoryTitleCell.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryTitleCellModel.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Title/JXCategoryTitleCellModel.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryTitleImageCell.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/TitleImage/JXCategoryTitleImageCell.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryTitleImageCellModel.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/TitleImage/JXCategoryTitleImageCellModel.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryTitleImageView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/TitleImage/JXCategoryTitleImageView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryTitleVerticalZoomCell.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomCell.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryTitleVerticalZoomCellModel.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomCellModel.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryTitleVerticalZoomView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryTitleView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Title/JXCategoryTitleView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryView.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/JXCategoryView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryViewAnimator.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Common/JXCategoryViewAnimator.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/JXCategoryViewDefines.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Common/JXCategoryViewDefines.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXCategoryView/UIColor+JXAdd.h: -------------------------------------------------------------------------------- 1 | ../../../JXCategoryView/Sources/Common/UIColor+JXAdd.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXPagingView/JXPagerListContainerView.h: -------------------------------------------------------------------------------- 1 | ../../../../../../Sources/JXPagerView/JXPagerListContainerView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXPagingView/JXPagerListRefreshView.h: -------------------------------------------------------------------------------- 1 | ../../../../../../Sources/JXPagerView/JXPagerListRefreshView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXPagingView/JXPagerMainTableView.h: -------------------------------------------------------------------------------- 1 | ../../../../../../Sources/JXPagerView/JXPagerMainTableView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXPagingView/JXPagerSmoothView.h: -------------------------------------------------------------------------------- 1 | ../../../../../../Sources/JXPagerView/JXPagerSmoothView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXPagingView/JXPagerView.h: -------------------------------------------------------------------------------- 1 | ../../../../../../Sources/JXPagerView/JXPagerView.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/JXPagingView/JXRTLFlowLayout.h: -------------------------------------------------------------------------------- 1 | ../../../../../../Sources/JXPagerView/JXRTLFlowLayout.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/MJRefresh/MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/MJRefresh.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/MJRefresh/MJRefreshAutoFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshAutoFooter.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/MJRefresh/MJRefreshAutoGifFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/MJRefresh/MJRefreshAutoNormalFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/MJRefresh/MJRefreshAutoStateFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/MJRefresh/MJRefreshBackFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshBackFooter.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/MJRefresh/MJRefreshBackGifFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/MJRefresh/MJRefreshBackNormalFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/MJRefresh/MJRefreshBackStateFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/MJRefresh/MJRefreshComponent.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshComponent.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/MJRefresh/MJRefreshConfig.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/MJRefreshConfig.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/MJRefresh/MJRefreshConst.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/MJRefreshConst.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/MJRefresh/MJRefreshFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshFooter.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/MJRefresh/MJRefreshGifHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshGifHeader.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/MJRefresh/MJRefreshHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshHeader.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/MJRefresh/MJRefreshNormalHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshNormalHeader.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/MJRefresh/MJRefreshStateHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshStateHeader.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/MJRefresh/NSBundle+MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/NSBundle+MJRefresh.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/MJRefresh/UIScrollView+MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIScrollView+MJExtension.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/MJRefresh/UIScrollView+MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIScrollView+MJRefresh.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Headers/Public/MJRefresh/UIView+MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIView+MJExtension.h -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/Base/JXCategoryBaseCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryBaseCell.h 3 | // UI系列测试 4 | // 5 | // Created by jiaxin on 2018/3/15. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "JXCategoryBaseCellModel.h" 11 | #import "JXCategoryViewAnimator.h" 12 | #import "JXCategoryViewDefines.h" 13 | 14 | @interface JXCategoryBaseCell : UICollectionViewCell 15 | 16 | @property (nonatomic, strong, readonly) JXCategoryBaseCellModel *cellModel; 17 | @property (nonatomic, strong, readonly) JXCategoryViewAnimator *animator; 18 | 19 | - (void)initializeViews NS_REQUIRES_SUPER; 20 | 21 | - (void)reloadData:(JXCategoryBaseCellModel *)cellModel NS_REQUIRES_SUPER; 22 | 23 | - (BOOL)checkCanStartSelectedAnimation:(JXCategoryBaseCellModel *)cellModel; 24 | 25 | - (void)addSelectedAnimationBlock:(JXCategoryCellSelectedAnimationBlock)block; 26 | 27 | - (void)startSelectedAnimationIfNeeded:(JXCategoryBaseCellModel *)cellModel; 28 | @end 29 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/Base/JXCategoryBaseCellModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryBaseCellModel.m 3 | // UI系列测试 4 | // 5 | // Created by jiaxin on 2018/3/15. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "JXCategoryBaseCellModel.h" 10 | 11 | @implementation JXCategoryBaseCellModel 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/Common/JXCategoryCollectionView.h: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryCollectionView.h 3 | // UI系列测试 4 | // 5 | // Created by jiaxin on 2018/3/21. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "JXCategoryIndicatorProtocol.h" 11 | @class JXCategoryCollectionView; 12 | 13 | @protocol JXCategoryCollectionViewGestureDelegate 14 | @optional 15 | - (BOOL)categoryCollectionView:(JXCategoryCollectionView *)collectionView gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer; 16 | - (BOOL)categoryCollectionView:(JXCategoryCollectionView *)collectionView gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer; 17 | @end 18 | 19 | @interface JXCategoryCollectionView : UICollectionView 20 | 21 | @property (nonatomic, strong) NSArray *> *indicators; 22 | @property (nonatomic, weak) id gestureDelegate; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/Common/JXCategoryFactory.h: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryFactory.h 3 | // JXCategoryView 4 | // 5 | // Created by jiaxin on 2018/8/17. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface JXCategoryFactory : NSObject 13 | 14 | + (CGFloat)interpolationFrom:(CGFloat)from to:(CGFloat)to percent:(CGFloat)percent; 15 | 16 | + (UIColor *)interpolationColorFrom:(UIColor *)fromColor to:(UIColor *)toColor percent:(CGFloat)percent; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/Common/JXCategoryFactory.m: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryFactory.m 3 | // JXCategoryView 4 | // 5 | // Created by jiaxin on 2018/8/17. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "JXCategoryFactory.h" 10 | #import "UIColor+JXAdd.h" 11 | 12 | @implementation JXCategoryFactory 13 | 14 | + (CGFloat)interpolationFrom:(CGFloat)from to:(CGFloat)to percent:(CGFloat)percent 15 | { 16 | percent = MAX(0, MIN(1, percent)); 17 | return from + (to - from)*percent; 18 | } 19 | 20 | + (UIColor *)interpolationColorFrom:(UIColor *)fromColor to:(UIColor *)toColor percent:(CGFloat)percent 21 | { 22 | CGFloat red = [self interpolationFrom:fromColor.jx_red to:toColor.jx_red percent:percent]; 23 | CGFloat green = [self interpolationFrom:fromColor.jx_green to:toColor.jx_green percent:percent]; 24 | CGFloat blue = [self interpolationFrom:fromColor.jx_blue to:toColor.jx_blue percent:percent]; 25 | CGFloat alpha = [self interpolationFrom:fromColor.jx_alpha to:toColor.jx_alpha percent:percent]; 26 | return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; 27 | } 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/Common/JXCategoryIndicatorParamsModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryIndicatorParamsModel.m 3 | // JXCategoryView 4 | // 5 | // Created by jiaxin on 2018/12/13. 6 | // Copyright © 2018 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "JXCategoryIndicatorParamsModel.h" 10 | 11 | @implementation JXCategoryIndicatorParamsModel 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/Common/JXCategoryViewAnimator.h: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryViewAnimator.h 3 | // JXCategoryView 4 | // 5 | // Created by jiaxin on 2019/1/24. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | 13 | @interface JXCategoryViewAnimator : NSObject 14 | @property (nonatomic, assign) NSTimeInterval duration; 15 | @property (nonatomic, copy) void(^progressCallback)(CGFloat percent); 16 | @property (nonatomic, copy) void(^completeCallback)(void); 17 | @property (readonly, getter=isExecuting) BOOL executing; 18 | 19 | - (void)start; 20 | - (void)stop; 21 | - (void)invalid; 22 | @end 23 | 24 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/Common/UIColor+JXAdd.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIColor+JXAdd.h 3 | // UI系列测试 4 | // 5 | // Created by jiaxin on 2018/3/21. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIColor (JXAdd) 12 | 13 | @property (nonatomic, assign, readonly) CGFloat jx_red; 14 | @property (nonatomic, assign, readonly) CGFloat jx_green; 15 | @property (nonatomic, assign, readonly) CGFloat jx_blue; 16 | @property (nonatomic, assign, readonly) CGFloat jx_alpha; 17 | 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/Common/UIColor+JXAdd.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIColor+JXAdd.m 3 | // UI系列测试 4 | // 5 | // Created by jiaxin on 2018/3/21. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "UIColor+JXAdd.h" 10 | 11 | @implementation UIColor (JXAdd) 12 | 13 | - (CGFloat)jx_red { 14 | CGFloat r = 0, g, b, a; 15 | [self getRed:&r green:&g blue:&b alpha:&a]; 16 | return r; 17 | } 18 | 19 | - (CGFloat)jx_green { 20 | CGFloat r, g = 0, b, a; 21 | [self getRed:&r green:&g blue:&b alpha:&a]; 22 | return g; 23 | } 24 | 25 | - (CGFloat)jx_blue { 26 | CGFloat r, g, b = 0, a; 27 | [self getRed:&r green:&g blue:&b alpha:&a]; 28 | return b; 29 | } 30 | 31 | - (CGFloat)jx_alpha { 32 | return CGColorGetAlpha(self.CGColor); 33 | } 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/Dot/JXCategoryDotCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryDotCell.h 3 | // JXCategoryView 4 | // 5 | // Created by jiaxin on 2018/8/20. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "JXCategoryTitleCell.h" 10 | 11 | @interface JXCategoryDotCell : JXCategoryTitleCell 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/Dot/JXCategoryDotCellModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryDotCellModel.h 3 | // JXCategoryView 4 | // 5 | // Created by jiaxin on 2018/8/20. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "JXCategoryTitleCellModel.h" 10 | 11 | typedef NS_ENUM(NSUInteger, JXCategoryDotRelativePosition) { 12 | JXCategoryDotRelativePosition_TopLeft = 0, 13 | JXCategoryDotRelativePosition_TopRight, 14 | JXCategoryDotRelativePosition_BottomLeft, 15 | JXCategoryDotRelativePosition_BottomRight, 16 | }; 17 | 18 | @interface JXCategoryDotCellModel : JXCategoryTitleCellModel 19 | 20 | @property (nonatomic, assign) BOOL dotHidden; 21 | @property (nonatomic, assign) JXCategoryDotRelativePosition relativePosition; 22 | @property (nonatomic, assign) CGSize dotSize; 23 | @property (nonatomic, assign) CGFloat dotCornerRadius; 24 | @property (nonatomic, strong) UIColor *dotColor; 25 | @property (nonatomic, assign) CGPoint dotOffset; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/Dot/JXCategoryDotCellModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryDotCellModel.m 3 | // JXCategoryView 4 | // 5 | // Created by jiaxin on 2018/8/20. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "JXCategoryDotCellModel.h" 10 | 11 | @implementation JXCategoryDotCellModel 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/Dot/JXCategoryDotView.h: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryDotView.h 3 | // JXCategoryView 4 | // 5 | // Created by jiaxin on 2018/8/20. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "JXCategoryTitleView.h" 10 | #import "JXCategoryDotCell.h" 11 | #import "JXCategoryDotCellModel.h" 12 | 13 | @interface JXCategoryDotView : JXCategoryTitleView 14 | 15 | //相对于titleLabel的位置,默认:JXCategoryDotRelativePosition_TopRight 16 | @property (nonatomic, assign) JXCategoryDotRelativePosition relativePosition; 17 | //@[@(布尔值)]数组,控制红点是否显示 18 | @property (nonatomic, strong) NSArray *dotStates; 19 | //红点的尺寸。默认:CGSizeMake(10, 10) 20 | @property (nonatomic, assign) CGSize dotSize; 21 | //红点的圆角值。默认:JXCategoryViewAutomaticDimension(self.dotSize.height/2) 22 | @property (nonatomic, assign) CGFloat dotCornerRadius; 23 | //红点的颜色。默认:[UIColor redColor] 24 | @property (nonatomic, strong) UIColor *dotColor; 25 | /** 26 | 红点 x,y方向的偏移 (+值:水平方向向右,竖直方向向下) 27 | */ 28 | @property (nonatomic, assign) CGPoint dotOffset; 29 | @end 30 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/Image/JXCategoryImageCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryImageCell.h 3 | // JXCategoryView 4 | // 5 | // Created by jiaxin on 2018/8/20. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "JXCategoryIndicatorCell.h" 10 | 11 | @interface JXCategoryImageCell : JXCategoryIndicatorCell 12 | 13 | @property (nonatomic, strong) UIImageView *imageView; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/Image/JXCategoryImageCellModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryImageCellModel.h 3 | // JXCategoryView 4 | // 5 | // Created by jiaxin on 2018/8/20. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "JXCategoryIndicatorCellModel.h" 10 | 11 | @interface JXCategoryImageCellModel : JXCategoryIndicatorCellModel 12 | 13 | @property (nonatomic, copy) void(^loadImageCallback)(UIImageView *imageView, NSURL *imageURL); 14 | 15 | @property (nonatomic, copy) NSString *imageName; //加载bundle内的图片 16 | 17 | @property (nonatomic, strong) NSURL *imageURL; //图片URL 18 | 19 | @property (nonatomic, copy) NSString *selectedImageName; 20 | 21 | @property (nonatomic, strong) NSURL *selectedImageURL; 22 | 23 | @property (nonatomic, assign) CGSize imageSize; 24 | 25 | @property (nonatomic, assign) CGFloat imageCornerRadius; 26 | 27 | @property (nonatomic, assign, getter=isImageZoomEnabled) BOOL imageZoomEnabled; 28 | 29 | @property (nonatomic, assign) CGFloat imageZoomScale; 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/Image/JXCategoryImageCellModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryImageCellModel.m 3 | // JXCategoryView 4 | // 5 | // Created by jiaxin on 2018/8/20. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "JXCategoryImageCellModel.h" 10 | 11 | @implementation JXCategoryImageCellModel 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/Indicator/IndicatorViews/JXCategoryIndicatorBackgroundView.h: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryIndicatorBackgroundView.h 3 | // JXCategoryView 4 | // 5 | // Created by jiaxin on 2018/8/17. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "JXCategoryIndicatorComponentView.h" 10 | 11 | @interface JXCategoryIndicatorBackgroundView : JXCategoryIndicatorComponentView 12 | 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/Indicator/IndicatorViews/JXCategoryIndicatorBallView.h: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryIndicatorBallView.h 3 | // JXCategoryView 4 | // 5 | // Created by jiaxin on 2018/8/21. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "JXCategoryIndicatorComponentView.h" 10 | 11 | @interface JXCategoryIndicatorBallView : JXCategoryIndicatorComponentView 12 | 13 | //球的X轴偏移量。默认:20 14 | @property (nonatomic, assign) CGFloat ballScrollOffsetX; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/Indicator/IndicatorViews/JXCategoryIndicatorDotLineView.h: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryIndicatorDotLineView.h 3 | // JXCategoryView 4 | // 5 | // Created by jiaxin on 2018/8/22. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "JXCategoryIndicatorComponentView.h" 10 | 11 | @interface JXCategoryIndicatorDotLineView : JXCategoryIndicatorComponentView 12 | 13 | //线状态的最大宽度。默认:50 14 | @property (nonatomic, assign) CGFloat lineWidth; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/Indicator/IndicatorViews/JXCategoryIndicatorImageView.h: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryIndicatorImageView.h 3 | // JXCategoryView 4 | // 5 | // Created by jiaxin on 2018/8/17. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "JXCategoryIndicatorComponentView.h" 10 | 11 | @interface JXCategoryIndicatorImageView : JXCategoryIndicatorComponentView 12 | //显示指示器图片的UIImageView 13 | @property (nonatomic, strong, readonly) UIImageView *indicatorImageView; 14 | //图片是否开启滚动。默认NO 15 | @property (nonatomic, assign) BOOL indicatorImageViewRollEnabled; 16 | //图片的尺寸。默认:CGSizeMake(30, 20) 17 | @property (nonatomic, assign) CGSize indicatorImageViewSize; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/Indicator/IndicatorViews/JXCategoryIndicatorLineView.h: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryIndicatorLineView.h 3 | // JXCategoryView 4 | // 5 | // Created by jiaxin on 2018/8/17. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "JXCategoryIndicatorComponentView.h" 10 | 11 | typedef NS_ENUM(NSUInteger, JXCategoryIndicatorLineStyle) { 12 | JXCategoryIndicatorLineStyle_Normal = 0, 13 | JXCategoryIndicatorLineStyle_Lengthen = 1, 14 | JXCategoryIndicatorLineStyle_LengthenOffset = 2, 15 | }; 16 | 17 | @interface JXCategoryIndicatorLineView : JXCategoryIndicatorComponentView 18 | 19 | @property (nonatomic, assign) JXCategoryIndicatorLineStyle lineStyle; 20 | 21 | /** 22 | line滚动时x的偏移量,默认为10; 23 | lineStyle为JXCategoryIndicatorLineStyle_LengthenOffset有用; 24 | */ 25 | @property (nonatomic, assign) CGFloat lineScrollOffsetX; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/Indicator/IndicatorViews/JXCategoryIndicatorRainbowLineView.h: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryIndicatorRainbowLineView.h 3 | // JXCategoryView 4 | // 5 | // Created by jiaxin on 2018/12/13. 6 | // Copyright © 2018 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "JXCategoryIndicatorLineView.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | /** 14 | 会无视JXCategoryIndicatorLineView的indicatorColor属性,以indicatorColors为准 15 | */ 16 | @interface JXCategoryIndicatorRainbowLineView : JXCategoryIndicatorLineView 17 | 18 | //数量需要与cell的数量相等。没有提供默认值,必须要赋值该属性。categoryView在reloadData的时候,也要一并更新该属性,不然会出现数组越界。 19 | @property (nonatomic, strong) NSArray *indicatorColors; 20 | 21 | @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/Indicator/IndicatorViews/JXCategoryIndicatorTriangleView.h: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryIndicatorTriangleView.h 3 | // JXCategoryView 4 | // 5 | // Created by jiaxin on 2018/8/17. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "JXCategoryIndicatorComponentView.h" 10 | 11 | @interface JXCategoryIndicatorTriangleView : JXCategoryIndicatorComponentView 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/Indicator/JXCategoryIndicatorCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryComponetCell.h 3 | // DQGuess 4 | // 5 | // Created by jiaxin on 2018/7/25. 6 | // Copyright © 2018年 jingbo. All rights reserved. 7 | // 8 | 9 | #import "JXCategoryBaseCell.h" 10 | 11 | @interface JXCategoryIndicatorCell : JXCategoryBaseCell 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/Indicator/JXCategoryIndicatorCellModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryComponentCellModel.h 3 | // DQGuess 4 | // 5 | // Created by jiaxin on 2018/7/25. 6 | // Copyright © 2018年 jingbo. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "JXCategoryBaseCellModel.h" 11 | 12 | @interface JXCategoryIndicatorCellModel : JXCategoryBaseCellModel 13 | 14 | @property (nonatomic, assign, getter=isSepratorLineShowEnabled) BOOL sepratorLineShowEnabled; 15 | 16 | @property (nonatomic, strong) UIColor *separatorLineColor; 17 | 18 | @property (nonatomic, assign) CGSize separatorLineSize; 19 | 20 | @property (nonatomic, assign) CGRect backgroundViewMaskFrame; //底部指示器的frame转换到cell的frame 21 | 22 | @property (nonatomic, assign, getter=isCellBackgroundColorGradientEnabled) BOOL cellBackgroundColorGradientEnabled; 23 | 24 | @property (nonatomic, strong) UIColor *cellBackgroundUnselectedColor; 25 | 26 | @property (nonatomic, strong) UIColor *cellBackgroundSelectedColor; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/Indicator/JXCategoryIndicatorCellModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryComponentCellModel.m 3 | // DQGuess 4 | // 5 | // Created by jiaxin on 2018/7/25. 6 | // Copyright © 2018年 jingbo. All rights reserved. 7 | // 8 | 9 | #import "JXCategoryIndicatorCellModel.h" 10 | 11 | @implementation JXCategoryIndicatorCellModel 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/JXCategoryView.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | #import "JXCategoryBaseView.h" 4 | #import "JXCategoryIndicatorView.h" 5 | #import "JXCategoryTitleView.h" 6 | #import "JXCategoryImageView.h" 7 | #import "JXCategoryTitleImageView.h" 8 | #import "JXCategoryNumberView.h" 9 | #import "JXCategoryDotView.h" 10 | 11 | #import "JXCategoryFactory.h" 12 | #import "JXCategoryIndicatorProtocol.h" 13 | #import "JXCategoryViewDefines.h" 14 | #import "JXCategoryListContainerView.h" 15 | 16 | #import "JXCategoryIndicatorComponentView.h" 17 | #import "JXCategoryIndicatorLineView.h" 18 | #import "JXCategoryIndicatorTriangleView.h" 19 | #import "JXCategoryIndicatorImageView.h" 20 | #import "JXCategoryIndicatorBackgroundView.h" 21 | #import "JXCategoryIndicatorBallView.h" 22 | #import "JXCategoryIndicatorRainbowLineView.h" 23 | 24 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/Number/JXCategoryNumberCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryNumberCell.h 3 | // DQGuess 4 | // 5 | // Created by jiaxin on 2018/4/9. 6 | // Copyright © 2018年 jingbo. All rights reserved. 7 | // 8 | 9 | #import "JXCategoryTitleCell.h" 10 | 11 | @interface JXCategoryNumberCell : JXCategoryTitleCell 12 | @property (nonatomic, strong) UILabel *numberLabel; 13 | @end 14 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/Number/JXCategoryNumberCellModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryNumberCellModel.h 3 | // DQGuess 4 | // 5 | // Created by jiaxin on 2018/4/24. 6 | // Copyright © 2018年 jingbo. All rights reserved. 7 | // 8 | 9 | #import "JXCategoryTitleCellModel.h" 10 | 11 | @interface JXCategoryNumberCellModel : JXCategoryTitleCellModel 12 | 13 | @property (nonatomic, assign) NSInteger count; 14 | @property (nonatomic, copy) NSString *numberString; 15 | @property (nonatomic, copy) void(^numberStringFormatterBlock)(NSInteger number); 16 | @property (nonatomic, strong) UIColor *numberBackgroundColor; 17 | @property (nonatomic, strong) UIColor *numberTitleColor; 18 | @property (nonatomic, assign) CGFloat numberLabelWidthIncrement; 19 | @property (nonatomic, assign) CGFloat numberLabelHeight; 20 | @property (nonatomic, strong) UIFont *numberLabelFont; 21 | @property (nonatomic, assign) CGPoint numberLabelOffset; 22 | @end 23 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/Number/JXCategoryNumberCellModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryNumberCellModel.m 3 | // DQGuess 4 | // 5 | // Created by jiaxin on 2018/4/24. 6 | // Copyright © 2018年 jingbo. All rights reserved. 7 | // 8 | 9 | #import "JXCategoryNumberCellModel.h" 10 | 11 | @implementation JXCategoryNumberCellModel 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/Title/JXCategoryTitleCellModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryTitleCellModel.m 3 | // UI系列测试 4 | // 5 | // Created by jiaxin on 2018/3/15. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "JXCategoryTitleCellModel.h" 10 | 11 | @implementation JXCategoryTitleCellModel 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/TitleImage/JXCategoryTitleImageCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryImageCell.h 3 | // JXCategoryView 4 | // 5 | // Created by jiaxin on 2018/8/8. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "JXCategoryTitleCell.h" 10 | 11 | @interface JXCategoryTitleImageCell : JXCategoryTitleCell 12 | 13 | @property (nonatomic, strong) UIImageView *imageView; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/TitleImage/JXCategoryTitleImageCellModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryTitleImageCellModel.m 3 | // JXCategoryView 4 | // 5 | // Created by jiaxin on 2018/8/8. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "JXCategoryTitleImageCellModel.h" 10 | 11 | @implementation JXCategoryTitleImageCellModel 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryTitleVerticalZoomCell.h 3 | // JXCategoryView 4 | // 5 | // Created by jiaxin on 2019/2/14. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "JXCategoryTitleCell.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface JXCategoryTitleVerticalZoomCell : JXCategoryTitleCell 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomCellModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryTitleVerticalZoomCellModel.h 3 | // JXCategoryView 4 | // 5 | // Created by jiaxin on 2019/2/14. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "JXCategoryTitleCellModel.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface JXCategoryTitleVerticalZoomCellModel : JXCategoryTitleCellModel 14 | 15 | @property (nonatomic, assign) CGFloat maxVerticalFontScale; 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/JXCategoryView/Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomCellModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // JXCategoryTitleVerticalZoomCellModel.m 3 | // JXCategoryView 4 | // 5 | // Created by jiaxin on 2019/2/14. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "JXCategoryTitleVerticalZoomCellModel.h" 10 | 11 | @implementation JXCategoryTitleVerticalZoomCellModel 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/MJRefresh/MJRefresh/Base/MJRefreshAutoFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshFooter.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshAutoFooter : MJRefreshFooter 14 | /** 是否自动刷新(默认为YES) */ 15 | @property (assign, nonatomic, getter=isAutomaticallyRefresh) BOOL automaticallyRefresh; 16 | 17 | /** 当底部控件出现多少时就自动刷新(默认为1.0,也就是底部控件完全出现时,才会自动刷新) */ 18 | @property (assign, nonatomic) CGFloat appearencePercentTriggerAutoRefresh MJRefreshDeprecated("请使用triggerAutomaticallyRefreshPercent属性"); 19 | 20 | /** 当底部控件出现多少时就自动刷新(默认为1.0,也就是底部控件完全出现时,才会自动刷新) */ 21 | @property (assign, nonatomic) CGFloat triggerAutomaticallyRefreshPercent; 22 | 23 | /** 自动触发次数, 默认为 1, 仅在拖拽 ScrollView 时才生效, 24 | 25 | 如果为 -1, 则为无限触发 26 | */ 27 | @property (nonatomic) NSInteger autoTriggerTimes; 28 | @end 29 | 30 | NS_ASSUME_NONNULL_END 31 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/MJRefresh/MJRefresh/Base/MJRefreshBackFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshFooter.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshBackFooter : MJRefreshFooter 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoGifFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshAutoStateFooter.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshAutoGifFooter : MJRefreshAutoStateFooter 14 | @property (weak, nonatomic, readonly) UIImageView *gifView; 15 | 16 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 17 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 18 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoNormalFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshAutoStateFooter.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshAutoNormalFooter : MJRefreshAutoStateFooter 14 | @property (weak, nonatomic, readonly) UIActivityIndicatorView *loadingView; 15 | 16 | /** 菊花的样式 */ 17 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle MJRefreshDeprecated("first deprecated in 3.2.2 - Use `loadingView` property"); 18 | @end 19 | 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoStateFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/6/13. 6 | // Copyright © 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshAutoFooter.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshAutoStateFooter : MJRefreshAutoFooter 14 | /** 文字距离圈圈、箭头的距离 */ 15 | @property (assign, nonatomic) CGFloat labelLeftInset; 16 | /** 显示刷新状态的label */ 17 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 18 | 19 | /** 设置state状态下的文字 */ 20 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 21 | 22 | /** 隐藏刷新状态的文字 */ 23 | @property (assign, nonatomic, getter=isRefreshingTitleHidden) BOOL refreshingTitleHidden; 24 | @end 25 | 26 | NS_ASSUME_NONNULL_END 27 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackGifFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshBackStateFooter.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshBackGifFooter : MJRefreshBackStateFooter 14 | @property (weak, nonatomic, readonly) UIImageView *gifView; 15 | 16 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 17 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 18 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackNormalFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshBackStateFooter.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshBackNormalFooter : MJRefreshBackStateFooter 14 | @property (weak, nonatomic, readonly) UIImageView *arrowView; 15 | @property (weak, nonatomic, readonly) UIActivityIndicatorView *loadingView; 16 | 17 | /** 菊花的样式 */ 18 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle MJRefreshDeprecated("first deprecated in 3.2.2 - Use `loadingView` property"); 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackStateFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/6/13. 6 | // Copyright © 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshBackFooter.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshBackStateFooter : MJRefreshBackFooter 14 | /** 文字距离圈圈、箭头的距离 */ 15 | @property (assign, nonatomic) CGFloat labelLeftInset; 16 | /** 显示刷新状态的label */ 17 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 18 | /** 设置state状态下的文字 */ 19 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 20 | 21 | /** 获取state状态下的title */ 22 | - (NSString *)titleForState:(MJRefreshState)state; 23 | @end 24 | 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshGifHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshGifHeader.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshStateHeader.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshGifHeader : MJRefreshStateHeader 14 | @property (weak, nonatomic, readonly) UIImageView *gifView; 15 | 16 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 17 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 18 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshNormalHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshNormalHeader.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshStateHeader.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshNormalHeader : MJRefreshStateHeader 14 | @property (weak, nonatomic, readonly) UIImageView *arrowView; 15 | @property (weak, nonatomic, readonly) UIActivityIndicatorView *loadingView; 16 | 17 | 18 | /** 菊花的样式 */ 19 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle MJRefreshDeprecated("first deprecated in 3.2.2 - Use `loadingView` property"); 20 | @end 21 | 22 | NS_ASSUME_NONNULL_END 23 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshStateHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshStateHeader.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshHeader.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshStateHeader : MJRefreshHeader 14 | #pragma mark - 刷新时间相关 15 | /** 利用这个block来决定显示的更新时间文字 */ 16 | @property (copy, nonatomic, nullable) NSString *(^lastUpdatedTimeText)(NSDate * _Nullable lastUpdatedTime); 17 | /** 显示上一次刷新时间的label */ 18 | @property (weak, nonatomic, readonly) UILabel *lastUpdatedTimeLabel; 19 | 20 | #pragma mark - 状态相关 21 | /** 文字距离圈圈、箭头的距离 */ 22 | @property (assign, nonatomic) CGFloat labelLeftInset; 23 | /** 显示刷新状态的label */ 24 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 25 | /** 设置state状态下的文字 */ 26 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 27 | @end 28 | 29 | NS_ASSUME_NONNULL_END 30 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/arrow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pujiaxin33/JXPagingView/8aa5663720ebfab0c4df41cfca04b113f832c5b2/Examples/JXPagerViewExample-OC/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/arrow@2x.png -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/en.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pujiaxin33/JXPagingView/8aa5663720ebfab0c4df41cfca04b113f832c5b2/Examples/JXPagerViewExample-OC/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/en.lproj/Localizable.strings -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/ko.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "MJRefreshHeaderIdleText" = "아래로 당겨 새로고침"; 2 | "MJRefreshHeaderPullingText" = "놓으면 새로고침"; 3 | "MJRefreshHeaderRefreshingText" = "로딩중..."; 4 | 5 | "MJRefreshAutoFooterIdleText" = "탭 또는 위로 당겨 로드함"; 6 | "MJRefreshAutoFooterRefreshingText" = "로딩중..."; 7 | "MJRefreshAutoFooterNoMoreDataText" = "더이상 데이터 없음"; 8 | 9 | "MJRefreshBackFooterIdleText" = "위로 당겨 더 로드 가능"; 10 | "MJRefreshBackFooterPullingText" = "놓으면 더 로드됨."; 11 | "MJRefreshBackFooterRefreshingText" = "로딩중..."; 12 | "MJRefreshBackFooterNoMoreDataText" = "더이상 데이터 없음"; 13 | 14 | "MJRefreshHeaderLastTimeText" = "마지막 업데이트: "; 15 | "MJRefreshHeaderDateTodayText" = "오늘"; 16 | "MJRefreshHeaderNoneLastDateText" = "기록 없음"; 17 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/ru.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pujiaxin33/JXPagingView/8aa5663720ebfab0c4df41cfca04b113f832c5b2/Examples/JXPagerViewExample-OC/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/ru.lproj/Localizable.strings -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/uk.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pujiaxin33/JXPagingView/8aa5663720ebfab0c4df41cfca04b113f832c5b2/Examples/JXPagerViewExample-OC/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/uk.lproj/Localizable.strings -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/zh-Hans.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pujiaxin33/JXPagingView/8aa5663720ebfab0c4df41cfca04b113f832c5b2/Examples/JXPagerViewExample-OC/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/zh-Hans.lproj/Localizable.strings -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/zh-Hant.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "MJRefreshHeaderIdleText" = "下拉可以刷新"; 2 | "MJRefreshHeaderPullingText" = "鬆開立即刷新"; 3 | "MJRefreshHeaderRefreshingText" = "正在刷新數據中..."; 4 | 5 | "MJRefreshAutoFooterIdleText" = "點擊或上拉加載更多"; 6 | "MJRefreshAutoFooterRefreshingText" = "正在加載更多的數據..."; 7 | "MJRefreshAutoFooterNoMoreDataText" = "已經全部加載完畢"; 8 | 9 | "MJRefreshBackFooterIdleText" = "上拉可以加載更多"; 10 | "MJRefreshBackFooterPullingText" = "鬆開立即加載更多"; 11 | "MJRefreshBackFooterRefreshingText" = "正在加載更多的數據..."; 12 | "MJRefreshBackFooterNoMoreDataText" = "已經全部加載完畢"; 13 | 14 | "MJRefreshHeaderLastTimeText" = "最後更新:"; 15 | "MJRefreshHeaderDateTodayText" = "今天"; 16 | "MJRefreshHeaderNoneLastDateText" = "無記錄"; 17 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/MJRefresh/MJRefresh/MJRefresh.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | 4 | #import "UIScrollView+MJRefresh.h" 5 | #import "UIScrollView+MJExtension.h" 6 | #import "UIView+MJExtension.h" 7 | 8 | #import "MJRefreshNormalHeader.h" 9 | #import "MJRefreshGifHeader.h" 10 | 11 | #import "MJRefreshBackNormalFooter.h" 12 | #import "MJRefreshBackGifFooter.h" 13 | #import "MJRefreshAutoNormalFooter.h" 14 | #import "MJRefreshAutoGifFooter.h" -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/MJRefresh/MJRefresh/MJRefreshConfig.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshConfig.h 3 | // 4 | // Created by Frank on 2018/11/27. 5 | // Copyright © 2018 小码哥. All rights reserved. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface MJRefreshConfig : NSObject 13 | 14 | /** 默认使用的语言版本, 默认为 nil. 将随系统的语言自动改变 */ 15 | @property (copy, nonatomic, nullable) NSString *languageCode; 16 | 17 | /** @return Singleton Config instance */ 18 | + (instancetype)defaultConfig; 19 | 20 | - (instancetype)init NS_UNAVAILABLE; 21 | + (instancetype)new NS_UNAVAILABLE; 22 | 23 | @end 24 | 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/MJRefresh/MJRefresh/MJRefreshConfig.m: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshConfig.m 3 | // 4 | // Created by Frank on 2018/11/27. 5 | // Copyright © 2018 小码哥. All rights reserved. 6 | // 7 | 8 | #import "MJRefreshConfig.h" 9 | 10 | @implementation MJRefreshConfig 11 | 12 | static MJRefreshConfig *mj_RefreshConfig = nil; 13 | 14 | + (instancetype)defaultConfig { 15 | static dispatch_once_t onceToken; 16 | dispatch_once(&onceToken, ^{ 17 | mj_RefreshConfig = [[self alloc] init]; 18 | }); 19 | return mj_RefreshConfig; 20 | } 21 | 22 | 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/MJRefresh/MJRefresh/NSBundle+MJRefresh.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSBundle+MJRefresh.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 16/6/13. 6 | // Copyright © 2016年 小码哥. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface NSBundle (MJRefresh) 14 | + (instancetype)mj_refreshBundle; 15 | + (UIImage *)mj_arrowImage; 16 | + (NSString *)mj_localizedStringForKey:(NSString *)key value:(nullable NSString *)value; 17 | + (NSString *)mj_localizedStringForKey:(NSString *)key; 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/MJRefresh/MJRefresh/UIScrollView+MJExtension.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // UIScrollView+Extension.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 14-5-28. 7 | // Copyright (c) 2014年 小码哥. All rights reserved. 8 | // 9 | 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface UIScrollView (MJExtension) 15 | @property (readonly, nonatomic) UIEdgeInsets mj_inset; 16 | 17 | @property (assign, nonatomic) CGFloat mj_insetT; 18 | @property (assign, nonatomic) CGFloat mj_insetB; 19 | @property (assign, nonatomic) CGFloat mj_insetL; 20 | @property (assign, nonatomic) CGFloat mj_insetR; 21 | 22 | @property (assign, nonatomic) CGFloat mj_offsetX; 23 | @property (assign, nonatomic) CGFloat mj_offsetY; 24 | 25 | @property (assign, nonatomic) CGFloat mj_contentW; 26 | @property (assign, nonatomic) CGFloat mj_contentH; 27 | @end 28 | 29 | NS_ASSUME_NONNULL_END 30 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/MJRefresh/MJRefresh/UIScrollView+MJRefresh.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // UIScrollView+MJRefresh.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 15/3/4. 7 | // Copyright (c) 2015年 小码哥. All rights reserved. 8 | // 给ScrollView增加下拉刷新、上拉刷新的功能 9 | 10 | #import 11 | #import "MJRefreshConst.h" 12 | 13 | @class MJRefreshHeader, MJRefreshFooter; 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface UIScrollView (MJRefresh) 18 | /** 下拉刷新控件 */ 19 | @property (strong, nonatomic, nullable) MJRefreshHeader *mj_header; 20 | @property (strong, nonatomic, nullable) MJRefreshHeader *header MJRefreshDeprecated("使用mj_header"); 21 | /** 上拉刷新控件 */ 22 | @property (strong, nonatomic, nullable) MJRefreshFooter *mj_footer; 23 | @property (strong, nonatomic, nullable) MJRefreshFooter *footer MJRefreshDeprecated("使用mj_footer"); 24 | 25 | #pragma mark - other 26 | - (NSInteger)mj_totalDataCount; 27 | 28 | @end 29 | 30 | NS_ASSUME_NONNULL_END 31 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/MJRefresh/MJRefresh/UIView+MJExtension.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // UIView+Extension.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 14-5-28. 7 | // Copyright (c) 2014年 小码哥. All rights reserved. 8 | // 9 | 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface UIView (MJExtension) 15 | @property (assign, nonatomic) CGFloat mj_x; 16 | @property (assign, nonatomic) CGFloat mj_y; 17 | @property (assign, nonatomic) CGFloat mj_w; 18 | @property (assign, nonatomic) CGFloat mj_h; 19 | @property (assign, nonatomic) CGSize mj_size; 20 | @property (assign, nonatomic) CGPoint mj_origin; 21 | @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - FDFullscreenPopGesture (1.1) 3 | - JXCategoryView (1.5.2) 4 | - JXPagingView/Pager (2.1.4) 5 | - MJRefresh (3.4.0) 6 | 7 | DEPENDENCIES: 8 | - FDFullscreenPopGesture (= 1.1) 9 | - JXCategoryView 10 | - JXPagingView/Pager (from `../../../JXPagingView`) 11 | - MJRefresh (= 3.4.0) 12 | 13 | SPEC REPOS: 14 | trunk: 15 | - FDFullscreenPopGesture 16 | - JXCategoryView 17 | - MJRefresh 18 | 19 | EXTERNAL SOURCES: 20 | JXPagingView: 21 | :path: "../../../JXPagingView" 22 | 23 | SPEC CHECKSUMS: 24 | FDFullscreenPopGesture: a8a620179e3d9c40e8e00256dcee1c1a27c6d0f0 25 | JXCategoryView: b284d35a7a8772eada05dd78642233e1eb763ea8 26 | JXPagingView: 28ab45ab0f9811153ef28266071877d42483ba8c 27 | MJRefresh: 95b08b3b8b6457d2c69510439e0349599050ea34 28 | 29 | PODFILE CHECKSUM: bb35b410cb7c8a13532e92ba5eb10ce93a1a130c 30 | 31 | COCOAPODS: 1.16.2 32 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Target Support Files/FDFullscreenPopGesture/FDFullscreenPopGesture-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_FDFullscreenPopGesture : NSObject 3 | @end 4 | @implementation PodsDummy_FDFullscreenPopGesture 5 | @end 6 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Target Support Files/FDFullscreenPopGesture/FDFullscreenPopGesture-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Target Support Files/FDFullscreenPopGesture/FDFullscreenPopGesture.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/FDFullscreenPopGesture 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/FDFullscreenPopGesture" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/FDFullscreenPopGesture" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/FDFullscreenPopGesture 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Target Support Files/FDFullscreenPopGesture/FDFullscreenPopGesture.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/FDFullscreenPopGesture 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/FDFullscreenPopGesture" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/FDFullscreenPopGesture" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/FDFullscreenPopGesture 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Target Support Files/FDFullscreenPopGesture/FDFullscreenPopGesture.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/FDFullscreenPopGesture 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/FDFullscreenPopGesture" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/FDFullscreenPopGesture" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/FDFullscreenPopGesture 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Target Support Files/JXCategoryView/JXCategoryView-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_JXCategoryView : NSObject 3 | @end 4 | @implementation PodsDummy_JXCategoryView 5 | @end 6 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Target Support Files/JXCategoryView/JXCategoryView-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Target Support Files/JXCategoryView/JXCategoryView.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/JXCategoryView" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/JXCategoryView" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/JXCategoryView 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Target Support Files/JXCategoryView/JXCategoryView.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/JXCategoryView" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/JXCategoryView" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/JXCategoryView 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Target Support Files/JXCategoryView/JXCategoryView.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/JXCategoryView" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/JXCategoryView" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/JXCategoryView 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Target Support Files/JXPagingView/JXPagingView-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_JXPagingView : NSObject 3 | @end 4 | @implementation PodsDummy_JXPagingView 5 | @end 6 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Target Support Files/JXPagingView/JXPagingView-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Target Support Files/JXPagingView/JXPagingView.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/JXPagingView" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/JXPagingView" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../.. 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Target Support Files/JXPagingView/JXPagingView.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/JXPagingView" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/JXPagingView" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../.. 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Target Support Files/JXPagingView/JXPagingView.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/JXPagingView" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/JXPagingView" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../.. 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Target Support Files/JXPagingView/ResourceBundle-JXPagerView-JXPagingView-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | ${PODS_DEVELOPMENT_LANGUAGE} 7 | CFBundleIdentifier 8 | ${PRODUCT_BUNDLE_IDENTIFIER} 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundleName 12 | ${PRODUCT_NAME} 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 2.1.4 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | NSPrincipalClass 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Target Support Files/MJRefresh/MJRefresh-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_MJRefresh : NSObject 3 | @end 4 | @implementation PodsDummy_MJRefresh 5 | @end 6 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Target Support Files/MJRefresh/MJRefresh-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Target Support Files/MJRefresh/MJRefresh.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MJRefresh" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/MJRefresh" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/MJRefresh 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Target Support Files/MJRefresh/MJRefresh.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MJRefresh" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/MJRefresh" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/MJRefresh 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Target Support Files/MJRefresh/MJRefresh.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MJRefresh" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/MJRefresh" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/MJRefresh 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Target Support Files/Pods-JXPagerViewExample-OC/Pods-JXPagerViewExample-OC-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_JXPagerViewExample_OC : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_JXPagerViewExample_OC 5 | @end 6 | -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Target Support Files/Pods-JXPagerViewExample-OC/Pods-JXPagerViewExample-OC-resources-Debug-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-JXPagerViewExample-OC/Pods-JXPagerViewExample-OC-resources.sh 2 | ${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView/JXPagerView.bundle 3 | ${PODS_ROOT}/MJRefresh/MJRefresh/MJRefresh.bundle -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Target Support Files/Pods-JXPagerViewExample-OC/Pods-JXPagerViewExample-OC-resources-Debug-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/JXPagerView.bundle 2 | ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MJRefresh.bundle -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Target Support Files/Pods-JXPagerViewExample-OC/Pods-JXPagerViewExample-OC-resources-Release-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-JXPagerViewExample-OC/Pods-JXPagerViewExample-OC-resources.sh 2 | ${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView/JXPagerView.bundle 3 | ${PODS_ROOT}/MJRefresh/MJRefresh/MJRefresh.bundle -------------------------------------------------------------------------------- /Examples/JXPagerViewExample-OC/Pods/Target Support Files/Pods-JXPagerViewExample-OC/Pods-JXPagerViewExample-OC-resources-Release-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/JXPagerView.bundle 2 | ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MJRefresh.bundle -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/JXPagingViewExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/JXPagingViewExample.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/JXPagingViewExample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/JXPagingViewExample/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // JXPagingViewExample 4 | // 5 | // Created by jiaxin on 2019/11/22. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 17 | // Override point for customization after application launch. 18 | return true 19 | } 20 | 21 | 22 | } 23 | 24 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/JXPagingViewExample/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/JXPagingViewExample/Example/Common/DetailViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DetailViewController.swift 3 | // JXPagingView 4 | // 5 | // Created by jiaxin on 2019/4/29. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class DetailViewController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | 16 | // Do any additional setup after loading the view. 17 | self.view.backgroundColor = .white 18 | self.title = "详情页" 19 | } 20 | 21 | 22 | /* 23 | // MARK: - Navigation 24 | 25 | // In a storyboard-based application, you will often want to do a little preparation before navigation 26 | override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 27 | // Get the new view controller using segue.destination. 28 | // Pass the selected object to the new view controller. 29 | } 30 | */ 31 | 32 | } 33 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/JXPagingViewExample/Example/Common/UIWindow+JXSafeArea.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIWindow+JXSafeArea.swift 3 | // JXPagingView 4 | // 5 | // Created by jiaxin on 2018/9/29. 6 | // Copyright © 2018 jiaxin. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | 12 | extension UIWindow { 13 | func jx_layoutInsets() -> UIEdgeInsets { 14 | if #available(iOS 11.0, *) { 15 | let safeAreaInsets: UIEdgeInsets = self.safeAreaInsets 16 | if safeAreaInsets.bottom > 0 { 17 | //参考文章:https://mp.weixin.qq.com/s/Ik2zBox3_w0jwfVuQUJAUw 18 | return safeAreaInsets 19 | } 20 | return UIEdgeInsets.init(top: 20, left: 0, bottom: 0, right: 0) 21 | } 22 | return UIEdgeInsets.init(top: 20, left: 0, bottom: 0, right: 0) 23 | } 24 | 25 | func jx_navigationHeight() -> CGFloat { 26 | let statusBarHeight = jx_layoutInsets().top 27 | return statusBarHeight + 44 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/JXPagingViewExample/Example/HeaderPosition/HeaderPositionViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // HeaderPositionViewController.swift 3 | // JXPagingView 4 | // 5 | // Created by jiaxin on 2019/3/2. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class HeaderPositionViewController: BaseViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | 16 | self.pagingView.pinSectionHeaderVerticalOffset = 100 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/JXPagingViewExample/Example/HeightChange/HeightChangeViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // HeightChangeViewController.swift 3 | // JXPagingView 4 | // 5 | // Created by jiaxin on 2018/11/14. 6 | // Copyright © 2018 jiaxin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class HeightChangeViewController: BaseViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | 16 | self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "高度", style: .plain, target: self, action: #selector(didNaviRightItemClicked)) 17 | } 18 | 19 | @objc func didNaviRightItemClicked() { 20 | if tableHeaderViewHeight == 200 { 21 | //先更新`func tableHeaderViewHeight(in pagingView: JXPagingView) -> Int`方法用到的变量 22 | tableHeaderViewHeight = 100 23 | //再调用resizeTableHeaderViewHeight方法 24 | pagingView.resizeTableHeaderViewHeight() 25 | }else { 26 | tableHeaderViewHeight = 200 27 | pagingView.resizeTableHeaderViewHeight() 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/JXPagingViewExample/Example/Refresh/ListRefreshViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ListRefreshViewController.swift 3 | // JXPagingView 4 | // 5 | // Created by jiaxin on 2018/8/28. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import JXPagingView 11 | import JXSegmentedView 12 | 13 | class ListRefreshViewController: BaseViewController { 14 | 15 | override func viewDidLoad() { 16 | super.viewDidLoad() 17 | 18 | self.isNeedHeader = true 19 | } 20 | 21 | override func preferredPagingView() -> JXPagingView { 22 | return JXPagingListRefreshView(delegate: self) 23 | } 24 | 25 | //用于测试每次点击segment切换,都触发子列表的下拉刷新 26 | /* 27 | override func segmentedView(_ segmentedView: JXSegmentedView, didSelectedItemAt index: Int) { 28 | super.segmentedView(segmentedView, didSelectedItemAt: index) 29 | 30 | guard let list = pagingView.validListDict[index] as? ListViewController else { 31 | return 32 | } 33 | list.tableView.mj_header?.beginRefreshing() 34 | } 35 | */ 36 | } 37 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/JXPagingViewExample/Example/Zoom/ZoomViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ZoomViewController.swift 3 | // JXPagingView 4 | // 5 | // Created by jiaxin on 2018/8/8. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import JXPagingView 11 | 12 | class ZoomViewController: BaseViewController { 13 | 14 | override func viewDidLoad() { 15 | super.viewDidLoad() 16 | 17 | } 18 | 19 | override func pagingView(_ pagingView: JXPagingView, mainTableViewDidScroll scrollView: UIScrollView) { 20 | userHeaderView.scrollViewDidScroll(contentOffsetY: scrollView.contentOffset.y) 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/JXPagingViewExample/Swift-Bridge-Objective-C.h: -------------------------------------------------------------------------------- 1 | // 2 | // Swift-Bridge-Objective-C.h 3 | // JXPagingView 4 | // 5 | // Created by jiaxin on 2018/5/29. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | @import MJRefresh; 10 | @import JXPagingView; 11 | @import JXSegmentedView; 12 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '8.0' 2 | 3 | use_frameworks! 4 | target 'JXPagingViewExample' do 5 | pod 'JXPagingView/Paging', :path => '../../../JXPagingView' 6 | pod 'MJRefresh', '3.4.0' 7 | pod 'JXSegmentedView' 8 | end 9 | 10 | post_install do |installer| 11 | installer.pods_project.targets.each do |target| 12 | target.build_configurations.each do |config| 13 | config.build_settings["IPHONEOS_DEPLOYMENT_TARGET"] = "11.0" 14 | end 15 | end 16 | end 17 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - JXPagingView/Paging (2.1.4) 3 | - JXSegmentedView (1.0.2) 4 | - MJRefresh (3.4.0) 5 | 6 | DEPENDENCIES: 7 | - JXPagingView/Paging (from `../../../JXPagingView`) 8 | - JXSegmentedView 9 | - MJRefresh (= 3.4.0) 10 | 11 | SPEC REPOS: 12 | trunk: 13 | - JXSegmentedView 14 | - MJRefresh 15 | 16 | EXTERNAL SOURCES: 17 | JXPagingView: 18 | :path: "../../../JXPagingView" 19 | 20 | SPEC CHECKSUMS: 21 | JXPagingView: 28ab45ab0f9811153ef28266071877d42483ba8c 22 | JXSegmentedView: 2988fe07060a9b91b0112eabd6dee0df0cbca8b3 23 | MJRefresh: 95b08b3b8b6457d2c69510439e0349599050ea34 24 | 25 | PODFILE CHECKSUM: 4a1efecfab50d3c91601221b19e58c54aa7e3ab8 26 | 27 | COCOAPODS: 1.16.2 28 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/JXSegmentedView/Sources/AttributeTitle/JXSegmentedTitleAttributeItemModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // JXSegmentedTitleAttributeItemModel.swift 3 | // JXSegmentedView 4 | // 5 | // Created by jiaxin on 2019/1/3. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | open class JXSegmentedTitleAttributeItemModel: JXSegmentedBaseItemModel { 12 | open var attributedTitle: NSAttributedString? 13 | open var selectedAttributedTitle: NSAttributedString? 14 | open var titleNumberOfLines: Int = 0 15 | open var textWidth: CGFloat = 0 16 | } 17 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/JXSegmentedView/Sources/Core/JXSegmentedBaseItemModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // JXSegmentedBaseItemModel.swift 3 | // JXSegmentedView 4 | // 5 | // Created by jiaxin on 2018/12/26. 6 | // Copyright © 2018 jiaxin. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | 12 | open class JXSegmentedBaseItemModel { 13 | open var index: Int = 0 14 | open var isSelected: Bool = false 15 | open var itemWidth: CGFloat = 0 16 | /// 指示器视图Frame转换到cell 17 | open var indicatorConvertToItemFrame: CGRect = CGRect.zero 18 | open var isItemTransitionEnabled: Bool = true 19 | open var isSelectedAnimable: Bool = false 20 | open var selectedAnimationDuration: TimeInterval = 0 21 | /// 是否正在进行过渡动画 22 | open var isTransitionAnimating: Bool = false 23 | open var isItemWidthZoomEnabled: Bool = false 24 | open var itemWidthNormalZoomScale: CGFloat = 0 25 | open var itemWidthCurrentZoomScale: CGFloat = 0 26 | open var itemWidthSelectedZoomScale: CGFloat = 0 27 | 28 | public init() { 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/JXSegmentedView/Sources/Core/JXSegmentedCollectionView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // JXSegmentedCollectionView.swift 3 | // JXSegmentedView 4 | // 5 | // Created by jiaxin on 2018/12/26. 6 | // Copyright © 2018 jiaxin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | open class JXSegmentedCollectionView: UICollectionView { 12 | 13 | open var indicators = [JXSegmentedIndicatorProtocol & UIView]() { 14 | willSet { 15 | for indicator in indicators { 16 | indicator.removeFromSuperview() 17 | } 18 | } 19 | didSet { 20 | for indicator in indicators { 21 | addSubview(indicator) 22 | } 23 | } 24 | } 25 | 26 | open override func layoutSubviews() { 27 | super.layoutSubviews() 28 | 29 | for indicator in indicators { 30 | sendSubviewToBack(indicator) 31 | } 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/JXSegmentedView/Sources/Dot/JXSegmentedDotItemModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // JXSegmentedDotItemModel.swift 3 | // JXSegmentedView 4 | // 5 | // Created by jiaxin on 2018/12/28. 6 | // Copyright © 2018 jiaxin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | open class JXSegmentedDotItemModel: JXSegmentedTitleItemModel { 12 | open var dotState = false 13 | open var dotSize = CGSize.zero 14 | open var dotCornerRadius: CGFloat = 0 15 | open var dotColor = UIColor.red 16 | open var dotOffset: CGPoint = CGPoint.zero 17 | } 18 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/JXSegmentedView/Sources/Indicator/JXSegmentedComponetGradientView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // JXSegmentedIndicatorGradientView.swift 3 | // JXSegmentedView 4 | // 5 | // Created by jiaxin on 2019/1/2. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | open class JXSegmentedComponetGradientView: UIView { 12 | open class override var layerClass: AnyClass { 13 | return CAGradientLayer.self 14 | } 15 | 16 | open var gradientLayer: CAGradientLayer { 17 | return layer as! CAGradientLayer 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/JXSegmentedView/Sources/Number/JXSegmentedNumberItemModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // JXSegmentedNumberItemModel.swift 3 | // JXSegmentedView 4 | // 5 | // Created by jiaxin on 2018/12/28. 6 | // Copyright © 2018 jiaxin. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | 12 | open class JXSegmentedNumberItemModel: JXSegmentedTitleItemModel { 13 | open var number: Int = 0 14 | open var numberString: String = "0" 15 | open var numberBackgroundColor: UIColor = .red 16 | open var numberTextColor: UIColor = .white 17 | open var numberWidthIncrement: CGFloat = 0 18 | open var numberFont: UIFont = UIFont.systemFont(ofSize: 11) 19 | open var numberOffset: CGPoint = CGPoint.zero 20 | open var numberHeight: CGFloat = 14 21 | } 22 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/JXSegmentedView/Sources/TitleGradient/JXSegmentedTitleGradientItemModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // JXSegmentedTitleGradientItemModel.swift 3 | // JXSegmentedView 4 | // 5 | // Created by jiaxin on 2019/1/23. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | open class JXSegmentedTitleGradientItemModel: JXSegmentedTitleItemModel { 12 | open var titleNormalGradientColors: [CGColor] = [CGColor]() 13 | open var titleCurrentGradientColors: [CGColor] = [CGColor]() 14 | open var titleSelectedGradientColors: [CGColor] = [CGColor]() 15 | open var titleGradientStartPoint: CGPoint = CGPoint.zero 16 | open var titleGradientEndPoint: CGPoint = CGPoint.zero 17 | } 18 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/JXSegmentedView/Sources/TitleImage/JXSegmentedTitleImageItemModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // JXSegmentedTitleImageItemModel.swift 3 | // JXSegmentedView 4 | // 5 | // Created by jiaxin on 2018/12/29. 6 | // Copyright © 2018 jiaxin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | open class JXSegmentedTitleImageItemModel: JXSegmentedTitleItemModel { 12 | open var titleImageType: JXSegmentedTitleImageType = .rightImage 13 | open var normalImageInfo: String? 14 | open var selectedImageInfo: String? 15 | open var loadImageClosure: LoadImageClosure? 16 | open var imageSize: CGSize = CGSize.zero 17 | open var titleImageSpacing: CGFloat = 0 18 | open var isImageZoomEnabled: Bool = false 19 | open var imageNormalZoomScale: CGFloat = 0 20 | open var imageCurrentZoomScale: CGFloat = 0 21 | open var imageSelectedZoomScale: CGFloat = 0 22 | } 23 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/JXSegmentedView/Sources/TitleOrImage/JXSegmentedTitleOrImageItemModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // JXSegmentedTitleOrImageItemModel.swift 3 | // JXSegmentedView 4 | // 5 | // Created by jiaxin on 2019/1/22. 6 | // Copyright © 2019 jiaxin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | open class JXSegmentedTitleOrImageItemModel: JXSegmentedTitleItemModel { 12 | open var selectedImageInfo: String? 13 | open var loadImageClosure: LoadImageClosure? 14 | open var imageSize: CGSize = CGSize.zero 15 | } 16 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/MJRefresh/MJRefresh/Base/MJRefreshAutoFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshFooter.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshAutoFooter : MJRefreshFooter 14 | /** 是否自动刷新(默认为YES) */ 15 | @property (assign, nonatomic, getter=isAutomaticallyRefresh) BOOL automaticallyRefresh; 16 | 17 | /** 当底部控件出现多少时就自动刷新(默认为1.0,也就是底部控件完全出现时,才会自动刷新) */ 18 | @property (assign, nonatomic) CGFloat appearencePercentTriggerAutoRefresh MJRefreshDeprecated("请使用triggerAutomaticallyRefreshPercent属性"); 19 | 20 | /** 当底部控件出现多少时就自动刷新(默认为1.0,也就是底部控件完全出现时,才会自动刷新) */ 21 | @property (assign, nonatomic) CGFloat triggerAutomaticallyRefreshPercent; 22 | 23 | /** 自动触发次数, 默认为 1, 仅在拖拽 ScrollView 时才生效, 24 | 25 | 如果为 -1, 则为无限触发 26 | */ 27 | @property (nonatomic) NSInteger autoTriggerTimes; 28 | @end 29 | 30 | NS_ASSUME_NONNULL_END 31 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/MJRefresh/MJRefresh/Base/MJRefreshBackFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshFooter.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshBackFooter : MJRefreshFooter 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoGifFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshAutoStateFooter.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshAutoGifFooter : MJRefreshAutoStateFooter 14 | @property (weak, nonatomic, readonly) UIImageView *gifView; 15 | 16 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 17 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 18 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoNormalFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshAutoStateFooter.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshAutoNormalFooter : MJRefreshAutoStateFooter 14 | @property (weak, nonatomic, readonly) UIActivityIndicatorView *loadingView; 15 | 16 | /** 菊花的样式 */ 17 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle MJRefreshDeprecated("first deprecated in 3.2.2 - Use `loadingView` property"); 18 | @end 19 | 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoStateFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/6/13. 6 | // Copyright © 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshAutoFooter.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshAutoStateFooter : MJRefreshAutoFooter 14 | /** 文字距离圈圈、箭头的距离 */ 15 | @property (assign, nonatomic) CGFloat labelLeftInset; 16 | /** 显示刷新状态的label */ 17 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 18 | 19 | /** 设置state状态下的文字 */ 20 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 21 | 22 | /** 隐藏刷新状态的文字 */ 23 | @property (assign, nonatomic, getter=isRefreshingTitleHidden) BOOL refreshingTitleHidden; 24 | @end 25 | 26 | NS_ASSUME_NONNULL_END 27 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackGifFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshBackStateFooter.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshBackGifFooter : MJRefreshBackStateFooter 14 | @property (weak, nonatomic, readonly) UIImageView *gifView; 15 | 16 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 17 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 18 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackNormalFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshBackStateFooter.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshBackNormalFooter : MJRefreshBackStateFooter 14 | @property (weak, nonatomic, readonly) UIImageView *arrowView; 15 | @property (weak, nonatomic, readonly) UIActivityIndicatorView *loadingView; 16 | 17 | /** 菊花的样式 */ 18 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle MJRefreshDeprecated("first deprecated in 3.2.2 - Use `loadingView` property"); 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackStateFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/6/13. 6 | // Copyright © 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshBackFooter.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshBackStateFooter : MJRefreshBackFooter 14 | /** 文字距离圈圈、箭头的距离 */ 15 | @property (assign, nonatomic) CGFloat labelLeftInset; 16 | /** 显示刷新状态的label */ 17 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 18 | /** 设置state状态下的文字 */ 19 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 20 | 21 | /** 获取state状态下的title */ 22 | - (NSString *)titleForState:(MJRefreshState)state; 23 | @end 24 | 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshGifHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshGifHeader.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshStateHeader.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshGifHeader : MJRefreshStateHeader 14 | @property (weak, nonatomic, readonly) UIImageView *gifView; 15 | 16 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 17 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 18 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshNormalHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshNormalHeader.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshStateHeader.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshNormalHeader : MJRefreshStateHeader 14 | @property (weak, nonatomic, readonly) UIImageView *arrowView; 15 | @property (weak, nonatomic, readonly) UIActivityIndicatorView *loadingView; 16 | 17 | 18 | /** 菊花的样式 */ 19 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle MJRefreshDeprecated("first deprecated in 3.2.2 - Use `loadingView` property"); 20 | @end 21 | 22 | NS_ASSUME_NONNULL_END 23 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshStateHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshStateHeader.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshHeader.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshStateHeader : MJRefreshHeader 14 | #pragma mark - 刷新时间相关 15 | /** 利用这个block来决定显示的更新时间文字 */ 16 | @property (copy, nonatomic, nullable) NSString *(^lastUpdatedTimeText)(NSDate * _Nullable lastUpdatedTime); 17 | /** 显示上一次刷新时间的label */ 18 | @property (weak, nonatomic, readonly) UILabel *lastUpdatedTimeLabel; 19 | 20 | #pragma mark - 状态相关 21 | /** 文字距离圈圈、箭头的距离 */ 22 | @property (assign, nonatomic) CGFloat labelLeftInset; 23 | /** 显示刷新状态的label */ 24 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 25 | /** 设置state状态下的文字 */ 26 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 27 | @end 28 | 29 | NS_ASSUME_NONNULL_END 30 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/arrow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pujiaxin33/JXPagingView/8aa5663720ebfab0c4df41cfca04b113f832c5b2/Examples/JXPagingViewExample/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/arrow@2x.png -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/en.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pujiaxin33/JXPagingView/8aa5663720ebfab0c4df41cfca04b113f832c5b2/Examples/JXPagingViewExample/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/en.lproj/Localizable.strings -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/ko.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "MJRefreshHeaderIdleText" = "아래로 당겨 새로고침"; 2 | "MJRefreshHeaderPullingText" = "놓으면 새로고침"; 3 | "MJRefreshHeaderRefreshingText" = "로딩중..."; 4 | 5 | "MJRefreshAutoFooterIdleText" = "탭 또는 위로 당겨 로드함"; 6 | "MJRefreshAutoFooterRefreshingText" = "로딩중..."; 7 | "MJRefreshAutoFooterNoMoreDataText" = "더이상 데이터 없음"; 8 | 9 | "MJRefreshBackFooterIdleText" = "위로 당겨 더 로드 가능"; 10 | "MJRefreshBackFooterPullingText" = "놓으면 더 로드됨."; 11 | "MJRefreshBackFooterRefreshingText" = "로딩중..."; 12 | "MJRefreshBackFooterNoMoreDataText" = "더이상 데이터 없음"; 13 | 14 | "MJRefreshHeaderLastTimeText" = "마지막 업데이트: "; 15 | "MJRefreshHeaderDateTodayText" = "오늘"; 16 | "MJRefreshHeaderNoneLastDateText" = "기록 없음"; 17 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/ru.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pujiaxin33/JXPagingView/8aa5663720ebfab0c4df41cfca04b113f832c5b2/Examples/JXPagingViewExample/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/ru.lproj/Localizable.strings -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/uk.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pujiaxin33/JXPagingView/8aa5663720ebfab0c4df41cfca04b113f832c5b2/Examples/JXPagingViewExample/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/uk.lproj/Localizable.strings -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/zh-Hans.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pujiaxin33/JXPagingView/8aa5663720ebfab0c4df41cfca04b113f832c5b2/Examples/JXPagingViewExample/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/zh-Hans.lproj/Localizable.strings -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/zh-Hant.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "MJRefreshHeaderIdleText" = "下拉可以刷新"; 2 | "MJRefreshHeaderPullingText" = "鬆開立即刷新"; 3 | "MJRefreshHeaderRefreshingText" = "正在刷新數據中..."; 4 | 5 | "MJRefreshAutoFooterIdleText" = "點擊或上拉加載更多"; 6 | "MJRefreshAutoFooterRefreshingText" = "正在加載更多的數據..."; 7 | "MJRefreshAutoFooterNoMoreDataText" = "已經全部加載完畢"; 8 | 9 | "MJRefreshBackFooterIdleText" = "上拉可以加載更多"; 10 | "MJRefreshBackFooterPullingText" = "鬆開立即加載更多"; 11 | "MJRefreshBackFooterRefreshingText" = "正在加載更多的數據..."; 12 | "MJRefreshBackFooterNoMoreDataText" = "已經全部加載完畢"; 13 | 14 | "MJRefreshHeaderLastTimeText" = "最後更新:"; 15 | "MJRefreshHeaderDateTodayText" = "今天"; 16 | "MJRefreshHeaderNoneLastDateText" = "無記錄"; 17 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/MJRefresh/MJRefresh/MJRefresh.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | 4 | #import "UIScrollView+MJRefresh.h" 5 | #import "UIScrollView+MJExtension.h" 6 | #import "UIView+MJExtension.h" 7 | 8 | #import "MJRefreshNormalHeader.h" 9 | #import "MJRefreshGifHeader.h" 10 | 11 | #import "MJRefreshBackNormalFooter.h" 12 | #import "MJRefreshBackGifFooter.h" 13 | #import "MJRefreshAutoNormalFooter.h" 14 | #import "MJRefreshAutoGifFooter.h" -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/MJRefresh/MJRefresh/MJRefreshConfig.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshConfig.h 3 | // 4 | // Created by Frank on 2018/11/27. 5 | // Copyright © 2018 小码哥. All rights reserved. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface MJRefreshConfig : NSObject 13 | 14 | /** 默认使用的语言版本, 默认为 nil. 将随系统的语言自动改变 */ 15 | @property (copy, nonatomic, nullable) NSString *languageCode; 16 | 17 | /** @return Singleton Config instance */ 18 | + (instancetype)defaultConfig; 19 | 20 | - (instancetype)init NS_UNAVAILABLE; 21 | + (instancetype)new NS_UNAVAILABLE; 22 | 23 | @end 24 | 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/MJRefresh/MJRefresh/MJRefreshConfig.m: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshConfig.m 3 | // 4 | // Created by Frank on 2018/11/27. 5 | // Copyright © 2018 小码哥. All rights reserved. 6 | // 7 | 8 | #import "MJRefreshConfig.h" 9 | 10 | @implementation MJRefreshConfig 11 | 12 | static MJRefreshConfig *mj_RefreshConfig = nil; 13 | 14 | + (instancetype)defaultConfig { 15 | static dispatch_once_t onceToken; 16 | dispatch_once(&onceToken, ^{ 17 | mj_RefreshConfig = [[self alloc] init]; 18 | }); 19 | return mj_RefreshConfig; 20 | } 21 | 22 | 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/MJRefresh/MJRefresh/NSBundle+MJRefresh.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSBundle+MJRefresh.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 16/6/13. 6 | // Copyright © 2016年 小码哥. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface NSBundle (MJRefresh) 14 | + (instancetype)mj_refreshBundle; 15 | + (UIImage *)mj_arrowImage; 16 | + (NSString *)mj_localizedStringForKey:(NSString *)key value:(nullable NSString *)value; 17 | + (NSString *)mj_localizedStringForKey:(NSString *)key; 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/MJRefresh/MJRefresh/UIScrollView+MJExtension.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // UIScrollView+Extension.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 14-5-28. 7 | // Copyright (c) 2014年 小码哥. All rights reserved. 8 | // 9 | 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface UIScrollView (MJExtension) 15 | @property (readonly, nonatomic) UIEdgeInsets mj_inset; 16 | 17 | @property (assign, nonatomic) CGFloat mj_insetT; 18 | @property (assign, nonatomic) CGFloat mj_insetB; 19 | @property (assign, nonatomic) CGFloat mj_insetL; 20 | @property (assign, nonatomic) CGFloat mj_insetR; 21 | 22 | @property (assign, nonatomic) CGFloat mj_offsetX; 23 | @property (assign, nonatomic) CGFloat mj_offsetY; 24 | 25 | @property (assign, nonatomic) CGFloat mj_contentW; 26 | @property (assign, nonatomic) CGFloat mj_contentH; 27 | @end 28 | 29 | NS_ASSUME_NONNULL_END 30 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/MJRefresh/MJRefresh/UIScrollView+MJRefresh.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // UIScrollView+MJRefresh.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 15/3/4. 7 | // Copyright (c) 2015年 小码哥. All rights reserved. 8 | // 给ScrollView增加下拉刷新、上拉刷新的功能 9 | 10 | #import 11 | #import "MJRefreshConst.h" 12 | 13 | @class MJRefreshHeader, MJRefreshFooter; 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface UIScrollView (MJRefresh) 18 | /** 下拉刷新控件 */ 19 | @property (strong, nonatomic, nullable) MJRefreshHeader *mj_header; 20 | @property (strong, nonatomic, nullable) MJRefreshHeader *header MJRefreshDeprecated("使用mj_header"); 21 | /** 上拉刷新控件 */ 22 | @property (strong, nonatomic, nullable) MJRefreshFooter *mj_footer; 23 | @property (strong, nonatomic, nullable) MJRefreshFooter *footer MJRefreshDeprecated("使用mj_footer"); 24 | 25 | #pragma mark - other 26 | - (NSInteger)mj_totalDataCount; 27 | 28 | @end 29 | 30 | NS_ASSUME_NONNULL_END 31 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/MJRefresh/MJRefresh/UIView+MJExtension.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // UIView+Extension.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 14-5-28. 7 | // Copyright (c) 2014年 小码哥. All rights reserved. 8 | // 9 | 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface UIView (MJExtension) 15 | @property (assign, nonatomic) CGFloat mj_x; 16 | @property (assign, nonatomic) CGFloat mj_y; 17 | @property (assign, nonatomic) CGFloat mj_w; 18 | @property (assign, nonatomic) CGFloat mj_h; 19 | @property (assign, nonatomic) CGSize mj_size; 20 | @property (assign, nonatomic) CGPoint mj_origin; 21 | @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - JXPagingView/Paging (2.1.4) 3 | - JXSegmentedView (1.0.2) 4 | - MJRefresh (3.4.0) 5 | 6 | DEPENDENCIES: 7 | - JXPagingView/Paging (from `../../../JXPagingView`) 8 | - JXSegmentedView 9 | - MJRefresh (= 3.4.0) 10 | 11 | SPEC REPOS: 12 | trunk: 13 | - JXSegmentedView 14 | - MJRefresh 15 | 16 | EXTERNAL SOURCES: 17 | JXPagingView: 18 | :path: "../../../JXPagingView" 19 | 20 | SPEC CHECKSUMS: 21 | JXPagingView: 28ab45ab0f9811153ef28266071877d42483ba8c 22 | JXSegmentedView: 2988fe07060a9b91b0112eabd6dee0df0cbca8b3 23 | MJRefresh: 95b08b3b8b6457d2c69510439e0349599050ea34 24 | 25 | PODFILE CHECKSUM: 4a1efecfab50d3c91601221b19e58c54aa7e3ab8 26 | 27 | COCOAPODS: 1.16.2 28 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/JXPagingView/JXPagingView-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | ${PODS_DEVELOPMENT_LANGUAGE} 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 2.1.4 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/JXPagingView/JXPagingView-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_JXPagingView : NSObject 3 | @end 4 | @implementation PodsDummy_JXPagingView 5 | @end 6 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/JXPagingView/JXPagingView-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/JXPagingView/JXPagingView-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double JXPagingViewVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char JXPagingViewVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/JXPagingView/JXPagingView.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 5 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} 9 | PODS_ROOT = ${SRCROOT} 10 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../.. 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 13 | SKIP_INSTALL = YES 14 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 15 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/JXPagingView/JXPagingView.modulemap: -------------------------------------------------------------------------------- 1 | framework module JXPagingView { 2 | umbrella header "JXPagingView-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/JXPagingView/JXPagingView.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 5 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} 9 | PODS_ROOT = ${SRCROOT} 10 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../.. 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 13 | SKIP_INSTALL = YES 14 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 15 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/JXPagingView/JXPagingView.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../.. 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/JXPagingView/ResourceBundle-JXPagingView-JXPagingView-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | ${PODS_DEVELOPMENT_LANGUAGE} 7 | CFBundleIdentifier 8 | ${PRODUCT_BUNDLE_IDENTIFIER} 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundleName 12 | ${PRODUCT_NAME} 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 2.1.4 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | NSPrincipalClass 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/JXSegmentedView/JXSegmentedView-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | ${PODS_DEVELOPMENT_LANGUAGE} 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.2 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/JXSegmentedView/JXSegmentedView-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_JXSegmentedView : NSObject 3 | @end 4 | @implementation PodsDummy_JXSegmentedView 5 | @end 6 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/JXSegmentedView/JXSegmentedView-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/JXSegmentedView/JXSegmentedView-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double JXSegmentedViewVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char JXSegmentedViewVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/JXSegmentedView/JXSegmentedView.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/JXSegmentedView 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 5 | OTHER_LDFLAGS = $(inherited) -framework "UIKit" 6 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} 10 | PODS_ROOT = ${SRCROOT} 11 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/JXSegmentedView 12 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 13 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 14 | SKIP_INSTALL = YES 15 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 16 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/JXSegmentedView/JXSegmentedView.modulemap: -------------------------------------------------------------------------------- 1 | framework module JXSegmentedView { 2 | umbrella header "JXSegmentedView-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/JXSegmentedView/JXSegmentedView.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/JXSegmentedView 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 5 | OTHER_LDFLAGS = $(inherited) -framework "UIKit" 6 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} 10 | PODS_ROOT = ${SRCROOT} 11 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/JXSegmentedView 12 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 13 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 14 | SKIP_INSTALL = YES 15 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 16 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/JXSegmentedView/JXSegmentedView.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/JXSegmentedView 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_LDFLAGS = $(inherited) -framework "UIKit" 4 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/JXSegmentedView 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/MJRefresh/MJRefresh-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | ${PODS_DEVELOPMENT_LANGUAGE} 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 3.4.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/MJRefresh/MJRefresh-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_MJRefresh : NSObject 3 | @end 4 | @implementation PodsDummy_MJRefresh 5 | @end 6 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/MJRefresh/MJRefresh-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/MJRefresh/MJRefresh.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/MJRefresh 9 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 10 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | SKIP_INSTALL = YES 12 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 13 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/MJRefresh/MJRefresh.modulemap: -------------------------------------------------------------------------------- 1 | framework module MJRefresh { 2 | umbrella header "MJRefresh-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/MJRefresh/MJRefresh.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/MJRefresh 9 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 10 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | SKIP_INSTALL = YES 12 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 13 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/MJRefresh/MJRefresh.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | PODS_BUILD_DIR = ${BUILD_DIR} 4 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 5 | PODS_ROOT = ${SRCROOT} 6 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/MJRefresh 7 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 8 | SKIP_INSTALL = YES 9 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/Pods-JXPagingViewExample/Pods-JXPagingViewExample-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | ${PODS_DEVELOPMENT_LANGUAGE} 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/Pods-JXPagingViewExample/Pods-JXPagingViewExample-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_JXPagingViewExample : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_JXPagingViewExample 5 | @end 6 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/Pods-JXPagingViewExample/Pods-JXPagingViewExample-frameworks-Debug-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-JXPagingViewExample/Pods-JXPagingViewExample-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/JXPagingView/JXPagingView.framework 3 | ${BUILT_PRODUCTS_DIR}/JXSegmentedView/JXSegmentedView.framework 4 | ${BUILT_PRODUCTS_DIR}/MJRefresh/MJRefresh.framework -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/Pods-JXPagingViewExample/Pods-JXPagingViewExample-frameworks-Debug-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JXPagingView.framework 2 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JXSegmentedView.framework 3 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MJRefresh.framework -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/Pods-JXPagingViewExample/Pods-JXPagingViewExample-frameworks-Release-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-JXPagingViewExample/Pods-JXPagingViewExample-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/JXPagingView/JXPagingView.framework 3 | ${BUILT_PRODUCTS_DIR}/JXSegmentedView/JXSegmentedView.framework 4 | ${BUILT_PRODUCTS_DIR}/MJRefresh/MJRefresh.framework -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/Pods-JXPagingViewExample/Pods-JXPagingViewExample-frameworks-Release-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JXPagingView.framework 2 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JXSegmentedView.framework 3 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MJRefresh.framework -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/Pods-JXPagingViewExample/Pods-JXPagingViewExample-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_JXPagingViewExampleVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_JXPagingViewExampleVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Examples/JXPagingViewExample/Pods/Target Support Files/Pods-JXPagingViewExample/Pods-JXPagingViewExample.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_JXPagingViewExample { 2 | umbrella header "Pods-JXPagingViewExample-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Examples/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pujiaxin33/JXPagingView/8aa5663720ebfab0c4df41cfca04b113f832c5b2/Examples/down.png -------------------------------------------------------------------------------- /Examples/lufei.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pujiaxin33/JXPagingView/8aa5663720ebfab0c4df41cfca04b113f832c5b2/Examples/lufei.jpg -------------------------------------------------------------------------------- /JXPagingView.podspec: -------------------------------------------------------------------------------- 1 | 2 | Pod::Spec.new do |s| 3 | s.name = "JXPagingView" 4 | s.version = "2.1.4" 5 | s.summary = "类似微博主页、简书主页等效果。多页面嵌套,既可以上下滑动,也可以左右滑动切换页面。支持HeaderView悬浮、支持下拉刷新、上拉加载更多。" 6 | s.homepage = "https://github.com/pujiaxin33/JXPagingView" 7 | s.author = { "pujiaxin33" => "317437084@qq.com" } 8 | s.platform = :ios, "9.0" 9 | s.swift_versions = ["4.2", "5.0"] 10 | s.source = { :git => "https://github.com/pujiaxin33/JXPagingView.git", :tag => "#{s.version}" } 11 | s.source_files = "JXPagingView", "Sources/JXPagingView/**/*.swift" 12 | s.license = "MIT" 13 | s.subspec 'Pager' do |pager| 14 | pager.source_files = 'JXPagerView', 'Sources/JXPagerView/**/*.{h,m}' 15 | pager.resource_bundles = {"JXPagerView" => ["Sources/PrivacyInfo.xcprivacy"]} 16 | end 17 | 18 | s.subspec 'Paging' do |paging| 19 | paging.source_files = "JXPagingView", "Sources/JXPagingView/**/*.swift" 20 | paging.resource_bundles = {"JXPagingView" => ["Sources/PrivacyInfo.xcprivacy"]} 21 | end 22 | 23 | s.requires_arc = true 24 | 25 | end 26 | -------------------------------------------------------------------------------- /JXRTLFlowLayout.swift: -------------------------------------------------------------------------------- 1 | // 2 | // JXRTLFlowLayout.swift 3 | // JXPagingView 4 | // 5 | // Created by Jiaxin Pu on 2024/7/10. 6 | // 7 | 8 | import UIKit 9 | 10 | class JXRTLFlowLayout: UICollectionViewFlowLayout { 11 | override var flipsHorizontallyInOppositeLayoutDirection: Bool { 12 | get { 13 | return UIView.userInterfaceLayoutDirection(for: UIView.appearance().semanticContentAttribute) == .rightToLeft 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 暴走的鑫鑫 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Sources/JXPagerView/JXPagerListRefreshView.h: -------------------------------------------------------------------------------- 1 | // 2 | // JXPagingListRefreshView.h 3 | // JXPagingView 4 | // 5 | // Created by jiaxin on 2018/8/28. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "JXPagerView.h" 11 | 12 | @interface JXPagerListRefreshView : JXPagerView 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /Sources/JXPagerView/JXPagerMainTableView.h: -------------------------------------------------------------------------------- 1 | // 2 | // JXPagingMainTableView.h 3 | // JXPagingView 4 | // 5 | // Created by jiaxin on 2018/8/27. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol JXPagerMainTableViewGestureDelegate 12 | 13 | - (BOOL)mainTableViewGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer; 14 | 15 | @end 16 | 17 | @interface JXPagerMainTableView : UITableView 18 | @property (nonatomic, weak) id gestureDelegate; 19 | @end 20 | -------------------------------------------------------------------------------- /Sources/JXPagerView/JXPagerMainTableView.m: -------------------------------------------------------------------------------- 1 | // 2 | // JXPagerMainTableView.m 3 | // JXPagerView 4 | // 5 | // Created by jiaxin on 2018/8/27. 6 | // Copyright © 2018年 jiaxin. All rights reserved. 7 | // 8 | 9 | #import "JXPagerMainTableView.h" 10 | 11 | @interface JXPagerMainTableView () 12 | 13 | @end 14 | 15 | @implementation JXPagerMainTableView 16 | 17 | - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { 18 | if (self.gestureDelegate && [self.gestureDelegate respondsToSelector:@selector(mainTableViewGestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:)]) { 19 | return [self.gestureDelegate mainTableViewGestureRecognizer:gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:otherGestureRecognizer]; 20 | }else { 21 | return [gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]] && [otherGestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]; 22 | } 23 | } 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /Sources/JXPagerView/JXRTLFlowLayout.h: -------------------------------------------------------------------------------- 1 | // 2 | // JXRTLFlowLayout.h 3 | // 4 | // 5 | // Created by jx on 2024/5/27. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface JXRTLFlowLayout : UICollectionViewFlowLayout 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /Sources/JXPagerView/JXRTLFlowLayout.m: -------------------------------------------------------------------------------- 1 | // 2 | // JXRTLFlowLayout.m 3 | // 4 | // 5 | // Created by jx on 2024/5/27. 6 | // 7 | 8 | #import "JXRTLFlowLayout.h" 9 | 10 | @implementation JXRTLFlowLayout 11 | 12 | 13 | - (BOOL)flipsHorizontallyInOppositeLayoutDirection { 14 | return [UIView userInterfaceLayoutDirectionForSemanticContentAttribute:UIView.appearance.semanticContentAttribute] == UIUserInterfaceLayoutDirectionRightToLeft; 15 | } 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /Sources/JXPagingView/JXRTLFlowLayout.swift: -------------------------------------------------------------------------------- 1 | // 2 | // JXPagingView.swift 3 | // JXRTLFlowLayout 4 | // 5 | // Created by jx on 2024/5/27. 6 | // 7 | 8 | import UIKit 9 | 10 | class JXRTLFlowLayout: UICollectionViewFlowLayout { 11 | override var flipsHorizontallyInOppositeLayoutDirection: Bool { 12 | get { 13 | return UIView.userInterfaceLayoutDirection(for: UIView.appearance().semanticContentAttribute) == .rightToLeft 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Sources/PrivacyInfo.xcprivacy: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSPrivacyAccessedAPITypes 6 | 7 | NSPrivacyTrackingDomains 8 | 9 | NSPrivacyCollectedDataTypes 10 | 11 | NSPrivacyTracking 12 | 13 | 14 | 15 | --------------------------------------------------------------------------------