├── .DS_Store ├── JFTudou.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcuserdata │ │ └── baoxiuyizhantong.xcuserdatad │ │ └── UserInterfaceState.xcuserstate └── xcuserdata │ ├── baoxiuyizhantong.xcuserdatad │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ └── xcschemes │ │ ├── JFTudou.xcscheme │ │ └── xcschememanagement.plist │ └── tubiebutu.xcuserdatad │ └── xcschemes │ ├── JFTudou.xcscheme │ └── xcschememanagement.plist ├── JFTudou.xcworkspace ├── contents.xcworkspacedata └── xcuserdata │ ├── baoxiuyizhantong.xcuserdatad │ ├── UserInterfaceState.xcuserstate │ └── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ └── tubiebutu.xcuserdatad │ ├── UserInterfaceState.xcuserstate │ └── xcdebugger │ └── Breakpoints_v2.xcbkptlist ├── JFTudou ├── AppDelegate.h ├── AppDelegate.m ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ ├── AppIcon29x29.png │ │ ├── AppIcon29x29@2x.png │ │ ├── AppIcon29x29@3x.png │ │ ├── AppIcon40x40@2x.png │ │ ├── AppIcon40x40@3x.png │ │ ├── AppIcon57x57.png │ │ ├── AppIcon57x57@2x.png │ │ ├── AppIcon60x60@2x.png │ │ ├── AppIcon60x60@3x.png │ │ └── Contents.json │ ├── Contents.json │ ├── Default-375w.imageset │ │ ├── Contents.json │ │ └── Default-375w-667h@2x.png │ ├── Default-414w.imageset │ │ ├── Contents.json │ │ └── Default-414w-736h@3x.png │ ├── Default.imageset │ │ ├── Contents.json │ │ ├── Default-568h@2x.png │ │ ├── Default.png │ │ └── Default@2x.png │ └── Default@2x-1.imageset │ │ ├── Contents.json │ │ └── Default@2x-1.png ├── Base.lproj │ └── LaunchScreen.storyboard ├── Class │ ├── Category │ │ ├── NSString+JFColorString.h │ │ ├── NSString+JFColorString.m │ │ ├── UIBarButtonItem+JFBarButtonItem.h │ │ ├── UIBarButtonItem+JFBarButtonItem.m │ │ ├── UIButton+JFButton.h │ │ ├── UIButton+JFButton.m │ │ ├── UITableView+JFTableView.h │ │ └── UITableView+JFTableView.m │ ├── Classify │ │ ├── Controller │ │ │ ├── JFClassifyViewController.h │ │ │ ├── JFClassifyViewController.m │ │ │ ├── JFWebViewController.h │ │ │ └── JFWebViewController.m │ │ ├── Model │ │ │ ├── JFClassifyModel.h │ │ │ └── JFClassifyModel.m │ │ └── View │ │ │ ├── JFClassifyCell.h │ │ │ ├── JFClassifyCell.m │ │ │ └── JFClassifyCell.xib │ ├── Discover │ │ ├── Controller │ │ │ ├── JFDiscoverViewController.h │ │ │ ├── JFDiscoverViewController.m │ │ │ ├── JFSearchHistoryViewController.h │ │ │ ├── JFSearchHistoryViewController.m │ │ │ ├── JFSearchViewController.h │ │ │ └── JFSearchViewController.m │ │ ├── Model │ │ │ ├── JFDiscoverModel.h │ │ │ └── JFDiscoverModel.m │ │ ├── SearchView │ │ │ ├── JFSearchHistoryCell.h │ │ │ ├── JFSearchHistoryCell.m │ │ │ ├── JFSearchHistoryCell.xib │ │ │ ├── JFSearchHotCell.h │ │ │ ├── JFSearchHotCell.m │ │ │ ├── JFSearchHotCell.xib │ │ │ ├── JFSearchTextField.h │ │ │ ├── JFSearchTextField.m │ │ │ ├── JFsearchHeaderView.h │ │ │ ├── JFsearchHeaderView.m │ │ │ └── JFsearchHeaderView.xib │ │ └── View │ │ │ ├── JFDiscoverCell.h │ │ │ ├── JFDiscoverCell.m │ │ │ ├── JFDiscoverCell.xib │ │ │ ├── JFSearchButton.h │ │ │ └── JFSearchButton.m │ ├── Home │ │ ├── Controller │ │ │ ├── JFNavigationController.h │ │ │ ├── JFNavigationController.m │ │ │ ├── JFTabBarViewController.h │ │ │ ├── JFTabBarViewController.m │ │ │ ├── JFVideoDetailViewController.h │ │ │ ├── JFVideoDetailViewController.m │ │ │ ├── JFWatchRecordViewController.h │ │ │ ├── JFWatchRecordViewController.m │ │ │ ├── JFWatchRecordViewController.xib │ │ │ ├── ViewController.h │ │ │ └── ViewController.m │ │ ├── Model │ │ │ ├── JFBannerModel.h │ │ │ ├── JFBannerModel.m │ │ │ ├── JFBoxesModel.h │ │ │ ├── JFBoxesModel.m │ │ │ ├── JFHomeModel.h │ │ │ ├── JFHomeModel.m │ │ │ ├── JFRecommentModel.h │ │ │ ├── JFRecommentModel.m │ │ │ ├── JFVideoDetailModel.h │ │ │ ├── JFVideoDetailModel.m │ │ │ ├── JFVideosModel.h │ │ │ └── JFVideosModel.m │ │ └── View │ │ │ ├── CellView │ │ │ ├── JFHomeBoxCell.h │ │ │ ├── JFHomeBoxCell.m │ │ │ ├── JFHomeVideoBoxCell.h │ │ │ ├── JFHomeVideoBoxCell.m │ │ │ ├── JFImageCardView.h │ │ │ ├── JFImageCardView.m │ │ │ ├── JFImageScrollCell.h │ │ │ ├── JFImageScrollCell.m │ │ │ ├── JFImageScrollView.h │ │ │ ├── JFImageScrollView.m │ │ │ ├── JFRecommentVideoCell.h │ │ │ ├── JFRecommentVideoCell.m │ │ │ ├── JFRecommentVideoCell.xib │ │ │ ├── JFVideoDetailCell.h │ │ │ ├── JFVideoDetailCell.m │ │ │ └── JFVideoDetailCell.xib │ │ │ └── TabbarView │ │ │ ├── JFTabBar.h │ │ │ ├── JFTabBar.m │ │ │ ├── JFTabBarButton.h │ │ │ └── JFTabBarButton.m │ ├── Mine │ │ ├── Controller │ │ │ ├── JFLoginViewController.h │ │ │ ├── JFLoginViewController.m │ │ │ ├── JFMineViewController.h │ │ │ └── JFMineViewController.m │ │ └── View │ │ │ ├── JFLoginBtnCell.h │ │ │ ├── JFLoginBtnCell.m │ │ │ ├── JFLoginBtnCell.xib │ │ │ ├── JFTextFieldCell.h │ │ │ ├── JFTextFieldCell.m │ │ │ └── JFTextFieldCell.xib │ ├── Other │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Images.xcassets │ │ │ └── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ ├── JFMacro.h │ │ ├── JFTuDouPrefixHeader.pch │ │ └── Main.storyboard │ ├── Subscribe │ │ ├── Controller │ │ │ ├── JFSubscribeViewController.h │ │ │ └── JFSubscribeViewController.m │ │ ├── Model │ │ │ ├── JFSubItemModel.h │ │ │ ├── JFSubItemModel.m │ │ │ ├── JFSubscribeModel.h │ │ │ └── JFSubscribeModel.m │ │ └── View │ │ │ ├── JFSubImageScrollView.h │ │ │ ├── JFSubImageScrollView.m │ │ │ ├── JFSubScribeCardView.h │ │ │ ├── JFSubScribeCardView.m │ │ │ ├── JFSubScribeCardView.xib │ │ │ ├── JFSubscribeCell.h │ │ │ └── JFSubscribeCell.m │ └── ToolClass │ │ ├── GetPlistArray.h │ │ ├── GetPlistArray.m │ │ ├── GetUrlString.h │ │ ├── GetUrlString.m │ │ ├── JFBaseViewController.h │ │ ├── JFBaseViewController.m │ │ ├── NetWork.h │ │ ├── NetWork.m │ │ ├── UIView+JFLoadXib.h │ │ └── UIView+JFLoadXib.m ├── Images.xcassets │ └── BrandAsset.launchimage │ │ ├── Contents.json │ │ ├── Default-568h@2x.png │ │ └── Default@2x.png ├── Info.plist ├── JFImage │ ├── Classify │ │ ├── home_GaoXiao.png │ │ └── home_GaoXiao1@2x.png │ ├── Discover │ │ ├── GroupCell@2x.png │ │ ├── ic_discover_QR-code.png │ │ ├── ic_discover_QR-code@2x.png │ │ ├── ic_discover_search.png │ │ ├── ic_discover_search@2x.png │ │ └── searchm@2x.png │ ├── Home │ │ ├── home_history.png │ │ ├── home_history@2x.png │ │ ├── home_history@3x.png │ │ ├── home_logo.png │ │ ├── home_logo@2x.png │ │ ├── home_logo@3x.png │ │ ├── home_search.png │ │ ├── home_search@2x.png │ │ ├── home_search@3x.png │ │ ├── home_upload.png │ │ ├── home_upload@2x.png │ │ └── home_upload@3x.png │ ├── JFIdeaImage │ │ ├── back@2x.png │ │ ├── btn_rss_rss_normal.png │ │ ├── btn_rss_rss_normal@2x.png │ │ ├── btn_rss_rss_normal@3x.png │ │ ├── btn_rss_rss_press.png │ │ ├── btn_rss_rss_press@2x.png │ │ ├── btn_rss_rss_press@3x.png │ │ ├── ic_login_qq.png │ │ ├── ic_login_qq@2x.png │ │ ├── ic_login_qq@3x.png │ │ ├── ic_login_qrcode.png │ │ ├── ic_login_qrcode@2x.png │ │ ├── ic_login_qrcode@3x.png │ │ ├── ic_login_sina.png │ │ ├── ic_login_sina@2x.png │ │ ├── ic_login_sina@3x.png │ │ ├── ic_player_back@2x.png │ │ ├── ic_player_back@3x.png │ │ ├── searchList_btn_delete_6P.png │ │ ├── tequan.png │ │ ├── top_back_black.png │ │ ├── top_back_black@2x.png │ │ ├── top_back_black@3x.png │ │ ├── top_back_highLight.png │ │ ├── top_back_highLight@2x.png │ │ ├── top_back_highLight@3x.png │ │ ├── viewing-history.png │ │ ├── viewing-history@2x.png │ │ └── viewing-history@3x.png │ ├── Mine │ │ ├── bg_paipian_date.png │ │ ├── bg_paipian_date@2x.png │ │ ├── cache_no_data.png │ │ ├── cache_no_data@2x.png │ │ ├── default_head.png │ │ ├── default_head@2x.png │ │ ├── default_head@3x.png │ │ ├── ic_my_msg.png │ │ ├── ic_my_msg@2x.png │ │ ├── ic_my_msg@3x.png │ │ ├── mine_setting_icon.png │ │ ├── mine_setting_icon@2x.png │ │ ├── mine_setting_icon@3x.png │ │ ├── morentu.png │ │ ├── morentu@2x.png │ │ ├── myview_collect.png │ │ ├── myview_collect@2x.png │ │ ├── myview_collect@3x.png │ │ ├── myview_lishi.png │ │ ├── myview_lishi@2x.png │ │ ├── myview_lishi@3x.png │ │ ├── myview_tequan.png │ │ ├── myview_tequan@2x.png │ │ ├── myview_tequan@3x.png │ │ ├── myview_upload.png │ │ ├── myview_upload@2x.png │ │ ├── titlebar.png │ │ └── titlebar@2x.png │ ├── Subscribe │ │ ├── search_channel_subscribe_noPlay.png │ │ ├── search_channel_subscribe_noPlay@2x.png │ │ ├── search_channel_subscribe_noPlay@3x.png │ │ ├── search_channel_subscribe_noPlay_small.png │ │ ├── search_channel_subscribe_noPlay_small@2x.png │ │ ├── search_channel_subscribe_noPlay_small@3x.png │ │ ├── search_channel_subscribed.png │ │ ├── search_channel_subscribed@2x.png │ │ ├── search_channel_subscribed@3x.png │ │ ├── search_channel_subscribed_small.png │ │ ├── search_channel_subscribed_small@2x.png │ │ └── search_channel_subscribed_small@3x.png │ ├── Tabbar │ │ ├── home_classify.png │ │ ├── home_classify@2x.png │ │ ├── home_classify_notselected.png │ │ ├── home_classify_notselected@2x.png │ │ ├── home_classify_notselected@3x.png │ │ ├── home_classify_notselected@x.png │ │ ├── home_classify_selected.png │ │ ├── home_classify_selected@2x.png │ │ ├── home_classify_selected@3x.png │ │ ├── home_find_notselected.png │ │ ├── home_find_notselected@2x.png │ │ ├── home_find_notselected@3x.png │ │ ├── home_find_selected.png │ │ ├── home_find_selected@2x.png │ │ ├── home_find_selected@3x.png │ │ ├── home_homepage_notselected.png │ │ ├── home_homepage_notselected@2x.png │ │ ├── home_homepage_notselected@3x.png │ │ ├── home_homepage_selected.png │ │ ├── home_homepage_selected@2x.png │ │ ├── home_homepage_selected@3x.png │ │ ├── home_mine_notselected.png │ │ ├── home_mine_notselected@2x.png │ │ ├── home_mine_notselected@3x.png │ │ ├── home_mine_selected.png │ │ ├── home_mine_selected@2x.png │ │ ├── home_mine_selected@3x.png │ │ ├── home_subscribe.png │ │ ├── home_subscribe@2x.png │ │ ├── home_subscribe@3x.png │ │ ├── home_subscribe_selected.png │ │ ├── home_subscribe_selected@2x.png │ │ └── home_subscribe_selected@3x.png │ └── default │ │ ├── Default-375w-667h@2x.png │ │ ├── Default-414w-736h@3x.png │ │ ├── Default-568h@2x.png │ │ ├── Default.png │ │ └── Default@2x.png ├── Main.storyboard └── main.m ├── JFTudouTests ├── Info.plist └── JFTudouTests.m ├── JFTudouUITests ├── Info.plist └── JFTudouUITests.m ├── Podfile ├── Podfile.lock ├── Pods ├── AFNetworking │ ├── AFNetworking │ │ ├── AFHTTPRequestOperation.h │ │ ├── AFHTTPRequestOperation.m │ │ ├── AFHTTPRequestOperationManager.h │ │ ├── AFHTTPRequestOperationManager.m │ │ ├── AFHTTPSessionManager.h │ │ ├── AFHTTPSessionManager.m │ │ ├── AFNetworkReachabilityManager.h │ │ ├── AFNetworkReachabilityManager.m │ │ ├── AFNetworking.h │ │ ├── AFSecurityPolicy.h │ │ ├── AFSecurityPolicy.m │ │ ├── AFURLConnectionOperation.h │ │ ├── AFURLConnectionOperation.m │ │ ├── AFURLRequestSerialization.h │ │ ├── AFURLRequestSerialization.m │ │ ├── AFURLResponseSerialization.h │ │ ├── AFURLResponseSerialization.m │ │ ├── AFURLSessionManager.h │ │ └── AFURLSessionManager.m │ ├── LICENSE │ ├── README.md │ └── UIKit+AFNetworking │ │ ├── AFNetworkActivityIndicatorManager.h │ │ ├── AFNetworkActivityIndicatorManager.m │ │ ├── UIActivityIndicatorView+AFNetworking.h │ │ ├── UIActivityIndicatorView+AFNetworking.m │ │ ├── UIAlertView+AFNetworking.h │ │ ├── UIAlertView+AFNetworking.m │ │ ├── UIButton+AFNetworking.h │ │ ├── UIButton+AFNetworking.m │ │ ├── UIImage+AFNetworking.h │ │ ├── UIImageView+AFNetworking.h │ │ ├── UIImageView+AFNetworking.m │ │ ├── UIKit+AFNetworking.h │ │ ├── UIProgressView+AFNetworking.h │ │ ├── UIProgressView+AFNetworking.m │ │ ├── UIRefreshControl+AFNetworking.h │ │ ├── UIRefreshControl+AFNetworking.m │ │ ├── UIWebView+AFNetworking.h │ │ └── UIWebView+AFNetworking.m ├── Headers │ ├── Private │ │ ├── AFNetworking │ │ │ ├── AFHTTPRequestOperation.h │ │ │ ├── AFHTTPRequestOperationManager.h │ │ │ ├── AFHTTPSessionManager.h │ │ │ ├── AFNetworkActivityIndicatorManager.h │ │ │ ├── AFNetworkReachabilityManager.h │ │ │ ├── AFNetworking.h │ │ │ ├── AFSecurityPolicy.h │ │ │ ├── AFURLConnectionOperation.h │ │ │ ├── AFURLRequestSerialization.h │ │ │ ├── AFURLResponseSerialization.h │ │ │ ├── AFURLSessionManager.h │ │ │ ├── UIActivityIndicatorView+AFNetworking.h │ │ │ ├── UIAlertView+AFNetworking.h │ │ │ ├── UIButton+AFNetworking.h │ │ │ ├── UIImage+AFNetworking.h │ │ │ ├── UIImageView+AFNetworking.h │ │ │ ├── UIKit+AFNetworking.h │ │ │ ├── UIProgressView+AFNetworking.h │ │ │ ├── UIRefreshControl+AFNetworking.h │ │ │ └── UIWebView+AFNetworking.h │ │ ├── MJExtension │ │ │ ├── MJDictionaryCache.h │ │ │ ├── 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 │ │ │ ├── UIScrollView+MJExtension.h │ │ │ ├── UIScrollView+MJRefresh.h │ │ │ └── UIView+MJExtension.h │ │ └── SDWebImage │ │ │ ├── NSData+ImageContentType.h │ │ │ ├── SDImageCache.h │ │ │ ├── SDWebImageCompat.h │ │ │ ├── SDWebImageDecoder.h │ │ │ ├── SDWebImageDownloader.h │ │ │ ├── SDWebImageDownloaderOperation.h │ │ │ ├── SDWebImageManager.h │ │ │ ├── SDWebImageOperation.h │ │ │ ├── SDWebImagePrefetcher.h │ │ │ ├── UIButton+WebCache.h │ │ │ ├── UIImage+GIF.h │ │ │ ├── UIImage+MultiFormat.h │ │ │ ├── UIImageView+HighlightedWebCache.h │ │ │ ├── UIImageView+WebCache.h │ │ │ └── UIView+WebCacheOperation.h │ └── Public │ │ ├── AFNetworking │ │ ├── AFHTTPRequestOperation.h │ │ ├── AFHTTPRequestOperationManager.h │ │ ├── AFHTTPSessionManager.h │ │ ├── AFNetworkActivityIndicatorManager.h │ │ ├── AFNetworkReachabilityManager.h │ │ ├── AFNetworking.h │ │ ├── AFSecurityPolicy.h │ │ ├── AFURLConnectionOperation.h │ │ ├── AFURLRequestSerialization.h │ │ ├── AFURLResponseSerialization.h │ │ ├── AFURLSessionManager.h │ │ ├── UIActivityIndicatorView+AFNetworking.h │ │ ├── UIAlertView+AFNetworking.h │ │ ├── UIButton+AFNetworking.h │ │ ├── UIImage+AFNetworking.h │ │ ├── UIImageView+AFNetworking.h │ │ ├── UIKit+AFNetworking.h │ │ ├── UIProgressView+AFNetworking.h │ │ ├── UIRefreshControl+AFNetworking.h │ │ └── UIWebView+AFNetworking.h │ │ ├── MJExtension │ │ ├── MJDictionaryCache.h │ │ ├── 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 │ │ ├── UIScrollView+MJExtension.h │ │ ├── UIScrollView+MJRefresh.h │ │ └── UIView+MJExtension.h │ │ └── SDWebImage │ │ ├── NSData+ImageContentType.h │ │ ├── SDImageCache.h │ │ ├── SDWebImageCompat.h │ │ ├── SDWebImageDecoder.h │ │ ├── SDWebImageDownloader.h │ │ ├── SDWebImageDownloaderOperation.h │ │ ├── SDWebImageManager.h │ │ ├── SDWebImageOperation.h │ │ ├── SDWebImagePrefetcher.h │ │ ├── UIButton+WebCache.h │ │ ├── UIImage+GIF.h │ │ ├── UIImage+MultiFormat.h │ │ ├── UIImageView+HighlightedWebCache.h │ │ ├── UIImageView+WebCache.h │ │ └── UIView+WebCacheOperation.h ├── MJExtension │ ├── LICENSE │ ├── MJExtension │ │ ├── MJDictionaryCache.h │ │ ├── MJDictionaryCache.m │ │ ├── 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 │ │ ├── MJRefresh.h │ │ ├── MJRefreshConst.h │ │ ├── MJRefreshConst.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 │ │ ├── baoxiuyizhantong.xcuserdatad │ │ └── xcschemes │ │ │ ├── AFNetworking.xcscheme │ │ │ ├── MJExtension.xcscheme │ │ │ ├── MJRefresh.xcscheme │ │ │ ├── Pods.xcscheme │ │ │ ├── SDWebImage.xcscheme │ │ │ └── xcschememanagement.plist │ │ └── tubiebutu.xcuserdatad │ │ └── xcschemes │ │ ├── AFNetworking.xcscheme │ │ ├── MJExtension.xcscheme │ │ ├── MJRefresh.xcscheme │ │ ├── Pods.xcscheme │ │ ├── SDWebImage.xcscheme │ │ └── xcschememanagement.plist ├── SDWebImage │ ├── LICENSE │ ├── README.md │ └── SDWebImage │ │ ├── NSData+ImageContentType.h │ │ ├── NSData+ImageContentType.m │ │ ├── SDImageCache.h │ │ ├── SDImageCache.m │ │ ├── SDWebImageCompat.h │ │ ├── SDWebImageCompat.m │ │ ├── SDWebImageDecoder.h │ │ ├── SDWebImageDecoder.m │ │ ├── SDWebImageDownloader.h │ │ ├── SDWebImageDownloader.m │ │ ├── SDWebImageDownloaderOperation.h │ │ ├── SDWebImageDownloaderOperation.m │ │ ├── SDWebImageManager.h │ │ ├── SDWebImageManager.m │ │ ├── SDWebImageOperation.h │ │ ├── SDWebImagePrefetcher.h │ │ ├── SDWebImagePrefetcher.m │ │ ├── UIButton+WebCache.h │ │ ├── UIButton+WebCache.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+WebCacheOperation.h │ │ └── UIView+WebCacheOperation.m └── Target Support Files │ ├── AFNetworking │ ├── AFNetworking-dummy.m │ ├── AFNetworking-prefix.pch │ └── AFNetworking.xcconfig │ ├── MJExtension │ ├── MJExtension-dummy.m │ ├── MJExtension-prefix.pch │ └── MJExtension.xcconfig │ ├── MJRefresh │ ├── MJRefresh-dummy.m │ ├── MJRefresh-prefix.pch │ └── MJRefresh.xcconfig │ ├── Pods │ ├── Pods-acknowledgements.markdown │ ├── Pods-acknowledgements.plist │ ├── Pods-dummy.m │ ├── Pods-frameworks.sh │ ├── Pods-resources.sh │ ├── Pods.debug.xcconfig │ └── Pods.release.xcconfig │ └── SDWebImage │ ├── SDWebImage-dummy.m │ ├── SDWebImage-prefix.pch │ └── SDWebImage.xcconfig └── README.md /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/.DS_Store -------------------------------------------------------------------------------- /JFTudou.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /JFTudou.xcodeproj/project.xcworkspace/xcuserdata/baoxiuyizhantong.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou.xcodeproj/project.xcworkspace/xcuserdata/baoxiuyizhantong.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /JFTudou.xcodeproj/xcuserdata/baoxiuyizhantong.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /JFTudou.xcodeproj/xcuserdata/baoxiuyizhantong.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | JFTudou.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 7DE95E7F1BCB37B7002EE20A 16 | 17 | primary 18 | 19 | 20 | 7DE95E981BCB37B7002EE20A 21 | 22 | primary 23 | 24 | 25 | 7DE95EA31BCB37B7002EE20A 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /JFTudou.xcodeproj/xcuserdata/tubiebutu.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | JFTudou.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 7DE95E7F1BCB37B7002EE20A 16 | 17 | primary 18 | 19 | 20 | 7DE95E981BCB37B7002EE20A 21 | 22 | primary 23 | 24 | 25 | 7DE95EA31BCB37B7002EE20A 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /JFTudou.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /JFTudou.xcworkspace/xcuserdata/baoxiuyizhantong.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou.xcworkspace/xcuserdata/baoxiuyizhantong.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /JFTudou.xcworkspace/xcuserdata/baoxiuyizhantong.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /JFTudou.xcworkspace/xcuserdata/tubiebutu.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou.xcworkspace/xcuserdata/tubiebutu.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /JFTudou/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // JFTuDou 4 | // 5 | // Created by 保修一站通 on 15/10/6. 6 | // Copyright (c) 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /JFTudou/Assets.xcassets/AppIcon.appiconset/AppIcon29x29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/Assets.xcassets/AppIcon.appiconset/AppIcon29x29.png -------------------------------------------------------------------------------- /JFTudou/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png -------------------------------------------------------------------------------- /JFTudou/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@3x.png -------------------------------------------------------------------------------- /JFTudou/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png -------------------------------------------------------------------------------- /JFTudou/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@3x.png -------------------------------------------------------------------------------- /JFTudou/Assets.xcassets/AppIcon.appiconset/AppIcon57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/Assets.xcassets/AppIcon.appiconset/AppIcon57x57.png -------------------------------------------------------------------------------- /JFTudou/Assets.xcassets/AppIcon.appiconset/AppIcon57x57@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/Assets.xcassets/AppIcon.appiconset/AppIcon57x57@2x.png -------------------------------------------------------------------------------- /JFTudou/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png -------------------------------------------------------------------------------- /JFTudou/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png -------------------------------------------------------------------------------- /JFTudou/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /JFTudou/Assets.xcassets/Default-375w.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Default-375w-667h@2x.png", 6 | "subtype" : "667h", 7 | "scale" : "2x" 8 | } 9 | ], 10 | "info" : { 11 | "version" : 1, 12 | "author" : "xcode" 13 | } 14 | } -------------------------------------------------------------------------------- /JFTudou/Assets.xcassets/Default-375w.imageset/Default-375w-667h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/Assets.xcassets/Default-375w.imageset/Default-375w-667h@2x.png -------------------------------------------------------------------------------- /JFTudou/Assets.xcassets/Default-414w.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Default-414w-736h@3x.png", 6 | "subtype" : "736h", 7 | "scale" : "3x" 8 | } 9 | ], 10 | "info" : { 11 | "version" : 1, 12 | "author" : "xcode" 13 | } 14 | } -------------------------------------------------------------------------------- /JFTudou/Assets.xcassets/Default-414w.imageset/Default-414w-736h@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/Assets.xcassets/Default-414w.imageset/Default-414w-736h@3x.png -------------------------------------------------------------------------------- /JFTudou/Assets.xcassets/Default.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Default.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "Default@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | }, 17 | { 18 | "idiom" : "universal", 19 | "filename" : "Default-568h@2x.png", 20 | "subtype" : "retina4", 21 | "scale" : "2x" 22 | } 23 | ], 24 | "info" : { 25 | "version" : 1, 26 | "author" : "xcode" 27 | } 28 | } -------------------------------------------------------------------------------- /JFTudou/Assets.xcassets/Default.imageset/Default-568h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/Assets.xcassets/Default.imageset/Default-568h@2x.png -------------------------------------------------------------------------------- /JFTudou/Assets.xcassets/Default.imageset/Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/Assets.xcassets/Default.imageset/Default.png -------------------------------------------------------------------------------- /JFTudou/Assets.xcassets/Default.imageset/Default@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/Assets.xcassets/Default.imageset/Default@2x.png -------------------------------------------------------------------------------- /JFTudou/Assets.xcassets/Default@2x-1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Default@2x-1.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /JFTudou/Assets.xcassets/Default@2x-1.imageset/Default@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/Assets.xcassets/Default@2x-1.imageset/Default@2x-1.png -------------------------------------------------------------------------------- /JFTudou/Class/Category/NSString+JFColorString.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSString+JFColorString.h 3 | // JF团购 4 | // 5 | // Created by 保修一站通 on 15/8/24. 6 | // Copyright (c) 2015年 JF团购. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface NSString (JFColorString) 12 | - (UIColor *) stringTOColor:(NSString *)str; 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /JFTudou/Class/Category/NSString+JFColorString.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSString+JFColorString.m 3 | // JF团购 4 | // 5 | // Created by 保修一站通 on 15/8/24. 6 | // Copyright (c) 2015年 JF团购. All rights reserved. 7 | // 8 | 9 | #import "NSString+JFColorString.h" 10 | 11 | @implementation NSString (JFColorString) 12 | 13 | - (UIColor *) stringTOColor:(NSString *)str 14 | { 15 | if (!str || [str isEqualToString:@""]) { 16 | return nil; 17 | } 18 | unsigned red,green,blue; 19 | NSRange range; 20 | range.length = 2; 21 | range.location = 1; 22 | [[NSScanner scannerWithString:[str substringWithRange:range]] scanHexInt:&red]; 23 | range.location = 3; 24 | [[NSScanner scannerWithString:[str substringWithRange:range]] scanHexInt:&green]; 25 | range.location = 5; 26 | [[NSScanner scannerWithString:[str substringWithRange:range]] scanHexInt:&blue]; 27 | UIColor *color= [UIColor colorWithRed:red/255.0f green:green/255.0f blue:blue/255.0f alpha:1]; 28 | return color; 29 | } 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /JFTudou/Class/Category/UIBarButtonItem+JFBarButtonItem.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIBarButtonItem+JFBarButtonItem.h 3 | // JF团购 4 | // 5 | // Created by 保修一站通 on 15/9/18. 6 | // Copyright (c) 2015年 JF团购. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIBarButtonItem (JFBarButtonItem) 12 | 13 | /** 14 | *根据图片快速创建一个UIBarButtonItem,自定义大小 15 | */ 16 | + (UIBarButtonItem *)initWithNormalImage:(NSString *)image target:(id)target action:(SEL)action width:(CGFloat)width height:(CGFloat)height; 17 | 18 | + (UIBarButtonItem *)initWithTitle:(NSString *)title titleColor:(UIColor *)titleColor target:(id)target action:(SEL)action; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /JFTudou/Class/Category/UIBarButtonItem+JFBarButtonItem.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIBarButtonItem+JFBarButtonItem.m 3 | // JF团购 4 | // 5 | // Created by 保修一站通 on 15/9/18. 6 | // Copyright (c) 2015年 JF团购. All rights reserved. 7 | //// 项目详解: 8 | // github:https://github.com/tubie/JFTudou 9 | // 简书:http://www.jianshu.com/p/2156ec56c55b 10 | 11 | 12 | #import "UIBarButtonItem+JFBarButtonItem.h" 13 | 14 | @implementation UIBarButtonItem (JFBarButtonItem) 15 | 16 | + (UIBarButtonItem *)initWithNormalImage:(NSString *)image target:(id)target action:(SEL)action width:(CGFloat)width height:(CGFloat)height 17 | { 18 | UIImage *normalImage = [UIImage imageNamed:image]; 19 | 20 | UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; 21 | btn.frame = CGRectMake(0, 0, width, height); 22 | [btn setBackgroundImage:normalImage forState:UIControlStateNormal]; 23 | [btn addTarget:target action:action forControlEvents:UIControlEventTouchUpInside]; 24 | 25 | return [[UIBarButtonItem alloc] initWithCustomView:btn]; 26 | } 27 | + (UIBarButtonItem *)initWithTitle:(NSString *)title titleColor:(UIColor *)titleColor target:(id)target action:(SEL)action 28 | { 29 | UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; 30 | btn.frame = CGRectMake(0, 0, 40, 40); 31 | [btn setTitle:title forState:UIControlStateNormal]; 32 | [btn setTitleColor:titleColor forState:UIControlStateNormal]; 33 | [btn addTarget:target action:action forControlEvents:UIControlEventTouchUpInside]; 34 | 35 | UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:btn]; 36 | return item; 37 | } 38 | @end 39 | -------------------------------------------------------------------------------- /JFTudou/Class/Category/UIButton+JFButton.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIButton+JFButton.h 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/19. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIButton (JFButton) 12 | 13 | + (UIButton *)initBtnWithFrame:(CGRect)frame target:(id)target method:(SEL)method title:(NSString *)title setimageName:(NSString *)setimageName backImageName:(NSString *)backImageName; 14 | 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /JFTudou/Class/Category/UIButton+JFButton.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIButton+JFButton.m 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/19. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import "UIButton+JFButton.h" 10 | 11 | @implementation UIButton (JFButton) 12 | 13 | + (UIButton *)initBtnWithFrame:(CGRect)frame target:(id)target method:(SEL)method title:(NSString *)title setimageName:(NSString *)setimageName backImageName:(NSString *)backImageName; 14 | { 15 | UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; 16 | btn.frame = frame; 17 | [btn addTarget:target action:method forControlEvents:UIControlEventTouchUpInside]; 18 | [btn setTitle:title forState:UIControlStateNormal]; 19 | [btn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; 20 | btn.titleLabel.font = [UIFont systemFontOfSize:16.0]; 21 | [btn setImage:[UIImage imageNamed:setimageName] forState:UIControlStateNormal]; 22 | [btn setBackgroundImage:[UIImage imageNamed:backImageName] forState:UIControlStateNormal]; 23 | return btn; 24 | } 25 | @end 26 | -------------------------------------------------------------------------------- /JFTudou/Class/Category/UITableView+JFTableView.h: -------------------------------------------------------------------------------- 1 | // 2 | // UITableView+JFTableView.h 3 | // JF团购 4 | // 5 | // Created by 保修一站通 on 15/9/18. 6 | // Copyright (c) 2015年 JF团购. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UITableView (JFTableView) 12 | /** 13 | * 快速创建tableView 14 | * 15 | * @param frame tableView的frame 16 | * @param delegate 代理 17 | * 18 | * @return 返回一个自定义的tableView 19 | */ 20 | + (UITableView *)initWithTableView:(CGRect)frame withDelegate:(id)delegate; 21 | @end 22 | -------------------------------------------------------------------------------- /JFTudou/Class/Category/UITableView+JFTableView.m: -------------------------------------------------------------------------------- 1 | // 2 | // UITableView+JFTableView.m 3 | // JF团购 4 | // 5 | // Created by 保修一站通 on 15/9/18. 6 | // Copyright (c) 2015年 JF团购. All rights reserved. 7 | // 8 | 9 | #import "UITableView+JFTableView.h" 10 | 11 | @implementation UITableView (JFTableView) 12 | 13 | + (UITableView *)initWithTableView:(CGRect)frame withDelegate:(id)delegate 14 | { 15 | UITableView *tableView = [[UITableView alloc] initWithFrame:frame style:UITableViewStylePlain]; 16 | tableView.delegate = delegate; 17 | tableView.dataSource = delegate; 18 | //将系统的Separator左边不留间隙 19 | tableView.separatorInset = UIEdgeInsetsZero; 20 | return tableView; 21 | } 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /JFTudou/Class/Classify/Controller/JFClassifyViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFClassifyViewController.h 3 | // JFTuDou 4 | // 5 | // Created by 保修一站通 on 15/10/9. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface JFClassifyViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /JFTudou/Class/Classify/Controller/JFWebViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFWebViewController.h 3 | // JF团购 4 | // 5 | // Created by 保修一站通 on 15/9/15. 6 | // Copyright (c) 2015年 JF团购. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface JFWebViewController : UIViewController 12 | 13 | @property(nonatomic, strong) UIWebView *webView; 14 | @property(nonatomic, strong) NSString *urlStr; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /JFTudou/Class/Classify/Model/JFClassifyModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // JFClassifyModel.m 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/16. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import "JFClassifyModel.h" 10 | 11 | @implementation JFClassifyModel 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /JFTudou/Class/Classify/View/JFClassifyCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFClassifyCell.h 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/16. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | @class JFClassifyModel; 11 | @interface JFClassifyCell : UITableViewCell 12 | 13 | 14 | + (instancetype)cellWithTableView:(UITableView *)tableView; 15 | 16 | 17 | @property (weak, nonatomic) IBOutlet UIImageView *classifyImageView; 18 | @property (weak, nonatomic) IBOutlet UILabel *classifyNameLabel; 19 | 20 | @property(nonatomic, strong)JFClassifyModel *classifyModel; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /JFTudou/Class/Classify/View/JFClassifyCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // JFClassifyCell.m 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/16. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import "JFClassifyCell.h" 10 | #import "JFClassifyModel.h" 11 | @implementation JFClassifyCell 12 | 13 | - (void)awakeFromNib { 14 | // Initialization code 15 | } 16 | 17 | - (void)setSelected:(BOOL)selected animated:(BOOL)animated { 18 | [super setSelected:selected animated:animated]; 19 | 20 | } 21 | 22 | + (instancetype)cellWithTableView:(UITableView *)tableView 23 | { 24 | static NSString *ID = @"JFClassifyCell"; 25 | JFClassifyCell *cell = [tableView dequeueReusableCellWithIdentifier:ID]; 26 | if (cell == nil) { 27 | // 从xib中加载cell 28 | cell = [[[NSBundle mainBundle] loadNibNamed:@"JFClassifyCell" owner:nil options:nil] lastObject]; 29 | } 30 | cell.selectionStyle = UITableViewCellSelectionStyleNone; 31 | return cell; 32 | } 33 | -(void)setClassifyModel:(JFClassifyModel *)classifyModel{ 34 | _classifyModel = classifyModel; 35 | [self.classifyImageView sd_setImageWithURL:[NSURL URLWithString:classifyModel.image_at_bottom] placeholderImage:[UIImage imageNamed:@"home_GaoXiao"]]; 36 | self.classifyNameLabel.text = classifyModel.name; 37 | 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /JFTudou/Class/Discover/Controller/JFDiscoverViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFDiscoverViewController.h 3 | // JFTuDou 4 | // 5 | // Created by 保修一站通 on 15/10/9. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface JFDiscoverViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /JFTudou/Class/Discover/Controller/JFSearchHistoryViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFSearchHistoryViewController.h 3 | // JF团购 4 | // 5 | // Created by 保修一站通 on 15/9/21. 6 | // Copyright (c) 2015年 JF团购. All rights reserved. 7 | // 8 | 9 | #import "JFBaseViewController.h" 10 | 11 | @interface JFSearchHistoryViewController : JFBaseViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /JFTudou/Class/Discover/Controller/JFSearchViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFSearchViewController.h 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/19. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import "JFBaseViewController.h" 10 | 11 | @interface JFSearchViewController : JFBaseViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /JFTudou/Class/Discover/Controller/JFSearchViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // JFSearchViewController.m 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/19. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | //// 项目详解: 8 | // github:https://github.com/tubie/JFTudou 9 | // 简书:http://www.jianshu.com/p/2156ec56c55b 10 | 11 | 12 | #import "JFSearchViewController.h" 13 | 14 | @interface JFSearchViewController () 15 | 16 | @end 17 | 18 | @implementation JFSearchViewController 19 | 20 | - (void)viewDidLoad { 21 | [super viewDidLoad]; 22 | // Do any additional setup after loading the view. 23 | } 24 | 25 | - (void)didReceiveMemoryWarning { 26 | [super didReceiveMemoryWarning]; 27 | // Dispose of any resources that can be recreated. 28 | } 29 | 30 | /* 31 | #pragma mark - Navigation 32 | 33 | // In a storyboard-based application, you will often want to do a little preparation before navigation 34 | - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 35 | // Get the new view controller using [segue destinationViewController]. 36 | // Pass the selected object to the new view controller. 37 | } 38 | */ 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /JFTudou/Class/Discover/Model/JFDiscoverModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFDiscoverModel.h 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/16. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface JFDiscoverModel : NSObject 12 | @property(nonatomic, strong) NSNumber *group_number; 13 | @property(nonatomic, strong) NSString *title; 14 | @property(nonatomic, strong) NSMutableArray *items; 15 | @property(nonatomic, strong) NSString *skip_url; 16 | @property(nonatomic, strong) NSString *sub_title; 17 | 18 | @property(nonatomic, strong) NSString *module_icon; 19 | @property(nonatomic, strong) NSString *sub_type; 20 | @property(nonatomic, strong) NSNumber *group_location; 21 | 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /JFTudou/Class/Discover/Model/JFDiscoverModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // JFDiscoverModel.m 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/16. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import "JFDiscoverModel.h" 10 | 11 | @implementation JFDiscoverModel 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /JFTudou/Class/Discover/SearchView/JFSearchHistoryCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFSearchHistoryCell.h 3 | // JF团购 4 | // 5 | // Created by 保修一站通 on 15/9/22. 6 | // Copyright (c) 2015年 JF团购. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | 13 | @interface JFSearchHistoryCell : UITableViewCell 14 | @property (weak, nonatomic) IBOutlet UILabel *searchHistoryLabel; 15 | - (IBAction)cancelSearchBtnClick:(id)sender; 16 | 17 | + (instancetype)cellWithTableView:(UITableView *)tableView IndexPath:(NSIndexPath *)indexPath atNSMutableArr:(NSMutableArray *)datas; 18 | 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /JFTudou/Class/Discover/SearchView/JFSearchHotCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFSearchHotCell.h 3 | // JF团购 4 | // 5 | // Created by 保修一站通 on 15/9/22. 6 | // Copyright (c) 2015年 JF团购. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface JFSearchHotCell : UITableViewCell 12 | 13 | @property(nonatomic, strong)NSArray *array; 14 | + (instancetype)cellWithTableView:(UITableView *)tableView ; 15 | 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /JFTudou/Class/Discover/SearchView/JFSearchHotCell.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /JFTudou/Class/Discover/SearchView/JFSearchTextField.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFSearchTextField.h 3 | // JF团购 4 | // 5 | // Created by 保修一站通 on 15/9/22. 6 | // Copyright (c) 2015年 JF团购. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface JFSearchTextField : UITextField 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /JFTudou/Class/Discover/SearchView/JFSearchTextField.m: -------------------------------------------------------------------------------- 1 | // 2 | // JFSearchTextField.m 3 | // JF团购 4 | // 5 | // Created by 保修一站通 on 15/9/22. 6 | // Copyright (c) 2015年 JF团购. All rights reserved. 7 | // 8 | 9 | #import "JFSearchTextField.h" 10 | 11 | @implementation JFSearchTextField 12 | 13 | - (id)initWithFrame:(CGRect)frame 14 | { 15 | self = [super initWithFrame:frame]; 16 | if (self) { 17 | self.placeholder = @"大家都在搜琅琊榜"; 18 | self.font = [UIFont systemFontOfSize:16]; 19 | 20 | UIImage *image = [UIImage imageNamed:@"GroupCell"]; 21 | self.background = [image stretchableImageWithLeftCapWidth:image.size.width * 0.5 topCapHeight:image.size.height * 0.5]; 22 | self.clearButtonMode = UITextFieldViewModeAlways; 23 | self.layer.masksToBounds = YES; 24 | self.layer.cornerRadius = 5; 25 | 26 | //设置文边框左边专属View 27 | UIImageView *leftView = [[UIImageView alloc] init]; 28 | leftView.bounds = CGRectMake(0, 0, 35 , 35); 29 | // leftView.contentMode = UIViewContentModeCenter; 30 | 31 | leftView.image = [UIImage imageNamed:@"searchm"]; 32 | 33 | self.leftView = leftView; 34 | self.leftViewMode = UITextFieldViewModeAlways; 35 | } 36 | 37 | return self; 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /JFTudou/Class/Discover/SearchView/JFsearchHeaderView.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFsearchHeaderView.h 3 | // JF团购 4 | // 5 | // Created by 保修一站通 on 15/9/22. 6 | // Copyright (c) 2015年 JF团购. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface JFsearchHeaderView : UIView 12 | 13 | + (instancetype)headViewWithTableView:(UITableView *)tableView ; 14 | 15 | @property (weak, nonatomic) IBOutlet UILabel *TitleLabel; 16 | 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /JFTudou/Class/Discover/SearchView/JFsearchHeaderView.m: -------------------------------------------------------------------------------- 1 | // 2 | // JFsearchHeaderView.m 3 | // JF团购 4 | // 5 | // Created by 保修一站通 on 15/9/22. 6 | // Copyright (c) 2015年 JF团购. All rights reserved. 7 | // 8 | 9 | #import "JFsearchHeaderView.h" 10 | 11 | @implementation JFsearchHeaderView 12 | 13 | + (instancetype)headViewWithTableView:(UITableView *)tableView { 14 | static NSString *ID = @"JFsearchHeaderView"; 15 | JFsearchHeaderView *headView = [tableView dequeueReusableHeaderFooterViewWithIdentifier:ID]; 16 | if (headView == nil) { 17 | // 从xib中加载cell 18 | headView = [[[NSBundle mainBundle] loadNibNamed:@"JFsearchHeaderView" owner:nil options:nil] lastObject]; 19 | } 20 | headView.backgroundColor = separaterColor; 21 | return headView; 22 | } 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /JFTudou/Class/Discover/View/JFDiscoverCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFDiscoverCell.h 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/16. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | @class JFDiscoverModel; 11 | @interface JFDiscoverCell : UITableViewCell 12 | @property (weak, nonatomic) IBOutlet UIImageView *discoverImageView; 13 | @property (weak, nonatomic) IBOutlet UILabel *discoverDetailLabel; 14 | + (instancetype)cellWithTableView:(UITableView *)tableView; 15 | 16 | @property(nonatomic, strong)JFDiscoverModel *discoverModel; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /JFTudou/Class/Discover/View/JFDiscoverCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // JFDiscoverCell.m 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/16. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import "JFDiscoverCell.h" 10 | #import "JFDiscoverModel.h" 11 | @implementation JFDiscoverCell 12 | 13 | - (void)awakeFromNib { 14 | // Initialization code 15 | } 16 | 17 | - (void)setSelected:(BOOL)selected animated:(BOOL)animated { 18 | [super setSelected:selected animated:animated]; 19 | 20 | // Configure the view for the selected state 21 | } 22 | + (instancetype)cellWithTableView:(UITableView *)tableView 23 | { 24 | static NSString *ID = @"JFDiscoverCell"; 25 | JFDiscoverCell *cell = [tableView dequeueReusableCellWithIdentifier:ID]; 26 | if (cell == nil) { 27 | // 从xib中加载cell 28 | cell = [[[NSBundle mainBundle] loadNibNamed:@"JFDiscoverCell" owner:nil options:nil] lastObject]; 29 | } 30 | cell.selectionStyle = UITableViewCellSelectionStyleNone; 31 | return cell; 32 | } 33 | 34 | -(void)setDiscoverModel:(JFDiscoverModel *)discoverModel{ 35 | _discoverModel = discoverModel; 36 | self.discoverDetailLabel.text = discoverModel.title; 37 | [self.discoverImageView sd_setImageWithURL:[NSURL URLWithString:discoverModel.module_icon] placeholderImage:[UIImage imageNamed:@"home_GaoXiao"]]; 38 | 39 | } 40 | @end 41 | -------------------------------------------------------------------------------- /JFTudou/Class/Discover/View/JFSearchButton.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFSearchButton.h 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/19. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface JFSearchButton : UIButton 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /JFTudou/Class/Discover/View/JFSearchButton.m: -------------------------------------------------------------------------------- 1 | // 2 | // JFSearchButton.m 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/19. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #define JFSearchButtonImageRatio 0.2 10 | #import "JFSearchButton.h" 11 | 12 | 13 | 14 | @implementation JFSearchButton 15 | 16 | -(id)initWithFrame:(CGRect)frame{ 17 | self = [super initWithFrame:frame]; 18 | if (self) 19 | { 20 | //图片居中 21 | self.imageView.contentMode = UIViewContentModeCenter; 22 | //文字居中 23 | // self.titleLabel.textAlignment = NSTextAlignmentCenter; 24 | //字体居中 25 | self.titleLabel.font = [UIFont systemFontOfSize:11]; 26 | //文字颜色 27 | [self setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; 28 | 29 | } 30 | return self; 31 | } 32 | 33 | 34 | -(void)setHighlighted:(BOOL)highlighted{ 35 | 36 | } 37 | -(CGRect)imageRectForContentRect:(CGRect)contentRect 38 | { 39 | CGFloat imageW = contentRect.size.width * JFSearchButtonImageRatio; 40 | CGFloat imageH = contentRect.size.height ; 41 | return CGRectMake(0, 0, imageW, imageH); 42 | } 43 | 44 | -(CGRect)titleRectForContentRect:(CGRect)contentRect{ 45 | 46 | CGFloat titleX = contentRect.size.width * JFSearchButtonImageRatio; 47 | CGFloat titleW = contentRect.size.width; 48 | CGFloat titleH = contentRect.size.height ; 49 | return CGRectMake(titleX, 0, titleW, titleH); 50 | } 51 | 52 | @end 53 | -------------------------------------------------------------------------------- /JFTudou/Class/Home/Controller/JFNavigationController.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFNavigationController.h 3 | // JF团购 4 | // 5 | // Created by 保修一站通 on 15/8/15. 6 | // Copyright (c) 2015年 JF团购. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface JFNavigationController : UINavigationController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /JFTudou/Class/Home/Controller/JFTabBarViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFTabBarViewController.h 3 | // JF团购 4 | // 5 | // Created by 保修一站通 on 15/8/11. 6 | // Copyright (c) 2015年 JF团购. All rights reserved. 7 | //自定义导航栏 8 | 9 | #import 10 | 11 | @interface JFTabBarViewController : UITabBarController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /JFTudou/Class/Home/Controller/JFVideoDetailViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFVideoDetailViewController.h 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/17. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import "JFBaseViewController.h" 10 | 11 | @interface JFVideoDetailViewController : JFBaseViewController 12 | 13 | @property(nonatomic, strong) NSString *iid; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /JFTudou/Class/Home/Controller/JFWatchRecordViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFWatchRecordViewController.h 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/19. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface JFWatchRecordViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /JFTudou/Class/Home/Controller/JFWatchRecordViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // JFWatchRecordViewController.m 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/19. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | //// 项目详解: 8 | // github:https://github.com/tubie/JFTudou 9 | // 简书:http://www.jianshu.com/p/2156ec56c55b 10 | 11 | 12 | #import "JFWatchRecordViewController.h" 13 | 14 | @interface JFWatchRecordViewController () 15 | 16 | @end 17 | 18 | @implementation JFWatchRecordViewController 19 | 20 | -(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{ 21 | self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 22 | if (self) { 23 | self.hidesBottomBarWhenPushed = YES; 24 | } 25 | return self; 26 | } 27 | 28 | - (void)viewDidLoad { 29 | [super viewDidLoad]; 30 | [self initNav]; 31 | } 32 | 33 | -(void)initNav{ 34 | self.title = @"观看纪录"; 35 | self.navigationController.navigationBar.hidden = NO; 36 | 37 | UIBarButtonItem *leftBarButtonItem = [UIBarButtonItem initWithNormalImage:@"ic_player_back" target:self action:@selector(leftBarButtonItemClick) width:35 height:35]; 38 | self.navigationItem.leftBarButtonItem = leftBarButtonItem; 39 | 40 | 41 | } 42 | 43 | -(void)leftBarButtonItemClick{ 44 | [self.navigationController popViewControllerAnimated:YES]; 45 | 46 | } 47 | 48 | - (void)didReceiveMemoryWarning { 49 | [super didReceiveMemoryWarning]; 50 | // Dispose of any resources that can be recreated. 51 | } 52 | 53 | 54 | 55 | @end 56 | -------------------------------------------------------------------------------- /JFTudou/Class/Home/Controller/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // JFTuDou 4 | // 5 | // Created by 保修一站通 on 15/10/6. 6 | // Copyright (c) 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /JFTudou/Class/Home/Model/JFBannerModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFBannerModel.h 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/12. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface JFBannerModel : NSObject 12 | @property(nonatomic, strong) NSNumber *is_albumcover; 13 | @property(nonatomic, strong) NSString *image_1452_578; 14 | @property(nonatomic, strong) NSString *image_800_450; 15 | @property(nonatomic, strong) NSString *platform_for_url_type; 16 | @property(nonatomic, strong) NSString *title; 17 | 18 | @property(nonatomic, strong) NSString *url; 19 | @property(nonatomic, strong) NSNumber *url_include_ids_count; 20 | @property(nonatomic, strong) NSObject *vip_information; 21 | @property(nonatomic, strong) NSString *plid; 22 | @property(nonatomic, strong) NSString *short_desc; 23 | 24 | @property(nonatomic, strong) NSString *image_726_289; 25 | @property(nonatomic, strong) NSString *iid; 26 | @property(nonatomic, strong) NSString *small_img; 27 | @property(nonatomic, strong) NSObject *game_information; 28 | @property(nonatomic, strong) NSString *aid; 29 | 30 | @property(nonatomic, strong) NSString *image_640_310; 31 | @property(nonatomic, strong) NSString *big_img; 32 | @property(nonatomic, strong) NSString *type; 33 | @property(nonatomic, strong) NSNumber *browser_for_url_type; 34 | 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /JFTudou/Class/Home/Model/JFBannerModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // JFBannerModel.m 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/12. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import "JFBannerModel.h" 10 | 11 | @implementation JFBannerModel 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /JFTudou/Class/Home/Model/JFBoxesModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFBoxesModel.h 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/12. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface JFBoxesModel : NSObject 12 | @property(nonatomic, strong) NSMutableArray *videos; 13 | @property(nonatomic, strong) NSNumber *ipad_display_type; 14 | @property(nonatomic, strong) NSString *index_page_channel_icon; 15 | @property(nonatomic, strong) NSNumber *display_type; 16 | @property(nonatomic, strong) NSString *index_page_channel_icon_for_ipad; 17 | 18 | @property(nonatomic, strong) NSNumber *video_count_for_ipad_index_page; 19 | @property(nonatomic, strong) NSString *cid; 20 | @property(nonatomic, strong) NSString *title; 21 | @property(nonatomic, strong) NSString *sub_title; 22 | @property(nonatomic, strong) NSString *redirect_type; 23 | 24 | @property(nonatomic, strong) NSString *url_for_more_link; 25 | @property(nonatomic, strong) NSString *is_podcast; 26 | 27 | @property(nonatomic, assign) float height; 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /JFTudou/Class/Home/Model/JFBoxesModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // JFBoxesModel.m 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/12. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import "JFBoxesModel.h" 10 | 11 | @implementation JFBoxesModel 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /JFTudou/Class/Home/Model/JFHomeModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFHomeModel.h 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/12. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface JFHomeModel : NSObject 12 | @property(nonatomic, strong) NSString *search_default_word_for_ipad; 13 | @property(nonatomic, strong) NSMutableArray *boxes; 14 | @property(nonatomic, strong) NSMutableArray *banner; 15 | @property(nonatomic, strong) NSString *index_channel_content_version; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /JFTudou/Class/Home/Model/JFHomeModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // JFHomeModel.m 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/12. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import "JFHomeModel.h" 10 | 11 | @implementation JFHomeModel 12 | 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /JFTudou/Class/Home/Model/JFRecommentModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFRecommentModel.h 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/17. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface JFRecommentModel : NSObject 12 | 13 | @property(nonatomic, strong) NSNumber *total_pv; 14 | @property(nonatomic, strong) NSString *pubdate; 15 | @property(nonatomic, strong) NSString *img_16_9; 16 | @property(nonatomic, strong) NSString *pv_pr; 17 | @property(nonatomic, strong) NSNumber *duration; 18 | 19 | @property(nonatomic, strong) NSString *pv; 20 | @property(nonatomic, strong) NSNumber *total_comment; 21 | @property(nonatomic, strong) NSString *img; 22 | @property(nonatomic, strong) NSString *title; 23 | @property(nonatomic, strong) NSString *state; 24 | 25 | @property(nonatomic, strong) NSString *cats; 26 | @property(nonatomic, strong) NSString *username; 27 | @property(nonatomic, strong) NSMutableArray *tags; 28 | @property(nonatomic, strong) NSString *img_hd; 29 | @property(nonatomic, strong) NSString *itemCode; 30 | 31 | @property(nonatomic, strong) NSString *total_down; 32 | @property(nonatomic, strong) NSString *total_up; 33 | @property(nonatomic, strong) NSString *desc; 34 | @property(nonatomic, strong) NSString *stripe_bottom; 35 | @property(nonatomic, strong) NSString *userid; 36 | 37 | @property(nonatomic, strong) NSNumber *total_fav; 38 | @property(nonatomic, strong) NSString *reputation; 39 | @property(nonatomic, strong) NSString *limit; 40 | 41 | @property(nonatomic, strong) NSString *time; 42 | 43 | 44 | @end 45 | -------------------------------------------------------------------------------- /JFTudou/Class/Home/Model/JFRecommentModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // JFRecommentModel.m 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/17. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import "JFRecommentModel.h" 10 | 11 | @implementation JFRecommentModel 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /JFTudou/Class/Home/Model/JFVideoDetailModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFVideoDetailModel.h 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/17. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface JFVideoDetailModel : NSObject 12 | 13 | @property(nonatomic, strong) NSString *total_vv; 14 | @property(nonatomic, strong) NSNumber *duration; 15 | @property(nonatomic, strong) NSNumber *total_comment; 16 | @property(nonatomic, strong) NSString *img; 17 | @property(nonatomic, strong) NSString *title; 18 | 19 | @property(nonatomic, strong) NSString *play_url; 20 | @property(nonatomic, strong) NSString *channel_pic; 21 | @property(nonatomic, strong) NSString *cats; 22 | @property(nonatomic, strong) NSString *plid; 23 | @property(nonatomic, strong) NSString *isVuser; 24 | 25 | @property(nonatomic, strong) NSString *type; 26 | @property(nonatomic, strong) NSString *username; 27 | @property(nonatomic, strong) NSNumber *format_flag; 28 | @property(nonatomic, strong) NSString *img_hd; 29 | @property(nonatomic, strong) NSString *iid; 30 | 31 | @property(nonatomic, strong) NSNumber *subed_num; 32 | @property(nonatomic, strong) NSString *item_id; 33 | @property(nonatomic, strong) NSString *user_desc; 34 | @property(nonatomic, strong) NSString *desc; 35 | @property(nonatomic, strong) NSString *user_play_times; 36 | 37 | @property(nonatomic, strong) NSString *stripe_bottom; 38 | @property(nonatomic, strong) NSNumber *cid; 39 | @property(nonatomic, strong) NSNumber *userid; 40 | @property(nonatomic, strong) NSNumber *total_fav; 41 | @property(nonatomic, strong) NSNumber *limit; 42 | 43 | @property(nonatomic, strong) NSString *item_media_type; 44 | 45 | @end 46 | -------------------------------------------------------------------------------- /JFTudou/Class/Home/Model/JFVideoDetailModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // JFVideoDetailModel.m 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/17. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import "JFVideoDetailModel.h" 10 | 11 | @implementation JFVideoDetailModel 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /JFTudou/Class/Home/Model/JFVideosModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFVideosModel.h 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/15. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface JFVideosModel : NSObject 12 | @property(nonatomic, strong) NSString *yaofeng; 13 | @property(nonatomic, strong) NSNumber *is_albumcover; 14 | @property(nonatomic, strong) NSString *pv; 15 | @property(nonatomic, strong) NSString *corner_image; 16 | @property(nonatomic, strong) NSString *title; 17 | 18 | @property(nonatomic, strong) NSString *url; 19 | @property(nonatomic, strong) NSNumber *url_include_ids_count; 20 | @property(nonatomic, strong) NSString *owner_nick; 21 | @property(nonatomic, strong) NSString *short_desc; 22 | @property(nonatomic, strong) NSObject *game_information; 23 | 24 | @property(nonatomic, strong) NSString *iid; 25 | @property(nonatomic, strong) NSString *small_img; 26 | @property(nonatomic, strong) NSString *stripe_b_r; 27 | @property(nonatomic, strong) NSString *plid; 28 | @property(nonatomic, strong) NSString *aid; 29 | 30 | @property(nonatomic, strong) NSString *owner_id; 31 | @property(nonatomic, strong) NSString *type; 32 | @property(nonatomic, strong) NSString *image_800x450; 33 | @property(nonatomic, strong) NSString *big_img; 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /JFTudou/Class/Home/Model/JFVideosModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // JFVideosModel.m 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/15. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import "JFVideosModel.h" 10 | 11 | @implementation JFVideosModel 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /JFTudou/Class/Home/View/CellView/JFHomeBoxCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFHomeBoxCell.h 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/15. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | @class JFBoxesModel,JFVideosModel; 11 | 12 | 13 | @protocol JFHomeBoxCellDelegate 14 | 15 | @optional 16 | -(void)didSelectHomeBox:(JFVideosModel *)video; 17 | 18 | @end 19 | 20 | 21 | @interface JFHomeBoxCell : UITableViewCell 22 | 23 | + (instancetype)cellWithTableView:(UITableView *)tableView ; 24 | 25 | 26 | @property(nonatomic, strong) JFBoxesModel *boxes; 27 | @property(nonatomic, weak) id delegate; 28 | 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /JFTudou/Class/Home/View/CellView/JFHomeVideoBoxCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFHomeVideoBoxCell.h 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/15. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | @class JFBoxesModel; 11 | @interface JFHomeVideoBoxCell : UITableViewCell 12 | 13 | + (instancetype)cellWithTableView:(UITableView *)tableView ; 14 | 15 | 16 | @property(nonatomic, strong) JFBoxesModel *boxes; 17 | @end 18 | -------------------------------------------------------------------------------- /JFTudou/Class/Home/View/CellView/JFImageCardView.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFImageCardView.h 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/15. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | @class JFVideosModel; 11 | @class JFImageCardView; 12 | @protocol JFImageCardViewDelegate 13 | 14 | @optional 15 | -(void)didSelectImageCard:(JFImageCardView *)imageCard video:(JFVideosModel *)video; 16 | 17 | @end 18 | 19 | @interface JFImageCardView : UIView 20 | 21 | 22 | @property(nonatomic, strong) UIImageView *imageView; 23 | @property(nonatomic, strong) UILabel *titleLabel; 24 | @property(nonatomic, strong) UILabel *pvLabel; 25 | @property(nonatomic, strong) UILabel *yaofengLabel; 26 | 27 | 28 | -(id)initWithFrame:(CGRect)frame video:(JFVideosModel *)video; 29 | 30 | @property(nonatomic, strong) JFVideosModel *video; 31 | @property(nonatomic, weak) id delegate; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /JFTudou/Class/Home/View/CellView/JFImageScrollCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFImageScrollCell.h 3 | // JF团购 4 | // 5 | // Created by 保修一站通 on 15/8/22. 6 | // Copyright (c) 2015年 JF团购. All rights reserved. 7 | // 8 | 9 | #import 10 | @class JFImageScrollView; 11 | 12 | 13 | @interface JFImageScrollCell : UITableViewCell 14 | 15 | @property (nonatomic, strong)JFImageScrollView *imageScrollView; 16 | @property(nonatomic, strong) NSArray *imageArr; 17 | 18 | 19 | -(void)setImageArray:(NSArray *)imageArray; 20 | 21 | + (instancetype)cellWithTableView:(UITableView *)tableView frame:(CGRect)frame; 22 | -(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier frame:(CGRect)frame; 23 | @end 24 | -------------------------------------------------------------------------------- /JFTudou/Class/Home/View/CellView/JFImageScrollView.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFImageScrollView.h 3 | // JF团购 4 | // 5 | // Created by 保修一站通 on 15/8/22. 6 | // Copyright (c) 2015年 JF团购. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol JFImageScrollViewDelegate 12 | @optional 13 | -(void)didSelectImageAtIndex:(NSInteger)index; 14 | 15 | 16 | @end 17 | 18 | @interface JFImageScrollView : UIView 19 | 20 | @property (nonatomic, strong)UIScrollView *scrollView; 21 | @property (nonatomic, strong)UIPageControl *pageControl; 22 | @property (nonatomic, strong)NSArray *imgArray; 23 | 24 | @property(nonatomic, weak) id delegate; 25 | 26 | -(void)setImageArray:(NSArray *)imageArray; 27 | 28 | 29 | /** 30 | * 创建一个ScrollView 31 | * 32 | * @param frame 供外界提供一个frame 33 | * @param imageArray 供外界提供一个图片数组 34 | * 35 | * @return 返回一个自定义的ScrollView 36 | */ 37 | -(JFImageScrollView * )initWithFrame:(CGRect)frame imageArray:(NSArray *)imageArray; 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /JFTudou/Class/Home/View/CellView/JFRecommentVideoCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFRecommentVideoCell.h 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/17. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | @class JFRecommentModel; 11 | @interface JFRecommentVideoCell : UITableViewCell 12 | 13 | + (instancetype)cellWithTableView:(UITableView *)tableView; 14 | 15 | @property (weak, nonatomic) IBOutlet UIImageView *iconImageView; 16 | 17 | @property (weak, nonatomic) IBOutlet UILabel *timeLabel; 18 | @property (weak, nonatomic) IBOutlet UILabel *titleLabel; 19 | @property (weak, nonatomic) IBOutlet UILabel *PVLabel; 20 | @property(nonatomic, strong)JFRecommentModel *recommentModel; 21 | @end 22 | -------------------------------------------------------------------------------- /JFTudou/Class/Home/View/CellView/JFRecommentVideoCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // JFRecommentVideoCell.m 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/17. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import "JFRecommentVideoCell.h" 10 | #import "JFRecommentModel.h" 11 | @implementation JFRecommentVideoCell 12 | 13 | - (void)awakeFromNib { 14 | // Initialization code 15 | } 16 | 17 | - (void)setSelected:(BOOL)selected animated:(BOOL)animated { 18 | [super setSelected:selected animated:animated]; 19 | 20 | // Configure the view for the selected state 21 | } 22 | + (instancetype)cellWithTableView:(UITableView *)tableView 23 | { 24 | static NSString *ID = @"JFRecommentVideoCell"; 25 | JFRecommentVideoCell *cell = [tableView dequeueReusableCellWithIdentifier:ID]; 26 | if (cell == nil) { 27 | // 从xib中加载cell 28 | cell = [[[NSBundle mainBundle] loadNibNamed:@"JFRecommentVideoCell" owner:nil options:nil] lastObject]; 29 | } 30 | cell.selectionStyle = UITableViewCellSelectionStyleNone; 31 | return cell; 32 | } 33 | -(void)setRecommentModel:(JFRecommentModel *)recommentModel{ 34 | _recommentModel = recommentModel; 35 | [self.iconImageView sd_setImageWithURL:[NSURL URLWithString:recommentModel.img] placeholderImage:[UIImage imageNamed:@"rec_holder"]]; 36 | _titleLabel.text = recommentModel.title; 37 | self.PVLabel.text = recommentModel.pv_pr; 38 | _timeLabel.text = recommentModel.time; 39 | } 40 | @end 41 | -------------------------------------------------------------------------------- /JFTudou/Class/Home/View/CellView/JFVideoDetailCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFVideoDetailCell.h 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/17. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | @class JFVideoDetailModel; 11 | @interface JFVideoDetailCell : UITableViewCell 12 | @property (weak, nonatomic) IBOutlet UIImageView *iconImageView; 13 | @property (weak, nonatomic) IBOutlet UILabel *userNameLabel; 14 | @property (weak, nonatomic) IBOutlet UILabel *playItemsLabel; 15 | @property (weak, nonatomic) IBOutlet UILabel *userDesLabel; 16 | @property (weak, nonatomic) IBOutlet UIButton *subscribeButton; 17 | @property (weak, nonatomic) IBOutlet UILabel *subedNumberLabel; 18 | @property (weak, nonatomic) IBOutlet UILabel *titleLabel; 19 | @property (weak, nonatomic) IBOutlet UILabel *descLabel; 20 | 21 | @property(nonatomic, strong)JFVideoDetailModel *videoDetailModel; 22 | 23 | + (instancetype)cellWithTableView:(UITableView *)tableView; 24 | 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /JFTudou/Class/Home/View/TabbarView/JFTabBar.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFTabBar.h 3 | // JF团购 4 | // 5 | // Created by 保修一站通 on 15/8/11. 6 | // Copyright (c) 2015年 JF团购. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "JFTabBarButton.h" 11 | 12 | @class JFTabBar; 13 | 14 | //给每个按钮定义协议 与 方法 15 | @protocol tabbarDelegate 16 | @optional 17 | -(void)tabBar:(JFTabBar * )tabBar didselectedButtonFrom:(int)from to:(int)to; 18 | @end 19 | 20 | @interface JFTabBar : UIView 21 | @property (weak ,nonatomic)JFTabBarButton *selectedButton; 22 | /** 23 | * 给自定义的tabbar添加按钮 24 | */ 25 | -(void)addTabBarButtonWithItem:(UITabBarItem *)itme; 26 | @property(nonatomic , weak) id delegate; 27 | 28 | 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /JFTudou/Class/Home/View/TabbarView/JFTabBarButton.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFTabBarButton.h 3 | // JF团购 4 | // 5 | // Created by 保修一站通 on 15/8/11. 6 | // Copyright (c) 2015年 JF团购. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface JFTabBarButton : UIButton 12 | 13 | @property (nonatomic , weak)UITabBarItem *item; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /JFTudou/Class/Mine/Controller/JFLoginViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFLoginViewController.h 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/19. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import "JFBaseViewController.h" 10 | 11 | @interface JFLoginViewController : JFBaseViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /JFTudou/Class/Mine/Controller/JFMineViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFMineViewController.h 3 | // JFTuDou 4 | // 5 | // Created by 保修一站通 on 15/10/9. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface JFMineViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /JFTudou/Class/Mine/View/JFLoginBtnCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFLoginBtnCell.h 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/19. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol JFLoginBtnCellDelegate 12 | @optional 13 | -(void)loginBtnClick:(UIButton *)sender; 14 | 15 | @end 16 | 17 | @interface JFLoginBtnCell : UITableViewCell 18 | 19 | + (instancetype)cellWithTableView:(UITableView *)tableView; 20 | - (IBAction)loginBtnClick:(id)sender; 21 | - (IBAction)xinlanWeiboBtnClick:(id)sender; 22 | 23 | @property(nonatomic, weak)id delegate; 24 | 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /JFTudou/Class/Mine/View/JFLoginBtnCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // JFLoginBtnCell.m 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/19. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import "JFLoginBtnCell.h" 10 | 11 | @implementation JFLoginBtnCell 12 | 13 | - (void)awakeFromNib { 14 | // Initialization code 15 | } 16 | 17 | - (void)setSelected:(BOOL)selected animated:(BOOL)animated { 18 | [super setSelected:selected animated:animated]; 19 | 20 | // Configure the view for the selected state 21 | } 22 | + (instancetype)cellWithTableView:(UITableView *)tableView 23 | { 24 | static NSString *ID = @"JFLoginBtnCell"; 25 | JFLoginBtnCell *cell = [tableView dequeueReusableCellWithIdentifier:ID]; 26 | if (cell == nil) { 27 | // 从xib中加载cell 28 | cell = [[[NSBundle mainBundle] loadNibNamed:@"JFLoginBtnCell" owner:nil options:nil] lastObject]; 29 | } 30 | cell.selectionStyle = UITableViewCellSelectionStyleNone; 31 | 32 | return cell; 33 | } 34 | 35 | - (IBAction)loginBtnClick:(id)sender { 36 | if ([self.delegate respondsToSelector:@selector(loginBtnClick:)]) { 37 | [self.delegate loginBtnClick:sender]; 38 | } 39 | } 40 | 41 | - (IBAction)xinlanWeiboBtnClick:(id)sender { 42 | if ([self.delegate respondsToSelector:@selector(loginBtnClick:)]) { 43 | [self.delegate loginBtnClick:sender]; 44 | } 45 | } 46 | @end 47 | -------------------------------------------------------------------------------- /JFTudou/Class/Mine/View/JFTextFieldCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFTextFieldCell.h 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/19. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface JFTextFieldCell : UITableViewCell 12 | 13 | + (instancetype)cellWithTableView:(UITableView *)tableView; 14 | 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /JFTudou/Class/Mine/View/JFTextFieldCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // JFTextFieldCell.m 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/19. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import "JFTextFieldCell.h" 10 | 11 | @implementation JFTextFieldCell 12 | 13 | - (void)awakeFromNib { 14 | // Initialization code 15 | } 16 | 17 | - (void)setSelected:(BOOL)selected animated:(BOOL)animated { 18 | [super setSelected:selected animated:animated]; 19 | 20 | // Configure the view for the selected state 21 | } 22 | + (instancetype)cellWithTableView:(UITableView *)tableView 23 | { 24 | static NSString *ID = @"JFTextFieldCell"; 25 | JFTextFieldCell *cell = [tableView dequeueReusableCellWithIdentifier:ID]; 26 | if (cell == nil) { 27 | // 从xib中加载cell 28 | cell = [[[NSBundle mainBundle] loadNibNamed:@"JFTextFieldCell" owner:nil options:nil] lastObject]; 29 | } 30 | cell.selectionStyle = UITableViewCellSelectionStyleNone; 31 | return cell; 32 | } 33 | @end 34 | -------------------------------------------------------------------------------- /JFTudou/Class/Other/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // JFTuDou 4 | // 5 | // Created by 保修一站通 on 15/10/6. 6 | // Copyright (c) 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /JFTudou/Class/Other/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | } 33 | ], 34 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /JFTudou/Class/Other/JFTuDouPrefixHeader.pch: -------------------------------------------------------------------------------- 1 | // 2 | // JFTuDouPrefixHeader.pch 3 | // JFTuDou 4 | // 5 | // Created by 保修一站通 on 15/10/9. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | //// 项目详解: 8 | // github:https://github.com/tubie/JFTudou 9 | // 简书:http://www.jianshu.com/p/2156ec56c55b 10 | 11 | 12 | #ifndef JFTuDouPrefixHeader_pch 13 | #define JFTuDouPrefixHeader_pch 14 | 15 | // Include any system framework and library headers here that should be included in all compilation units. 16 | // You will also need to set the Prefix Header build setting of one or more of your targets to reference this file. 17 | 18 | #import "JFMacro.h" 19 | 20 | #endif 21 | #ifdef DEBUG 22 | 23 | # define JFLog(fmt, ...) {NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);} 24 | # define ELog(err) {if(err) DLog(@"%@", err)} 25 | #else 26 | # define DLog(...) 27 | # define ELog(err) 28 | 29 | #endif /* JFTuDouPrefixHeader_pch */ 30 | -------------------------------------------------------------------------------- /JFTudou/Class/Other/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 | 26 | 27 | -------------------------------------------------------------------------------- /JFTudou/Class/Subscribe/Controller/JFSubscribeViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFSubscribeViewController.h 3 | // JFTuDou 4 | // 5 | // Created by 保修一站通 on 15/10/9. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface JFSubscribeViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /JFTudou/Class/Subscribe/Model/JFSubItemModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFSubItemModel.h 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/16. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface JFSubItemModel : NSObject 12 | @property(nonatomic, strong) NSNumber *itemID; 13 | @property(nonatomic, strong) NSString *formatTotalTime; 14 | @property(nonatomic, strong) NSString *code; 15 | @property(nonatomic, strong) NSNumber *totalTime; 16 | @property(nonatomic, strong) NSNumber *pubDate; 17 | 18 | @property(nonatomic, strong) NSString *playLink; 19 | @property(nonatomic, strong) NSString *title; 20 | @property(nonatomic, strong) NSString *userpic_220_220; 21 | @property(nonatomic, strong) NSNumber *playNum; 22 | @property(nonatomic, strong) NSString *bigPic; 23 | 24 | @property(nonatomic, strong) NSNumber *limit; 25 | @property(nonatomic, strong) NSString *picurl; 26 | @property(nonatomic, strong) NSNumber *playtimes; 27 | @property(nonatomic, strong) NSString *userpic; 28 | @property(nonatomic, strong) NSString *formatPubDate; 29 | 30 | @property(nonatomic, strong) NSString *type; 31 | @property(nonatomic, strong) NSNumber *uid; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /JFTudou/Class/Subscribe/Model/JFSubItemModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // JFSubItemModel.m 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/16. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import "JFSubItemModel.h" 10 | 11 | @implementation JFSubItemModel 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /JFTudou/Class/Subscribe/Model/JFSubscribeModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFSubscribeModel.h 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/16. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface JFSubscribeModel : NSObject 12 | @property(nonatomic, strong) NSNumber *video_count; 13 | @property(nonatomic, strong) NSString *Description; 14 | @property(nonatomic, strong) NSString *title; 15 | @property(nonatomic, strong) NSString *channelized_type; 16 | @property(nonatomic, strong) NSString *subed_count; 17 | 18 | @property(nonatomic, strong) NSMutableArray *last_item; 19 | @property(nonatomic, strong) NSString *podcast_user_id; 20 | @property(nonatomic, strong) NSString *isVuser; 21 | @property(nonatomic, strong) NSString *image; 22 | @property(nonatomic, strong) NSString *avatar; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /JFTudou/Class/Subscribe/Model/JFSubscribeModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // JFSubscribeModel.m 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/16. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import "JFSubscribeModel.h" 10 | 11 | @implementation JFSubscribeModel 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /JFTudou/Class/Subscribe/View/JFSubImageScrollView.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFSubImageScrollView.h 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/16. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | @class JFSubScribeCardView,JFSubItemModel; 11 | 12 | 13 | @protocol JFSubImageScrollViewDelegate 14 | 15 | 16 | @optional 17 | -(void)didSelectSubScrollView:(JFSubScribeCardView *)subScrollView subItem:(JFSubItemModel *)subItem; 18 | 19 | @end 20 | 21 | @interface JFSubImageScrollView : UIView 22 | 23 | @property(nonatomic, weak) id delegate; 24 | @property(nonatomic, strong) UIScrollView *scrollView; 25 | @property(nonatomic, strong) NSArray *dataArray; 26 | 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /JFTudou/Class/Subscribe/View/JFSubScribeCardView.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFSubScribeCardView.h 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/16. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | @class JFSubItemModel,JFSubScribeCardView; 11 | 12 | @protocol JFSubScribeCardViewDelegate 13 | 14 | -(void)didSelectSubImageCard:(JFSubScribeCardView *)subImageCard subItem:(JFSubItemModel *)subItem; 15 | 16 | @end 17 | @interface JFSubScribeCardView : UIView 18 | 19 | @property(nonatomic, strong) UIImageView *imageView; 20 | @property(nonatomic, strong) UILabel *titleLabel; 21 | 22 | @property (weak, nonatomic) IBOutlet UIImageView *cardImageView; 23 | @property (weak, nonatomic) IBOutlet UILabel *cardLabel; 24 | @property(nonatomic, strong) JFSubItemModel *subItem; 25 | 26 | @property(nonatomic, weak) iddelegate; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /JFTudou/Class/Subscribe/View/JFSubscribeCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFSubscribeCell.h 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/16. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | @class JFSubscribeModel,JFSubscribeCell,JFSubItemModel; 11 | 12 | 13 | @protocol JFSubscribeCellDelagate 14 | 15 | -(void)didSelectSubscribeCell:(JFSubscribeCell *)subCell subItem:(JFSubItemModel *)subItem; 16 | 17 | @end 18 | @interface JFSubscribeCell : UITableViewCell 19 | 20 | @property(nonatomic, strong)JFSubscribeModel *subscribeM; 21 | 22 | @property(nonatomic, weak)id delegate; 23 | 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /JFTudou/Class/ToolClass/GetPlistArray.h: -------------------------------------------------------------------------------- 1 | // 2 | // GetPlistArray.h 3 | // JF团购 4 | // 5 | // Created by 保修一站通 on 15/8/16. 6 | // Copyright (c) 2015年 JF团购. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface GetPlistArray : NSObject 12 | 13 | +(NSArray *)arrayWithString:(NSString *)string; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /JFTudou/Class/ToolClass/GetPlistArray.m: -------------------------------------------------------------------------------- 1 | // 2 | // GetPlistArray.m 3 | // JF团购 4 | // 5 | // Created by 保修一站通 on 15/8/16. 6 | // Copyright (c) 2015年 JF团购. All rights reserved. 7 | //// 项目详解: 8 | // github:https://github.com/tubie/JFTudou 9 | // 简书:http://www.jianshu.com/p/2156ec56c55b 10 | 11 | 12 | #import "GetPlistArray.h" 13 | 14 | @implementation GetPlistArray 15 | +(NSArray *)arrayWithString:(NSString *)string{ 16 | NSString *plistPath = [[NSBundle mainBundle]pathForResource:string ofType:nil]; 17 | NSArray *array = [[NSArray alloc]initWithContentsOfFile:plistPath]; 18 | return array; 19 | 20 | } 21 | 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /JFTudou/Class/ToolClass/GetUrlString.h: -------------------------------------------------------------------------------- 1 | // 2 | // GetUrlString.h 3 | // JF团购 4 | // 5 | // Created by 保修一站通 on 15/8/15. 6 | // Copyright (c) 2015年 JF团购. All rights reserved. 7 | // 8 | 9 | #import 10 | @class JFHomeServiceModel; 11 | @interface GetUrlString : NSObject 12 | /** 13 | * 获取URL的单例 14 | */ 15 | +(GetUrlString *)sharedManager; 16 | 17 | /*主界面的数据*/ 18 | -(NSString *)urlWithHomeData; 19 | /*分类的数据*/ 20 | -(NSString *)urlWithclassifyData; 21 | /*发现的数据*/ 22 | -(NSString *)urlWithDiscoverData; 23 | /*订阅的数据*/ 24 | -(NSString *)urlWithSubscribeData; 25 | /* 26 | *视频详情 27 | */ 28 | -(NSString*)urlWithVideoDetailData:(NSString *)iid; 29 | /* 30 | *视频链接 31 | */ 32 | -(NSString*)urlWithVideo:(NSString *)iid; 33 | /* 34 | *视频推荐 35 | */ 36 | -(NSString *)urlWithRecommentdata:(NSString *)iid; 37 | /* 38 | *简书数据 39 | */ 40 | -(NSString *)urlWithJianShuData; 41 | 42 | 43 | 44 | 45 | 46 | 47 | @end 48 | -------------------------------------------------------------------------------- /JFTudou/Class/ToolClass/JFBaseViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // JFBaseViewController.h 3 | // JF团购 4 | // 5 | // Created by 保修一站通 on 15/9/18. 6 | // Copyright (c) 2015年 JF团购. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface JFBaseViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /JFTudou/Class/ToolClass/JFBaseViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // JFBaseViewController.m 3 | // JF团购 4 | // 5 | // Created by 保修一站通 on 15/9/18. 6 | // Copyright (c) 2015年 JF团购. All rights reserved. 7 | //// 项目详解: 8 | // github:https://github.com/tubie/JFTudou 9 | // 简书:http://www.jianshu.com/p/2156ec56c55b 10 | 11 | 12 | #import "JFBaseViewController.h" 13 | 14 | @interface JFBaseViewController () 15 | 16 | @end 17 | 18 | @implementation JFBaseViewController 19 | 20 | -(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{ 21 | self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 22 | if (self) { 23 | self.hidesBottomBarWhenPushed = YES; 24 | } 25 | return self; 26 | } 27 | - (void)viewDidLoad { 28 | [super viewDidLoad]; 29 | } 30 | 31 | - (void)didReceiveMemoryWarning { 32 | [super didReceiveMemoryWarning]; 33 | // Dispose of any resources that can be recreated. 34 | } 35 | 36 | /* 37 | #pragma mark - Navigation 38 | 39 | // In a storyboard-based application, you will often want to do a little preparation before navigation 40 | - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 41 | // Get the new view controller using [segue destinationViewController]. 42 | // Pass the selected object to the new view controller. 43 | } 44 | */ 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /JFTudou/Class/ToolClass/NetWork.h: -------------------------------------------------------------------------------- 1 | // 2 | // NetWork.h 3 | // JF团购 4 | // 5 | // Created by 保修一站通 on 15/8/15. 6 | // Copyright (c) 2015年 JF团购. All rights reserved. 7 | // 8 | 9 | #import 10 | /** 11 | * 定义请求成功的block 12 | */ 13 | typedef void(^successBlock)(id responseBody); 14 | /** 15 | * 定义请求失败的block 16 | */ 17 | typedef void(^failureBlock)(NSError *error); 18 | 19 | 20 | @interface NetWork : NSObject 21 | /** 22 | * 发送get请求 23 | * 24 | * @param url 网络请求的URL 25 | * @param params 传一个字典 26 | * @param success 请求成功的block 27 | * @param failure 请求失败的block 28 | */ 29 | +(void)sendGetUrl:(NSString *)url withParams:(NSDictionary *)params success:(successBlock) success failure:(failureBlock)failure; 30 | 31 | /** 32 | * 发送get请求 33 | * 34 | * @param url 网络请求的URL 这里的URL转码方式跟上面的不一样注意一下 35 | * @param params 传一个字典 36 | * @param success 请求成功的block 37 | * @param failure 请求失败的block 38 | */ 39 | +(void)sendGetByReplacingUrl:(NSString *)url withParams:(NSDictionary *)params success:(successBlock) success failure:(failureBlock)failure; 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /JFTudou/Class/ToolClass/NetWork.m: -------------------------------------------------------------------------------- 1 | // 2 | // NetWork.m 3 | // JF团购 4 | // 5 | // Created by 保修一站通 on 15/8/15. 6 | // Copyright (c) 2015年 JF团购. All rights reserved. 7 | //// 项目详解: 8 | // github:https://github.com/tubie/JFTudou 9 | // 简书:http://www.jianshu.com/p/2156ec56c55b 10 | 11 | 12 | #import "NetWork.h" 13 | @implementation NetWork 14 | 15 | +(void)sendGetUrl:(NSString *)url withParams:(NSDictionary *)params success:(successBlock) success failure:(failureBlock)failure 16 | { 17 | NSString *urlStr = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 18 | 19 | AFHTTPRequestOperationManager *manger = [AFHTTPRequestOperationManager manager]; 20 | [manger GET:urlStr parameters:params 21 | 22 | success:^(AFHTTPRequestOperation *operation, id responseObject) 23 | { 24 | success(responseObject); 25 | } failure:^(AFHTTPRequestOperation *operation, NSError *error) { 26 | failure(error); 27 | }]; 28 | 29 | } 30 | 31 | +(void)sendGetByReplacingUrl:(NSString *)url withParams:(NSDictionary *)params success:(successBlock) success failure:(failureBlock)failure 32 | { 33 | NSString *urlStr = [url stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 34 | AFHTTPRequestOperationManager *manger = [AFHTTPRequestOperationManager manager]; 35 | [manger GET:urlStr parameters:params 36 | 37 | success:^(AFHTTPRequestOperation *operation, id responseObject) 38 | { 39 | success(responseObject); 40 | } failure:^(AFHTTPRequestOperation *operation, NSError *error) { 41 | failure(error); 42 | }]; 43 | 44 | 45 | } 46 | 47 | 48 | @end 49 | -------------------------------------------------------------------------------- /JFTudou/Class/ToolClass/UIView+JFLoadXib.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+JFLoadXib.h 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/16. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIView (JFLoadXib) 12 | /* 13 | 加载xib 14 | */ 15 | +(id )viewWithXibName:(NSString *)string; 16 | 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /JFTudou/Class/ToolClass/UIView+JFLoadXib.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+JFLoadXib.m 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/16. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import "UIView+JFLoadXib.h" 10 | 11 | @implementation UIView (JFLoadXib) 12 | 13 | +( id )viewWithXibName:(NSString *)string{ 14 | return [[[NSBundle mainBundle]loadNibNamed:string owner:nil options:nil]lastObject]; 15 | } 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /JFTudou/Images.xcassets/BrandAsset.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "filename" : "Default-568h@2x.png", 7 | "minimum-system-version" : "7.0", 8 | "subtype" : "retina4", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "orientation" : "portrait", 13 | "idiom" : "iphone", 14 | "filename" : "Default@2x.png", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /JFTudou/Images.xcassets/BrandAsset.launchimage/Default-568h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/Images.xcassets/BrandAsset.launchimage/Default-568h@2x.png -------------------------------------------------------------------------------- /JFTudou/Images.xcassets/BrandAsset.launchimage/Default@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/Images.xcassets/BrandAsset.launchimage/Default@2x.png -------------------------------------------------------------------------------- /JFTudou/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSAppTransportSecurity 6 | 7 | NSAllowsArbitraryLoads 8 | 9 | 10 | CFBundleDevelopmentRegion 11 | en 12 | CFBundleExecutable 13 | $(EXECUTABLE_NAME) 14 | CFBundleIdentifier 15 | $(PRODUCT_BUNDLE_IDENTIFIER) 16 | CFBundleInfoDictionaryVersion 17 | 6.0 18 | CFBundleName 19 | $(PRODUCT_NAME) 20 | CFBundlePackageType 21 | APPL 22 | CFBundleShortVersionString 23 | 1.0 24 | CFBundleSignature 25 | ???? 26 | CFBundleVersion 27 | 1 28 | LSRequiresIPhoneOS 29 | 30 | UILaunchStoryboardName 31 | LaunchScreen 32 | UIMainStoryboardFile 33 | Main 34 | UIRequiredDeviceCapabilities 35 | 36 | armv7 37 | 38 | UISupportedInterfaceOrientations 39 | 40 | UIInterfaceOrientationPortrait 41 | UIInterfaceOrientationLandscapeLeft 42 | UIInterfaceOrientationLandscapeRight 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /JFTudou/JFImage/Classify/home_GaoXiao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Classify/home_GaoXiao.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Classify/home_GaoXiao1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Classify/home_GaoXiao1@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Discover/GroupCell@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Discover/GroupCell@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Discover/ic_discover_QR-code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Discover/ic_discover_QR-code.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Discover/ic_discover_QR-code@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Discover/ic_discover_QR-code@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Discover/ic_discover_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Discover/ic_discover_search.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Discover/ic_discover_search@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Discover/ic_discover_search@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Discover/searchm@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Discover/searchm@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Home/home_history.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Home/home_history.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Home/home_history@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Home/home_history@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Home/home_history@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Home/home_history@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Home/home_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Home/home_logo.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Home/home_logo@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Home/home_logo@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Home/home_logo@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Home/home_logo@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Home/home_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Home/home_search.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Home/home_search@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Home/home_search@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Home/home_search@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Home/home_search@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Home/home_upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Home/home_upload.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Home/home_upload@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Home/home_upload@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Home/home_upload@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Home/home_upload@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/JFIdeaImage/back@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/JFIdeaImage/back@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/JFIdeaImage/btn_rss_rss_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/JFIdeaImage/btn_rss_rss_normal.png -------------------------------------------------------------------------------- /JFTudou/JFImage/JFIdeaImage/btn_rss_rss_normal@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/JFIdeaImage/btn_rss_rss_normal@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/JFIdeaImage/btn_rss_rss_normal@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/JFIdeaImage/btn_rss_rss_normal@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/JFIdeaImage/btn_rss_rss_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/JFIdeaImage/btn_rss_rss_press.png -------------------------------------------------------------------------------- /JFTudou/JFImage/JFIdeaImage/btn_rss_rss_press@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/JFIdeaImage/btn_rss_rss_press@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/JFIdeaImage/btn_rss_rss_press@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/JFIdeaImage/btn_rss_rss_press@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/JFIdeaImage/ic_login_qq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/JFIdeaImage/ic_login_qq.png -------------------------------------------------------------------------------- /JFTudou/JFImage/JFIdeaImage/ic_login_qq@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/JFIdeaImage/ic_login_qq@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/JFIdeaImage/ic_login_qq@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/JFIdeaImage/ic_login_qq@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/JFIdeaImage/ic_login_qrcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/JFIdeaImage/ic_login_qrcode.png -------------------------------------------------------------------------------- /JFTudou/JFImage/JFIdeaImage/ic_login_qrcode@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/JFIdeaImage/ic_login_qrcode@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/JFIdeaImage/ic_login_qrcode@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/JFIdeaImage/ic_login_qrcode@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/JFIdeaImage/ic_login_sina.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/JFIdeaImage/ic_login_sina.png -------------------------------------------------------------------------------- /JFTudou/JFImage/JFIdeaImage/ic_login_sina@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/JFIdeaImage/ic_login_sina@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/JFIdeaImage/ic_login_sina@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/JFIdeaImage/ic_login_sina@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/JFIdeaImage/ic_player_back@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/JFIdeaImage/ic_player_back@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/JFIdeaImage/ic_player_back@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/JFIdeaImage/ic_player_back@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/JFIdeaImage/searchList_btn_delete_6P.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/JFIdeaImage/searchList_btn_delete_6P.png -------------------------------------------------------------------------------- /JFTudou/JFImage/JFIdeaImage/tequan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/JFIdeaImage/tequan.png -------------------------------------------------------------------------------- /JFTudou/JFImage/JFIdeaImage/top_back_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/JFIdeaImage/top_back_black.png -------------------------------------------------------------------------------- /JFTudou/JFImage/JFIdeaImage/top_back_black@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/JFIdeaImage/top_back_black@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/JFIdeaImage/top_back_black@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/JFIdeaImage/top_back_black@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/JFIdeaImage/top_back_highLight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/JFIdeaImage/top_back_highLight.png -------------------------------------------------------------------------------- /JFTudou/JFImage/JFIdeaImage/top_back_highLight@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/JFIdeaImage/top_back_highLight@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/JFIdeaImage/top_back_highLight@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/JFIdeaImage/top_back_highLight@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/JFIdeaImage/viewing-history.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/JFIdeaImage/viewing-history.png -------------------------------------------------------------------------------- /JFTudou/JFImage/JFIdeaImage/viewing-history@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/JFIdeaImage/viewing-history@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/JFIdeaImage/viewing-history@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/JFIdeaImage/viewing-history@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Mine/bg_paipian_date.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Mine/bg_paipian_date.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Mine/bg_paipian_date@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Mine/bg_paipian_date@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Mine/cache_no_data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Mine/cache_no_data.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Mine/cache_no_data@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Mine/cache_no_data@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Mine/default_head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Mine/default_head.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Mine/default_head@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Mine/default_head@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Mine/default_head@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Mine/default_head@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Mine/ic_my_msg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Mine/ic_my_msg.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Mine/ic_my_msg@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Mine/ic_my_msg@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Mine/ic_my_msg@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Mine/ic_my_msg@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Mine/mine_setting_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Mine/mine_setting_icon.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Mine/mine_setting_icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Mine/mine_setting_icon@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Mine/mine_setting_icon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Mine/mine_setting_icon@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Mine/morentu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Mine/morentu.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Mine/morentu@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Mine/morentu@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Mine/myview_collect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Mine/myview_collect.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Mine/myview_collect@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Mine/myview_collect@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Mine/myview_collect@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Mine/myview_collect@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Mine/myview_lishi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Mine/myview_lishi.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Mine/myview_lishi@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Mine/myview_lishi@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Mine/myview_lishi@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Mine/myview_lishi@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Mine/myview_tequan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Mine/myview_tequan.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Mine/myview_tequan@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Mine/myview_tequan@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Mine/myview_tequan@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Mine/myview_tequan@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Mine/myview_upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Mine/myview_upload.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Mine/myview_upload@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Mine/myview_upload@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Mine/titlebar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Mine/titlebar.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Mine/titlebar@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Mine/titlebar@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Subscribe/search_channel_subscribe_noPlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Subscribe/search_channel_subscribe_noPlay.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Subscribe/search_channel_subscribe_noPlay@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Subscribe/search_channel_subscribe_noPlay@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Subscribe/search_channel_subscribe_noPlay@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Subscribe/search_channel_subscribe_noPlay@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Subscribe/search_channel_subscribe_noPlay_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Subscribe/search_channel_subscribe_noPlay_small.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Subscribe/search_channel_subscribe_noPlay_small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Subscribe/search_channel_subscribe_noPlay_small@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Subscribe/search_channel_subscribe_noPlay_small@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Subscribe/search_channel_subscribe_noPlay_small@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Subscribe/search_channel_subscribed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Subscribe/search_channel_subscribed.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Subscribe/search_channel_subscribed@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Subscribe/search_channel_subscribed@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Subscribe/search_channel_subscribed@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Subscribe/search_channel_subscribed@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Subscribe/search_channel_subscribed_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Subscribe/search_channel_subscribed_small.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Subscribe/search_channel_subscribed_small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Subscribe/search_channel_subscribed_small@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Subscribe/search_channel_subscribed_small@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Subscribe/search_channel_subscribed_small@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_classify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_classify.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_classify@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_classify@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_classify_notselected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_classify_notselected.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_classify_notselected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_classify_notselected@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_classify_notselected@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_classify_notselected@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_classify_notselected@x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_classify_notselected@x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_classify_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_classify_selected.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_classify_selected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_classify_selected@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_classify_selected@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_classify_selected@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_find_notselected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_find_notselected.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_find_notselected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_find_notselected@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_find_notselected@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_find_notselected@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_find_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_find_selected.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_find_selected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_find_selected@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_find_selected@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_find_selected@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_homepage_notselected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_homepage_notselected.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_homepage_notselected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_homepage_notselected@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_homepage_notselected@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_homepage_notselected@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_homepage_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_homepage_selected.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_homepage_selected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_homepage_selected@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_homepage_selected@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_homepage_selected@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_mine_notselected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_mine_notselected.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_mine_notselected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_mine_notselected@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_mine_notselected@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_mine_notselected@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_mine_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_mine_selected.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_mine_selected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_mine_selected@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_mine_selected@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_mine_selected@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_subscribe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_subscribe.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_subscribe@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_subscribe@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_subscribe@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_subscribe@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_subscribe_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_subscribe_selected.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_subscribe_selected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_subscribe_selected@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/Tabbar/home_subscribe_selected@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/Tabbar/home_subscribe_selected@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/default/Default-375w-667h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/default/Default-375w-667h@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/default/Default-414w-736h@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/default/Default-414w-736h@3x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/default/Default-568h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/default/Default-568h@2x.png -------------------------------------------------------------------------------- /JFTudou/JFImage/default/Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/default/Default.png -------------------------------------------------------------------------------- /JFTudou/JFImage/default/Default@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/JFTudou/JFImage/default/Default@2x.png -------------------------------------------------------------------------------- /JFTudou/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 | 26 | -------------------------------------------------------------------------------- /JFTudou/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // JFTudou 4 | // 5 | // Created by 保修一站通 on 15/10/12. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /JFTudouTests/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 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /JFTudouTests/JFTudouTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // JFTudouTests.m 3 | // JFTudouTests 4 | // 5 | // Created by 保修一站通 on 15/10/12. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface JFTudouTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation JFTudouTests 16 | 17 | - (void)setUp { 18 | [super setUp]; 19 | // Put setup code here. This method is called before the invocation of each test method in the class. 20 | } 21 | 22 | - (void)tearDown { 23 | // Put teardown code here. This method is called after the invocation of each test method in the class. 24 | [super tearDown]; 25 | } 26 | 27 | - (void)testExample { 28 | // This is an example of a functional test case. 29 | // Use XCTAssert and related functions to verify your tests produce the correct results. 30 | } 31 | 32 | - (void)testPerformanceExample { 33 | // This is an example of a performance test case. 34 | [self measureBlock:^{ 35 | // Put the code you want to measure the time of here. 36 | }]; 37 | } 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /JFTudouUITests/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 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /JFTudouUITests/JFTudouUITests.m: -------------------------------------------------------------------------------- 1 | // 2 | // JFTudouUITests.m 3 | // JFTudouUITests 4 | // 5 | // Created by 保修一站通 on 15/10/12. 6 | // Copyright © 2015年 JF. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface JFTudouUITests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation JFTudouUITests 16 | 17 | - (void)setUp { 18 | [super setUp]; 19 | 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | 22 | // In UI tests it is usually best to stop immediately when a failure occurs. 23 | self.continueAfterFailure = NO; 24 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. 25 | [[[XCUIApplication alloc] init] launch]; 26 | 27 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 28 | } 29 | 30 | - (void)tearDown { 31 | // Put teardown code here. This method is called after the invocation of each test method in the class. 32 | [super tearDown]; 33 | } 34 | 35 | - (void)testExample { 36 | // Use recording to get started writing UI tests. 37 | // Use XCTAssert and related functions to verify your tests produce the correct results. 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '7.0' 2 | pod "AFNetworking", "~> 2.0" 3 | pod 'MJExtension' 4 | pod 'MJRefresh' 5 | pod 'SDWebImage' 6 | -------------------------------------------------------------------------------- /Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - AFNetworking (2.6.1): 3 | - AFNetworking/NSURLConnection (= 2.6.1) 4 | - AFNetworking/NSURLSession (= 2.6.1) 5 | - AFNetworking/Reachability (= 2.6.1) 6 | - AFNetworking/Security (= 2.6.1) 7 | - AFNetworking/Serialization (= 2.6.1) 8 | - AFNetworking/UIKit (= 2.6.1) 9 | - AFNetworking/NSURLConnection (2.6.1): 10 | - AFNetworking/Reachability 11 | - AFNetworking/Security 12 | - AFNetworking/Serialization 13 | - AFNetworking/NSURLSession (2.6.1): 14 | - AFNetworking/Reachability 15 | - AFNetworking/Security 16 | - AFNetworking/Serialization 17 | - AFNetworking/Reachability (2.6.1) 18 | - AFNetworking/Security (2.6.1) 19 | - AFNetworking/Serialization (2.6.1) 20 | - AFNetworking/UIKit (2.6.1): 21 | - AFNetworking/NSURLConnection 22 | - AFNetworking/NSURLSession 23 | - MJExtension (2.5.14) 24 | - MJRefresh (2.4.12) 25 | - SDWebImage (3.7.3): 26 | - SDWebImage/Core (= 3.7.3) 27 | - SDWebImage/Core (3.7.3) 28 | 29 | DEPENDENCIES: 30 | - AFNetworking (~> 2.0) 31 | - MJExtension 32 | - MJRefresh 33 | - SDWebImage 34 | 35 | SPEC CHECKSUMS: 36 | AFNetworking: 8e4e60500beb8bec644cf575beee72990a76d399 37 | MJExtension: fb8e6e900fb44c9a7be435ba3d72b7fdf5f0994c 38 | MJRefresh: ca8e9589895977df32d379d46e6b8a5450b3ff44 39 | SDWebImage: 1d2b1a1efda1ade1b00b6f8498865f8ddedc8a84 40 | 41 | COCOAPODS: 0.39.0 42 | -------------------------------------------------------------------------------- /Pods/AFNetworking/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011–2015 Alamofire Software Foundation (http://alamofire.org/) 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/AFNetworking/UIKit+AFNetworking/UIImage+AFNetworking.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+AFNetworking.h 3 | // 4 | // 5 | // Created by Paulo Ferreira on 08/07/15. 6 | // 7 | // Permission is hereby granted, free of charge, to any person obtaining a copy 8 | // of this software and associated documentation files (the "Software"), to deal 9 | // in the Software without restriction, including without limitation the rights 10 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | // copies of the Software, and to permit persons to whom the Software is 12 | // furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in 15 | // all copies or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | // THE SOFTWARE. 24 | 25 | #if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) 26 | 27 | #import 28 | 29 | @interface UIImage (AFNetworking) 30 | 31 | + (UIImage*) safeImageWithData:(NSData*)data; 32 | 33 | @end 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFHTTPRequestOperation.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFHTTPRequestOperation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFHTTPRequestOperationManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFHTTPRequestOperationManager.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFHTTPSessionManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFHTTPSessionManager.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFNetworkActivityIndicatorManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/AFNetworkActivityIndicatorManager.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFNetworkReachabilityManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFNetworkReachabilityManager.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFSecurityPolicy.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFSecurityPolicy.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFURLConnectionOperation.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLConnectionOperation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFURLRequestSerialization.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLRequestSerialization.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFURLResponseSerialization.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLResponseSerialization.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFURLSessionManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLSessionManager.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIActivityIndicatorView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIAlertView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIAlertView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIButton+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIButton+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIImage+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIImage+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIImageView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIImageView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIKit+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIKit+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIProgressView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIProgressView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIRefreshControl+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIRefreshControl+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIWebView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIWebView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJExtension/MJDictionaryCache.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/MJDictionaryCache.h -------------------------------------------------------------------------------- /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/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/SDWebImage/NSData+ImageContentType.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/NSData+ImageContentType.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDImageCache.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDImageCache.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDWebImageCompat.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageCompat.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDWebImageDecoder.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageDecoder.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/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+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+WebCacheOperation.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIView+WebCacheOperation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFHTTPRequestOperation.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFHTTPRequestOperation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFHTTPRequestOperationManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFHTTPRequestOperationManager.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFHTTPSessionManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFHTTPSessionManager.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFNetworkActivityIndicatorManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/AFNetworkActivityIndicatorManager.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFNetworkReachabilityManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFNetworkReachabilityManager.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFSecurityPolicy.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFSecurityPolicy.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFURLConnectionOperation.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLConnectionOperation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFURLRequestSerialization.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLRequestSerialization.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFURLResponseSerialization.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLResponseSerialization.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFURLSessionManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLSessionManager.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIActivityIndicatorView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIAlertView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIAlertView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIButton+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIButton+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIImage+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIImage+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIImageView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIImageView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIKit+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIKit+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIProgressView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIProgressView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIRefreshControl+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIRefreshControl+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIWebView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIWebView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJExtension/MJDictionaryCache.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/MJDictionaryCache.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/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/SDWebImage/NSData+ImageContentType.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/NSData+ImageContentType.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDImageCache.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDImageCache.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDWebImageCompat.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageCompat.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDWebImageDecoder.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageDecoder.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/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+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+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/MJDictionaryCache.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJDictionaryCache.h 3 | // MJExtensionExample 4 | // 5 | // Created by MJ Lee on 15/8/22. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MJDictionaryCache : NSObject 12 | /** 13 | * 缓存数据 14 | * 15 | * @param dictId 字典标识 16 | * 17 | * @return 缓存的字典 18 | */ 19 | + (id)setObject:(id)object forKey:(id)key forDictId:(const void *)dictId; 20 | 21 | /** 22 | * 获得缓存的数据 23 | * 24 | * @param dictId 字典标识 25 | */ 26 | + (id)objectForKey:(id)key forDictId:(const void *)dictId; 27 | 28 | /** 29 | * 获得缓存的字典 30 | * 31 | * @param dictId 字典标识 32 | */ 33 | + (id)dictWithDictId:(const void *)dictId; 34 | @end 35 | -------------------------------------------------------------------------------- /Pods/MJExtension/MJExtension/MJDictionaryCache.m: -------------------------------------------------------------------------------- 1 | // 2 | // MJDictionaryCache.m 3 | // MJExtensionExample 4 | // 5 | // Created by MJ Lee on 15/8/22. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJDictionaryCache.h" 10 | #import 11 | 12 | @implementation MJDictionaryCache 13 | + (id)setObject:(id)object forKey:(id)key forDictId:(const void *)dictId 14 | { 15 | // 获得字典 16 | NSMutableDictionary *dict = [self dictWithDictId:dictId]; 17 | if (dict == nil) { 18 | dict = [NSMutableDictionary dictionary]; 19 | objc_setAssociatedObject(self, dictId, dict, OBJC_ASSOCIATION_RETAIN_NONATOMIC); 20 | } 21 | 22 | // 存储数据 23 | dict[key] = object; 24 | 25 | return dict; 26 | } 27 | 28 | + (id)objectForKey:(id)key forDictId:(const void *)dictId 29 | { 30 | return [self dictWithDictId:dictId][key]; 31 | } 32 | 33 | + (id)dictWithDictId:(const void *)dictId 34 | { 35 | return objc_getAssociatedObject(self, dictId); 36 | } 37 | @end -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | return ((NSArray *)object).count ? object[self.name.intValue] : nil; 19 | } 20 | return nil; 21 | } 22 | @end 23 | -------------------------------------------------------------------------------- /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 | /** 11 | * Codeing协议 12 | */ 13 | @protocol MJCoding 14 | @optional 15 | /** 16 | * 这个数组中的属性名才会进行归档 17 | */ 18 | + (NSArray *)allowedCodingPropertyNames; 19 | /** 20 | * 这个数组中的属性名将会被忽略:不进行归档 21 | */ 22 | + (NSArray *)ignoredCodingPropertyNames; 23 | @end 24 | 25 | @interface NSObject (MJCoding) 26 | /** 27 | * 解码(从文件中解析对象) 28 | */ 29 | - (void)decode:(NSCoder *)decoder; 30 | /** 31 | * 编码(将对象写入文件中) 32 | */ 33 | - (void)encode:(NSCoder *)encoder; 34 | @end 35 | 36 | /** 37 | 归档的实现 38 | */ 39 | #define MJCodingImplementation \ 40 | - (id)initWithCoder:(NSCoder *)decoder \ 41 | { \ 42 | if (self = [super init]) { \ 43 | [self decode:decoder]; \ 44 | } \ 45 | return self; \ 46 | } \ 47 | \ 48 | - (void)encodeWithCoder:(NSCoder *)encoder \ 49 | { \ 50 | [self encode:encoder]; \ 51 | } 52 | 53 | #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 | 11 | @interface NSString (MJExtension) 12 | /** 13 | * 驼峰转下划线(loveYou -> love_you) 14 | */ 15 | - (NSString *)underlineFromCamel; 16 | /** 17 | * 下划线转驼峰(love_you -> loveYou) 18 | */ 19 | - (NSString *)camelFromUnderline; 20 | /** 21 | * 首字母变大写 22 | */ 23 | - (NSString *)firstCharUpper; 24 | /** 25 | * 首字母变小写 26 | */ 27 | - (NSString *)firstCharLower; 28 | 29 | - (BOOL)isPureInt; 30 | 31 | - (NSURL *)url; 32 | @end 33 | -------------------------------------------------------------------------------- /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("请使用automaticallyChangeAlpha属性"); 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 | /** 自动根据有无数据来显示和隐藏(有数据就显示,没有数据隐藏) */ 29 | @property (assign, nonatomic, getter=isAutomaticallyHidden) BOOL automaticallyHidden; 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 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 13 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 14 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 15 | @end 16 | -------------------------------------------------------------------------------- /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 | /** 显示刷新状态的label */ 13 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 14 | 15 | /** 设置state状态下的文字 */ 16 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 17 | 18 | /** 隐藏刷新状态的文字 */ 19 | @property (assign, nonatomic, getter=isRefreshingTitleHidden) BOOL refreshingTitleHidden; 20 | @end 21 | -------------------------------------------------------------------------------- /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 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 13 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 14 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 15 | @end 16 | -------------------------------------------------------------------------------- /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 | /** 显示刷新状态的label */ 13 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 14 | /** 设置state状态下的文字 */ 15 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 16 | 17 | /** 获取state状态下的title */ 18 | - (NSString *)titleForState:(MJRefreshState)state; 19 | @end 20 | -------------------------------------------------------------------------------- /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 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 13 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 14 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 15 | @end 16 | -------------------------------------------------------------------------------- /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 | /** 显示刷新状态的label */ 20 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 21 | /** 设置state状态下的文字 */ 22 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 23 | @end 24 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/arrow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tubie/JFTudou/da8bbd84ad4960ad0ef435f78bbfa2bd56b1eb26/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/arrow@2x.png -------------------------------------------------------------------------------- /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/MJRefreshConst.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 | #import 4 | 5 | const CGFloat MJRefreshHeaderHeight = 54.0; 6 | const CGFloat MJRefreshFooterHeight = 44.0; 7 | const CGFloat MJRefreshFastAnimationDuration = 0.25; 8 | const CGFloat MJRefreshSlowAnimationDuration = 0.4; 9 | 10 | NSString *const MJRefreshKeyPathContentOffset = @"contentOffset"; 11 | NSString *const MJRefreshKeyPathContentInset = @"contentInset"; 12 | NSString *const MJRefreshKeyPathContentSize = @"contentSize"; 13 | NSString *const MJRefreshKeyPathPanState = @"state"; 14 | 15 | NSString *const MJRefreshHeaderLastUpdatedTimeKey = @"MJRefreshHeaderLastUpdatedTimeKey"; 16 | 17 | NSString *const MJRefreshHeaderIdleText = @"下拉可以刷新"; 18 | NSString *const MJRefreshHeaderPullingText = @"松开立即刷新"; 19 | NSString *const MJRefreshHeaderRefreshingText = @"正在刷新数据中..."; 20 | 21 | NSString *const MJRefreshAutoFooterIdleText = @"点击或上拉加载更多"; 22 | NSString *const MJRefreshAutoFooterRefreshingText = @"正在加载更多的数据..."; 23 | NSString *const MJRefreshAutoFooterNoMoreDataText = @"已经全部加载完毕"; 24 | 25 | NSString *const MJRefreshBackFooterIdleText = @"上拉可以加载更多"; 26 | NSString *const MJRefreshBackFooterPullingText = @"松开立即加载更多"; 27 | NSString *const MJRefreshBackFooterRefreshingText = @"正在加载更多的数据..."; 28 | NSString *const MJRefreshBackFooterNoMoreDataText = @"已经全部加载完毕"; -------------------------------------------------------------------------------- /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 (assign, nonatomic) CGFloat mj_insetT; 14 | @property (assign, nonatomic) CGFloat mj_insetB; 15 | @property (assign, nonatomic) CGFloat mj_insetL; 16 | @property (assign, nonatomic) CGFloat mj_insetR; 17 | 18 | @property (assign, nonatomic) CGFloat mj_offsetX; 19 | @property (assign, nonatomic) CGFloat mj_offsetY; 20 | 21 | @property (assign, nonatomic) CGFloat mj_contentW; 22 | @property (assign, nonatomic) CGFloat mj_contentH; 23 | @end 24 | -------------------------------------------------------------------------------- /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 | 12 | @class MJRefreshHeader, MJRefreshFooter; 13 | 14 | @interface UIScrollView (MJRefresh) 15 | /** 下拉刷新控件 */ 16 | @property (strong, nonatomic) MJRefreshHeader *header; 17 | /** 上拉刷新控件 */ 18 | @property (strong, nonatomic) MJRefreshFooter *footer; 19 | 20 | #pragma mark - other 21 | - (NSInteger)totalDataCount; 22 | @property (copy, nonatomic) void (^reloadDataBlock)(NSInteger totalDataCount); 23 | @end 24 | -------------------------------------------------------------------------------- /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/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - AFNetworking (2.6.1): 3 | - AFNetworking/NSURLConnection (= 2.6.1) 4 | - AFNetworking/NSURLSession (= 2.6.1) 5 | - AFNetworking/Reachability (= 2.6.1) 6 | - AFNetworking/Security (= 2.6.1) 7 | - AFNetworking/Serialization (= 2.6.1) 8 | - AFNetworking/UIKit (= 2.6.1) 9 | - AFNetworking/NSURLConnection (2.6.1): 10 | - AFNetworking/Reachability 11 | - AFNetworking/Security 12 | - AFNetworking/Serialization 13 | - AFNetworking/NSURLSession (2.6.1): 14 | - AFNetworking/Reachability 15 | - AFNetworking/Security 16 | - AFNetworking/Serialization 17 | - AFNetworking/Reachability (2.6.1) 18 | - AFNetworking/Security (2.6.1) 19 | - AFNetworking/Serialization (2.6.1) 20 | - AFNetworking/UIKit (2.6.1): 21 | - AFNetworking/NSURLConnection 22 | - AFNetworking/NSURLSession 23 | - MJExtension (2.5.14) 24 | - MJRefresh (2.4.12) 25 | - SDWebImage (3.7.3): 26 | - SDWebImage/Core (= 3.7.3) 27 | - SDWebImage/Core (3.7.3) 28 | 29 | DEPENDENCIES: 30 | - AFNetworking (~> 2.0) 31 | - MJExtension 32 | - MJRefresh 33 | - SDWebImage 34 | 35 | SPEC CHECKSUMS: 36 | AFNetworking: 8e4e60500beb8bec644cf575beee72990a76d399 37 | MJExtension: fb8e6e900fb44c9a7be435ba3d72b7fdf5f0994c 38 | MJRefresh: ca8e9589895977df32d379d46e6b8a5450b3ff44 39 | SDWebImage: 1d2b1a1efda1ade1b00b6f8498865f8ddedc8a84 40 | 41 | COCOAPODS: 0.39.0 42 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/baoxiuyizhantong.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | AFNetworking.xcscheme 8 | 9 | isShown 10 | 11 | 12 | MJExtension.xcscheme 13 | 14 | isShown 15 | 16 | 17 | MJRefresh.xcscheme 18 | 19 | isShown 20 | 21 | 22 | Pods.xcscheme 23 | 24 | isShown 25 | 26 | 27 | SDWebImage.xcscheme 28 | 29 | isShown 30 | 31 | 32 | 33 | SuppressBuildableAutocreation 34 | 35 | 1B731315C162E0E72E23B4E98BD7D527 36 | 37 | primary 38 | 39 | 40 | 410B25DF16EA5C5B3E2698F74F9625FB 41 | 42 | primary 43 | 44 | 45 | 8F74D9EA91F4C43190670066BAC37D44 46 | 47 | primary 48 | 49 | 50 | AC7653F83750D3ADBF8BEE06CBA13744 51 | 52 | primary 53 | 54 | 55 | B23B3D15FFC0FC9893968F478086D58D 56 | 57 | primary 58 | 59 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/tubiebutu.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | AFNetworking.xcscheme 8 | 9 | orderHint 10 | 1 11 | 12 | MJExtension.xcscheme 13 | 14 | orderHint 15 | 2 16 | 17 | MJRefresh.xcscheme 18 | 19 | orderHint 20 | 3 21 | 22 | Pods.xcscheme 23 | 24 | orderHint 25 | 4 26 | 27 | SDWebImage.xcscheme 28 | 29 | orderHint 30 | 5 31 | 32 | 33 | SuppressBuildableAutocreation 34 | 35 | 1B731315C162E0E72E23B4E98BD7D527 36 | 37 | primary 38 | 39 | 40 | 410B25DF16EA5C5B3E2698F74F9625FB 41 | 42 | primary 43 | 44 | 45 | 8F74D9EA91F4C43190670066BAC37D44 46 | 47 | primary 48 | 49 | 50 | AC7653F83750D3ADBF8BEE06CBA13744 51 | 52 | primary 53 | 54 | 55 | B23B3D15FFC0FC9893968F478086D58D 56 | 57 | primary 58 | 59 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /Pods/SDWebImage/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2009 Olivier Poitrey 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 | // Created by Fabrice Aneche on 06/01/14. 3 | // Copyright (c) 2014 Dailymotion. All rights reserved. 4 | // 5 | 6 | #import 7 | 8 | @interface NSData (ImageContentType) 9 | 10 | /** 11 | * Compute the content type for an image data 12 | * 13 | * @param data the input data 14 | * 15 | * @return the content type as string (i.e. image/jpeg, image/gif) 16 | */ 17 | + (NSString *)sd_contentTypeForImageData:(NSData *)data; 18 | 19 | @end 20 | 21 | 22 | @interface NSData (ImageContentTypeDeprecated) 23 | 24 | + (NSString *)contentTypeForImageData:(NSData *)data __deprecated_msg("Use `sd_contentTypeForImageData:`"); 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/NSData+ImageContentType.m: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Fabrice Aneche on 06/01/14. 3 | // Copyright (c) 2014 Dailymotion. All rights reserved. 4 | // 5 | 6 | #import "NSData+ImageContentType.h" 7 | 8 | 9 | @implementation NSData (ImageContentType) 10 | 11 | + (NSString *)sd_contentTypeForImageData:(NSData *)data { 12 | uint8_t c; 13 | [data getBytes:&c length:1]; 14 | switch (c) { 15 | case 0xFF: 16 | return @"image/jpeg"; 17 | case 0x89: 18 | return @"image/png"; 19 | case 0x47: 20 | return @"image/gif"; 21 | case 0x49: 22 | case 0x4D: 23 | return @"image/tiff"; 24 | case 0x52: 25 | // R as RIFF for WEBP 26 | if ([data length] < 12) { 27 | return nil; 28 | } 29 | 30 | NSString *testString = [[NSString alloc] initWithData:[data subdataWithRange:NSMakeRange(0, 12)] encoding:NSASCIIStringEncoding]; 31 | if ([testString hasPrefix:@"RIFF"] && [testString hasSuffix:@"WEBP"]) { 32 | return @"image/webp"; 33 | } 34 | 35 | return nil; 36 | } 37 | return nil; 38 | } 39 | 40 | @end 41 | 42 | 43 | @implementation NSData (ImageContentTypeDeprecated) 44 | 45 | + (NSString *)contentTypeForImageData:(NSData *)data { 46 | return [self sd_contentTypeForImageData:data]; 47 | } 48 | 49 | @end 50 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/SDWebImageDecoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * Created by james on 9/28/11. 6 | * 7 | * For the full copyright and license information, please view the LICENSE 8 | * file that was distributed with this source code. 9 | */ 10 | 11 | #import 12 | #import "SDWebImageCompat.h" 13 | 14 | @interface UIImage (ForceDecode) 15 | 16 | + (UIImage *)decodedImageWithImage:(UIImage *)image; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /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+GIF.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+GIF.h 3 | // LBGIFImage 4 | // 5 | // Created by Laurin Brandner on 06.01.12. 6 | // Copyright (c) 2012 __MyCompanyName__. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIImage (GIF) 12 | 13 | + (UIImage *)sd_animatedGIFNamed:(NSString *)name; 14 | 15 | + (UIImage *)sd_animatedGIFWithData:(NSData *)data; 16 | 17 | - (UIImage *)sd_animatedImageByScalingAndCroppingToSize:(CGSize)size; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/UIImage+MultiFormat.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+MultiFormat.h 3 | // SDWebImage 4 | // 5 | // Created by Olivier Poitrey on 07/06/13. 6 | // Copyright (c) 2013 Dailymotion. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIImage (MultiFormat) 12 | 13 | + (UIImage *)sd_imageWithData:(NSData *)data; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /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 10 | #import "SDWebImageManager.h" 11 | 12 | @interface UIView (WebCacheOperation) 13 | 14 | /** 15 | * Set the image load operation (storage in a UIView based dictionary) 16 | * 17 | * @param operation the operation 18 | * @param key key for storing the operation 19 | */ 20 | - (void)sd_setImageLoadOperation:(id)operation forKey:(NSString *)key; 21 | 22 | /** 23 | * Cancel all operations for the current UIView and key 24 | * 25 | * @param key key for identifying the operations 26 | */ 27 | - (void)sd_cancelImageLoadOperationWithKey:(NSString *)key; 28 | 29 | /** 30 | * Just remove the operations corresponding to the current UIView and key without cancelling them 31 | * 32 | * @param key key for identifying the operations 33 | */ 34 | - (void)sd_removeImageLoadOperationWithKey:(NSString *)key; 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /Pods/Target Support Files/AFNetworking/AFNetworking-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_AFNetworking : NSObject 3 | @end 4 | @implementation PodsDummy_AFNetworking 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/AFNetworking/AFNetworking-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #ifndef TARGET_OS_IOS 6 | #define TARGET_OS_IOS TARGET_OS_IPHONE 7 | #endif 8 | 9 | #ifndef TARGET_OS_WATCH 10 | #define TARGET_OS_WATCH 0 11 | #endif 12 | -------------------------------------------------------------------------------- /Pods/Target Support Files/AFNetworking/AFNetworking.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/AFNetworking" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/MJExtension" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/SDWebImage" 3 | OTHER_LDFLAGS = -framework "CoreGraphics" -framework "MobileCoreServices" -framework "Security" -framework "SystemConfiguration" 4 | PODS_ROOT = ${SRCROOT} 5 | SKIP_INSTALL = YES -------------------------------------------------------------------------------- /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 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJExtension/MJExtension.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MJExtension" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/MJExtension" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/SDWebImage" 3 | PODS_ROOT = ${SRCROOT} 4 | SKIP_INSTALL = YES -------------------------------------------------------------------------------- /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 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJRefresh/MJRefresh.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MJRefresh" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/MJExtension" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/SDWebImage" 3 | PODS_ROOT = ${SRCROOT} 4 | SKIP_INSTALL = YES -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods/Pods-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods : NSObject 3 | @end 4 | @implementation PodsDummy_Pods 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods/Pods.debug.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/MJExtension" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/SDWebImage" 3 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/AFNetworking" -isystem "${PODS_ROOT}/Headers/Public/MJExtension" -isystem "${PODS_ROOT}/Headers/Public/MJRefresh" -isystem "${PODS_ROOT}/Headers/Public/SDWebImage" 4 | OTHER_LDFLAGS = $(inherited) -ObjC -l"AFNetworking" -l"MJExtension" -l"MJRefresh" -l"SDWebImage" -framework "CoreGraphics" -framework "ImageIO" -framework "MobileCoreServices" -framework "Security" -framework "SystemConfiguration" 5 | PODS_ROOT = ${SRCROOT}/Pods -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods/Pods.release.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/MJExtension" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/SDWebImage" 3 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/AFNetworking" -isystem "${PODS_ROOT}/Headers/Public/MJExtension" -isystem "${PODS_ROOT}/Headers/Public/MJRefresh" -isystem "${PODS_ROOT}/Headers/Public/SDWebImage" 4 | OTHER_LDFLAGS = $(inherited) -ObjC -l"AFNetworking" -l"MJExtension" -l"MJRefresh" -l"SDWebImage" -framework "CoreGraphics" -framework "ImageIO" -framework "MobileCoreServices" -framework "Security" -framework "SystemConfiguration" 5 | PODS_ROOT = ${SRCROOT}/Pods -------------------------------------------------------------------------------- /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 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDWebImage/SDWebImage.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/SDWebImage" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/MJExtension" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/SDWebImage" 3 | OTHER_LDFLAGS = -framework "ImageIO" 4 | PODS_ROOT = ${SRCROOT} 5 | SKIP_INSTALL = YES -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # JFTudou 2 | 3 | ![视频详情页](http://7pum4h.com1.z0.glb.clouddn.com/视频详情页.gif) 4 | ![视频页](http://7pum4h.com1.z0.glb.clouddn.com/td视频页.gif) 5 | ![订阅](http://7pum4h.com1.z0.glb.clouddn.com/td订阅.gif) 6 | ![分类页](http://7pum4h.com1.z0.glb.clouddn.com/td分类页.gif) 7 | ![发现页](http://7pum4h.com1.z0.glb.clouddn.com/td发现页.gif) 8 | ![发现](http://7pum4h.com1.z0.glb.clouddn.com/td发现.gif) 9 | ![发现详情页](http://7pum4h.com1.z0.glb.clouddn.com/td发现详情页.gif) 10 | ![我的信息页](http://7pum4h.com1.z0.glb.clouddn.com/td我的信息页.gif) 11 | 12 | #项目详解: 13 | [点击项目详解链接](http://www.jianshu.com/p/2156ec56c55b) 14 | ##欢迎指出高仿土豆的不足之处,我会非常开心^_^ 15 | 16 | 17 | [点击新浪微博主页](http://weibo.com/3876651083/profile?rightmod=1&wvr=6&mod=personinfo) 18 | ##欢迎关注我的新浪微博 19 | 20 | 21 | [简书主页](http://www.jianshu.com/users/be0e45643dcf/latest_articles) 22 | [CSDN主页](http://blog.csdn.net/tubiebutu) 23 | ##欢迎访问我的其他博客博文 24 | 25 | 26 | ![](http://7pum4h.com1.z0.glb.clouddn.com/githubStar.png) 27 | ##觉得还不错就给顺手我一个star吧! 我会很开心^_^ 同时希望您能够继续关注我!我也会很开心^_^ 28 | --------------------------------------------------------------------------------