├── .DS_Store ├── .github └── workflows │ └── swiftCFPageScrollView.yml ├── .gitignore ├── CFStreamingVideo.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ ├── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── xcuserdata │ │ └── WangShi.xcuserdatad │ │ └── UserInterfaceState.xcuserstate ├── xcshareddata │ └── xcschemes │ │ └── CFStreamingVideo.xcscheme └── xcuserdata │ └── WangShi.xcuserdatad │ └── xcschemes │ └── xcschememanagement.plist ├── CFStreamingVideo.xcworkspace ├── contents.xcworkspacedata ├── xcshareddata │ └── IDEWorkspaceChecks.plist └── xcuserdata │ └── WangShi.xcuserdatad │ ├── UserInterfaceState.xcuserstate │ └── xcdebugger │ └── Breakpoints_v2.xcbkptlist ├── CFStreamingVideo ├── .DS_Store ├── AppDelegate.swift ├── Assets.xcassets │ ├── .DS_Store │ ├── AppIcon.appiconset │ │ └── Contents.json │ ├── Contents.json │ ├── homeIcon │ │ ├── .DS_Store │ │ ├── Contents.json │ │ ├── ad1.imageset │ │ │ ├── Contents.json │ │ │ └── ad1@2x.png │ │ ├── ad2.imageset │ │ │ ├── Contents.json │ │ │ └── ad2@2x.png │ │ ├── ad3.imageset │ │ │ ├── Contents.json │ │ │ └── ad3@2x.png │ │ ├── arrow_s_12x12_.imageset │ │ │ ├── Contents.json │ │ │ ├── arrow_s_12x12_@2x.png │ │ │ └── arrow_s_12x12_@3x.png │ │ ├── detail_player_control_pause_new1_24x24_.imageset │ │ │ ├── Contents.json │ │ │ ├── detail_player_control_pause_new1_24x24_@2x.png │ │ │ └── detail_player_control_pause_new1_24x24_@3x.png │ │ ├── detail_player_control_play_new2_24x24_.imageset │ │ │ ├── Contents.json │ │ │ ├── detail_player_control_play_new2_24x24_@2x.png │ │ │ └── detail_player_control_play_new2_24x24_@3x.png │ │ ├── detail_player_red_progress_indicator_16x16_.imageset │ │ │ ├── Contents.json │ │ │ ├── detail_player_red_progress_indicator_16x16_@2x.png │ │ │ └── detail_player_red_progress_indicator_16x16_@3x.png │ │ ├── home_icon_search_white_30x30_.imageset │ │ │ ├── Contents.json │ │ │ ├── home_icon_search_white_30x30_@2x.png │ │ │ └── home_icon_search_white_30x30_@3x.png │ │ ├── home_top_channel_menu_30x30_.imageset │ │ │ ├── Contents.json │ │ │ ├── home_top_channel_menu_30x30_@2x.png │ │ │ └── home_top_channel_menu_30x30_@3x.png │ │ ├── home_topbar_icon_download_24x24_.imageset │ │ │ ├── Contents.json │ │ │ ├── home_topbar_icon_download_24x24_@2x.png │ │ │ └── home_topbar_icon_download_24x24_@3x.png │ │ ├── home_topbar_icon_filter_light_11x11_.imageset │ │ │ ├── Contents.json │ │ │ ├── home_topbar_icon_filter_light_11x11_@2x.png │ │ │ └── home_topbar_icon_filter_light_11x11_@3x.png │ │ ├── home_topbar_icon_history_light_24x24_.imageset │ │ │ ├── Contents.json │ │ │ ├── home_topbar_icon_history_light_24x24_@2x.png │ │ │ └── home_topbar_icon_history_light_24x24_@3x.png │ │ ├── sv_rotation_24x24_.imageset │ │ │ ├── Contents.json │ │ │ ├── sv_rotation_24x24_@2x.png │ │ │ └── sv_rotation_24x24_@3x.png │ │ ├── sv_slider_big_28x28_.imageset │ │ │ ├── Contents.json │ │ │ ├── sv_slider_big_28x28_@2x.png │ │ │ └── sv_slider_big_28x28_@3x.png │ │ └── ykcomic_icon_back_white_24x24_.imageset │ │ │ ├── Contents.json │ │ │ ├── ykcomic_icon_back_white_24x24_@2x.png │ │ │ └── ykcomic_icon_back_white_24x24_@3x.png │ └── tabbarIcon │ │ ├── .DS_Store │ │ ├── Contents.json │ │ ├── navbar_icon_discovery_normal_24x24_.imageset │ │ ├── Contents.json │ │ ├── navbar_icon_discovery_normal_24x24_@2x.png │ │ └── navbar_icon_discovery_normal_24x24_@3x.png │ │ ├── navbar_icon_discovery_selected_24x24_.imageset │ │ ├── Contents.json │ │ ├── navbar_icon_discovery_selected_24x24_@2x.png │ │ └── navbar_icon_discovery_selected_24x24_@3x.png │ │ ├── navbar_icon_home_normal_24x24_.imageset │ │ ├── Contents.json │ │ ├── navbar_icon_home_normal_24x24_@2x.png │ │ └── navbar_icon_home_normal_24x24_@3x.png │ │ ├── navbar_icon_home_selected_24x24_.imageset │ │ ├── Contents.json │ │ ├── navbar_icon_home_selected_24x24_@2x.png │ │ └── navbar_icon_home_selected_24x24_@3x.png │ │ ├── navbar_icon_planet_normal_24x24_.imageset │ │ ├── Contents.json │ │ ├── navbar_icon_planet_normal_24x24_@2x.png │ │ └── navbar_icon_planet_normal_24x24_@3x.png │ │ ├── navbar_icon_planet_selected_24x24_.imageset │ │ ├── Contents.json │ │ ├── navbar_icon_planet_selected_24x24_@2x.png │ │ └── navbar_icon_planet_selected_24x24_@3x.png │ │ ├── navbar_icon_user_normal_24x24_.imageset │ │ ├── Contents.json │ │ ├── navbar_icon_user_normal_24x24_@2x.png │ │ └── navbar_icon_user_normal_24x24_@3x.png │ │ ├── navbar_icon_user_selected_24x24_.imageset │ │ ├── Contents.json │ │ ├── navbar_icon_user_selected_24x24_@2x.png │ │ └── navbar_icon_user_selected_24x24_@3x.png │ │ ├── navbar_icon_vip_normal_24x24_.imageset │ │ ├── Contents.json │ │ ├── navbar_icon_vip_normal_24x24_@2x.png │ │ └── navbar_icon_vip_normal_24x24_@3x.png │ │ └── navbar_icon_vip_selected_24x24_.imageset │ │ ├── Contents.json │ │ ├── navbar_icon_vip_selected_24x24_@2x.png │ │ └── navbar_icon_vip_selected_24x24_@3x.png ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard ├── DataModel.xcdatamodeld │ └── DataModel.xcdatamodel │ │ └── contents ├── DataModel │ ├── .DS_Store │ ├── DisplayData+CoreDataClass.swift │ ├── DisplayData+CoreDataProperties.swift │ ├── MenuData+CoreDataClass.swift │ └── MenuData+CoreDataProperties.swift ├── DataSourceFile.swift ├── Info.plist ├── Library │ ├── .DS_Store │ ├── CFPageScrollview │ │ ├── .DS_Store │ │ ├── BaseSearchView.swift │ │ ├── CFPageScrollView.swift │ │ ├── EditMenuCell.swift │ │ ├── EditMenuController.swift │ │ ├── EditMenuHeader.swift │ │ ├── NavigationItemView.swift │ │ ├── NavigationItemViewCell.swift │ │ ├── ProtocolAction.swift │ │ └── SearchController.swift │ └── Extension │ │ └── extension+String.swift ├── MacroDefinition │ ├── GlobalConfigDefinition.swift │ └── GlobalFun.swift ├── PrefixHeader.h ├── ToolManager │ ├── CoreDataManager.swift │ └── ModelTool.swift ├── ViewController │ ├── .DS_Store │ ├── CFBaseController │ │ └── CFBaseController.swift │ ├── CFHomePageController │ │ ├── .DS_Store │ │ ├── CFHomePageController.swift │ │ ├── ChildController │ │ │ ├── .DS_Store │ │ │ ├── Child1View │ │ │ │ ├── ADNoticeViewCell.swift │ │ │ │ ├── ChildCell1.swift │ │ │ │ ├── ChildCircleHeader1.swift │ │ │ │ └── ChildNoticeHeader1.swift │ │ │ ├── ChildController1.swift │ │ │ ├── ChildController1 │ │ │ │ ├── .DS_Store │ │ │ │ ├── DetailController.swift │ │ │ │ └── View │ │ │ │ │ └── PlayerView.swift │ │ │ ├── ChildController10.swift │ │ │ ├── ChildController2.swift │ │ │ ├── ChildController3.swift │ │ │ ├── ChildController4.swift │ │ │ ├── ChildController5.swift │ │ │ ├── ChildController6.swift │ │ │ ├── ChildController7.swift │ │ │ ├── ChildController8.swift │ │ │ └── ChildController9.swift │ │ └── View │ │ │ ├── SearchView.swift │ │ │ ├── SearchView2.swift │ │ │ └── SearchView3.swift │ ├── CFHotspotController │ │ ├── .DS_Store │ │ ├── CFHotspotController.swift │ │ ├── ChildController │ │ │ ├── .DS_Store │ │ │ ├── HotspotChildController1.swift │ │ │ └── View │ │ │ │ └── HotspotCell1.swift │ │ └── View │ │ │ └── HotspotSearchView.swift │ ├── CFMyInfoController │ │ └── CFMyInfoController.swift │ ├── CFStarController │ │ └── CFStarController.swift │ ├── CFTabBarController │ │ ├── .DS_Store │ │ └── CFTabBarController.swift │ └── CFVIPMemberController │ │ └── CFVIPMemberController.swift └── swift_oc_briding_Header.h ├── LICENSE ├── Podfile ├── Podfile.lock ├── Pods ├── .DS_Store ├── Headers │ ├── .DS_Store │ ├── Private │ │ ├── MJExtension │ │ │ ├── MJExtension.h │ │ │ ├── MJExtensionConst.h │ │ │ ├── MJFoundation.h │ │ │ ├── MJProperty.h │ │ │ ├── MJPropertyKey.h │ │ │ ├── MJPropertyType.h │ │ │ ├── NSObject+MJClass.h │ │ │ ├── NSObject+MJCoding.h │ │ │ ├── NSObject+MJKeyValue.h │ │ │ ├── NSObject+MJProperty.h │ │ │ └── NSString+MJExtension.h │ │ ├── MJRefresh │ │ │ ├── MJRefresh.h │ │ │ ├── MJRefreshAutoFooter.h │ │ │ ├── MJRefreshAutoGifFooter.h │ │ │ ├── MJRefreshAutoNormalFooter.h │ │ │ ├── MJRefreshAutoStateFooter.h │ │ │ ├── MJRefreshBackFooter.h │ │ │ ├── MJRefreshBackGifFooter.h │ │ │ ├── MJRefreshBackNormalFooter.h │ │ │ ├── MJRefreshBackStateFooter.h │ │ │ ├── MJRefreshComponent.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 │ │ ├── RollingNotice │ │ │ ├── GYNoticeViewCell.h │ │ │ └── GYRollingNoticeView.h │ │ ├── SDCycleScrollView │ │ │ ├── SDCollectionViewCell.h │ │ │ ├── SDCycleScrollView.h │ │ │ ├── TAAbstractDotView.h │ │ │ ├── TAAnimatedDotView.h │ │ │ ├── TADotView.h │ │ │ ├── TAPageControl.h │ │ │ └── UIView+SDExtension.h │ │ └── SDWebImage │ │ │ ├── NSData+ImageContentType.h │ │ │ ├── NSImage+WebCache.h │ │ │ ├── SDImageCache.h │ │ │ ├── SDImageCacheConfig.h │ │ │ ├── SDWebImageCoder.h │ │ │ ├── SDWebImageCoderHelper.h │ │ │ ├── SDWebImageCodersManager.h │ │ │ ├── SDWebImageCompat.h │ │ │ ├── SDWebImageDownloader.h │ │ │ ├── SDWebImageDownloaderOperation.h │ │ │ ├── SDWebImageFrame.h │ │ │ ├── SDWebImageGIFCoder.h │ │ │ ├── SDWebImageImageIOCoder.h │ │ │ ├── SDWebImageManager.h │ │ │ ├── SDWebImageOperation.h │ │ │ ├── SDWebImagePrefetcher.h │ │ │ ├── UIButton+WebCache.h │ │ │ ├── UIImage+ForceDecode.h │ │ │ ├── UIImage+GIF.h │ │ │ ├── UIImage+MultiFormat.h │ │ │ ├── UIImageView+HighlightedWebCache.h │ │ │ ├── UIImageView+WebCache.h │ │ │ ├── UIView+WebCache.h │ │ │ └── UIView+WebCacheOperation.h │ └── Public │ │ ├── MJExtension │ │ ├── MJExtension.h │ │ ├── MJExtensionConst.h │ │ ├── MJFoundation.h │ │ ├── MJProperty.h │ │ ├── MJPropertyKey.h │ │ ├── MJPropertyType.h │ │ ├── NSObject+MJClass.h │ │ ├── NSObject+MJCoding.h │ │ ├── NSObject+MJKeyValue.h │ │ ├── NSObject+MJProperty.h │ │ └── NSString+MJExtension.h │ │ ├── MJRefresh │ │ ├── MJRefresh.h │ │ ├── MJRefreshAutoFooter.h │ │ ├── MJRefreshAutoGifFooter.h │ │ ├── MJRefreshAutoNormalFooter.h │ │ ├── MJRefreshAutoStateFooter.h │ │ ├── MJRefreshBackFooter.h │ │ ├── MJRefreshBackGifFooter.h │ │ ├── MJRefreshBackNormalFooter.h │ │ ├── MJRefreshBackStateFooter.h │ │ ├── MJRefreshComponent.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 │ │ ├── RollingNotice │ │ ├── GYNoticeViewCell.h │ │ └── GYRollingNoticeView.h │ │ ├── SDCycleScrollView │ │ ├── SDCollectionViewCell.h │ │ ├── SDCycleScrollView.h │ │ ├── TAAbstractDotView.h │ │ ├── TAAnimatedDotView.h │ │ ├── TADotView.h │ │ ├── TAPageControl.h │ │ └── UIView+SDExtension.h │ │ └── SDWebImage │ │ ├── NSData+ImageContentType.h │ │ ├── NSImage+WebCache.h │ │ ├── SDImageCache.h │ │ ├── SDImageCacheConfig.h │ │ ├── SDWebImageCoder.h │ │ ├── SDWebImageCoderHelper.h │ │ ├── SDWebImageCodersManager.h │ │ ├── SDWebImageCompat.h │ │ ├── SDWebImageDownloader.h │ │ ├── SDWebImageDownloaderOperation.h │ │ ├── SDWebImageFrame.h │ │ ├── SDWebImageGIFCoder.h │ │ ├── SDWebImageImageIOCoder.h │ │ ├── SDWebImageManager.h │ │ ├── SDWebImageOperation.h │ │ ├── SDWebImagePrefetcher.h │ │ ├── UIButton+WebCache.h │ │ ├── UIImage+ForceDecode.h │ │ ├── UIImage+GIF.h │ │ ├── UIImage+MultiFormat.h │ │ ├── UIImageView+HighlightedWebCache.h │ │ ├── UIImageView+WebCache.h │ │ ├── UIView+WebCache.h │ │ └── UIView+WebCacheOperation.h ├── MJExtension │ ├── LICENSE │ ├── MJExtension │ │ ├── MJExtension.h │ │ ├── MJExtensionConst.h │ │ ├── MJExtensionConst.m │ │ ├── MJFoundation.h │ │ ├── MJFoundation.m │ │ ├── MJProperty.h │ │ ├── MJProperty.m │ │ ├── MJPropertyKey.h │ │ ├── MJPropertyKey.m │ │ ├── MJPropertyType.h │ │ ├── MJPropertyType.m │ │ ├── NSObject+MJClass.h │ │ ├── NSObject+MJClass.m │ │ ├── NSObject+MJCoding.h │ │ ├── NSObject+MJCoding.m │ │ ├── NSObject+MJKeyValue.h │ │ ├── NSObject+MJKeyValue.m │ │ ├── NSObject+MJProperty.h │ │ ├── NSObject+MJProperty.m │ │ ├── NSString+MJExtension.h │ │ └── NSString+MJExtension.m │ └── README.md ├── 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 │ │ │ ├── zh-Hans.lproj │ │ │ │ └── Localizable.strings │ │ │ └── zh-Hant.lproj │ │ │ │ └── Localizable.strings │ │ ├── MJRefresh.h │ │ ├── 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 │ └── xcuserdata │ │ └── WangShi.xcuserdatad │ │ └── xcschemes │ │ ├── Alamofire.xcscheme │ │ ├── MJExtension.xcscheme │ │ ├── MJRefresh.xcscheme │ │ ├── Moya.xcscheme │ │ ├── Pods-CFStreamingVideo.xcscheme │ │ ├── Result.xcscheme │ │ ├── RollingNotice.xcscheme │ │ ├── SDCycleScrollView.xcscheme │ │ ├── SDWebImage.xcscheme │ │ └── xcschememanagement.plist ├── RollingNotice │ ├── LICENSE │ ├── README.md │ └── RollingNotice │ │ └── GYRollingNoticeView │ │ ├── GYNoticeViewCell.h │ │ ├── GYNoticeViewCell.m │ │ ├── GYRollingNoticeView.h │ │ └── GYRollingNoticeView.m ├── SDCycleScrollView │ ├── LICENSE │ ├── README.md │ └── SDCycleScrollView │ │ └── Lib │ │ └── SDCycleScrollView │ │ ├── PageControl │ │ ├── TAAbstractDotView.h │ │ ├── TAAbstractDotView.m │ │ ├── TAAnimatedDotView.h │ │ ├── TAAnimatedDotView.m │ │ ├── TADotView.h │ │ ├── TADotView.m │ │ ├── TAPageControl.h │ │ └── TAPageControl.m │ │ ├── SDCollectionViewCell.h │ │ ├── SDCollectionViewCell.m │ │ ├── SDCycleScrollView.h │ │ ├── SDCycleScrollView.m │ │ ├── UIView+SDExtension.h │ │ └── UIView+SDExtension.m ├── SDWebImage │ ├── LICENSE │ ├── README.md │ └── SDWebImage │ │ ├── NSData+ImageContentType.h │ │ ├── NSData+ImageContentType.m │ │ ├── NSImage+WebCache.h │ │ ├── NSImage+WebCache.m │ │ ├── SDImageCache.h │ │ ├── SDImageCache.m │ │ ├── SDImageCacheConfig.h │ │ ├── SDImageCacheConfig.m │ │ ├── SDWebImageCoder.h │ │ ├── SDWebImageCoder.m │ │ ├── SDWebImageCoderHelper.h │ │ ├── SDWebImageCoderHelper.m │ │ ├── SDWebImageCodersManager.h │ │ ├── SDWebImageCodersManager.m │ │ ├── SDWebImageCompat.h │ │ ├── SDWebImageCompat.m │ │ ├── SDWebImageDownloader.h │ │ ├── SDWebImageDownloader.m │ │ ├── SDWebImageDownloaderOperation.h │ │ ├── SDWebImageDownloaderOperation.m │ │ ├── SDWebImageFrame.h │ │ ├── SDWebImageFrame.m │ │ ├── SDWebImageGIFCoder.h │ │ ├── SDWebImageGIFCoder.m │ │ ├── SDWebImageImageIOCoder.h │ │ ├── SDWebImageImageIOCoder.m │ │ ├── SDWebImageManager.h │ │ ├── SDWebImageManager.m │ │ ├── SDWebImageOperation.h │ │ ├── SDWebImagePrefetcher.h │ │ ├── SDWebImagePrefetcher.m │ │ ├── UIButton+WebCache.h │ │ ├── UIButton+WebCache.m │ │ ├── UIImage+ForceDecode.h │ │ ├── UIImage+ForceDecode.m │ │ ├── UIImage+GIF.h │ │ ├── UIImage+GIF.m │ │ ├── UIImage+MultiFormat.h │ │ ├── UIImage+MultiFormat.m │ │ ├── UIImageView+HighlightedWebCache.h │ │ ├── UIImageView+HighlightedWebCache.m │ │ ├── UIImageView+WebCache.h │ │ ├── UIImageView+WebCache.m │ │ ├── UIView+WebCache.h │ │ ├── UIView+WebCache.m │ │ ├── UIView+WebCacheOperation.h │ │ └── UIView+WebCacheOperation.m └── Target Support Files │ ├── MJExtension │ ├── MJExtension-dummy.m │ ├── MJExtension-prefix.pch │ ├── MJExtension.debug.xcconfig │ └── MJExtension.release.xcconfig │ ├── MJRefresh │ ├── MJRefresh-dummy.m │ ├── MJRefresh-prefix.pch │ ├── MJRefresh.debug.xcconfig │ └── MJRefresh.release.xcconfig │ ├── Pods-CFStreamingVideo │ ├── Info.plist │ ├── Pods-CFStreamingVideo-Info.plist │ ├── Pods-CFStreamingVideo-acknowledgements.markdown │ ├── Pods-CFStreamingVideo-acknowledgements.plist │ ├── Pods-CFStreamingVideo-dummy.m │ ├── Pods-CFStreamingVideo-frameworks-Debug-input-files.xcfilelist │ ├── Pods-CFStreamingVideo-frameworks-Debug-output-files.xcfilelist │ ├── Pods-CFStreamingVideo-frameworks-Release-input-files.xcfilelist │ ├── Pods-CFStreamingVideo-frameworks-Release-output-files.xcfilelist │ ├── Pods-CFStreamingVideo-frameworks.sh │ ├── Pods-CFStreamingVideo-resources-Debug-input-files.xcfilelist │ ├── Pods-CFStreamingVideo-resources-Debug-output-files.xcfilelist │ ├── Pods-CFStreamingVideo-resources-Release-input-files.xcfilelist │ ├── Pods-CFStreamingVideo-resources-Release-output-files.xcfilelist │ ├── Pods-CFStreamingVideo-resources.sh │ ├── Pods-CFStreamingVideo-umbrella.h │ ├── Pods-CFStreamingVideo.debug.xcconfig │ ├── Pods-CFStreamingVideo.modulemap │ └── Pods-CFStreamingVideo.release.xcconfig │ ├── RollingNotice │ ├── RollingNotice-dummy.m │ ├── RollingNotice-prefix.pch │ ├── RollingNotice.debug.xcconfig │ └── RollingNotice.release.xcconfig │ ├── SDCycleScrollView │ ├── SDCycleScrollView-dummy.m │ ├── SDCycleScrollView-prefix.pch │ ├── SDCycleScrollView.debug.xcconfig │ └── SDCycleScrollView.release.xcconfig │ └── SDWebImage │ ├── SDWebImage-dummy.m │ ├── SDWebImage-prefix.pch │ ├── SDWebImage.debug.xcconfig │ └── SDWebImage.release.xcconfig ├── README.md └── 演示图 ├── .DS_Store ├── 演示图1.gif ├── 演示图2.gif └── 演示图3.gif /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/.DS_Store -------------------------------------------------------------------------------- /.github/workflows/swiftCFPageScrollView.yml: -------------------------------------------------------------------------------- 1 | name: Swift 2 | 3 | on: [push] 4 | 5 | jobs: 6 | build: 7 | 8 | runs-on: macOS-latest 9 | 10 | steps: 11 | - uses: actions/checkout@v1 12 | - name: Build 13 | run: swift build -v 14 | - name: Run tests 15 | run: swift test -v 16 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | # 3 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 4 | 5 | ## Build generated 6 | build/ 7 | DerivedData/ 8 | 9 | ## Various settings 10 | *.pbxuser 11 | !default.pbxuser 12 | *.mode1v3 13 | !default.mode1v3 14 | *.mode2v3 15 | !default.mode2v3 16 | *.perspectivev3 17 | !default.perspectivev3 18 | xcuserdata/ 19 | 20 | ## Other 21 | *.moved-aside 22 | *.xccheckout 23 | *.xcscmblueprint 24 | 25 | ## Obj-C/Swift specific 26 | *.hmap 27 | *.ipa 28 | *.dSYM.zip 29 | *.dSYM 30 | 31 | ## Playgrounds 32 | timeline.xctimeline 33 | playground.xcworkspace 34 | 35 | # Swift Package Manager 36 | # 37 | # Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. 38 | # Packages/ 39 | # Package.pins 40 | # Package.resolved 41 | .build/ 42 | 43 | # CocoaPods 44 | # 45 | # We recommend against adding the Pods directory to your .gitignore. However 46 | # you should judge for yourself, the pros and cons are mentioned at: 47 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control 48 | # 49 | # Pods/ 50 | 51 | # Carthage 52 | # 53 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 54 | # Carthage/Checkouts 55 | 56 | Carthage/Build 57 | 58 | # fastlane 59 | # 60 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 61 | # screenshots whenever they are needed. 62 | # For more information about the recommended setup visit: 63 | # https://docs.fastlane.tools/best-practices/source-control/#source-control 64 | 65 | fastlane/report.xml 66 | fastlane/Preview.html 67 | fastlane/screenshots/**/*.png 68 | fastlane/test_output 69 | -------------------------------------------------------------------------------- /CFStreamingVideo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CFStreamingVideo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CFStreamingVideo.xcodeproj/project.xcworkspace/xcuserdata/WangShi.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo.xcodeproj/project.xcworkspace/xcuserdata/WangShi.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /CFStreamingVideo.xcodeproj/xcuserdata/WangShi.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | CFStreamingVideo.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 9 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 0C67453E230A7C9B008B99B9 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /CFStreamingVideo.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /CFStreamingVideo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CFStreamingVideo.xcworkspace/xcuserdata/WangShi.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo.xcworkspace/xcuserdata/WangShi.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /CFStreamingVideo.xcworkspace/xcuserdata/WangShi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | -------------------------------------------------------------------------------- /CFStreamingVideo/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/.DS_Store -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/.DS_Store -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/homeIcon/.DS_Store -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/ad1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ad1@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/ad1.imageset/ad1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/homeIcon/ad1.imageset/ad1@2x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/ad2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ad2@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/ad2.imageset/ad2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/homeIcon/ad2.imageset/ad2@2x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/ad3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ad3@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/ad3.imageset/ad3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/homeIcon/ad3.imageset/ad3@2x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/arrow_s_12x12_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "arrow_s_12x12_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "arrow_s_12x12_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/arrow_s_12x12_.imageset/arrow_s_12x12_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/homeIcon/arrow_s_12x12_.imageset/arrow_s_12x12_@2x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/arrow_s_12x12_.imageset/arrow_s_12x12_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/homeIcon/arrow_s_12x12_.imageset/arrow_s_12x12_@3x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/detail_player_control_pause_new1_24x24_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "detail_player_control_pause_new1_24x24_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "detail_player_control_pause_new1_24x24_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/detail_player_control_pause_new1_24x24_.imageset/detail_player_control_pause_new1_24x24_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/homeIcon/detail_player_control_pause_new1_24x24_.imageset/detail_player_control_pause_new1_24x24_@2x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/detail_player_control_pause_new1_24x24_.imageset/detail_player_control_pause_new1_24x24_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/homeIcon/detail_player_control_pause_new1_24x24_.imageset/detail_player_control_pause_new1_24x24_@3x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/detail_player_control_play_new2_24x24_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "detail_player_control_play_new2_24x24_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "detail_player_control_play_new2_24x24_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/detail_player_control_play_new2_24x24_.imageset/detail_player_control_play_new2_24x24_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/homeIcon/detail_player_control_play_new2_24x24_.imageset/detail_player_control_play_new2_24x24_@2x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/detail_player_control_play_new2_24x24_.imageset/detail_player_control_play_new2_24x24_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/homeIcon/detail_player_control_play_new2_24x24_.imageset/detail_player_control_play_new2_24x24_@3x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/detail_player_red_progress_indicator_16x16_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "detail_player_red_progress_indicator_16x16_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "detail_player_red_progress_indicator_16x16_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/detail_player_red_progress_indicator_16x16_.imageset/detail_player_red_progress_indicator_16x16_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/homeIcon/detail_player_red_progress_indicator_16x16_.imageset/detail_player_red_progress_indicator_16x16_@2x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/detail_player_red_progress_indicator_16x16_.imageset/detail_player_red_progress_indicator_16x16_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/homeIcon/detail_player_red_progress_indicator_16x16_.imageset/detail_player_red_progress_indicator_16x16_@3x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/home_icon_search_white_30x30_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "home_icon_search_white_30x30_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "home_icon_search_white_30x30_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/home_icon_search_white_30x30_.imageset/home_icon_search_white_30x30_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/homeIcon/home_icon_search_white_30x30_.imageset/home_icon_search_white_30x30_@2x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/home_icon_search_white_30x30_.imageset/home_icon_search_white_30x30_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/homeIcon/home_icon_search_white_30x30_.imageset/home_icon_search_white_30x30_@3x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/home_top_channel_menu_30x30_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "home_top_channel_menu_30x30_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "home_top_channel_menu_30x30_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/home_top_channel_menu_30x30_.imageset/home_top_channel_menu_30x30_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/homeIcon/home_top_channel_menu_30x30_.imageset/home_top_channel_menu_30x30_@2x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/home_top_channel_menu_30x30_.imageset/home_top_channel_menu_30x30_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/homeIcon/home_top_channel_menu_30x30_.imageset/home_top_channel_menu_30x30_@3x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/home_topbar_icon_download_24x24_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "home_topbar_icon_download_24x24_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "home_topbar_icon_download_24x24_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/home_topbar_icon_download_24x24_.imageset/home_topbar_icon_download_24x24_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/homeIcon/home_topbar_icon_download_24x24_.imageset/home_topbar_icon_download_24x24_@2x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/home_topbar_icon_download_24x24_.imageset/home_topbar_icon_download_24x24_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/homeIcon/home_topbar_icon_download_24x24_.imageset/home_topbar_icon_download_24x24_@3x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/home_topbar_icon_filter_light_11x11_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "home_topbar_icon_filter_light_11x11_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "home_topbar_icon_filter_light_11x11_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/home_topbar_icon_filter_light_11x11_.imageset/home_topbar_icon_filter_light_11x11_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/homeIcon/home_topbar_icon_filter_light_11x11_.imageset/home_topbar_icon_filter_light_11x11_@2x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/home_topbar_icon_filter_light_11x11_.imageset/home_topbar_icon_filter_light_11x11_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/homeIcon/home_topbar_icon_filter_light_11x11_.imageset/home_topbar_icon_filter_light_11x11_@3x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/home_topbar_icon_history_light_24x24_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "home_topbar_icon_history_light_24x24_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "home_topbar_icon_history_light_24x24_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/home_topbar_icon_history_light_24x24_.imageset/home_topbar_icon_history_light_24x24_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/homeIcon/home_topbar_icon_history_light_24x24_.imageset/home_topbar_icon_history_light_24x24_@2x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/home_topbar_icon_history_light_24x24_.imageset/home_topbar_icon_history_light_24x24_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/homeIcon/home_topbar_icon_history_light_24x24_.imageset/home_topbar_icon_history_light_24x24_@3x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/sv_rotation_24x24_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "sv_rotation_24x24_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "sv_rotation_24x24_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/sv_rotation_24x24_.imageset/sv_rotation_24x24_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/homeIcon/sv_rotation_24x24_.imageset/sv_rotation_24x24_@2x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/sv_rotation_24x24_.imageset/sv_rotation_24x24_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/homeIcon/sv_rotation_24x24_.imageset/sv_rotation_24x24_@3x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/sv_slider_big_28x28_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "sv_slider_big_28x28_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "sv_slider_big_28x28_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/sv_slider_big_28x28_.imageset/sv_slider_big_28x28_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/homeIcon/sv_slider_big_28x28_.imageset/sv_slider_big_28x28_@2x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/sv_slider_big_28x28_.imageset/sv_slider_big_28x28_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/homeIcon/sv_slider_big_28x28_.imageset/sv_slider_big_28x28_@3x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/ykcomic_icon_back_white_24x24_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ykcomic_icon_back_white_24x24_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "ykcomic_icon_back_white_24x24_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/ykcomic_icon_back_white_24x24_.imageset/ykcomic_icon_back_white_24x24_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/homeIcon/ykcomic_icon_back_white_24x24_.imageset/ykcomic_icon_back_white_24x24_@2x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/homeIcon/ykcomic_icon_back_white_24x24_.imageset/ykcomic_icon_back_white_24x24_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/homeIcon/ykcomic_icon_back_white_24x24_.imageset/ykcomic_icon_back_white_24x24_@3x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/tabbarIcon/.DS_Store -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_discovery_normal_24x24_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "navbar_icon_discovery_normal_24x24_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "navbar_icon_discovery_normal_24x24_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_discovery_normal_24x24_.imageset/navbar_icon_discovery_normal_24x24_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_discovery_normal_24x24_.imageset/navbar_icon_discovery_normal_24x24_@2x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_discovery_normal_24x24_.imageset/navbar_icon_discovery_normal_24x24_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_discovery_normal_24x24_.imageset/navbar_icon_discovery_normal_24x24_@3x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_discovery_selected_24x24_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "navbar_icon_discovery_selected_24x24_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "navbar_icon_discovery_selected_24x24_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_discovery_selected_24x24_.imageset/navbar_icon_discovery_selected_24x24_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_discovery_selected_24x24_.imageset/navbar_icon_discovery_selected_24x24_@2x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_discovery_selected_24x24_.imageset/navbar_icon_discovery_selected_24x24_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_discovery_selected_24x24_.imageset/navbar_icon_discovery_selected_24x24_@3x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_home_normal_24x24_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "navbar_icon_home_normal_24x24_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "navbar_icon_home_normal_24x24_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_home_normal_24x24_.imageset/navbar_icon_home_normal_24x24_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_home_normal_24x24_.imageset/navbar_icon_home_normal_24x24_@2x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_home_normal_24x24_.imageset/navbar_icon_home_normal_24x24_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_home_normal_24x24_.imageset/navbar_icon_home_normal_24x24_@3x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_home_selected_24x24_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "navbar_icon_home_selected_24x24_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "navbar_icon_home_selected_24x24_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_home_selected_24x24_.imageset/navbar_icon_home_selected_24x24_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_home_selected_24x24_.imageset/navbar_icon_home_selected_24x24_@2x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_home_selected_24x24_.imageset/navbar_icon_home_selected_24x24_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_home_selected_24x24_.imageset/navbar_icon_home_selected_24x24_@3x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_planet_normal_24x24_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "navbar_icon_planet_normal_24x24_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "navbar_icon_planet_normal_24x24_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_planet_normal_24x24_.imageset/navbar_icon_planet_normal_24x24_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_planet_normal_24x24_.imageset/navbar_icon_planet_normal_24x24_@2x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_planet_normal_24x24_.imageset/navbar_icon_planet_normal_24x24_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_planet_normal_24x24_.imageset/navbar_icon_planet_normal_24x24_@3x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_planet_selected_24x24_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "navbar_icon_planet_selected_24x24_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "navbar_icon_planet_selected_24x24_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_planet_selected_24x24_.imageset/navbar_icon_planet_selected_24x24_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_planet_selected_24x24_.imageset/navbar_icon_planet_selected_24x24_@2x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_planet_selected_24x24_.imageset/navbar_icon_planet_selected_24x24_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_planet_selected_24x24_.imageset/navbar_icon_planet_selected_24x24_@3x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_user_normal_24x24_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "navbar_icon_user_normal_24x24_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "navbar_icon_user_normal_24x24_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_user_normal_24x24_.imageset/navbar_icon_user_normal_24x24_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_user_normal_24x24_.imageset/navbar_icon_user_normal_24x24_@2x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_user_normal_24x24_.imageset/navbar_icon_user_normal_24x24_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_user_normal_24x24_.imageset/navbar_icon_user_normal_24x24_@3x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_user_selected_24x24_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "navbar_icon_user_selected_24x24_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "navbar_icon_user_selected_24x24_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_user_selected_24x24_.imageset/navbar_icon_user_selected_24x24_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_user_selected_24x24_.imageset/navbar_icon_user_selected_24x24_@2x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_user_selected_24x24_.imageset/navbar_icon_user_selected_24x24_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_user_selected_24x24_.imageset/navbar_icon_user_selected_24x24_@3x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_vip_normal_24x24_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "navbar_icon_vip_normal_24x24_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "navbar_icon_vip_normal_24x24_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_vip_normal_24x24_.imageset/navbar_icon_vip_normal_24x24_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_vip_normal_24x24_.imageset/navbar_icon_vip_normal_24x24_@2x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_vip_normal_24x24_.imageset/navbar_icon_vip_normal_24x24_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_vip_normal_24x24_.imageset/navbar_icon_vip_normal_24x24_@3x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_vip_selected_24x24_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "navbar_icon_vip_selected_24x24_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "navbar_icon_vip_selected_24x24_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_vip_selected_24x24_.imageset/navbar_icon_vip_selected_24x24_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_vip_selected_24x24_.imageset/navbar_icon_vip_selected_24x24_@2x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_vip_selected_24x24_.imageset/navbar_icon_vip_selected_24x24_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Assets.xcassets/tabbarIcon/navbar_icon_vip_selected_24x24_.imageset/navbar_icon_vip_selected_24x24_@3x.png -------------------------------------------------------------------------------- /CFStreamingVideo/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /CFStreamingVideo/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /CFStreamingVideo/DataModel.xcdatamodeld/DataModel.xcdatamodel/contents: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /CFStreamingVideo/DataModel/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/DataModel/.DS_Store -------------------------------------------------------------------------------- /CFStreamingVideo/DataModel/DisplayData+CoreDataClass.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DisplayData+CoreDataClass.swift 3 | // CFStreamingVideo 4 | // 5 | // Created by chenfeng on 2019/9/24. 6 | // Copyright © 2019 chenfeng. All rights reserved. 7 | // 8 | // 9 | 10 | import Foundation 11 | import CoreData 12 | 13 | @objc(DisplayData) 14 | public class DisplayData: NSManagedObject { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /CFStreamingVideo/DataModel/DisplayData+CoreDataProperties.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DisplayData+CoreDataProperties.swift 3 | // CFStreamingVideo 4 | // 5 | // Created by chenfeng on 2019/9/24. 6 | // Copyright © 2019 chenfeng. All rights reserved. 7 | // 8 | // 9 | 10 | import Foundation 11 | import CoreData 12 | 13 | 14 | extension DisplayData { 15 | 16 | @nonobjc public class func fetchRequest() -> NSFetchRequest { 17 | return NSFetchRequest(entityName: "DisplayData") 18 | } 19 | 20 | @NSManaged public var title: String? 21 | @NSManaged public var controller: String? 22 | @NSManaged public var isAllowedEditing: Bool 23 | @NSManaged public var isNeedToDisplay: Bool 24 | 25 | } 26 | -------------------------------------------------------------------------------- /CFStreamingVideo/DataModel/MenuData+CoreDataClass.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MenuData+CoreDataClass.swift 3 | // CFStreamingVideo 4 | // 5 | // Created by chenfeng on 2019/9/25. 6 | // Copyright © 2019 chenfeng. All rights reserved. 7 | // 8 | // 9 | 10 | import Foundation 11 | import CoreData 12 | 13 | @objc(MenuData) 14 | public class MenuData: NSManagedObject { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /CFStreamingVideo/DataModel/MenuData+CoreDataProperties.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MenuData+CoreDataProperties.swift 3 | // CFStreamingVideo 4 | // 5 | // Created by chenfeng on 2019/9/25. 6 | // Copyright © 2019 chenfeng. All rights reserved. 7 | // 8 | // 9 | 10 | import Foundation 11 | import CoreData 12 | 13 | 14 | extension MenuData { 15 | 16 | @nonobjc public class func fetchRequest() -> NSFetchRequest { 17 | return NSFetchRequest(entityName: "MenuData") 18 | } 19 | 20 | @NSManaged public var title: String? 21 | @NSManaged public var controller: String? 22 | @NSManaged public var isNeedToDisplay: Bool 23 | @NSManaged public var isAllowedEditing: Bool 24 | 25 | } 26 | -------------------------------------------------------------------------------- /CFStreamingVideo/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(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 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | LSRequiresIPhoneOS 22 | 23 | UILaunchStoryboardName 24 | LaunchScreen 25 | UIMainStoryboardFile 26 | Main 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeRight 35 | 36 | UISupportedInterfaceOrientations~ipad 37 | 38 | UIInterfaceOrientationPortrait 39 | UIInterfaceOrientationPortraitUpsideDown 40 | UIInterfaceOrientationLandscapeLeft 41 | UIInterfaceOrientationLandscapeRight 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /CFStreamingVideo/Library/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Library/.DS_Store -------------------------------------------------------------------------------- /CFStreamingVideo/Library/CFPageScrollview/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/Library/CFPageScrollview/.DS_Store -------------------------------------------------------------------------------- /CFStreamingVideo/Library/CFPageScrollview/EditMenuCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // EditMenuCell.swift 3 | // CFStreamingVideo 4 | // 5 | // Created by chenfeng on 2019/9/18. 6 | // Copyright © 2019 chenfeng. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class MenuButton: UIButton { 12 | 13 | var indexPath: IndexPath! 14 | 15 | } 16 | 17 | class EditMenuCell: UICollectionViewCell { 18 | 19 | var editButton: MenuButton! 20 | var titleStr: UILabel! 21 | 22 | override init(frame: CGRect) { 23 | 24 | super.init(frame: frame) 25 | 26 | self.layer.masksToBounds = true 27 | self.layer.cornerRadius = 4 28 | self.backgroundColor = UIColor.white 29 | 30 | editButton = MenuButton(type: .custom) 31 | editButton.frame = CGRect(x: mj_w - 25, y: 0, width: 25, height: 25) 32 | editButton.setTitleColor(.red, for: .normal) 33 | editButton.titleLabel?.font = UIFont.boldSystemFont(ofSize: 18) 34 | self.contentView.addSubview(editButton) 35 | 36 | titleStr = UILabel.init(frame: CGRect(x: 15, y: self.mj_w - 40, width: self.mj_w - 30, height: 20)) 37 | titleStr.font = UIFont.systemFont(ofSize: 14) 38 | titleStr.textColor = UIColor.black 39 | self.contentView.addSubview(titleStr) 40 | 41 | } 42 | 43 | required init?(coder aDecoder: NSCoder) { 44 | fatalError("init(coder:) has not been implemented") 45 | } 46 | 47 | } 48 | -------------------------------------------------------------------------------- /CFStreamingVideo/Library/CFPageScrollview/EditMenuHeader.swift: -------------------------------------------------------------------------------- 1 | // 2 | // EditMenuHeader.swift 3 | // CFStreamingVideo 4 | // 5 | // Created by chenfeng on 2019/9/19. 6 | // Copyright © 2019 chenfeng. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class EditMenuHeader: UICollectionReusableView { 12 | 13 | var title: UILabel! 14 | 15 | override init(frame: CGRect) { 16 | super.init(frame: frame) 17 | 18 | title = UILabel.init(frame: CGRect(x: 15, y: 0, width: mj_w, height: 20)) 19 | title.textColor = .darkText 20 | title.font = UIFont.systemFont(ofSize: 16) 21 | addSubview(title) 22 | 23 | } 24 | 25 | required init?(coder aDecoder: NSCoder) { 26 | fatalError("init(coder:) has not been implemented") 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /CFStreamingVideo/Library/CFPageScrollview/NavigationItemViewCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NavigationItemViewCell.swift 3 | // CFStreamingVideo 4 | // 5 | // Created by chenfeng on 2019/8/21. 6 | // Copyright © 2019 chenfeng. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ZoomLabel: UILabel, ZoomAction { 12 | 13 | } 14 | 15 | class NavigationItemViewCell: UICollectionViewCell { 16 | 17 | var titleStr: ZoomLabel! 18 | 19 | override init(frame: CGRect) { 20 | 21 | super.init(frame: frame) 22 | 23 | self.backgroundColor = UIColor.clear 24 | 25 | titleStr = ZoomLabel.init(frame: CGRect(x: 0, y: 0, width: self.mj_w, height: self.mj_h)) 26 | titleStr.font = UIFont.boldSystemFont(ofSize: 20) 27 | titleStr.textAlignment = .center 28 | self.addSubview(titleStr) 29 | 30 | } 31 | 32 | required init?(coder aDecoder: NSCoder) { 33 | fatalError("init(coder:) has not been implemented") 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /CFStreamingVideo/Library/CFPageScrollview/ProtocolAction.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ProtocolAction.swift 3 | // CFStreamingVideo 4 | // 5 | // Created by chenfeng on 2019/8/27. 6 | // Copyright © 2019 chenfeng. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol ZoomAction { } 12 | 13 | extension ZoomAction where Self: UIView { 14 | 15 | func enlarge() { 16 | let animation = CABasicAnimation(keyPath: "transform.scale") 17 | animation.fromValue = NSNumber(value: 1) 18 | animation.toValue = NSNumber(value: 1.3) 19 | animation.duration = 0.25 20 | animation.isRemovedOnCompletion = false; 21 | animation.fillMode = .forwards 22 | self.layer.add(animation, forKey: "enlargeLayer") 23 | } 24 | 25 | func recovery() { 26 | let animation = CABasicAnimation(keyPath: "transform.scale") 27 | animation.fromValue = NSNumber(value: 1.3) 28 | animation.toValue = NSNumber(value: 1) 29 | animation.duration = 0.25 30 | animation.isRemovedOnCompletion = false; 31 | animation.fillMode = .forwards 32 | self.layer.add(animation, forKey: "recoveryLayer") 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /CFStreamingVideo/Library/Extension/extension+String.swift: -------------------------------------------------------------------------------- 1 | // 2 | // extension+String.swift 3 | // CFStreamingVideo 4 | // 5 | // Created by chenfeng on 2019/8/28. 6 | // Copyright © 2019 chenfeng. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension String { 12 | 13 | func sizeWithText(font: UIFont, size: CGSize) -> CGSize { 14 | let attributes = [NSAttributedString.Key.font: font] 15 | let option = NSStringDrawingOptions.usesLineFragmentOrigin 16 | let rect:CGRect = self.boundingRect(with: size, options: option, attributes: attributes, context: nil) 17 | return rect.size; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /CFStreamingVideo/MacroDefinition/GlobalConfigDefinition.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GlobalConfigDefinition.swift 3 | // CFStreamingVideo 4 | // 5 | // Created by chenfeng on 2019/8/21. 6 | // Copyright © 2019 chenfeng. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | let APPDELEGATE = UIApplication.shared.delegate as! AppDelegate 12 | 13 | let SCREEN_WIDTH = UIScreen.main.bounds.size.width 14 | let SCREEN_HEIGHT = UIScreen.main.bounds.size.height 15 | 16 | let STATUSBAR_HEIGHT = UIApplication.shared.statusBarFrame.size.height 17 | 18 | let IS_IPHONE_X = STATUSBAR_HEIGHT > 20 ? true : false 19 | 20 | let STATUS_AND_NAV_BAR_HEIGHT:CGFloat = IS_IPHONE_X == true ? 88.0 : 64.0 21 | let NAVBAR_HEIGHT:CGFloat = 44 22 | let TABBAR_HEIGHT:CGFloat = IS_IPHONE_X == true ? 83.0 : 49.0 23 | let BOTTOM_SAFE_HEIGHT:CGFloat = IS_IPHONE_X == true ? 34 : 0 24 | 25 | /* 26 | * 颜色 27 | */ 28 | 29 | let ThemeBlueColor = RGB(r: 47.0, g: 166.0, b: 252.0, a: 1.0)//蓝色 30 | let ThemeYellowColor = RGB(r: 234.0, g: 185.0, b: 120.0, a: 1.0)//黄色 31 | let ThemeGrayWhiteColor = RGB(r: 203.0, g: 204.0, b: 206.0, a: 1.0)//灰白 32 | let ThemeBlackColor = RGB(r: 29.0, g: 32.0, b: 41.0, a: 1.0)//黑色 33 | 34 | 35 | -------------------------------------------------------------------------------- /CFStreamingVideo/MacroDefinition/GlobalFun.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GlobalFun.swift 3 | // CFStreamingVideo 4 | // 5 | // Created by chenfeng on 2019/9/3. 6 | // Copyright © 2019 chenfeng. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | func RGB(r: CGFloat, g: CGFloat, b: CGFloat, a: CGFloat) -> UIColor { 12 | return UIColor(red: r/255, green: g/255, blue: b/255, alpha: 1.0) 13 | } 14 | 15 | func swiftClassFromString(className: String) -> AnyClass! { 16 | 17 | if let appName: String = Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as! String? { 18 | 19 | let classStringName = appName + "." + className 20 | return NSClassFromString(classStringName) 21 | } 22 | return nil; 23 | } 24 | -------------------------------------------------------------------------------- /CFStreamingVideo/PrefixHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // PrefixHeader.h 3 | // CFStreamingVideo 4 | // 5 | // Created by chenfeng on 2019/8/19. 6 | // Copyright © 2019 chenfeng. All rights reserved. 7 | // 8 | 9 | #ifndef PrefixHeader_h 10 | #define PrefixHeader_h 11 | 12 | #import "MJExtension.h" 13 | #import "MJRefresh.h" 14 | #import "SDCycleScrollView.h" 15 | #import "GYRollingNoticeView.h" 16 | 17 | #endif /* PrefixHeader_h */ 18 | -------------------------------------------------------------------------------- /CFStreamingVideo/ToolManager/CoreDataManager.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CoreDataManager.swift 3 | // CFStreamingVideo 4 | // 5 | // Created by chenfeng on 2019/9/29. 6 | // Copyright © 2019 chenfeng. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | 12 | class CoreDataManager: NSObject { 13 | 14 | ///获取上下文 15 | static var viewContext = APPDELEGATE.persistentContainer.viewContext 16 | 17 | ///Return - 实体模型 18 | class func getEntityAndInsertNewObjectWith(entityName: String) -> NSManagedObject { 19 | 20 | let model = NSEntityDescription.insertNewObject(forEntityName: entityName, into: APPDELEGATE.persistentContainer.viewContext) 21 | 22 | return model 23 | } 24 | 25 | ///保存 26 | class func saveContext() { 27 | APPDELEGATE.saveContext() 28 | } 29 | 30 | 31 | } 32 | -------------------------------------------------------------------------------- /CFStreamingVideo/ToolManager/ModelTool.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ModelTool.swift 3 | // SwiftOnlineShopDemo 4 | // 5 | // Created by chenfeng on 2019/5/8. 6 | // Copyright © 2019年 chenfeng. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class ModelTool: NSObject { 12 | 13 | //如果不了解泛型,请先去了解泛型 14 | class func dicToJSONModel(_ type:T.Type, withKeyValues data:[String:Any]) -> T where T:Decodable{ 15 | 16 | let jsonData = try? JSONSerialization.data(withJSONObject: data, options: []) 17 | let model = try? JSONDecoder().decode(type, from: jsonData!) 18 | 19 | return model! 20 | 21 | } 22 | 23 | class func arrayToJSONModel(_ type:T.Type, withKeyValuesArray datas: [[String:Any]]) -> [T] where T:Decodable{ 24 | var temp: [T] = [] 25 | for data in datas 26 | { 27 | let model:T? = dicToJSONModel(type, withKeyValues: data) 28 | 29 | if model == nil 30 | { 31 | continue 32 | } 33 | temp.append(model!) 34 | } 35 | return temp 36 | 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /CFStreamingVideo/ViewController/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/ViewController/.DS_Store -------------------------------------------------------------------------------- /CFStreamingVideo/ViewController/CFBaseController/CFBaseController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CFBaseController.swift 3 | // CFStreamingVideo 4 | // 5 | // Created by chenfeng on 2019/8/21. 6 | // Copyright © 2019 chenfeng. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class CFBaseController: UIViewController { 12 | 13 | var headerColor: UIColor!//视图往下滑动时,头部的遮罩颜色 14 | var headFillView: UIView!//视图往下滑动时,头部的遮罩视图 15 | 16 | override func viewDidLoad() { 17 | super.viewDidLoad() 18 | 19 | // Do any additional setup after loading the view. 20 | 21 | view.backgroundColor = UIColor.white 22 | 23 | //ScrollView类型的视图拉伸时头部填充视图 24 | headFillView = UIView.init(frame: CGRect(x: 0, y: 0, width: view.mj_w, height: 0.01)) 25 | headFillView.backgroundColor = headerColor 26 | view.addSubview(headFillView) 27 | 28 | } 29 | 30 | 31 | /* 32 | // MARK: - Navigation 33 | 34 | // In a storyboard-based application, you will often want to do a little preparation before navigation 35 | override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 36 | // Get the new view controller using segue.destination. 37 | // Pass the selected object to the new view controller. 38 | } 39 | */ 40 | 41 | } 42 | 43 | // MARK: - UIScrollViewDelegate 44 | extension ChildController1: UIScrollViewDelegate { 45 | 46 | func scrollViewDidScroll(_ scrollView: UIScrollView) { 47 | 48 | let offset = scrollView.contentOffset; 49 | print(offset.y); 50 | 51 | if offset.y < 0 { 52 | headFillView.mj_h = abs(offset.y); 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /CFStreamingVideo/ViewController/CFHomePageController/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/ViewController/CFHomePageController/.DS_Store -------------------------------------------------------------------------------- /CFStreamingVideo/ViewController/CFHomePageController/ChildController/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/ViewController/CFHomePageController/ChildController/.DS_Store -------------------------------------------------------------------------------- /CFStreamingVideo/ViewController/CFHomePageController/ChildController/Child1View/ADNoticeViewCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ADNoticeViewCell.swift 3 | // CFStreamingVideo 4 | // 5 | // Created by chenfeng on 2019/9/9. 6 | // Copyright © 2019 chenfeng. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ADNoticeViewCell: GYNoticeViewCell { 12 | 13 | var indicator: UIImageView! 14 | 15 | override init!(reuseIdentifier: String!) { 16 | super.init(reuseIdentifier: reuseIdentifier) 17 | 18 | indicator = UIImageView.init(image: UIImage.init(named: "arrow_s_12x12_")) 19 | 20 | addSubview(indicator) 21 | 22 | 23 | } 24 | 25 | required init!(coder aDecoder: NSCoder!) { 26 | fatalError("init(coder:) has not been implemented") 27 | } 28 | 29 | override func layoutSubviews() { 30 | super.layoutSubviews() 31 | 32 | indicator.frame = CGRect(x: mj_w - 12, y: mj_h/2 - 6, width: 12, height: 12) 33 | 34 | } 35 | 36 | /* 37 | // Only override draw() if you perform custom drawing. 38 | // An empty implementation adversely affects performance during animation. 39 | override func draw(_ rect: CGRect) { 40 | // Drawing code 41 | } 42 | */ 43 | 44 | } 45 | -------------------------------------------------------------------------------- /CFStreamingVideo/ViewController/CFHomePageController/ChildController/ChildController1/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/ViewController/CFHomePageController/ChildController/ChildController1/.DS_Store -------------------------------------------------------------------------------- /CFStreamingVideo/ViewController/CFHomePageController/ChildController/ChildController10.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ChildController10.swift 3 | // CFStreamingVideo 4 | // 5 | // Created by chenfeng on 2019/8/28. 6 | // Copyright © 2019 chenfeng. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ChildController10: CFBaseController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | 16 | // Do any additional setup after loading the view. 17 | 18 | view.backgroundColor = ThemeBlueColor 19 | 20 | let titleStr = UILabel.init(frame: CGRect(x: 50, y: 50, width: 100, height: 100)) 21 | titleStr.font = UIFont.boldSystemFont(ofSize: 20) 22 | titleStr.textAlignment = .center 23 | titleStr.text = "游戏" 24 | titleStr.textColor = UIColor.darkText 25 | view.addSubview(titleStr) 26 | 27 | } 28 | 29 | 30 | /* 31 | // MARK: - Navigation 32 | 33 | // In a storyboard-based application, you will often want to do a little preparation before navigation 34 | override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 35 | // Get the new view controller using segue.destination. 36 | // Pass the selected object to the new view controller. 37 | } 38 | */ 39 | 40 | } 41 | -------------------------------------------------------------------------------- /CFStreamingVideo/ViewController/CFHomePageController/ChildController/ChildController2.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ChildController2.swift 3 | // CFStreamingVideo 4 | // 5 | // Created by chenfeng on 2019/8/28. 6 | // Copyright © 2019 chenfeng. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ChildController2: CFBaseController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | 16 | // Do any additional setup after loading the view. 17 | 18 | view.backgroundColor = ThemeYellowColor 19 | 20 | let titleStr = UILabel.init(frame: CGRect(x: 50, y: 50, width: 100, height: 100)) 21 | titleStr.font = UIFont.boldSystemFont(ofSize: 20) 22 | titleStr.textAlignment = .center 23 | titleStr.text = "70年" 24 | titleStr.textColor = UIColor.darkText 25 | view.addSubview(titleStr) 26 | 27 | } 28 | 29 | 30 | /* 31 | // MARK: - Navigation 32 | 33 | // In a storyboard-based application, you will often want to do a little preparation before navigation 34 | override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 35 | // Get the new view controller using segue.destination. 36 | // Pass the selected object to the new view controller. 37 | } 38 | */ 39 | 40 | } 41 | -------------------------------------------------------------------------------- /CFStreamingVideo/ViewController/CFHomePageController/ChildController/ChildController3.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ChildController3.swift 3 | // CFStreamingVideo 4 | // 5 | // Created by chenfeng on 2019/8/28. 6 | // Copyright © 2019 chenfeng. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ChildController3: CFBaseController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | 16 | // Do any additional setup after loading the view. 17 | 18 | view.backgroundColor = ThemeBlueColor 19 | 20 | let titleStr = UILabel.init(frame: CGRect(x: 50, y: 50, width: 100, height: 100)) 21 | titleStr.font = UIFont.boldSystemFont(ofSize: 20) 22 | titleStr.textAlignment = .center 23 | titleStr.text = "花花物语" 24 | titleStr.textColor = UIColor.darkText 25 | view.addSubview(titleStr) 26 | } 27 | 28 | 29 | /* 30 | // MARK: - Navigation 31 | 32 | // In a storyboard-based application, you will often want to do a little preparation before navigation 33 | override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 34 | // Get the new view controller using segue.destination. 35 | // Pass the selected object to the new view controller. 36 | } 37 | */ 38 | 39 | } 40 | -------------------------------------------------------------------------------- /CFStreamingVideo/ViewController/CFHomePageController/ChildController/ChildController4.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ChildController4.swift 3 | // CFStreamingVideo 4 | // 5 | // Created by chenfeng on 2019/8/28. 6 | // Copyright © 2019 chenfeng. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ChildController4: CFBaseController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | 16 | // Do any additional setup after loading the view. 17 | 18 | let titleStr = UILabel.init(frame: CGRect(x: 50, y: 50, width: 100, height: 100)) 19 | titleStr.font = UIFont.boldSystemFont(ofSize: 20) 20 | titleStr.textAlignment = .center 21 | titleStr.text = "热点" 22 | titleStr.textColor = UIColor.darkText 23 | view.addSubview(titleStr) 24 | 25 | } 26 | 27 | 28 | /* 29 | // MARK: - Navigation 30 | 31 | // In a storyboard-based application, you will often want to do a little preparation before navigation 32 | override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 33 | // Get the new view controller using segue.destination. 34 | // Pass the selected object to the new view controller. 35 | } 36 | */ 37 | 38 | } 39 | -------------------------------------------------------------------------------- /CFStreamingVideo/ViewController/CFHomePageController/ChildController/ChildController5.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ChildController5.swift 3 | // CFStreamingVideo 4 | // 5 | // Created by chenfeng on 2019/8/28. 6 | // Copyright © 2019 chenfeng. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ChildController5: CFBaseController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | 16 | // Do any additional setup after loading the view. 17 | 18 | view.backgroundColor = ThemeBlueColor 19 | 20 | let titleStr = UILabel.init(frame: CGRect(x: 50, y: 50, width: 100, height: 100)) 21 | titleStr.font = UIFont.boldSystemFont(ofSize: 20) 22 | titleStr.textAlignment = .center 23 | titleStr.text = "剧集" 24 | titleStr.textColor = UIColor.darkText 25 | view.addSubview(titleStr) 26 | 27 | } 28 | 29 | 30 | /* 31 | // MARK: - Navigation 32 | 33 | // In a storyboard-based application, you will often want to do a little preparation before navigation 34 | override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 35 | // Get the new view controller using segue.destination. 36 | // Pass the selected object to the new view controller. 37 | } 38 | */ 39 | 40 | } 41 | -------------------------------------------------------------------------------- /CFStreamingVideo/ViewController/CFHomePageController/ChildController/ChildController6.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ChildController6.swift 3 | // CFStreamingVideo 4 | // 5 | // Created by chenfeng on 2019/8/28. 6 | // Copyright © 2019 chenfeng. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ChildController6: CFBaseController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | 16 | // Do any additional setup after loading the view. 17 | 18 | view.backgroundColor = ThemeYellowColor 19 | 20 | let titleStr = UILabel.init(frame: CGRect(x: 50, y: 50, width: 100, height: 100)) 21 | titleStr.font = UIFont.boldSystemFont(ofSize: 20) 22 | titleStr.textAlignment = .center 23 | titleStr.text = "电影" 24 | titleStr.textColor = UIColor.darkText 25 | view.addSubview(titleStr) 26 | 27 | } 28 | 29 | 30 | /* 31 | // MARK: - Navigation 32 | 33 | // In a storyboard-based application, you will often want to do a little preparation before navigation 34 | override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 35 | // Get the new view controller using segue.destination. 36 | // Pass the selected object to the new view controller. 37 | } 38 | */ 39 | 40 | } 41 | -------------------------------------------------------------------------------- /CFStreamingVideo/ViewController/CFHomePageController/ChildController/ChildController7.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ChildController7.swift 3 | // CFStreamingVideo 4 | // 5 | // Created by chenfeng on 2019/8/28. 6 | // Copyright © 2019 chenfeng. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ChildController7: CFBaseController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | 16 | // Do any additional setup after loading the view. 17 | 18 | view.backgroundColor = ThemeBlueColor 19 | 20 | let titleStr = UILabel.init(frame: CGRect(x: 50, y: 50, width: 100, height: 100)) 21 | titleStr.font = UIFont.boldSystemFont(ofSize: 20) 22 | titleStr.textAlignment = .center 23 | titleStr.text = "综艺" 24 | titleStr.textColor = UIColor.darkText 25 | view.addSubview(titleStr) 26 | } 27 | 28 | 29 | /* 30 | // MARK: - Navigation 31 | 32 | // In a storyboard-based application, you will often want to do a little preparation before navigation 33 | override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 34 | // Get the new view controller using segue.destination. 35 | // Pass the selected object to the new view controller. 36 | } 37 | */ 38 | 39 | } 40 | -------------------------------------------------------------------------------- /CFStreamingVideo/ViewController/CFHomePageController/ChildController/ChildController8.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ChildController8.swift 3 | // CFStreamingVideo 4 | // 5 | // Created by chenfeng on 2019/8/28. 6 | // Copyright © 2019 chenfeng. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ChildController8: CFBaseController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | 16 | // Do any additional setup after loading the view. 17 | 18 | view.backgroundColor = ThemeYellowColor 19 | 20 | let titleStr = UILabel.init(frame: CGRect(x: 50, y: 50, width: 100, height: 100)) 21 | titleStr.font = UIFont.boldSystemFont(ofSize: 20) 22 | titleStr.textAlignment = .center 23 | titleStr.text = "高清" 24 | titleStr.textColor = UIColor.darkText 25 | view.addSubview(titleStr) 26 | 27 | } 28 | 29 | 30 | /* 31 | // MARK: - Navigation 32 | 33 | // In a storyboard-based application, you will often want to do a little preparation before navigation 34 | override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 35 | // Get the new view controller using segue.destination. 36 | // Pass the selected object to the new view controller. 37 | } 38 | */ 39 | 40 | } 41 | -------------------------------------------------------------------------------- /CFStreamingVideo/ViewController/CFHomePageController/ChildController/ChildController9.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ChildController9.swift 3 | // CFStreamingVideo 4 | // 5 | // Created by chenfeng on 2019/8/28. 6 | // Copyright © 2019 chenfeng. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ChildController9: CFBaseController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | 16 | // Do any additional setup after loading the view. 17 | 18 | let titleStr = UILabel.init(frame: CGRect(x: 50, y: 50, width: 100, height: 100)) 19 | titleStr.font = UIFont.boldSystemFont(ofSize: 20) 20 | titleStr.textAlignment = .center 21 | titleStr.text = "网络" 22 | titleStr.textColor = UIColor.darkText 23 | view.addSubview(titleStr) 24 | 25 | } 26 | 27 | 28 | /* 29 | // MARK: - Navigation 30 | 31 | // In a storyboard-based application, you will often want to do a little preparation before navigation 32 | override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 33 | // Get the new view controller using segue.destination. 34 | // Pass the selected object to the new view controller. 35 | } 36 | */ 37 | 38 | } 39 | -------------------------------------------------------------------------------- /CFStreamingVideo/ViewController/CFHomePageController/View/SearchView2.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SearchView2.swift 3 | // CFStreamingVideo 4 | // 5 | // Created by chenfeng on 2019/9/5. 6 | // Copyright © 2019 chenfeng. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class SearchView2: BaseSearchView { 12 | 13 | override init(frame: CGRect) { 14 | super.init(frame: frame) 15 | 16 | searchButton = UIButton(type: .custom) 17 | searchButton.frame = CGRect(x: 15, y: 5, width: SCREEN_WIDTH - 30, height: 50 - 16) 18 | searchButton.backgroundColor = bgColor 19 | searchButton.layer.masksToBounds = true 20 | searchButton.layer.cornerRadius = 17 21 | searchButton.setTitle("秦时明月之谁是惊鲵", for: .normal) 22 | searchButton.setTitleColor(textColor, for: .normal) 23 | addSubview(searchButton) 24 | 25 | var image = UIImage.init(named: "home_icon_search_white_30x30_") 26 | image = image?.withRenderingMode(.alwaysTemplate) 27 | 28 | searchImage = UIImageView.init(frame: CGRect(x: searchButton.mj_w - 40, y: 2, width: 30, height: 30)) 29 | searchImage.image = image 30 | searchImage.tintColor = imageColor 31 | searchButton.addSubview(searchImage) 32 | 33 | } 34 | 35 | required init?(coder aDecoder: NSCoder) { 36 | fatalError("init(coder:) has not been implemented") 37 | } 38 | 39 | /* 40 | // Only override draw() if you perform custom drawing. 41 | // An empty implementation adversely affects performance during animation. 42 | override func draw(_ rect: CGRect) { 43 | // Drawing code 44 | } 45 | */ 46 | 47 | } 48 | -------------------------------------------------------------------------------- /CFStreamingVideo/ViewController/CFHotspotController/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/ViewController/CFHotspotController/.DS_Store -------------------------------------------------------------------------------- /CFStreamingVideo/ViewController/CFHotspotController/ChildController/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/ViewController/CFHotspotController/ChildController/.DS_Store -------------------------------------------------------------------------------- /CFStreamingVideo/ViewController/CFHotspotController/ChildController/View/HotspotCell1.swift: -------------------------------------------------------------------------------- 1 | // 2 | // HotspotCell1.swift 3 | // CFStreamingVideo 4 | // 5 | // Created by chenfeng on 2019/10/9. 6 | // Copyright © 2019 chenfeng. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class HotspotCell1: UITableViewCell { 12 | 13 | var imageVW: UIImageView! 14 | var titleStr: UILabel! 15 | 16 | override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { 17 | 18 | super.init(style: style, reuseIdentifier: reuseIdentifier) 19 | 20 | imageVW = UIImageView.init(frame: CGRect(x: 0, y: 0, width: SCREEN_WIDTH, height: 160)) 21 | contentView.addSubview(imageVW) 22 | 23 | titleStr = UILabel.init(frame: CGRect(x: 15, y: imageVW.frame.maxY + 10, width: self.mj_w - 30, height: 20)) 24 | titleStr.font = UIFont.systemFont(ofSize: 14) 25 | titleStr.textColor = UIColor.black 26 | contentView.addSubview(titleStr) 27 | 28 | } 29 | 30 | required init?(coder: NSCoder) { 31 | fatalError("init(coder:) has not been implemented") 32 | } 33 | 34 | override func awakeFromNib() { 35 | super.awakeFromNib() 36 | // Initialization code 37 | } 38 | 39 | override func setSelected(_ selected: Bool, animated: Bool) { 40 | super.setSelected(selected, animated: animated) 41 | 42 | // Configure the view for the selected state 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /CFStreamingVideo/ViewController/CFHotspotController/View/HotspotSearchView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // HotspotSearchView.swift 3 | // CFStreamingVideo 4 | // 5 | // Created by chenfeng on 2019/10/8. 6 | // Copyright © 2019 chenfeng. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class HotspotSearchView: BaseSearchView { 12 | 13 | override init(frame: CGRect) { 14 | super.init(frame: frame) 15 | 16 | searchButton = UIButton(type: .custom) 17 | searchButton.frame = CGRect(x: 15, y: 5, width: SCREEN_WIDTH - 30, height: 50 - 16) 18 | searchButton.backgroundColor = RGB(r: 44.0, g: 47.0, b: 55.0, a: 1.0) 19 | searchButton.layer.masksToBounds = true 20 | searchButton.layer.cornerRadius = 17 21 | addSubview(searchButton) 22 | 23 | searchImage = UIImageView.init(frame: CGRect(x: searchButton.mj_w - 40, y: 2, width: 30, height: 30)) 24 | searchImage.image = UIImage.init(named: "home_icon_search_white_30x30_") 25 | searchButton.addSubview(searchImage) 26 | 27 | } 28 | 29 | required init?(coder aDecoder: NSCoder) { 30 | fatalError("init(coder:) has not been implemented") 31 | } 32 | 33 | /* 34 | // Only override draw() if you perform custom drawing. 35 | // An empty implementation adversely affects performance during animation. 36 | override func draw(_ rect: CGRect) { 37 | // Drawing code 38 | } 39 | */ 40 | 41 | } 42 | -------------------------------------------------------------------------------- /CFStreamingVideo/ViewController/CFMyInfoController/CFMyInfoController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CFMyInfoController.swift 3 | // CFStreamingVideo 4 | // 5 | // Created by chenfeng on 2019/8/21. 6 | // Copyright © 2019 chenfeng. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class CFMyInfoController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | 16 | // Do any additional setup after loading the view. 17 | } 18 | 19 | 20 | /* 21 | // MARK: - Navigation 22 | 23 | // In a storyboard-based application, you will often want to do a little preparation before navigation 24 | override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 25 | // Get the new view controller using segue.destination. 26 | // Pass the selected object to the new view controller. 27 | } 28 | */ 29 | 30 | } 31 | -------------------------------------------------------------------------------- /CFStreamingVideo/ViewController/CFStarController/CFStarController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CFStarController.swift 3 | // CFStreamingVideo 4 | // 5 | // Created by chenfeng on 2019/8/21. 6 | // Copyright © 2019 chenfeng. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class CFStarController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | 16 | // Do any additional setup after loading the view. 17 | } 18 | 19 | 20 | /* 21 | // MARK: - Navigation 22 | 23 | // In a storyboard-based application, you will often want to do a little preparation before navigation 24 | override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 25 | // Get the new view controller using segue.destination. 26 | // Pass the selected object to the new view controller. 27 | } 28 | */ 29 | 30 | } 31 | -------------------------------------------------------------------------------- /CFStreamingVideo/ViewController/CFTabBarController/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/CFStreamingVideo/ViewController/CFTabBarController/.DS_Store -------------------------------------------------------------------------------- /CFStreamingVideo/ViewController/CFVIPMemberController/CFVIPMemberController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CFVIPMemberController.swift 3 | // CFStreamingVideo 4 | // 5 | // Created by chenfeng on 2019/8/21. 6 | // Copyright © 2019 chenfeng. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class CFVIPMemberController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | 16 | // Do any additional setup after loading the view. 17 | } 18 | 19 | 20 | /* 21 | // MARK: - Navigation 22 | 23 | // In a storyboard-based application, you will often want to do a little preparation before navigation 24 | override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 25 | // Get the new view controller using segue.destination. 26 | // Pass the selected object to the new view controller. 27 | } 28 | */ 29 | 30 | } 31 | -------------------------------------------------------------------------------- /CFStreamingVideo/swift_oc_briding_Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // swift_oc_briding_Header.h 3 | // CFStreamingVideo 4 | // 5 | // Created by chenfeng on 2019/8/19. 6 | // Copyright © 2019 chenfeng. All rights reserved. 7 | // 8 | 9 | #ifndef swift_oc_briding_Header_h 10 | #define swift_oc_briding_Header_h 11 | 12 | #import "PrefixHeader.h" 13 | 14 | #endif /* swift_oc_briding_Header_h */ 15 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 chenfengxiaoxixi 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 | -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- 1 | source 'https://github.com/CocoaPods/Specs.git' 2 | platform:ios,'9.0' 3 | 4 | target 'CFStreamingVideo' do 5 | 6 | pod 'MJExtension' 7 | pod 'MJRefresh' 8 | pod 'SDCycleScrollView' 9 | pod 'RollingNotice' 10 | 11 | end 12 | -------------------------------------------------------------------------------- /Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - MJExtension (3.0.13) 3 | - MJRefresh (3.1.15.1) 4 | - RollingNotice (1.0.2) 5 | - SDCycleScrollView (1.75): 6 | - SDWebImage (>= 4.0.0) 7 | - SDWebImage (4.2.3): 8 | - SDWebImage/Core (= 4.2.3) 9 | - SDWebImage/Core (4.2.3) 10 | 11 | DEPENDENCIES: 12 | - MJExtension 13 | - MJRefresh 14 | - RollingNotice 15 | - SDCycleScrollView 16 | 17 | SPEC REPOS: 18 | https://github.com/CocoaPods/Specs.git: 19 | - MJExtension 20 | - MJRefresh 21 | - RollingNotice 22 | - SDCycleScrollView 23 | - SDWebImage 24 | 25 | SPEC CHECKSUMS: 26 | MJExtension: 5932755f451458eefa24239358817f8d291240c7 27 | MJRefresh: 5f8552bc25ca8751c010f621c1098dbdaacbccd6 28 | RollingNotice: 792a2712563d00191eb519c86b4825401a302c51 29 | SDCycleScrollView: 884b88f0266dd4708a0e1934975c69cb971707b1 30 | SDWebImage: 791bb72962b3492327ddcac4b1880bd1b5458431 31 | 32 | PODFILE CHECKSUM: 682ec247d0702751b72e8d7999d0466c98f6a556 33 | 34 | COCOAPODS: 1.9.1 35 | -------------------------------------------------------------------------------- /Pods/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/Pods/.DS_Store -------------------------------------------------------------------------------- /Pods/Headers/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/Pods/Headers/.DS_Store -------------------------------------------------------------------------------- /Pods/Headers/Private/MJExtension/MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/MJExtension.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJExtension/MJExtensionConst.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/MJExtensionConst.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJExtension/MJFoundation.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/MJFoundation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJExtension/MJProperty.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/MJProperty.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJExtension/MJPropertyKey.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/MJPropertyKey.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJExtension/MJPropertyType.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/MJPropertyType.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJExtension/NSObject+MJClass.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/NSObject+MJClass.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJExtension/NSObject+MJCoding.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/NSObject+MJCoding.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJExtension/NSObject+MJKeyValue.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/NSObject+MJKeyValue.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJExtension/NSObject+MJProperty.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/NSObject+MJProperty.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJExtension/NSString+MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/NSString+MJExtension.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/MJRefresh.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshAutoFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshAutoFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshAutoGifFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshAutoNormalFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshAutoStateFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshBackFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshBackFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshBackGifFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshBackNormalFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshBackStateFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshComponent.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshComponent.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshConst.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/MJRefreshConst.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshGifHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshGifHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshNormalHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshNormalHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshStateHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshStateHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/NSBundle+MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/NSBundle+MJRefresh.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/UIScrollView+MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIScrollView+MJExtension.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/UIScrollView+MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIScrollView+MJRefresh.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/UIView+MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIView+MJExtension.h -------------------------------------------------------------------------------- /Pods/Headers/Private/RollingNotice/GYNoticeViewCell.h: -------------------------------------------------------------------------------- 1 | ../../../RollingNotice/RollingNotice/GYRollingNoticeView/GYNoticeViewCell.h -------------------------------------------------------------------------------- /Pods/Headers/Private/RollingNotice/GYRollingNoticeView.h: -------------------------------------------------------------------------------- 1 | ../../../RollingNotice/RollingNotice/GYRollingNoticeView/GYRollingNoticeView.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDCycleScrollView/SDCollectionViewCell.h: -------------------------------------------------------------------------------- 1 | ../../../SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/SDCollectionViewCell.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDCycleScrollView/SDCycleScrollView.h: -------------------------------------------------------------------------------- 1 | ../../../SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/SDCycleScrollView.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDCycleScrollView/TAAbstractDotView.h: -------------------------------------------------------------------------------- 1 | ../../../SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAAbstractDotView.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDCycleScrollView/TAAnimatedDotView.h: -------------------------------------------------------------------------------- 1 | ../../../SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAAnimatedDotView.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDCycleScrollView/TADotView.h: -------------------------------------------------------------------------------- 1 | ../../../SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TADotView.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDCycleScrollView/TAPageControl.h: -------------------------------------------------------------------------------- 1 | ../../../SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAPageControl.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDCycleScrollView/UIView+SDExtension.h: -------------------------------------------------------------------------------- 1 | ../../../SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/UIView+SDExtension.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/NSData+ImageContentType.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/NSData+ImageContentType.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/NSImage+WebCache.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/NSImage+WebCache.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDImageCache.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDImageCache.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDImageCacheConfig.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDImageCacheConfig.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDWebImageCoder.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageCoder.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDWebImageCoderHelper.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageCoderHelper.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDWebImageCodersManager.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageCodersManager.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDWebImageCompat.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageCompat.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDWebImageDownloader.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageDownloader.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDWebImageDownloaderOperation.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageDownloaderOperation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDWebImageFrame.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageFrame.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDWebImageGIFCoder.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageGIFCoder.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDWebImageImageIOCoder.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageImageIOCoder.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDWebImageManager.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageManager.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDWebImageOperation.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageOperation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDWebImagePrefetcher.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImagePrefetcher.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/UIButton+WebCache.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIButton+WebCache.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/UIImage+ForceDecode.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIImage+ForceDecode.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/UIImage+GIF.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIImage+GIF.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/UIImage+MultiFormat.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIImage+MultiFormat.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/UIImageView+HighlightedWebCache.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIImageView+HighlightedWebCache.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/UIImageView+WebCache.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIImageView+WebCache.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/UIView+WebCache.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIView+WebCache.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/UIView+WebCacheOperation.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIView+WebCacheOperation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJExtension/MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/MJExtension.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJExtension/MJExtensionConst.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/MJExtensionConst.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJExtension/MJFoundation.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/MJFoundation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJExtension/MJProperty.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/MJProperty.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJExtension/MJPropertyKey.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/MJPropertyKey.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJExtension/MJPropertyType.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/MJPropertyType.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJExtension/NSObject+MJClass.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/NSObject+MJClass.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJExtension/NSObject+MJCoding.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/NSObject+MJCoding.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJExtension/NSObject+MJKeyValue.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/NSObject+MJKeyValue.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJExtension/NSObject+MJProperty.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/NSObject+MJProperty.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJExtension/NSString+MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/NSString+MJExtension.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/MJRefresh.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshAutoFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshAutoFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshAutoGifFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshAutoNormalFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshAutoStateFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshBackFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshBackFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshBackGifFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshBackNormalFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshBackStateFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshComponent.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshComponent.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshConst.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/MJRefreshConst.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshGifHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshGifHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshNormalHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshNormalHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshStateHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshStateHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/NSBundle+MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/NSBundle+MJRefresh.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/UIScrollView+MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIScrollView+MJExtension.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/UIScrollView+MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIScrollView+MJRefresh.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/UIView+MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIView+MJExtension.h -------------------------------------------------------------------------------- /Pods/Headers/Public/RollingNotice/GYNoticeViewCell.h: -------------------------------------------------------------------------------- 1 | ../../../RollingNotice/RollingNotice/GYRollingNoticeView/GYNoticeViewCell.h -------------------------------------------------------------------------------- /Pods/Headers/Public/RollingNotice/GYRollingNoticeView.h: -------------------------------------------------------------------------------- 1 | ../../../RollingNotice/RollingNotice/GYRollingNoticeView/GYRollingNoticeView.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDCycleScrollView/SDCollectionViewCell.h: -------------------------------------------------------------------------------- 1 | ../../../SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/SDCollectionViewCell.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDCycleScrollView/SDCycleScrollView.h: -------------------------------------------------------------------------------- 1 | ../../../SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/SDCycleScrollView.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDCycleScrollView/TAAbstractDotView.h: -------------------------------------------------------------------------------- 1 | ../../../SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAAbstractDotView.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDCycleScrollView/TAAnimatedDotView.h: -------------------------------------------------------------------------------- 1 | ../../../SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAAnimatedDotView.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDCycleScrollView/TADotView.h: -------------------------------------------------------------------------------- 1 | ../../../SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TADotView.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDCycleScrollView/TAPageControl.h: -------------------------------------------------------------------------------- 1 | ../../../SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAPageControl.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDCycleScrollView/UIView+SDExtension.h: -------------------------------------------------------------------------------- 1 | ../../../SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/UIView+SDExtension.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/NSData+ImageContentType.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/NSData+ImageContentType.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/NSImage+WebCache.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/NSImage+WebCache.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDImageCache.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDImageCache.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDImageCacheConfig.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDImageCacheConfig.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDWebImageCoder.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageCoder.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDWebImageCoderHelper.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageCoderHelper.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDWebImageCodersManager.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageCodersManager.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDWebImageCompat.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageCompat.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDWebImageDownloader.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageDownloader.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDWebImageDownloaderOperation.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageDownloaderOperation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDWebImageFrame.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageFrame.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDWebImageGIFCoder.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageGIFCoder.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDWebImageImageIOCoder.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageImageIOCoder.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDWebImageManager.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageManager.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDWebImageOperation.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageOperation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDWebImagePrefetcher.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImagePrefetcher.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/UIButton+WebCache.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIButton+WebCache.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/UIImage+ForceDecode.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIImage+ForceDecode.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/UIImage+GIF.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIImage+GIF.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/UIImage+MultiFormat.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIImage+MultiFormat.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/UIImageView+HighlightedWebCache.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIImageView+HighlightedWebCache.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/UIImageView+WebCache.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIImageView+WebCache.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/UIView+WebCache.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIView+WebCache.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/UIView+WebCacheOperation.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIView+WebCacheOperation.h -------------------------------------------------------------------------------- /Pods/MJExtension/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013-2015 MJExtension (https://github.com/CoderMJLee/MJExtension) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Pods/MJExtension/MJExtension/MJExtension.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJExtension.h 3 | // MJExtension 4 | // 5 | // Created by mj on 14-1-15. 6 | // Copyright (c) 2014年 小码哥. All rights reserved. 7 | // 代码地址:https://github.com/CoderMJLee/MJExtension 8 | // 代码地址:http://code4app.com/ios/%E5%AD%97%E5%85%B8-JSON-%E4%B8%8E%E6%A8%A1%E5%9E%8B%E7%9A%84%E8%BD%AC%E6%8D%A2/5339992a933bf062608b4c57 9 | 10 | #import "NSObject+MJCoding.h" 11 | #import "NSObject+MJProperty.h" 12 | #import "NSObject+MJClass.h" 13 | #import "NSObject+MJKeyValue.h" 14 | #import "NSString+MJExtension.h" 15 | #import "MJExtensionConst.h" -------------------------------------------------------------------------------- /Pods/MJExtension/MJExtension/MJExtensionConst.m: -------------------------------------------------------------------------------- 1 | #ifndef __MJExtensionConst__M__ 2 | #define __MJExtensionConst__M__ 3 | 4 | #import 5 | 6 | /** 7 | * 成员变量类型(属性类型) 8 | */ 9 | NSString *const MJPropertyTypeInt = @"i"; 10 | NSString *const MJPropertyTypeShort = @"s"; 11 | NSString *const MJPropertyTypeFloat = @"f"; 12 | NSString *const MJPropertyTypeDouble = @"d"; 13 | NSString *const MJPropertyTypeLong = @"l"; 14 | NSString *const MJPropertyTypeLongLong = @"q"; 15 | NSString *const MJPropertyTypeChar = @"c"; 16 | NSString *const MJPropertyTypeBOOL1 = @"c"; 17 | NSString *const MJPropertyTypeBOOL2 = @"b"; 18 | NSString *const MJPropertyTypePointer = @"*"; 19 | 20 | NSString *const MJPropertyTypeIvar = @"^{objc_ivar=}"; 21 | NSString *const MJPropertyTypeMethod = @"^{objc_method=}"; 22 | NSString *const MJPropertyTypeBlock = @"@?"; 23 | NSString *const MJPropertyTypeClass = @"#"; 24 | NSString *const MJPropertyTypeSEL = @":"; 25 | NSString *const MJPropertyTypeId = @"@"; 26 | 27 | #endif -------------------------------------------------------------------------------- /Pods/MJExtension/MJExtension/MJFoundation.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJFoundation.h 3 | // MJExtensionExample 4 | // 5 | // Created by MJ Lee on 14/7/16. 6 | // Copyright (c) 2014年 小码哥. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MJFoundation : NSObject 12 | + (BOOL)isClassFromFoundation:(Class)c; 13 | @end 14 | -------------------------------------------------------------------------------- /Pods/MJExtension/MJExtension/MJFoundation.m: -------------------------------------------------------------------------------- 1 | // 2 | // MJFoundation.m 3 | // MJExtensionExample 4 | // 5 | // Created by MJ Lee on 14/7/16. 6 | // Copyright (c) 2014年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJFoundation.h" 10 | #import "MJExtensionConst.h" 11 | #import 12 | 13 | static NSSet *foundationClasses_; 14 | 15 | @implementation MJFoundation 16 | 17 | + (NSSet *)foundationClasses 18 | { 19 | if (foundationClasses_ == nil) { 20 | // 集合中没有NSObject,因为几乎所有的类都是继承自NSObject,具体是不是NSObject需要特殊判断 21 | foundationClasses_ = [NSSet setWithObjects: 22 | [NSURL class], 23 | [NSDate class], 24 | [NSValue class], 25 | [NSData class], 26 | [NSError class], 27 | [NSArray class], 28 | [NSDictionary class], 29 | [NSString class], 30 | [NSAttributedString class], nil]; 31 | } 32 | return foundationClasses_; 33 | } 34 | 35 | + (BOOL)isClassFromFoundation:(Class)c 36 | { 37 | if (c == [NSObject class] || c == [NSManagedObject class]) return YES; 38 | 39 | __block BOOL result = NO; 40 | [[self foundationClasses] enumerateObjectsUsingBlock:^(Class foundationClass, BOOL *stop) { 41 | if ([c isSubclassOfClass:foundationClass]) { 42 | result = YES; 43 | *stop = YES; 44 | } 45 | }]; 46 | return result; 47 | } 48 | @end 49 | -------------------------------------------------------------------------------- /Pods/MJExtension/MJExtension/MJProperty.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJProperty.h 3 | // MJExtensionExample 4 | // 5 | // Created by MJ Lee on 15/4/17. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 包装一个成员属性 8 | 9 | #import 10 | #import 11 | #import "MJPropertyType.h" 12 | #import "MJPropertyKey.h" 13 | 14 | /** 15 | * 包装一个成员 16 | */ 17 | @interface MJProperty : NSObject 18 | /** 成员属性 */ 19 | @property (nonatomic, assign) objc_property_t property; 20 | /** 成员属性的名字 */ 21 | @property (nonatomic, readonly) NSString *name; 22 | 23 | /** 成员属性的类型 */ 24 | @property (nonatomic, readonly) MJPropertyType *type; 25 | /** 成员属性来源于哪个类(可能是父类) */ 26 | @property (nonatomic, assign) Class srcClass; 27 | 28 | /**** 同一个成员属性 - 父类和子类的行为可能不一致(originKey、propertyKeys、objectClassInArray) ****/ 29 | /** 设置最原始的key */ 30 | - (void)setOriginKey:(id)originKey forClass:(Class)c; 31 | /** 对应着字典中的多级key(里面存放的数组,数组里面都是MJPropertyKey对象) */ 32 | - (NSArray *)propertyKeysForClass:(Class)c; 33 | 34 | /** 模型数组中的模型类型 */ 35 | - (void)setObjectClassInArray:(Class)objectClass forClass:(Class)c; 36 | - (Class)objectClassInArrayForClass:(Class)c; 37 | /**** 同一个成员变量 - 父类和子类的行为可能不一致(key、keys、objectClassInArray) ****/ 38 | 39 | /** 40 | * 设置object的成员变量值 41 | */ 42 | - (void)setValue:(id)value forObject:(id)object; 43 | /** 44 | * 得到object的成员属性值 45 | */ 46 | - (id)valueForObject:(id)object; 47 | 48 | /** 49 | * 初始化 50 | */ 51 | + (instancetype)cachedPropertyWithProperty:(objc_property_t)property; 52 | 53 | @end 54 | -------------------------------------------------------------------------------- /Pods/MJExtension/MJExtension/MJPropertyKey.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJPropertyKey.h 3 | // MJExtensionExample 4 | // 5 | // Created by MJ Lee on 15/8/11. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | typedef enum { 12 | MJPropertyKeyTypeDictionary = 0, // 字典的key 13 | MJPropertyKeyTypeArray // 数组的key 14 | } MJPropertyKeyType; 15 | 16 | /** 17 | * 属性的key 18 | */ 19 | @interface MJPropertyKey : NSObject 20 | /** key的名字 */ 21 | @property (copy, nonatomic) NSString *name; 22 | /** key的种类,可能是@"10",可能是@"age" */ 23 | @property (assign, nonatomic) MJPropertyKeyType type; 24 | 25 | /** 26 | * 根据当前的key,也就是name,从object(字典或者数组)中取值 27 | */ 28 | - (id)valueInObject:(id)object; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Pods/MJExtension/MJExtension/MJPropertyKey.m: -------------------------------------------------------------------------------- 1 | // 2 | // MJPropertyKey.m 3 | // MJExtensionExample 4 | // 5 | // Created by MJ Lee on 15/8/11. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJPropertyKey.h" 10 | 11 | @implementation MJPropertyKey 12 | 13 | - (id)valueInObject:(id)object 14 | { 15 | if ([object isKindOfClass:[NSDictionary class]] && self.type == MJPropertyKeyTypeDictionary) { 16 | return object[self.name]; 17 | } else if ([object isKindOfClass:[NSArray class]] && self.type == MJPropertyKeyTypeArray) { 18 | NSArray *array = object; 19 | NSUInteger index = self.name.intValue; 20 | if (index < array.count) return array[index]; 21 | return nil; 22 | } 23 | return nil; 24 | } 25 | @end 26 | -------------------------------------------------------------------------------- /Pods/MJExtension/MJExtension/MJPropertyType.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJPropertyType.h 3 | // MJExtension 4 | // 5 | // Created by mj on 14-1-15. 6 | // Copyright (c) 2014年 小码哥. All rights reserved. 7 | // 包装一种类型 8 | 9 | #import 10 | 11 | /** 12 | * 包装一种类型 13 | */ 14 | @interface MJPropertyType : NSObject 15 | /** 类型标识符 */ 16 | @property (nonatomic, copy) NSString *code; 17 | 18 | /** 是否为id类型 */ 19 | @property (nonatomic, readonly, getter=isIdType) BOOL idType; 20 | 21 | /** 是否为基本数字类型:int、float等 */ 22 | @property (nonatomic, readonly, getter=isNumberType) BOOL numberType; 23 | 24 | /** 是否为BOOL类型 */ 25 | @property (nonatomic, readonly, getter=isBoolType) BOOL boolType; 26 | 27 | /** 对象类型(如果是基本数据类型,此值为nil) */ 28 | @property (nonatomic, readonly) Class typeClass; 29 | 30 | /** 类型是否来自于Foundation框架,比如NSString、NSArray */ 31 | @property (nonatomic, readonly, getter = isFromFoundation) BOOL fromFoundation; 32 | /** 类型是否不支持KVC */ 33 | @property (nonatomic, readonly, getter = isKVCDisabled) BOOL KVCDisabled; 34 | 35 | /** 36 | * 获得缓存的类型对象 37 | */ 38 | + (instancetype)cachedTypeWithCode:(NSString *)code; 39 | @end -------------------------------------------------------------------------------- /Pods/MJExtension/MJExtension/NSObject+MJCoding.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSObject+MJCoding.h 3 | // MJExtension 4 | // 5 | // Created by mj on 14-1-15. 6 | // Copyright (c) 2014年 小码哥. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "MJExtensionConst.h" 11 | 12 | /** 13 | * Codeing协议 14 | */ 15 | @protocol MJCoding 16 | @optional 17 | /** 18 | * 这个数组中的属性名才会进行归档 19 | */ 20 | + (NSArray *)mj_allowedCodingPropertyNames; 21 | /** 22 | * 这个数组中的属性名将会被忽略:不进行归档 23 | */ 24 | + (NSArray *)mj_ignoredCodingPropertyNames; 25 | @end 26 | 27 | @interface NSObject (MJCoding) 28 | /** 29 | * 解码(从文件中解析对象) 30 | */ 31 | - (void)mj_decode:(NSCoder *)decoder; 32 | /** 33 | * 编码(将对象写入文件中) 34 | */ 35 | - (void)mj_encode:(NSCoder *)encoder; 36 | @end 37 | 38 | /** 39 | 归档的实现 40 | */ 41 | #define MJCodingImplementation \ 42 | - (id)initWithCoder:(NSCoder *)decoder \ 43 | { \ 44 | if (self = [super init]) { \ 45 | [self mj_decode:decoder]; \ 46 | } \ 47 | return self; \ 48 | } \ 49 | \ 50 | - (void)encodeWithCoder:(NSCoder *)encoder \ 51 | { \ 52 | [self mj_encode:encoder]; \ 53 | } 54 | 55 | #define MJExtensionCodingImplementation MJCodingImplementation -------------------------------------------------------------------------------- /Pods/MJExtension/MJExtension/NSString+MJExtension.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSString+MJExtension.h 3 | // MJExtensionExample 4 | // 5 | // Created by MJ Lee on 15/6/7. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "MJExtensionConst.h" 11 | 12 | @interface NSString (MJExtension) 13 | /** 14 | * 驼峰转下划线(loveYou -> love_you) 15 | */ 16 | - (NSString *)mj_underlineFromCamel; 17 | /** 18 | * 下划线转驼峰(love_you -> loveYou) 19 | */ 20 | - (NSString *)mj_camelFromUnderline; 21 | /** 22 | * 首字母变大写 23 | */ 24 | - (NSString *)mj_firstCharUpper; 25 | /** 26 | * 首字母变小写 27 | */ 28 | - (NSString *)mj_firstCharLower; 29 | 30 | - (BOOL)mj_isPureInt; 31 | 32 | - (NSURL *)mj_url; 33 | @end 34 | 35 | @interface NSString (MJExtensionDeprecated_v_2_5_16) 36 | - (NSString *)underlineFromCamel MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***"); 37 | - (NSString *)camelFromUnderline MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***"); 38 | - (NSString *)firstCharUpper MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***"); 39 | - (NSString *)firstCharLower MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***"); 40 | - (BOOL)isPureInt MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***"); 41 | - (NSURL *)url MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***"); 42 | @end 43 | -------------------------------------------------------------------------------- /Pods/MJRefresh/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013-2015 MJRefresh (https://github.com/CoderMJLee/MJRefresh) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /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 | @interface MJRefreshAutoFooter : MJRefreshFooter 12 | /** 是否自动刷新(默认为YES) */ 13 | @property (assign, nonatomic, getter=isAutomaticallyRefresh) BOOL automaticallyRefresh; 14 | 15 | /** 当底部控件出现多少时就自动刷新(默认为1.0,也就是底部控件完全出现时,才会自动刷新) */ 16 | @property (assign, nonatomic) CGFloat appearencePercentTriggerAutoRefresh MJRefreshDeprecated("请使用triggerAutomaticallyRefreshPercent属性"); 17 | 18 | /** 当底部控件出现多少时就自动刷新(默认为1.0,也就是底部控件完全出现时,才会自动刷新) */ 19 | @property (assign, nonatomic) CGFloat triggerAutomaticallyRefreshPercent; 20 | @end 21 | -------------------------------------------------------------------------------- /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 | @interface MJRefreshBackFooter : MJRefreshFooter 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Base/MJRefreshFooter.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 | // MJRefreshFooter.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 15/3/5. 7 | // Copyright (c) 2015年 小码哥. All rights reserved. 8 | // 上拉刷新控件 9 | 10 | #import "MJRefreshComponent.h" 11 | 12 | @interface MJRefreshFooter : MJRefreshComponent 13 | /** 创建footer */ 14 | + (instancetype)footerWithRefreshingBlock:(MJRefreshComponentRefreshingBlock)refreshingBlock; 15 | /** 创建footer */ 16 | + (instancetype)footerWithRefreshingTarget:(id)target refreshingAction:(SEL)action; 17 | 18 | /** 提示没有更多的数据 */ 19 | - (void)endRefreshingWithNoMoreData; 20 | - (void)noticeNoMoreData MJRefreshDeprecated("使用endRefreshingWithNoMoreData"); 21 | 22 | /** 重置没有更多的数据(消除没有更多数据的状态) */ 23 | - (void)resetNoMoreData; 24 | 25 | /** 忽略多少scrollView的contentInset的bottom */ 26 | @property (assign, nonatomic) CGFloat ignoredScrollViewContentInsetBottom; 27 | 28 | /** 自动根据有无数据来显示和隐藏(有数据就显示,没有数据隐藏。默认是NO) */ 29 | @property (assign, nonatomic, getter=isAutomaticallyHidden) BOOL automaticallyHidden MJRefreshDeprecated("不建议使用此属性,开发者请自行控制footer的显示和隐藏。基于安全考虑,在未来的某些版本此属性可能作废"); 30 | @end 31 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Base/MJRefreshHeader.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 | // MJRefreshHeader.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 15/3/4. 7 | // Copyright (c) 2015年 小码哥. All rights reserved. 8 | // 下拉刷新控件:负责监控用户下拉的状态 9 | 10 | #import "MJRefreshComponent.h" 11 | 12 | @interface MJRefreshHeader : MJRefreshComponent 13 | /** 创建header */ 14 | + (instancetype)headerWithRefreshingBlock:(MJRefreshComponentRefreshingBlock)refreshingBlock; 15 | /** 创建header */ 16 | + (instancetype)headerWithRefreshingTarget:(id)target refreshingAction:(SEL)action; 17 | 18 | /** 这个key用来存储上一次下拉刷新成功的时间 */ 19 | @property (copy, nonatomic) NSString *lastUpdatedTimeKey; 20 | /** 上一次下拉刷新成功的时间 */ 21 | @property (strong, nonatomic, readonly) NSDate *lastUpdatedTime; 22 | 23 | /** 忽略多少scrollView的contentInset的top */ 24 | @property (assign, nonatomic) CGFloat ignoredScrollViewContentInsetTop; 25 | @end 26 | -------------------------------------------------------------------------------- /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 | @interface MJRefreshAutoGifFooter : MJRefreshAutoStateFooter 12 | @property (weak, nonatomic, readonly) UIImageView *gifView; 13 | 14 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 15 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 16 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 17 | @end 18 | -------------------------------------------------------------------------------- /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 | @interface MJRefreshAutoNormalFooter : MJRefreshAutoStateFooter 12 | /** 菊花的样式 */ 13 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle; 14 | @end 15 | -------------------------------------------------------------------------------- /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 | @interface MJRefreshAutoStateFooter : MJRefreshAutoFooter 12 | /** 文字距离圈圈、箭头的距离 */ 13 | @property (assign, nonatomic) CGFloat labelLeftInset; 14 | /** 显示刷新状态的label */ 15 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 16 | 17 | /** 设置state状态下的文字 */ 18 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 19 | 20 | /** 隐藏刷新状态的文字 */ 21 | @property (assign, nonatomic, getter=isRefreshingTitleHidden) BOOL refreshingTitleHidden; 22 | @end 23 | -------------------------------------------------------------------------------- /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 | @interface MJRefreshBackGifFooter : MJRefreshBackStateFooter 12 | @property (weak, nonatomic, readonly) UIImageView *gifView; 13 | 14 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 15 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 16 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 17 | @end 18 | -------------------------------------------------------------------------------- /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 | @interface MJRefreshBackNormalFooter : MJRefreshBackStateFooter 12 | @property (weak, nonatomic, readonly) UIImageView *arrowView; 13 | /** 菊花的样式 */ 14 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle; 15 | @end 16 | -------------------------------------------------------------------------------- /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 | @interface MJRefreshBackStateFooter : MJRefreshBackFooter 12 | /** 文字距离圈圈、箭头的距离 */ 13 | @property (assign, nonatomic) CGFloat labelLeftInset; 14 | /** 显示刷新状态的label */ 15 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 16 | /** 设置state状态下的文字 */ 17 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 18 | 19 | /** 获取state状态下的title */ 20 | - (NSString *)titleForState:(MJRefreshState)state; 21 | @end 22 | -------------------------------------------------------------------------------- /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 | @interface MJRefreshGifHeader : MJRefreshStateHeader 12 | @property (weak, nonatomic, readonly) UIImageView *gifView; 13 | 14 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 15 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 16 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 17 | @end 18 | -------------------------------------------------------------------------------- /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 | @interface MJRefreshNormalHeader : MJRefreshStateHeader 12 | @property (weak, nonatomic, readonly) UIImageView *arrowView; 13 | /** 菊花的样式 */ 14 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle; 15 | @end 16 | -------------------------------------------------------------------------------- /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 | @interface MJRefreshStateHeader : MJRefreshHeader 12 | #pragma mark - 刷新时间相关 13 | /** 利用这个block来决定显示的更新时间文字 */ 14 | @property (copy, nonatomic) NSString *(^lastUpdatedTimeText)(NSDate *lastUpdatedTime); 15 | /** 显示上一次刷新时间的label */ 16 | @property (weak, nonatomic, readonly) UILabel *lastUpdatedTimeLabel; 17 | 18 | #pragma mark - 状态相关 19 | /** 文字距离圈圈、箭头的距离 */ 20 | @property (assign, nonatomic) CGFloat labelLeftInset; 21 | /** 显示刷新状态的label */ 22 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 23 | /** 设置state状态下的文字 */ 24 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 25 | @end 26 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/arrow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/arrow@2x.png -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/en.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/en.lproj/Localizable.strings -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/zh-Hans.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/zh-Hans.lproj/Localizable.strings -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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" -------------------------------------------------------------------------------- /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 | @interface NSBundle (MJRefresh) 12 | + (instancetype)mj_refreshBundle; 13 | + (UIImage *)mj_arrowImage; 14 | + (NSString *)mj_localizedStringForKey:(NSString *)key value:(NSString *)value; 15 | + (NSString *)mj_localizedStringForKey:(NSString *)key; 16 | @end 17 | -------------------------------------------------------------------------------- /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 | @interface UIScrollView (MJExtension) 13 | @property (readonly, nonatomic) UIEdgeInsets mj_inset; 14 | 15 | @property (assign, nonatomic) CGFloat mj_insetT; 16 | @property (assign, nonatomic) CGFloat mj_insetB; 17 | @property (assign, nonatomic) CGFloat mj_insetL; 18 | @property (assign, nonatomic) CGFloat mj_insetR; 19 | 20 | @property (assign, nonatomic) CGFloat mj_offsetX; 21 | @property (assign, nonatomic) CGFloat mj_offsetY; 22 | 23 | @property (assign, nonatomic) CGFloat mj_contentW; 24 | @property (assign, nonatomic) CGFloat mj_contentH; 25 | @end 26 | -------------------------------------------------------------------------------- /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 | @interface UIScrollView (MJRefresh) 16 | /** 下拉刷新控件 */ 17 | @property (strong, nonatomic) MJRefreshHeader *mj_header; 18 | @property (strong, nonatomic) MJRefreshHeader *header MJRefreshDeprecated("使用mj_header"); 19 | /** 上拉刷新控件 */ 20 | @property (strong, nonatomic) MJRefreshFooter *mj_footer; 21 | @property (strong, nonatomic) MJRefreshFooter *footer MJRefreshDeprecated("使用mj_footer"); 22 | 23 | #pragma mark - other 24 | - (NSInteger)mj_totalDataCount; 25 | @property (copy, nonatomic) void (^mj_reloadDataBlock)(NSInteger totalDataCount); 26 | @end 27 | -------------------------------------------------------------------------------- /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 | @interface UIView (MJExtension) 13 | @property (assign, nonatomic) CGFloat mj_x; 14 | @property (assign, nonatomic) CGFloat mj_y; 15 | @property (assign, nonatomic) CGFloat mj_w; 16 | @property (assign, nonatomic) CGFloat mj_h; 17 | @property (assign, nonatomic) CGSize mj_size; 18 | @property (assign, nonatomic) CGPoint mj_origin; 19 | @end 20 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/UIView+MJExtension.m: -------------------------------------------------------------------------------- 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.m 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 14-5-28. 7 | // Copyright (c) 2014年 小码哥. All rights reserved. 8 | // 9 | 10 | #import "UIView+MJExtension.h" 11 | 12 | @implementation UIView (MJExtension) 13 | - (void)setMj_x:(CGFloat)mj_x 14 | { 15 | CGRect frame = self.frame; 16 | frame.origin.x = mj_x; 17 | self.frame = frame; 18 | } 19 | 20 | - (CGFloat)mj_x 21 | { 22 | return self.frame.origin.x; 23 | } 24 | 25 | - (void)setMj_y:(CGFloat)mj_y 26 | { 27 | CGRect frame = self.frame; 28 | frame.origin.y = mj_y; 29 | self.frame = frame; 30 | } 31 | 32 | - (CGFloat)mj_y 33 | { 34 | return self.frame.origin.y; 35 | } 36 | 37 | - (void)setMj_w:(CGFloat)mj_w 38 | { 39 | CGRect frame = self.frame; 40 | frame.size.width = mj_w; 41 | self.frame = frame; 42 | } 43 | 44 | - (CGFloat)mj_w 45 | { 46 | return self.frame.size.width; 47 | } 48 | 49 | - (void)setMj_h:(CGFloat)mj_h 50 | { 51 | CGRect frame = self.frame; 52 | frame.size.height = mj_h; 53 | self.frame = frame; 54 | } 55 | 56 | - (CGFloat)mj_h 57 | { 58 | return self.frame.size.height; 59 | } 60 | 61 | - (void)setMj_size:(CGSize)mj_size 62 | { 63 | CGRect frame = self.frame; 64 | frame.size = mj_size; 65 | self.frame = frame; 66 | } 67 | 68 | - (CGSize)mj_size 69 | { 70 | return self.frame.size; 71 | } 72 | 73 | - (void)setMj_origin:(CGPoint)mj_origin 74 | { 75 | CGRect frame = self.frame; 76 | frame.origin = mj_origin; 77 | self.frame = frame; 78 | } 79 | 80 | - (CGPoint)mj_origin 81 | { 82 | return self.frame.origin; 83 | } 84 | @end 85 | -------------------------------------------------------------------------------- /Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - MJExtension (3.0.13) 3 | - MJRefresh (3.1.15.1) 4 | - RollingNotice (1.0.2) 5 | - SDCycleScrollView (1.75): 6 | - SDWebImage (>= 4.0.0) 7 | - SDWebImage (4.2.3): 8 | - SDWebImage/Core (= 4.2.3) 9 | - SDWebImage/Core (4.2.3) 10 | 11 | DEPENDENCIES: 12 | - MJExtension 13 | - MJRefresh 14 | - RollingNotice 15 | - SDCycleScrollView 16 | 17 | SPEC REPOS: 18 | https://github.com/CocoaPods/Specs.git: 19 | - MJExtension 20 | - MJRefresh 21 | - RollingNotice 22 | - SDCycleScrollView 23 | - SDWebImage 24 | 25 | SPEC CHECKSUMS: 26 | MJExtension: 5932755f451458eefa24239358817f8d291240c7 27 | MJRefresh: 5f8552bc25ca8751c010f621c1098dbdaacbccd6 28 | RollingNotice: 792a2712563d00191eb519c86b4825401a302c51 29 | SDCycleScrollView: 884b88f0266dd4708a0e1934975c69cb971707b1 30 | SDWebImage: 791bb72962b3492327ddcac4b1880bd1b5458431 31 | 32 | PODFILE CHECKSUM: 682ec247d0702751b72e8d7999d0466c98f6a556 33 | 34 | COCOAPODS: 1.9.1 35 | -------------------------------------------------------------------------------- /Pods/RollingNotice/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 maltsugar <173678978@qq.com> 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 | 23 | -------------------------------------------------------------------------------- /Pods/RollingNotice/README.md: -------------------------------------------------------------------------------- 1 | # Rolling Notice、Rolling Advertisement 2 | ![](https://img.shields.io/badge/platform-iOS-red.svg) ![](https://img.shields.io/badge/language-Objective--C-orange.svg) ![](https://img.shields.io/cocoapods/v/RollingNotice.svg?style=flat) ![](https://img.shields.io/badge/license-MIT%20License-brightgreen.svg) 3 | ### Introduce[中文介绍](https://github.com/maltsugar/RollingNotice/blob/master/README_Zh.md) 4 | This library can scroll any view, scroll up and down the notice, advertising. You only need to customize the view and assin value according index, roll will be done by it! 5 | 6 | It can be very flexible, similar to UITableViewCell. 7 | According to the design concept of UITableView, rolling cells support reuse, up to two cells will be allocated. 8 | 9 | 10 | ### Usage 11 | - manual: drag `GYRollingNoticeView` in your project 12 | - Cocoapods: `pod 'RollingNotice', '~> 1.0.2'` 13 | 14 | **customized cell must inherit `GYNoticeViewCell`.** 15 | 16 | For more details, see the demo project. Just similar as UITableView. 17 | 18 | 19 | ![](http://wx3.sinaimg.cn/mw690/72aba7efgy1fmdy022ow6g20bn08g0xn.gif) 20 | ### License 21 | GYRollingNoticeView is provided under the MIT license. See LICENSE file for details. 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Pods/RollingNotice/RollingNotice/GYRollingNoticeView/GYNoticeViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // GYNoticeViewCell.h 3 | // RollingNotice 4 | // 5 | // Created by qm on 2017/12/4. 6 | // Copyright © 2017年 qm. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface GYNoticeViewCell : UIView 12 | 13 | @property (nonatomic, readonly, strong) UIView *contentView; 14 | @property (nonatomic, readonly, strong) UILabel *textLabel; 15 | @property (nonatomic, readonly, copy) NSString *reuseIdentifier; 16 | 17 | - (instancetype)initWithReuseIdentifier:(NSString *)reuseIdentifier NS_DESIGNATED_INITIALIZER; 18 | - (instancetype)initWithCoder:(NSCoder *)aDecoder NS_DESIGNATED_INITIALIZER; 19 | @end 20 | -------------------------------------------------------------------------------- /Pods/RollingNotice/RollingNotice/GYRollingNoticeView/GYNoticeViewCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // GYNoticeViewCell.m 3 | // RollingNotice 4 | // 5 | // Created by qm on 2017/12/4. 6 | // Copyright © 2017年 qm. All rights reserved. 7 | // 8 | 9 | #import "GYNoticeViewCell.h" 10 | 11 | @implementation GYNoticeViewCell 12 | 13 | - (instancetype)initWithReuseIdentifier:(NSString *)reuseIdentifier 14 | { 15 | self = [super initWithFrame:CGRectZero]; 16 | if (self) { 17 | NSLog(@"init a cell from code: %p", self); 18 | _reuseIdentifier = reuseIdentifier; 19 | [self setupInitialUI]; 20 | } 21 | return self; 22 | } 23 | 24 | - (instancetype)initWithCoder:(NSCoder *)aDecoder 25 | { 26 | self = [super initWithCoder:aDecoder]; 27 | if (self) { 28 | NSLog(@"init a cell from xib"); 29 | } 30 | return self; 31 | } 32 | - (instancetype)initWithFrame:(CGRect)frame 33 | { 34 | return [self initWithReuseIdentifier:@""]; 35 | } 36 | 37 | - (void)setupInitialUI 38 | { 39 | self.backgroundColor = [UIColor whiteColor]; 40 | _contentView = [[UIView alloc] init]; 41 | [self addSubview:_contentView]; 42 | 43 | _textLabel = [[UILabel alloc]init]; 44 | [_contentView addSubview:_textLabel]; 45 | } 46 | 47 | 48 | - (void)layoutSubviews 49 | { 50 | [super layoutSubviews]; 51 | _contentView.frame = self.bounds; 52 | _textLabel.frame = CGRectMake(10, 0, self.frame.size.width - 20, self.frame.size.height); 53 | } 54 | 55 | - (void)dealloc 56 | { 57 | NSLog(@"%p, %s", self, __func__); 58 | } 59 | 60 | 61 | @end 62 | -------------------------------------------------------------------------------- /Pods/RollingNotice/RollingNotice/GYRollingNoticeView/GYRollingNoticeView.h: -------------------------------------------------------------------------------- 1 | // 2 | // GYRollingNoticeView.h 3 | // RollingNotice 4 | // 5 | // Created by qm on 2017/12/4. 6 | // Copyright © 2017年 qm. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "GYNoticeViewCell.h" 11 | 12 | @class GYRollingNoticeView; 13 | @protocol GYRollingNoticeViewDataSource 14 | @required 15 | - (NSInteger)numberOfRowsForRollingNoticeView:(GYRollingNoticeView *)rollingView; 16 | - (GYNoticeViewCell *)rollingNoticeView:(GYRollingNoticeView *)rollingView cellAtIndex:(NSUInteger)index; 17 | @end 18 | 19 | @protocol GYRollingNoticeViewDelegate 20 | @optional 21 | - (void)didClickRollingNoticeView:(GYRollingNoticeView *)rollingView forIndex:(NSUInteger)index; 22 | 23 | @end 24 | 25 | 26 | @interface GYRollingNoticeView : UIView 27 | 28 | 29 | @property (nonatomic, assign) id dataSource; 30 | @property (nonatomic, assign) id delegate; 31 | @property (nonatomic, assign) NSTimeInterval stayInterval; // 停留时间 默认2秒 32 | 33 | - (void)registerClass:(Class)cellClass forCellReuseIdentifier:(NSString *)identifier; 34 | - (void)registerNib:(UINib *)nib forCellReuseIdentifier:(NSString *)identifier; 35 | - (__kindof GYNoticeViewCell *)dequeueReusableCellWithIdentifier:(NSString *)identifier; 36 | 37 | - (void)reloadDataAndStartRoll; 38 | - (void)stopRoll; // 在合适的地方停止timer。 you must stop it when not use,for example '-viewDidDismiss' 39 | 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /Pods/SDCycleScrollView/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 GSD_iOS 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 | 23 | -------------------------------------------------------------------------------- /Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAAbstractDotView.h: -------------------------------------------------------------------------------- 1 | // 2 | // TAAbstractDotView.h 3 | // TAPageControl 4 | // 5 | // Created by Tanguy Aladenise on 2015-01-22. 6 | // Copyright (c) 2015 Tanguy Aladenise. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | @interface TAAbstractDotView : UIView 13 | 14 | 15 | /** 16 | * A method call let view know which state appearance it should take. Active meaning it's current page. Inactive not the current page. 17 | * 18 | * @param active BOOL to tell if view is active or not 19 | */ 20 | - (void)changeActivityState:(BOOL)active; 21 | 22 | 23 | @end 24 | 25 | -------------------------------------------------------------------------------- /Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAAbstractDotView.m: -------------------------------------------------------------------------------- 1 | // 2 | // TAAbstractDotView.m 3 | // TAPageControl 4 | // 5 | // Created by Tanguy Aladenise on 2015-01-22. 6 | // Copyright (c) 2015 Tanguy Aladenise. All rights reserved. 7 | // 8 | 9 | #import "TAAbstractDotView.h" 10 | 11 | 12 | @implementation TAAbstractDotView 13 | 14 | 15 | - (id)init 16 | { 17 | @throw [NSException exceptionWithName:NSInternalInconsistencyException 18 | reason:[NSString stringWithFormat:@"You must override %@ in %@", NSStringFromSelector(_cmd), self.class] 19 | userInfo:nil]; 20 | } 21 | 22 | 23 | - (void)changeActivityState:(BOOL)active 24 | { 25 | @throw [NSException exceptionWithName:NSInternalInconsistencyException 26 | reason:[NSString stringWithFormat:@"You must override %@ in %@", NSStringFromSelector(_cmd), self.class] 27 | userInfo:nil]; 28 | } 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAAnimatedDotView.h: -------------------------------------------------------------------------------- 1 | // 2 | // TAAnimatedDotView.h 3 | // TAPageControl 4 | // 5 | // Created by Tanguy Aladenise on 2015-01-22. 6 | // Copyright (c) 2015 Tanguy Aladenise. All rights reserved. 7 | // 8 | 9 | #import "TAAbstractDotView.h" 10 | 11 | @interface TAAnimatedDotView : TAAbstractDotView 12 | 13 | @property (nonatomic, strong) UIColor *dotColor; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TADotView.h: -------------------------------------------------------------------------------- 1 | // 2 | // TADotView.h 3 | // TAPageControl 4 | // 5 | // Created by Tanguy Aladenise on 2015-01-22. 6 | // Copyright (c) 2015 Tanguy Aladenise. All rights reserved. 7 | // 8 | 9 | #import "TAAbstractDotView.h" 10 | 11 | @interface TADotView : TAAbstractDotView 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TADotView.m: -------------------------------------------------------------------------------- 1 | // 2 | // TADotView.m 3 | // TAPageControl 4 | // 5 | // Created by Tanguy Aladenise on 2015-01-22. 6 | // Copyright (c) 2015 Tanguy Aladenise. All rights reserved. 7 | // 8 | 9 | #import "TADotView.h" 10 | 11 | @implementation TADotView 12 | 13 | 14 | - (instancetype)init 15 | { 16 | self = [super init]; 17 | if (self) { 18 | [self initialization]; 19 | } 20 | 21 | return self; 22 | } 23 | 24 | 25 | - (id)initWithFrame:(CGRect)frame 26 | { 27 | self = [super initWithFrame:frame]; 28 | if (self) { 29 | [self initialization]; 30 | } 31 | return self; 32 | } 33 | 34 | 35 | - (id)initWithCoder:(NSCoder *)aDecoder 36 | { 37 | self = [super initWithCoder:aDecoder]; 38 | if (self) { 39 | [self initialization]; 40 | } 41 | 42 | return self; 43 | } 44 | 45 | - (void)initialization 46 | { 47 | self.backgroundColor = [UIColor clearColor]; 48 | self.layer.cornerRadius = CGRectGetWidth(self.frame) / 2; 49 | self.layer.borderColor = [UIColor whiteColor].CGColor; 50 | self.layer.borderWidth = 2; 51 | } 52 | 53 | 54 | - (void)changeActivityState:(BOOL)active 55 | { 56 | if (active) { 57 | self.backgroundColor = [UIColor whiteColor]; 58 | } else { 59 | self.backgroundColor = [UIColor clearColor]; 60 | } 61 | } 62 | 63 | @end 64 | -------------------------------------------------------------------------------- /Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/SDCollectionViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // SDCollectionViewCell.h 3 | // SDCycleScrollView 4 | // 5 | // Created by aier on 15-3-22. 6 | // Copyright (c) 2015年 GSD. All rights reserved. 7 | // 8 | 9 | /* 10 | 11 | ********************************************************************************* 12 | * 13 | * 🌟🌟🌟 新建SDCycleScrollView交流QQ群:185534916 🌟🌟🌟 14 | * 15 | * 在您使用此自动轮播库的过程中如果出现bug请及时以以下任意一种方式联系我们,我们会及时修复bug并 16 | * 帮您解决问题。 17 | * 新浪微博:GSD_iOS 18 | * Email : gsdios@126.com 19 | * GitHub: https://github.com/gsdios 20 | * 21 | * 另(我的自动布局库SDAutoLayout): 22 | * 一行代码搞定自动布局!支持Cell和Tableview高度自适应,Label和ScrollView内容自适应,致力于 23 | * 做最简单易用的AutoLayout库。 24 | * 视频教程:http://www.letv.com/ptv/vplay/24038772.html 25 | * 用法示例:https://github.com/gsdios/SDAutoLayout/blob/master/README.md 26 | * GitHub:https://github.com/gsdios/SDAutoLayout 27 | ********************************************************************************* 28 | 29 | */ 30 | 31 | 32 | 33 | #import 34 | 35 | @interface SDCollectionViewCell : UICollectionViewCell 36 | 37 | @property (weak, nonatomic) UIImageView *imageView; 38 | @property (copy, nonatomic) NSString *title; 39 | 40 | @property (nonatomic, strong) UIColor *titleLabelTextColor; 41 | @property (nonatomic, strong) UIFont *titleLabelTextFont; 42 | @property (nonatomic, strong) UIColor *titleLabelBackgroundColor; 43 | @property (nonatomic, assign) CGFloat titleLabelHeight; 44 | @property (nonatomic, assign) NSTextAlignment titleLabelTextAlignment; 45 | 46 | @property (nonatomic, assign) BOOL hasConfigured; 47 | 48 | /** 只展示文字轮播 */ 49 | @property (nonatomic, assign) BOOL onlyDisplayText; 50 | 51 | @end 52 | -------------------------------------------------------------------------------- /Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/UIView+SDExtension.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+SDExtension.h 3 | // SDRefreshView 4 | // 5 | // Created by aier on 15-2-23. 6 | // Copyright (c) 2015年 GSD. All rights reserved. 7 | // 8 | 9 | /* 10 | 11 | ********************************************************************************* 12 | * 13 | * 🌟🌟🌟 新建SDCycleScrollView交流QQ群:185534916 🌟🌟🌟 14 | * 15 | * 在您使用此自动轮播库的过程中如果出现bug请及时以以下任意一种方式联系我们,我们会及时修复bug并 16 | * 帮您解决问题。 17 | * 新浪微博:GSD_iOS 18 | * Email : gsdios@126.com 19 | * GitHub: https://github.com/gsdios 20 | * 21 | * 另(我的自动布局库SDAutoLayout): 22 | * 一行代码搞定自动布局!支持Cell和Tableview高度自适应,Label和ScrollView内容自适应,致力于 23 | * 做最简单易用的AutoLayout库。 24 | * 视频教程:http://www.letv.com/ptv/vplay/24038772.html 25 | * 用法示例:https://github.com/gsdios/SDAutoLayout/blob/master/README.md 26 | * GitHub:https://github.com/gsdios/SDAutoLayout 27 | ********************************************************************************* 28 | 29 | */ 30 | 31 | #import 32 | 33 | #define SDColorCreater(r, g, b, a) [UIColor colorWithRed:(r / 255.0) green:(g / 255.0) blue:(b / 255.0) alpha:a] 34 | 35 | 36 | @interface UIView (SDExtension) 37 | 38 | @property (nonatomic, assign) CGFloat sd_height; 39 | @property (nonatomic, assign) CGFloat sd_width; 40 | 41 | @property (nonatomic, assign) CGFloat sd_y; 42 | @property (nonatomic, assign) CGFloat sd_x; 43 | 44 | @end 45 | -------------------------------------------------------------------------------- /Pods/SDWebImage/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2009-2017 Olivier Poitrey rs@dailymotion.com 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is furnished 8 | to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | 21 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/NSData+ImageContentType.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * (c) Fabrice Aneche 5 | * 6 | * For the full copyright and license information, please view the LICENSE 7 | * file that was distributed with this source code. 8 | */ 9 | 10 | #import 11 | #import "SDWebImageCompat.h" 12 | 13 | typedef NS_ENUM(NSInteger, SDImageFormat) { 14 | SDImageFormatUndefined = -1, 15 | SDImageFormatJPEG = 0, 16 | SDImageFormatPNG, 17 | SDImageFormatGIF, 18 | SDImageFormatTIFF, 19 | SDImageFormatWebP, 20 | SDImageFormatHEIC 21 | }; 22 | 23 | @interface NSData (ImageContentType) 24 | 25 | /** 26 | * Return image format 27 | * 28 | * @param data the input image data 29 | * 30 | * @return the image format as `SDImageFormat` (enum) 31 | */ 32 | + (SDImageFormat)sd_imageFormatForImageData:(nullable NSData *)data; 33 | 34 | /** 35 | Convert SDImageFormat to UTType 36 | 37 | @param format Format as SDImageFormat 38 | @return The UTType as CFStringRef 39 | */ 40 | + (nonnull CFStringRef)sd_UTTypeFromSDImageFormat:(SDImageFormat)format; 41 | 42 | @end 43 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/NSImage+WebCache.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import "SDWebImageCompat.h" 10 | 11 | #if SD_MAC 12 | 13 | #import 14 | 15 | @interface NSImage (WebCache) 16 | 17 | - (CGImageRef)CGImage; 18 | - (NSArray *)images; 19 | - (BOOL)isGIF; 20 | 21 | @end 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/NSImage+WebCache.m: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import "NSImage+WebCache.h" 10 | 11 | #if SD_MAC 12 | 13 | @implementation NSImage (WebCache) 14 | 15 | - (CGImageRef)CGImage { 16 | NSRect imageRect = NSMakeRect(0, 0, self.size.width, self.size.height); 17 | CGImageRef cgImage = [self CGImageForProposedRect:&imageRect context:NULL hints:nil]; 18 | return cgImage; 19 | } 20 | 21 | - (NSArray *)images { 22 | return nil; 23 | } 24 | 25 | - (BOOL)isGIF { 26 | BOOL isGIF = NO; 27 | for (NSImageRep *rep in self.representations) { 28 | if ([rep isKindOfClass:[NSBitmapImageRep class]]) { 29 | NSBitmapImageRep *bitmapRep = (NSBitmapImageRep *)rep; 30 | NSUInteger frameCount = [[bitmapRep valueForProperty:NSImageFrameCount] unsignedIntegerValue]; 31 | isGIF = frameCount > 1 ? YES : NO; 32 | break; 33 | } 34 | } 35 | return isGIF; 36 | } 37 | 38 | @end 39 | 40 | #endif 41 | 42 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/SDImageCacheConfig.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import 10 | #import "SDWebImageCompat.h" 11 | 12 | @interface SDImageCacheConfig : NSObject 13 | 14 | /** 15 | * Decompressing images that are downloaded and cached can improve performance but can consume lot of memory. 16 | * Defaults to YES. Set this to NO if you are experiencing a crash due to excessive memory consumption. 17 | */ 18 | @property (assign, nonatomic) BOOL shouldDecompressImages; 19 | 20 | /** 21 | * disable iCloud backup [defaults to YES] 22 | */ 23 | @property (assign, nonatomic) BOOL shouldDisableiCloud; 24 | 25 | /** 26 | * use memory cache [defaults to YES] 27 | */ 28 | @property (assign, nonatomic) BOOL shouldCacheImagesInMemory; 29 | 30 | /** 31 | * The reading options while reading cache from disk. 32 | * Defaults to 0. You can set this to mapped file to improve performance. 33 | */ 34 | @property (assign, nonatomic) NSDataReadingOptions diskCacheReadingOptions; 35 | 36 | /** 37 | * The maximum length of time to keep an image in the cache, in seconds. 38 | */ 39 | @property (assign, nonatomic) NSInteger maxCacheAge; 40 | 41 | /** 42 | * The maximum size of the cache, in bytes. 43 | */ 44 | @property (assign, nonatomic) NSUInteger maxCacheSize; 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/SDImageCacheConfig.m: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import "SDImageCacheConfig.h" 10 | 11 | static const NSInteger kDefaultCacheMaxCacheAge = 60 * 60 * 24 * 7; // 1 week 12 | 13 | @implementation SDImageCacheConfig 14 | 15 | - (instancetype)init { 16 | if (self = [super init]) { 17 | _shouldDecompressImages = YES; 18 | _shouldDisableiCloud = YES; 19 | _shouldCacheImagesInMemory = YES; 20 | _diskCacheReadingOptions = 0; 21 | _maxCacheAge = kDefaultCacheMaxCacheAge; 22 | _maxCacheSize = 0; 23 | } 24 | return self; 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/SDWebImageCoder.m: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import "SDWebImageCoder.h" 10 | 11 | NSString * const SDWebImageCoderScaleDownLargeImagesKey = @"scaleDownLargeImages"; 12 | 13 | CGColorSpaceRef SDCGColorSpaceGetDeviceRGB(void) { 14 | static CGColorSpaceRef colorSpace; 15 | static dispatch_once_t onceToken; 16 | dispatch_once(&onceToken, ^{ 17 | colorSpace = CGColorSpaceCreateDeviceRGB(); 18 | }); 19 | return colorSpace; 20 | } 21 | 22 | BOOL SDCGImageRefContainsAlpha(CGImageRef imageRef) { 23 | if (!imageRef) { 24 | return NO; 25 | } 26 | CGImageAlphaInfo alphaInfo = CGImageGetAlphaInfo(imageRef); 27 | BOOL hasAlpha = !(alphaInfo == kCGImageAlphaNone || 28 | alphaInfo == kCGImageAlphaNoneSkipFirst || 29 | alphaInfo == kCGImageAlphaNoneSkipLast); 30 | return hasAlpha; 31 | } 32 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/SDWebImageFrame.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import 10 | #import "SDWebImageCompat.h" 11 | 12 | @interface SDWebImageFrame : NSObject 13 | 14 | // This class is used for creating animated images via `animatedImageWithFrames` in `SDWebImageCoderHelper`. Attension if you need animated images loop count, use `sd_imageLoopCount` property in `UIImage+MultiFormat` 15 | 16 | /** 17 | The image of current frame. You should not set an animated image. 18 | */ 19 | @property (nonatomic, strong, readonly, nonnull) UIImage *image; 20 | /** 21 | The duration of current frame to be displayed. The number is seconds but not milliseconds. You should not set this to zero. 22 | */ 23 | @property (nonatomic, readonly, assign) NSTimeInterval duration; 24 | 25 | /** 26 | Create a frame instance with specify image and duration 27 | 28 | @param image current frame's image 29 | @param duration current frame's duration 30 | @return frame instance 31 | */ 32 | + (instancetype _Nonnull)frameWithImage:(UIImage * _Nonnull)image duration:(NSTimeInterval)duration; 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/SDWebImageFrame.m: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import "SDWebImageFrame.h" 10 | 11 | @interface SDWebImageFrame () 12 | 13 | @property (nonatomic, strong, readwrite, nonnull) UIImage *image; 14 | @property (nonatomic, readwrite, assign) NSTimeInterval duration; 15 | 16 | @end 17 | 18 | @implementation SDWebImageFrame 19 | 20 | + (instancetype)frameWithImage:(UIImage *)image duration:(NSTimeInterval)duration { 21 | SDWebImageFrame *frame = [[SDWebImageFrame alloc] init]; 22 | frame.image = image; 23 | frame.duration = duration; 24 | 25 | return frame; 26 | } 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/SDWebImageGIFCoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import 10 | #import "SDWebImageCoder.h" 11 | 12 | /** 13 | Built in coder using ImageIO that supports GIF encoding/decoding 14 | @note `SDWebImageIOCoder` supports GIF but only as static (will use the 1st frame). 15 | @note Use `SDWebImageGIFCoder` for fully animated GIFs - less performant than `FLAnimatedImage` 16 | @note If you decide to make all `UIImageView`(including `FLAnimatedImageView`) instance support GIF. You should add this coder to `SDWebImageCodersManager` and make sure that it has a higher priority than `SDWebImageIOCoder` 17 | @note The recommended approach for animated GIFs is using `FLAnimatedImage`. It's more performant than `UIImageView` for GIF displaying 18 | */ 19 | @interface SDWebImageGIFCoder : NSObject 20 | 21 | + (nonnull instancetype)sharedCoder; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/SDWebImageImageIOCoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import 10 | #import "SDWebImageCoder.h" 11 | 12 | /** 13 | Built in coder that supports PNG, JPEG, TIFF, includes support for progressive decoding. 14 | 15 | GIF 16 | Also supports static GIF (meaning will only handle the 1st frame). 17 | For a full GIF support, we recommend `FLAnimatedImage` or our less performant `SDWebImageGIFCoder` 18 | 19 | HEIC 20 | This coder also supports HEIC format because ImageIO supports it natively. But it depends on the system capabilities, so it won't work on all devices, see: https://devstreaming-cdn.apple.com/videos/wwdc/2017/511tj33587vdhds/511/511_working_with_heif_and_hevc.pdf 21 | Decode(Software): !Simulator && (iOS 11 || tvOS 11 || macOS 10.13) 22 | Decode(Hardware): !Simulator && ((iOS 11 && A9Chip) || (macOS 10.13 && 6thGenerationIntelCPU)) 23 | Encode(Software): macOS 10.13 24 | Encode(Hardware): !Simulator && ((iOS 11 && A10FusionChip) || (macOS 10.13 && 6thGenerationIntelCPU)) 25 | */ 26 | @interface SDWebImageImageIOCoder : NSObject 27 | 28 | + (nonnull instancetype)sharedCoder; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/SDWebImageOperation.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import 10 | 11 | @protocol SDWebImageOperation 12 | 13 | - (void)cancel; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/UIImage+ForceDecode.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import "SDWebImageCompat.h" 10 | 11 | @interface UIImage (ForceDecode) 12 | 13 | + (nullable UIImage *)decodedImageWithImage:(nullable UIImage *)image; 14 | 15 | + (nullable UIImage *)decodedAndScaledDownImageWithImage:(nullable UIImage *)image; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/UIImage+ForceDecode.m: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import "UIImage+ForceDecode.h" 10 | #import "SDWebImageCodersManager.h" 11 | 12 | @implementation UIImage (ForceDecode) 13 | 14 | + (UIImage *)decodedImageWithImage:(UIImage *)image { 15 | if (!image) { 16 | return nil; 17 | } 18 | NSData *tempData; 19 | return [[SDWebImageCodersManager sharedInstance] decompressedImageWithImage:image data:&tempData options:@{SDWebImageCoderScaleDownLargeImagesKey: @(NO)}]; 20 | } 21 | 22 | + (UIImage *)decodedAndScaledDownImageWithImage:(UIImage *)image { 23 | if (!image) { 24 | return nil; 25 | } 26 | NSData *tempData; 27 | return [[SDWebImageCodersManager sharedInstance] decompressedImageWithImage:image data:&tempData options:@{SDWebImageCoderScaleDownLargeImagesKey: @(YES)}]; 28 | } 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/UIImage+GIF.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * (c) Laurin Brandner 5 | * 6 | * For the full copyright and license information, please view the LICENSE 7 | * file that was distributed with this source code. 8 | */ 9 | 10 | #import "SDWebImageCompat.h" 11 | 12 | @interface UIImage (GIF) 13 | 14 | /** 15 | * Creates an animated UIImage from an NSData. 16 | * For static GIF, will create an UIImage with `images` array set to nil. For animated GIF, will create an UIImage with valid `images` array. 17 | */ 18 | + (UIImage *)sd_animatedGIFWithData:(NSData *)data; 19 | 20 | /** 21 | * Checks if an UIImage instance is a GIF. Will use the `images` array. 22 | */ 23 | - (BOOL)isGIF; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/UIImage+GIF.m: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * (c) Laurin Brandner 5 | * 6 | * For the full copyright and license information, please view the LICENSE 7 | * file that was distributed with this source code. 8 | */ 9 | 10 | #import "UIImage+GIF.h" 11 | #import "SDWebImageGIFCoder.h" 12 | #import "NSImage+WebCache.h" 13 | 14 | @implementation UIImage (GIF) 15 | 16 | + (UIImage *)sd_animatedGIFWithData:(NSData *)data { 17 | if (!data) { 18 | return nil; 19 | } 20 | return [[SDWebImageGIFCoder sharedCoder] decodedImageWithData:data]; 21 | } 22 | 23 | - (BOOL)isGIF { 24 | return (self.images != nil); 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/UIImage+MultiFormat.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import "SDWebImageCompat.h" 10 | #import "NSData+ImageContentType.h" 11 | 12 | @interface UIImage (MultiFormat) 13 | 14 | /** 15 | * UIKit: 16 | * For static image format, this value is always 0. 17 | * For animated image format, 0 means infinite looping. 18 | * Note that because of the limitations of categories this property can get out of sync if you create another instance with CGImage or other methods. 19 | * AppKit: 20 | * NSImage currently only support animated via GIF imageRep unlike UIImage. 21 | * The getter of this property will get the loop count from GIF imageRep 22 | * The setter of this property will set the loop count from GIF imageRep 23 | */ 24 | @property (nonatomic, assign) NSUInteger sd_imageLoopCount; 25 | 26 | + (nullable UIImage *)sd_imageWithData:(nullable NSData *)data; 27 | - (nullable NSData *)sd_imageData; 28 | - (nullable NSData *)sd_imageDataAsFormat:(SDImageFormat)imageFormat; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/UIView+WebCacheOperation.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import "SDWebImageCompat.h" 10 | 11 | #if SD_UIKIT || SD_MAC 12 | 13 | #import "SDWebImageManager.h" 14 | 15 | // These methods are used to support canceling for UIView image loading, it's designed to be used internal but not external. 16 | // All the stored operations are weak, so it will be dalloced after image loading finished. If you need to store operations, use your own class to keep a strong reference for them. 17 | @interface UIView (WebCacheOperation) 18 | 19 | /** 20 | * Set the image load operation (storage in a UIView based weak map table) 21 | * 22 | * @param operation the operation 23 | * @param key key for storing the operation 24 | */ 25 | - (void)sd_setImageLoadOperation:(nullable id)operation forKey:(nullable NSString *)key; 26 | 27 | /** 28 | * Cancel all operations for the current UIView and key 29 | * 30 | * @param key key for identifying the operations 31 | */ 32 | - (void)sd_cancelImageLoadOperationWithKey:(nullable NSString *)key; 33 | 34 | /** 35 | * Just remove the operations corresponding to the current UIView and key without cancelling them 36 | * 37 | * @param key key for identifying the operations 38 | */ 39 | - (void)sd_removeImageLoadOperationWithKey:(nullable NSString *)key; 40 | 41 | @end 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJExtension/MJExtension-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_MJExtension : NSObject 3 | @end 4 | @implementation PodsDummy_MJExtension 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJExtension/MJExtension-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 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJExtension/MJExtension.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MJExtension 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MJExtension" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/MJExtension" 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}/MJExtension 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJExtension/MJExtension.release.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MJExtension 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MJExtension" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/MJExtension" 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}/MJExtension 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJRefresh/MJRefresh-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_MJRefresh : NSObject 3 | @end 4 | @implementation PodsDummy_MJRefresh 5 | @end 6 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJRefresh/MJRefresh.debug.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 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJRefresh/MJRefresh.release.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 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-CFStreamingVideo/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 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 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-CFStreamingVideo/Pods-CFStreamingVideo-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 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 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-CFStreamingVideo/Pods-CFStreamingVideo-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_CFStreamingVideo : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_CFStreamingVideo 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-CFStreamingVideo/Pods-CFStreamingVideo-frameworks-Debug-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-CFStreamingVideo/Pods-CFStreamingVideo-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/MJExtension/MJExtension.framework 3 | ${BUILT_PRODUCTS_DIR}/MJRefresh/MJRefresh.framework 4 | ${BUILT_PRODUCTS_DIR}/RollingNotice/RollingNotice.framework 5 | ${BUILT_PRODUCTS_DIR}/SDCycleScrollView/SDCycleScrollView.framework 6 | ${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-CFStreamingVideo/Pods-CFStreamingVideo-frameworks-Debug-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MJExtension.framework 2 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MJRefresh.framework 3 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RollingNotice.framework 4 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDCycleScrollView.framework 5 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-CFStreamingVideo/Pods-CFStreamingVideo-frameworks-Release-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-CFStreamingVideo/Pods-CFStreamingVideo-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/MJExtension/MJExtension.framework 3 | ${BUILT_PRODUCTS_DIR}/MJRefresh/MJRefresh.framework 4 | ${BUILT_PRODUCTS_DIR}/RollingNotice/RollingNotice.framework 5 | ${BUILT_PRODUCTS_DIR}/SDCycleScrollView/SDCycleScrollView.framework 6 | ${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-CFStreamingVideo/Pods-CFStreamingVideo-frameworks-Release-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MJExtension.framework 2 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MJRefresh.framework 3 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RollingNotice.framework 4 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDCycleScrollView.framework 5 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-CFStreamingVideo/Pods-CFStreamingVideo-resources-Debug-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-CFStreamingVideo/Pods-CFStreamingVideo-resources.sh 2 | ${PODS_ROOT}/MJRefresh/MJRefresh/MJRefresh.bundle -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-CFStreamingVideo/Pods-CFStreamingVideo-resources-Debug-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MJRefresh.bundle -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-CFStreamingVideo/Pods-CFStreamingVideo-resources-Release-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-CFStreamingVideo/Pods-CFStreamingVideo-resources.sh 2 | ${PODS_ROOT}/MJRefresh/MJRefresh/MJRefresh.bundle -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-CFStreamingVideo/Pods-CFStreamingVideo-resources-Release-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MJRefresh.bundle -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-CFStreamingVideo/Pods-CFStreamingVideo-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_CFStreamingVideoVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_CFStreamingVideoVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-CFStreamingVideo/Pods-CFStreamingVideo.debug.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/MJExtension" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/RollingNotice" "${PODS_ROOT}/Headers/Public/SDCycleScrollView" "${PODS_ROOT}/Headers/Public/SDWebImage" 3 | LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/RollingNotice" "${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" 4 | OTHER_LDFLAGS = $(inherited) -ObjC -l"MJExtension" -l"MJRefresh" -l"RollingNotice" -l"SDCycleScrollView" -l"SDWebImage" -framework "ImageIO" -framework "UIKit" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 8 | PODS_ROOT = ${SRCROOT}/Pods 9 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-CFStreamingVideo/Pods-CFStreamingVideo.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_CFStreamingVideo { 2 | umbrella header "Pods-CFStreamingVideo-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-CFStreamingVideo/Pods-CFStreamingVideo.release.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/MJExtension" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/RollingNotice" "${PODS_ROOT}/Headers/Public/SDCycleScrollView" "${PODS_ROOT}/Headers/Public/SDWebImage" 3 | LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/RollingNotice" "${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" 4 | OTHER_LDFLAGS = $(inherited) -ObjC -l"MJExtension" -l"MJRefresh" -l"RollingNotice" -l"SDCycleScrollView" -l"SDWebImage" -framework "ImageIO" -framework "UIKit" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 8 | PODS_ROOT = ${SRCROOT}/Pods 9 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RollingNotice/RollingNotice-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_RollingNotice : NSObject 3 | @end 4 | @implementation PodsDummy_RollingNotice 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RollingNotice/RollingNotice-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 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RollingNotice/RollingNotice.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RollingNotice 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/RollingNotice" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/RollingNotice" 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}/RollingNotice 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RollingNotice/RollingNotice.release.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RollingNotice 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/RollingNotice" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/RollingNotice" 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}/RollingNotice 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDCycleScrollView/SDCycleScrollView-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_SDCycleScrollView : NSObject 3 | @end 4 | @implementation PodsDummy_SDCycleScrollView 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDCycleScrollView/SDCycleScrollView-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 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDCycleScrollView/SDCycleScrollView.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/SDCycleScrollView" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/SDCycleScrollView" "${PODS_ROOT}/Headers/Public/SDWebImage" 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}/SDCycleScrollView 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDCycleScrollView/SDCycleScrollView.release.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/SDCycleScrollView" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/SDCycleScrollView" "${PODS_ROOT}/Headers/Public/SDWebImage" 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}/SDCycleScrollView 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDWebImage/SDWebImage-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_SDWebImage : NSObject 3 | @end 4 | @implementation PodsDummy_SDWebImage 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDWebImage/SDWebImage-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 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDWebImage/SDWebImage.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/SDWebImage" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/SDWebImage" 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}/SDWebImage 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDWebImage/SDWebImage.release.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/SDWebImage" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/SDWebImage" 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}/SDWebImage 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 11 | -------------------------------------------------------------------------------- /演示图/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/演示图/.DS_Store -------------------------------------------------------------------------------- /演示图/演示图1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/演示图/演示图1.gif -------------------------------------------------------------------------------- /演示图/演示图2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/演示图/演示图2.gif -------------------------------------------------------------------------------- /演示图/演示图3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenfengxiaoxixi/CFPageScrollView/7e379063a048c957e4b8f208259ea469a4261cd7/演示图/演示图3.gif --------------------------------------------------------------------------------