├── .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 | 
4 | 
5 | 
6 | 
7 | 
8 | 
9 | 
10 | 
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 | 
27 | ##觉得还不错就给顺手我一个star吧! 我会很开心^_^ 同时希望您能够继续关注我!我也会很开心^_^
28 |
--------------------------------------------------------------------------------