├── .gitignore ├── Podfile ├── Podfile.lock ├── Pods ├── AFNetworking │ ├── AFNetworking │ │ ├── AFHTTPSessionManager.h │ │ ├── AFHTTPSessionManager.m │ │ ├── AFNetworkReachabilityManager.h │ │ ├── AFNetworkReachabilityManager.m │ │ ├── AFNetworking.h │ │ ├── AFSecurityPolicy.h │ │ ├── AFSecurityPolicy.m │ │ ├── AFURLRequestSerialization.h │ │ ├── AFURLRequestSerialization.m │ │ ├── AFURLResponseSerialization.h │ │ ├── AFURLResponseSerialization.m │ │ ├── AFURLSessionManager.h │ │ └── AFURLSessionManager.m │ ├── LICENSE │ ├── README.md │ └── UIKit+AFNetworking │ │ ├── AFAutoPurgingImageCache.h │ │ ├── AFAutoPurgingImageCache.m │ │ ├── AFImageDownloader.h │ │ ├── AFImageDownloader.m │ │ ├── AFNetworkActivityIndicatorManager.h │ │ ├── AFNetworkActivityIndicatorManager.m │ │ ├── UIActivityIndicatorView+AFNetworking.h │ │ ├── UIActivityIndicatorView+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 │ │ │ ├── AFAutoPurgingImageCache.h │ │ │ ├── AFHTTPSessionManager.h │ │ │ ├── AFImageDownloader.h │ │ │ ├── AFNetworkActivityIndicatorManager.h │ │ │ ├── AFNetworkReachabilityManager.h │ │ │ ├── AFNetworking.h │ │ │ ├── AFSecurityPolicy.h │ │ │ ├── AFURLRequestSerialization.h │ │ │ ├── AFURLResponseSerialization.h │ │ │ ├── AFURLSessionManager.h │ │ │ ├── UIActivityIndicatorView+AFNetworking.h │ │ │ ├── UIButton+AFNetworking.h │ │ │ ├── UIImage+AFNetworking.h │ │ │ ├── UIImageView+AFNetworking.h │ │ │ ├── UIKit+AFNetworking.h │ │ │ ├── UIProgressView+AFNetworking.h │ │ │ ├── UIRefreshControl+AFNetworking.h │ │ │ └── UIWebView+AFNetworking.h │ │ ├── MJRefresh │ │ │ ├── MJRefresh.h │ │ │ ├── MJRefreshAutoFooter.h │ │ │ ├── MJRefreshAutoGifFooter.h │ │ │ ├── MJRefreshAutoNormalFooter.h │ │ │ ├── MJRefreshAutoStateFooter.h │ │ │ ├── MJRefreshBackFooter.h │ │ │ ├── MJRefreshBackGifFooter.h │ │ │ ├── MJRefreshBackNormalFooter.h │ │ │ ├── MJRefreshBackStateFooter.h │ │ │ ├── MJRefreshComponent.h │ │ │ ├── MJRefreshConst.h │ │ │ ├── MJRefreshFooter.h │ │ │ ├── MJRefreshGifHeader.h │ │ │ ├── MJRefreshHeader.h │ │ │ ├── MJRefreshNormalHeader.h │ │ │ ├── MJRefreshStateHeader.h │ │ │ ├── NSBundle+MJRefresh.h │ │ │ ├── UIScrollView+MJExtension.h │ │ │ ├── UIScrollView+MJRefresh.h │ │ │ └── UIView+MJExtension.h │ │ ├── Masonry │ │ │ ├── MASCompositeConstraint.h │ │ │ ├── MASConstraint+Private.h │ │ │ ├── MASConstraint.h │ │ │ ├── MASConstraintMaker.h │ │ │ ├── MASLayoutConstraint.h │ │ │ ├── MASUtilities.h │ │ │ ├── MASViewAttribute.h │ │ │ ├── MASViewConstraint.h │ │ │ ├── Masonry.h │ │ │ ├── NSArray+MASAdditions.h │ │ │ ├── NSArray+MASShorthandAdditions.h │ │ │ ├── NSLayoutConstraint+MASDebugAdditions.h │ │ │ ├── View+MASAdditions.h │ │ │ ├── View+MASShorthandAdditions.h │ │ │ └── ViewController+MASAdditions.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 │ │ ├── SVProgressHUD │ │ │ ├── SVIndefiniteAnimatedView.h │ │ │ ├── SVProgressAnimatedView.h │ │ │ ├── SVProgressHUD.h │ │ │ └── SVRadialGradientLayer.h │ │ ├── UITableView+FDTemplateLayoutCell │ │ │ ├── UITableView+FDIndexPathHeightCache.h │ │ │ ├── UITableView+FDKeyedHeightCache.h │ │ │ ├── UITableView+FDTemplateLayoutCell.h │ │ │ └── UITableView+FDTemplateLayoutCellDebug.h │ │ └── ZYLocationManager │ │ │ └── ZYLocationManager.h │ └── Public │ │ ├── AFNetworking │ │ ├── AFAutoPurgingImageCache.h │ │ ├── AFHTTPSessionManager.h │ │ ├── AFImageDownloader.h │ │ ├── AFNetworkActivityIndicatorManager.h │ │ ├── AFNetworkReachabilityManager.h │ │ ├── AFNetworking.h │ │ ├── AFSecurityPolicy.h │ │ ├── AFURLRequestSerialization.h │ │ ├── AFURLResponseSerialization.h │ │ ├── AFURLSessionManager.h │ │ ├── UIActivityIndicatorView+AFNetworking.h │ │ ├── UIButton+AFNetworking.h │ │ ├── UIImage+AFNetworking.h │ │ ├── UIImageView+AFNetworking.h │ │ ├── UIKit+AFNetworking.h │ │ ├── UIProgressView+AFNetworking.h │ │ ├── UIRefreshControl+AFNetworking.h │ │ └── UIWebView+AFNetworking.h │ │ ├── MJRefresh │ │ ├── MJRefresh.h │ │ ├── MJRefreshAutoFooter.h │ │ ├── MJRefreshAutoGifFooter.h │ │ ├── MJRefreshAutoNormalFooter.h │ │ ├── MJRefreshAutoStateFooter.h │ │ ├── MJRefreshBackFooter.h │ │ ├── MJRefreshBackGifFooter.h │ │ ├── MJRefreshBackNormalFooter.h │ │ ├── MJRefreshBackStateFooter.h │ │ ├── MJRefreshComponent.h │ │ ├── MJRefreshConst.h │ │ ├── MJRefreshFooter.h │ │ ├── MJRefreshGifHeader.h │ │ ├── MJRefreshHeader.h │ │ ├── MJRefreshNormalHeader.h │ │ ├── MJRefreshStateHeader.h │ │ ├── NSBundle+MJRefresh.h │ │ ├── UIScrollView+MJExtension.h │ │ ├── UIScrollView+MJRefresh.h │ │ └── UIView+MJExtension.h │ │ ├── Masonry │ │ ├── MASCompositeConstraint.h │ │ ├── MASConstraint+Private.h │ │ ├── MASConstraint.h │ │ ├── MASConstraintMaker.h │ │ ├── MASLayoutConstraint.h │ │ ├── MASUtilities.h │ │ ├── MASViewAttribute.h │ │ ├── MASViewConstraint.h │ │ ├── Masonry.h │ │ ├── NSArray+MASAdditions.h │ │ ├── NSArray+MASShorthandAdditions.h │ │ ├── NSLayoutConstraint+MASDebugAdditions.h │ │ ├── View+MASAdditions.h │ │ ├── View+MASShorthandAdditions.h │ │ └── ViewController+MASAdditions.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 │ │ ├── SVProgressHUD │ │ ├── SVIndefiniteAnimatedView.h │ │ ├── SVProgressAnimatedView.h │ │ ├── SVProgressHUD.h │ │ └── SVRadialGradientLayer.h │ │ ├── UITableView+FDTemplateLayoutCell │ │ ├── UITableView+FDIndexPathHeightCache.h │ │ ├── UITableView+FDKeyedHeightCache.h │ │ ├── UITableView+FDTemplateLayoutCell.h │ │ └── UITableView+FDTemplateLayoutCellDebug.h │ │ └── ZYLocationManager │ │ └── ZYLocationManager.h ├── MJRefresh │ ├── LICENSE │ ├── MJRefresh │ │ ├── Base │ │ │ ├── MJRefreshAutoFooter.h │ │ │ ├── MJRefreshAutoFooter.m │ │ │ ├── MJRefreshBackFooter.h │ │ │ ├── MJRefreshBackFooter.m │ │ │ ├── MJRefreshComponent.h │ │ │ ├── MJRefreshComponent.m │ │ │ ├── MJRefreshFooter.h │ │ │ ├── MJRefreshFooter.m │ │ │ ├── MJRefreshHeader.h │ │ │ └── MJRefreshHeader.m │ │ ├── Custom │ │ │ ├── Footer │ │ │ │ ├── Auto │ │ │ │ │ ├── MJRefreshAutoGifFooter.h │ │ │ │ │ ├── MJRefreshAutoGifFooter.m │ │ │ │ │ ├── MJRefreshAutoNormalFooter.h │ │ │ │ │ ├── MJRefreshAutoNormalFooter.m │ │ │ │ │ ├── MJRefreshAutoStateFooter.h │ │ │ │ │ └── MJRefreshAutoStateFooter.m │ │ │ │ └── Back │ │ │ │ │ ├── MJRefreshBackGifFooter.h │ │ │ │ │ ├── MJRefreshBackGifFooter.m │ │ │ │ │ ├── MJRefreshBackNormalFooter.h │ │ │ │ │ ├── MJRefreshBackNormalFooter.m │ │ │ │ │ ├── MJRefreshBackStateFooter.h │ │ │ │ │ └── MJRefreshBackStateFooter.m │ │ │ └── Header │ │ │ │ ├── MJRefreshGifHeader.h │ │ │ │ ├── MJRefreshGifHeader.m │ │ │ │ ├── MJRefreshNormalHeader.h │ │ │ │ ├── MJRefreshNormalHeader.m │ │ │ │ ├── MJRefreshStateHeader.h │ │ │ │ └── MJRefreshStateHeader.m │ │ ├── MJRefresh.bundle │ │ │ ├── arrow@2x.png │ │ │ ├── en.lproj │ │ │ │ └── Localizable.strings │ │ │ ├── zh-Hans.lproj │ │ │ │ └── Localizable.strings │ │ │ └── zh-Hant.lproj │ │ │ │ └── Localizable.strings │ │ ├── MJRefresh.h │ │ ├── MJRefreshConst.h │ │ ├── MJRefreshConst.m │ │ ├── NSBundle+MJRefresh.h │ │ ├── NSBundle+MJRefresh.m │ │ ├── UIScrollView+MJExtension.h │ │ ├── UIScrollView+MJExtension.m │ │ ├── UIScrollView+MJRefresh.h │ │ ├── UIScrollView+MJRefresh.m │ │ ├── UIView+MJExtension.h │ │ └── UIView+MJExtension.m │ └── README.md ├── Manifest.lock ├── Masonry │ ├── LICENSE │ ├── Masonry │ │ ├── MASCompositeConstraint.h │ │ ├── MASCompositeConstraint.m │ │ ├── MASConstraint+Private.h │ │ ├── MASConstraint.h │ │ ├── MASConstraint.m │ │ ├── MASConstraintMaker.h │ │ ├── MASConstraintMaker.m │ │ ├── MASLayoutConstraint.h │ │ ├── MASLayoutConstraint.m │ │ ├── MASUtilities.h │ │ ├── MASViewAttribute.h │ │ ├── MASViewAttribute.m │ │ ├── MASViewConstraint.h │ │ ├── MASViewConstraint.m │ │ ├── Masonry.h │ │ ├── NSArray+MASAdditions.h │ │ ├── NSArray+MASAdditions.m │ │ ├── NSArray+MASShorthandAdditions.h │ │ ├── NSLayoutConstraint+MASDebugAdditions.h │ │ ├── NSLayoutConstraint+MASDebugAdditions.m │ │ ├── View+MASAdditions.h │ │ ├── View+MASAdditions.m │ │ ├── View+MASShorthandAdditions.h │ │ ├── ViewController+MASAdditions.h │ │ └── ViewController+MASAdditions.m │ └── README.md ├── Pods.xcodeproj │ ├── project.pbxproj │ └── xcuserdata │ │ └── zhiyi.xcuserdatad │ │ └── xcschemes │ │ └── 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 ├── SVProgressHUD │ ├── LICENSE.txt │ ├── README.md │ └── SVProgressHUD │ │ ├── SVIndefiniteAnimatedView.h │ │ ├── SVIndefiniteAnimatedView.m │ │ ├── SVProgressAnimatedView.h │ │ ├── SVProgressAnimatedView.m │ │ ├── SVProgressHUD.bundle │ │ ├── angle-mask.png │ │ ├── angle-mask@2x.png │ │ ├── angle-mask@3x.png │ │ ├── error.png │ │ ├── error@2x.png │ │ ├── error@3x.png │ │ ├── info.png │ │ ├── info@2x.png │ │ ├── info@3x.png │ │ ├── success.png │ │ ├── success@2x.png │ │ └── success@3x.png │ │ ├── SVProgressHUD.h │ │ ├── SVProgressHUD.m │ │ ├── SVRadialGradientLayer.h │ │ └── SVRadialGradientLayer.m ├── Target Support Files │ ├── AFNetworking │ │ ├── AFNetworking-dummy.m │ │ ├── AFNetworking-prefix.pch │ │ └── AFNetworking.xcconfig │ ├── MJRefresh │ │ ├── MJRefresh-dummy.m │ │ ├── MJRefresh-prefix.pch │ │ └── MJRefresh.xcconfig │ ├── Masonry │ │ ├── Masonry-dummy.m │ │ ├── Masonry-prefix.pch │ │ └── Masonry.xcconfig │ ├── Pods-UCToutiaoClone │ │ ├── Pods-UCToutiaoClone-acknowledgements.markdown │ │ ├── Pods-UCToutiaoClone-acknowledgements.plist │ │ ├── Pods-UCToutiaoClone-dummy.m │ │ ├── Pods-UCToutiaoClone-frameworks.sh │ │ ├── Pods-UCToutiaoClone-resources.sh │ │ ├── Pods-UCToutiaoClone.debug.xcconfig │ │ └── Pods-UCToutiaoClone.release.xcconfig │ ├── SDWebImage │ │ ├── SDWebImage-dummy.m │ │ ├── SDWebImage-prefix.pch │ │ └── SDWebImage.xcconfig │ ├── SVProgressHUD │ │ ├── SVProgressHUD-dummy.m │ │ ├── SVProgressHUD-prefix.pch │ │ └── SVProgressHUD.xcconfig │ ├── UITableView+FDTemplateLayoutCell │ │ ├── UITableView+FDTemplateLayoutCell-dummy.m │ │ ├── UITableView+FDTemplateLayoutCell-prefix.pch │ │ └── UITableView+FDTemplateLayoutCell.xcconfig │ └── ZYLocationManager │ │ ├── ZYLocationManager-dummy.m │ │ ├── ZYLocationManager-prefix.pch │ │ └── ZYLocationManager.xcconfig ├── UITableView+FDTemplateLayoutCell │ ├── Classes │ │ ├── UITableView+FDIndexPathHeightCache.h │ │ ├── UITableView+FDIndexPathHeightCache.m │ │ ├── UITableView+FDKeyedHeightCache.h │ │ ├── UITableView+FDKeyedHeightCache.m │ │ ├── UITableView+FDTemplateLayoutCell.h │ │ ├── UITableView+FDTemplateLayoutCell.m │ │ ├── UITableView+FDTemplateLayoutCellDebug.h │ │ └── UITableView+FDTemplateLayoutCellDebug.m │ ├── LICENSE │ └── README.md └── ZYLocationManager │ ├── README.md │ └── ZYLocationManager │ └── Classes │ ├── ZYLocationManager.h │ └── ZYLocationManager.m ├── README.md ├── UCToutiaoClone.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ └── contents.xcworkspacedata └── xcuserdata │ └── lzy.xcuserdatad │ └── xcschemes │ ├── UCToutiaoClone.xcscheme │ └── xcschememanagement.plist ├── UCToutiaoClone.xcworkspace └── contents.xcworkspacedata ├── UCToutiaoClone ├── AppDelegate.h ├── AppDelegate.m ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ ├── Contents.json │ ├── Home │ │ ├── Contents.json │ │ ├── Weather │ │ │ ├── Cloud1.imageset │ │ │ │ ├── Cloud1@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Cloud2.imageset │ │ │ │ ├── Cloud2@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Cloud3.imageset │ │ │ │ ├── Cloud3@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Contents.json │ │ │ ├── Fine1.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── Fine1@2x.png │ │ │ ├── Fine2.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── Fine2@2x.png │ │ │ ├── Fine3.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── Fine3@2x.png │ │ │ ├── Fine4.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── Fine4@2x.png │ │ │ ├── Gloom1.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── Gloom1@2x.png │ │ │ ├── Gloom2.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── Gloom2@2x.png │ │ │ ├── Gloom3.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── Gloom3@2x.png │ │ │ ├── Rain1.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── Rain1@2x.png │ │ │ ├── Rain2.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── Rain2@2x.png │ │ │ └── Rain3.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── Rain3@2x.png │ │ └── icon_search.imageset │ │ │ ├── Contents.json │ │ │ └── icon_search@3x 2.png │ ├── Loading │ │ ├── Contents.json │ │ ├── loading_0.imageset │ │ │ ├── Contents.json │ │ │ └── loading_0@2x.png │ │ ├── loading_1.imageset │ │ │ ├── Contents.json │ │ │ └── loading_1@2x.png │ │ ├── loading_2.imageset │ │ │ ├── Contents.json │ │ │ └── loading_2@2x.png │ │ └── loading_3.imageset │ │ │ ├── Contents.json │ │ │ └── loading_3@2x.png │ ├── NavigationBar │ │ ├── Contents.json │ │ ├── icon_alpha.imageset │ │ │ ├── Contents.json │ │ │ └── icon_back@2x.png │ │ ├── icon_back_white.imageset │ │ │ ├── Contents.json │ │ │ └── icon_back_white@2x.png │ │ ├── icon_more_white.imageset │ │ │ ├── Contents.json │ │ │ └── icon_more_white@2x.png │ │ ├── icon_nav_back.imageset │ │ │ ├── Contents.json │ │ │ └── icon_back@2x.png │ │ └── icon_nav_more.imageset │ │ │ ├── Contents.json │ │ │ └── icon_more@2x.png │ └── TabBar │ │ ├── Contents.json │ │ ├── icon_home.imageset │ │ ├── Contents.json │ │ └── icon_home@2x.png │ │ ├── icon_me.imageset │ │ ├── Contents.json │ │ └── icon_me@2x.png │ │ ├── icon_refresh.imageset │ │ ├── Contents.json │ │ └── icon_refresh@2x.png │ │ ├── icon_subscribe.imageset │ │ ├── Contents.json │ │ └── icon_subscribe@2x.png │ │ ├── icon_video.imageset │ │ ├── Contents.json │ │ └── icon_video@2x.png │ │ └── ornament7.imageset │ │ ├── Contents.json │ │ └── ornament7@2x.png ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard ├── Controller │ ├── Base │ │ ├── UCTNavigationController.h │ │ ├── UCTNavigationController.m │ │ ├── UCTViewController.h │ │ └── UCTViewController.m │ ├── Home │ │ ├── MainHomeController.h │ │ ├── MainHomeController.m │ │ ├── MineController.h │ │ ├── MineController.m │ │ ├── SubscribeController.h │ │ ├── SubscribeController.m │ │ ├── VideoController.h │ │ ├── VideoController.m │ │ ├── ZYHPageCollectionViewController.h │ │ ├── ZYHPageCollectionViewController.m │ │ ├── ZYHPageTableViewController.h │ │ └── ZYHPageTableViewController.m │ ├── TabBar │ │ ├── UCTTabBarController.h │ │ └── UCTTabBarController.m │ └── WebView │ │ ├── UCTWebViewController.h │ │ └── UCTWebViewController.m ├── Info.plist ├── Manager │ ├── MetadataManager.h │ └── MetadataManager.m ├── Model │ └── Home │ │ ├── ZYHArticleModel.h │ │ ├── ZYHArticleModel.m │ │ ├── ZYHChannelModel.h │ │ └── ZYHChannelModel.m ├── Network │ ├── NetworkManager.h │ ├── NetworkManager.m │ ├── Service │ │ ├── CommonService.h │ │ ├── CommonService.m │ │ ├── NewsService.h │ │ ├── NewsService.m │ │ ├── WeatherService.h │ │ └── WeatherService.m │ ├── UCTNetwork.h │ ├── UCTNetwork.m │ ├── UCTNetworkManager.h │ └── UCTNetworkManager.m ├── Resource │ └── channelPagePlaceholder@2x.png ├── Utils │ ├── UICollectionView+Bounds.h │ ├── UICollectionView+Bounds.m │ ├── UIColor+hexColor.h │ ├── UIColor+hexColor.m │ ├── UIView+Utils.h │ ├── UIView+Utils.m │ ├── ZYHArticleDateFormatter.h │ └── ZYHArticleDateFormatter.m ├── View │ ├── Home │ │ ├── CollectionViewCell │ │ │ ├── SingleImgNewsCollectionViewCell.h │ │ │ ├── SingleImgNewsCollectionViewCell.m │ │ │ ├── SingleTitleNewsCollectionViewCell.h │ │ │ ├── SingleTitleNewsCollectionViewCell.m │ │ │ ├── SpecialNewsCollectionViewCell.h │ │ │ ├── SpecialNewsCollectionViewCell.m │ │ │ ├── ThreeImgNewsCollectionViewCell.h │ │ │ ├── ThreeImgNewsCollectionViewCell.m │ │ │ ├── UCTCollectionViewCell.h │ │ │ ├── UCTCollectionViewCell.m │ │ │ ├── UCTNewsCollectionViewCell.h │ │ │ └── UCTNewsCollectionViewCell.m │ │ ├── TableViewCell │ │ │ ├── UCTTableViewCell.h │ │ │ └── UCTTableViewCell.m │ │ ├── UCTClipAnimatedView.h │ │ ├── UCTClipAnimatedView.m │ │ ├── UCTHomeSearchBar.h │ │ ├── UCTHomeSearchBar.m │ │ ├── UCTHomeSearchRefreshView.h │ │ ├── UCTHomeSearchRefreshView.m │ │ ├── UCTOPMarkView.h │ │ ├── UCTOPMarkView.m │ │ ├── WeatherAnimatedView │ │ │ ├── UCTCloudWeatherView.h │ │ │ ├── UCTCloudWeatherView.m │ │ │ ├── UCTGloomRainWeatherView.h │ │ │ ├── UCTGloomRainWeatherView.m │ │ │ ├── UCTSunnyWeatherView.h │ │ │ ├── UCTSunnyWeatherView.m │ │ │ ├── UCTWeatherAnimatedView.h │ │ │ └── UCTWeatherAnimatedView.m │ │ ├── ZYNavChannelView.h │ │ └── ZYNavChannelView.m │ ├── TabBar │ │ ├── UCTAnimTabBarItem.h │ │ ├── UCTAnimTabBarItem.m │ │ ├── UCTHomeTabBarItem.h │ │ ├── UCTHomeTabBarItem.m │ │ ├── UCTMineTabBarItem.h │ │ ├── UCTMineTabBarItem.m │ │ ├── UCTSubscribeTabBarItem.h │ │ ├── UCTSubscribeTabBarItem.m │ │ ├── UCTVideoTabBarItem.h │ │ └── UCTVideoTabBarItem.m │ ├── ZYHChannelItemCell.h │ └── ZYHChannelItemCell.m ├── ViewController.h ├── ViewController.m └── main.m └── UCToutiaoCloneTests ├── Info.plist └── UCToutiaoCloneTests.m /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | .DS_Store 3 | 4 | UCToutiaoClone.xcodeproj/project.xcworkspace/xcuserdata/zhiyi.xcuserdatad/UserInterfaceState.xcuserstate 5 | 6 | *.xcscheme 7 | 8 | UCToutiaoClone.xcodeproj/xcuserdata/zhiyi.xcuserdatad/xcschemes/xcschememanagement.plist 9 | 10 | UCToutiaoClone.xcworkspace/xcuserdata/zhiyi.xcuserdatad/UserInterfaceState.xcuserstate 11 | 12 | *.xcbkptlist 13 | 14 | Pods/Pods.xcodeproj/xcuserdata/lzy.xcuserdatad/xcschemes/xcschememanagement.plist 15 | 16 | *.xcbkptlist 17 | 18 | UCToutiaoClone.xcworkspace/xcuserdata/lzy.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist 19 | 20 | *.xcbkptlist 21 | 22 | *.xcbkptlist 23 | 24 | *.xcbkptlist 25 | -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- 1 | target 'UCToutiaoClone' do 2 | pod 'AFNetworking', '3.1.0' 3 | pod 'UITableView+FDTemplateLayoutCell','1.4' 4 | pod 'SVProgressHUD' 5 | pod 'MJRefresh' 6 | pod 'Masonry' 7 | pod 'SDWebImage', '~> 3.7.5' 8 | pod 'ZYLocationManager', '~> 0.2.0' 9 | end 10 | -------------------------------------------------------------------------------- /Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - AFNetworking (3.1.0): 3 | - AFNetworking/NSURLSession (= 3.1.0) 4 | - AFNetworking/Reachability (= 3.1.0) 5 | - AFNetworking/Security (= 3.1.0) 6 | - AFNetworking/Serialization (= 3.1.0) 7 | - AFNetworking/UIKit (= 3.1.0) 8 | - AFNetworking/NSURLSession (3.1.0): 9 | - AFNetworking/Reachability 10 | - AFNetworking/Security 11 | - AFNetworking/Serialization 12 | - AFNetworking/Reachability (3.1.0) 13 | - AFNetworking/Security (3.1.0) 14 | - AFNetworking/Serialization (3.1.0) 15 | - AFNetworking/UIKit (3.1.0): 16 | - AFNetworking/NSURLSession 17 | - Masonry (1.0.1) 18 | - MJRefresh (3.1.12) 19 | - SDWebImage (3.7.6): 20 | - SDWebImage/Core (= 3.7.6) 21 | - SDWebImage/Core (3.7.6) 22 | - SVProgressHUD (2.0.3) 23 | - UITableView+FDTemplateLayoutCell (1.4) 24 | - ZYLocationManager (0.2.0) 25 | 26 | DEPENDENCIES: 27 | - AFNetworking (= 3.1.0) 28 | - Masonry 29 | - MJRefresh 30 | - SDWebImage (~> 3.7.5) 31 | - SVProgressHUD 32 | - UITableView+FDTemplateLayoutCell (= 1.4) 33 | - ZYLocationManager (~> 0.2.0) 34 | 35 | SPEC CHECKSUMS: 36 | AFNetworking: 5e0e199f73d8626b11e79750991f5d173d1f8b67 37 | Masonry: a1a931a0d08870ed8ae415a2ea5ea68ebcac77df 38 | MJRefresh: b96cdb21c4aa75a7b07654311ab2f315c497e806 39 | SDWebImage: c325cf02c30337336b95beff20a13df489ec0ec9 40 | SVProgressHUD: b0830714205bea1317ea1a2ebc71e5633af334d4 41 | UITableView+FDTemplateLayoutCell: 234e1582bcc4e18461af91155123bb96538ed030 42 | ZYLocationManager: 2dd0353e168bc853b774ee7df8a4021191592adc 43 | 44 | PODFILE CHECKSUM: dbaddb9a36839f036a5c8f65ef3b6717b9e5393d 45 | 46 | COCOAPODS: 1.1.1 47 | -------------------------------------------------------------------------------- /Pods/AFNetworking/AFNetworking/AFNetworking.h: -------------------------------------------------------------------------------- 1 | // AFNetworking.h 2 | // 3 | // Copyright (c) 2013 AFNetworking (http://afnetworking.com/) 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in 13 | // all copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | // THE SOFTWARE. 22 | 23 | #import 24 | #import 25 | #import 26 | 27 | #ifndef _AFNETWORKING_ 28 | #define _AFNETWORKING_ 29 | 30 | #import "AFURLRequestSerialization.h" 31 | #import "AFURLResponseSerialization.h" 32 | #import "AFSecurityPolicy.h" 33 | 34 | #if !TARGET_OS_WATCH 35 | #import "AFNetworkReachabilityManager.h" 36 | #endif 37 | 38 | #import "AFURLSessionManager.h" 39 | #import "AFHTTPSessionManager.h" 40 | 41 | #endif /* _AFNETWORKING_ */ 42 | -------------------------------------------------------------------------------- /Pods/AFNetworking/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011–2016 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 TARGET_OS_IOS || TARGET_OS_TV 26 | 27 | #import 28 | 29 | @interface UIImage (AFNetworking) 30 | 31 | + (UIImage*) safeImageWithData:(NSData*)data; 32 | 33 | @end 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /Pods/AFNetworking/UIKit+AFNetworking/UIKit+AFNetworking.h: -------------------------------------------------------------------------------- 1 | // UIKit+AFNetworking.h 2 | // 3 | // Copyright (c) 2011–2016 Alamofire Software Foundation ( http://alamofire.org/ ) 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in 13 | // all copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | // THE SOFTWARE. 22 | 23 | #if TARGET_OS_IOS || TARGET_OS_TV 24 | #import 25 | 26 | #ifndef _UIKIT_AFNETWORKING_ 27 | #define _UIKIT_AFNETWORKING_ 28 | 29 | #if TARGET_OS_IOS 30 | #import "AFAutoPurgingImageCache.h" 31 | #import "AFImageDownloader.h" 32 | #import "AFNetworkActivityIndicatorManager.h" 33 | #import "UIRefreshControl+AFNetworking.h" 34 | #import "UIWebView+AFNetworking.h" 35 | #endif 36 | 37 | #import "UIActivityIndicatorView+AFNetworking.h" 38 | #import "UIButton+AFNetworking.h" 39 | #import "UIImageView+AFNetworking.h" 40 | #import "UIProgressView+AFNetworking.h" 41 | #endif /* _UIKIT_AFNETWORKING_ */ 42 | #endif 43 | -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFAutoPurgingImageCache.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/AFAutoPurgingImageCache.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFHTTPSessionManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFHTTPSessionManager.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFImageDownloader.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/AFImageDownloader.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/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/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/MJRefresh/MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/MJRefresh.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshAutoFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshAutoFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshAutoGifFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshAutoNormalFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshAutoStateFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshBackFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshBackFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshBackGifFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshBackNormalFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshBackStateFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshComponent.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshComponent.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshConst.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/MJRefreshConst.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshGifHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshGifHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshNormalHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshNormalHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshStateHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshStateHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/NSBundle+MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/NSBundle+MJRefresh.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/UIScrollView+MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIScrollView+MJExtension.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/UIScrollView+MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIScrollView+MJRefresh.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/UIView+MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIView+MJExtension.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASCompositeConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASCompositeConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASConstraint+Private.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASConstraint+Private.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASConstraintMaker.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASConstraintMaker.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASLayoutConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASLayoutConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASUtilities.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASUtilities.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASViewAttribute.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASViewAttribute.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASViewConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASViewConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/Masonry.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/Masonry.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/NSArray+MASAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/NSArray+MASAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/NSArray+MASShorthandAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/NSArray+MASShorthandAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/NSLayoutConstraint+MASDebugAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/NSLayoutConstraint+MASDebugAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/View+MASAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/View+MASAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/View+MASShorthandAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/View+MASShorthandAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/ViewController+MASAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/ViewController+MASAdditions.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/Private/SVProgressHUD/SVIndefiniteAnimatedView.h: -------------------------------------------------------------------------------- 1 | ../../../SVProgressHUD/SVProgressHUD/SVIndefiniteAnimatedView.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SVProgressHUD/SVProgressAnimatedView.h: -------------------------------------------------------------------------------- 1 | ../../../SVProgressHUD/SVProgressHUD/SVProgressAnimatedView.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SVProgressHUD/SVProgressHUD.h: -------------------------------------------------------------------------------- 1 | ../../../SVProgressHUD/SVProgressHUD/SVProgressHUD.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SVProgressHUD/SVRadialGradientLayer.h: -------------------------------------------------------------------------------- 1 | ../../../SVProgressHUD/SVProgressHUD/SVRadialGradientLayer.h -------------------------------------------------------------------------------- /Pods/Headers/Private/UITableView+FDTemplateLayoutCell/UITableView+FDIndexPathHeightCache.h: -------------------------------------------------------------------------------- 1 | ../../../UITableView+FDTemplateLayoutCell/Classes/UITableView+FDIndexPathHeightCache.h -------------------------------------------------------------------------------- /Pods/Headers/Private/UITableView+FDTemplateLayoutCell/UITableView+FDKeyedHeightCache.h: -------------------------------------------------------------------------------- 1 | ../../../UITableView+FDTemplateLayoutCell/Classes/UITableView+FDKeyedHeightCache.h -------------------------------------------------------------------------------- /Pods/Headers/Private/UITableView+FDTemplateLayoutCell/UITableView+FDTemplateLayoutCell.h: -------------------------------------------------------------------------------- 1 | ../../../UITableView+FDTemplateLayoutCell/Classes/UITableView+FDTemplateLayoutCell.h -------------------------------------------------------------------------------- /Pods/Headers/Private/UITableView+FDTemplateLayoutCell/UITableView+FDTemplateLayoutCellDebug.h: -------------------------------------------------------------------------------- 1 | ../../../UITableView+FDTemplateLayoutCell/Classes/UITableView+FDTemplateLayoutCellDebug.h -------------------------------------------------------------------------------- /Pods/Headers/Private/ZYLocationManager/ZYLocationManager.h: -------------------------------------------------------------------------------- 1 | ../../../ZYLocationManager/ZYLocationManager/Classes/ZYLocationManager.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFAutoPurgingImageCache.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/AFAutoPurgingImageCache.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFHTTPSessionManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFHTTPSessionManager.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFImageDownloader.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/AFImageDownloader.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/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/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/MJRefresh/MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/MJRefresh.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshAutoFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshAutoFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshAutoGifFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshAutoNormalFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshAutoStateFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshBackFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshBackFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshBackGifFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshBackNormalFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshBackStateFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshComponent.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshComponent.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshConst.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/MJRefreshConst.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshGifHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshGifHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshNormalHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshNormalHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshStateHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshStateHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/NSBundle+MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/NSBundle+MJRefresh.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/UIScrollView+MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIScrollView+MJExtension.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/UIScrollView+MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIScrollView+MJRefresh.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/UIView+MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIView+MJExtension.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASCompositeConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASCompositeConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASConstraint+Private.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASConstraint+Private.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASConstraintMaker.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASConstraintMaker.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASLayoutConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASLayoutConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASUtilities.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASUtilities.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASViewAttribute.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASViewAttribute.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASViewConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASViewConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/Masonry.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/Masonry.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/NSArray+MASAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/NSArray+MASAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/NSArray+MASShorthandAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/NSArray+MASShorthandAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/NSLayoutConstraint+MASDebugAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/NSLayoutConstraint+MASDebugAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/View+MASAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/View+MASAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/View+MASShorthandAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/View+MASShorthandAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/ViewController+MASAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/ViewController+MASAdditions.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/Headers/Public/SVProgressHUD/SVIndefiniteAnimatedView.h: -------------------------------------------------------------------------------- 1 | ../../../SVProgressHUD/SVProgressHUD/SVIndefiniteAnimatedView.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SVProgressHUD/SVProgressAnimatedView.h: -------------------------------------------------------------------------------- 1 | ../../../SVProgressHUD/SVProgressHUD/SVProgressAnimatedView.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SVProgressHUD/SVProgressHUD.h: -------------------------------------------------------------------------------- 1 | ../../../SVProgressHUD/SVProgressHUD/SVProgressHUD.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SVProgressHUD/SVRadialGradientLayer.h: -------------------------------------------------------------------------------- 1 | ../../../SVProgressHUD/SVProgressHUD/SVRadialGradientLayer.h -------------------------------------------------------------------------------- /Pods/Headers/Public/UITableView+FDTemplateLayoutCell/UITableView+FDIndexPathHeightCache.h: -------------------------------------------------------------------------------- 1 | ../../../UITableView+FDTemplateLayoutCell/Classes/UITableView+FDIndexPathHeightCache.h -------------------------------------------------------------------------------- /Pods/Headers/Public/UITableView+FDTemplateLayoutCell/UITableView+FDKeyedHeightCache.h: -------------------------------------------------------------------------------- 1 | ../../../UITableView+FDTemplateLayoutCell/Classes/UITableView+FDKeyedHeightCache.h -------------------------------------------------------------------------------- /Pods/Headers/Public/UITableView+FDTemplateLayoutCell/UITableView+FDTemplateLayoutCell.h: -------------------------------------------------------------------------------- 1 | ../../../UITableView+FDTemplateLayoutCell/Classes/UITableView+FDTemplateLayoutCell.h -------------------------------------------------------------------------------- /Pods/Headers/Public/UITableView+FDTemplateLayoutCell/UITableView+FDTemplateLayoutCellDebug.h: -------------------------------------------------------------------------------- 1 | ../../../UITableView+FDTemplateLayoutCell/Classes/UITableView+FDTemplateLayoutCellDebug.h -------------------------------------------------------------------------------- /Pods/Headers/Public/ZYLocationManager/ZYLocationManager.h: -------------------------------------------------------------------------------- 1 | ../../../ZYLocationManager/ZYLocationManager/Classes/ZYLocationManager.h -------------------------------------------------------------------------------- /Pods/MJRefresh/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013-2015 MJRefresh (https://github.com/CoderMJLee/MJRefresh) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Base/MJRefreshAutoFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshFooter.h" 10 | 11 | @interface MJRefreshAutoFooter : MJRefreshFooter 12 | /** 是否自动刷新(默认为YES) */ 13 | @property (assign, nonatomic, getter=isAutomaticallyRefresh) BOOL automaticallyRefresh; 14 | 15 | /** 当底部控件出现多少时就自动刷新(默认为1.0,也就是底部控件完全出现时,才会自动刷新) */ 16 | @property (assign, nonatomic) CGFloat appearencePercentTriggerAutoRefresh MJRefreshDeprecated("请使用triggerAutomaticallyRefreshPercent属性"); 17 | 18 | /** 当底部控件出现多少时就自动刷新(默认为1.0,也就是底部控件完全出现时,才会自动刷新) */ 19 | @property (assign, nonatomic) CGFloat triggerAutomaticallyRefreshPercent; 20 | @end 21 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Base/MJRefreshBackFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshFooter.h" 10 | 11 | @interface MJRefreshBackFooter : MJRefreshFooter 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Base/MJRefreshFooter.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // MJRefreshFooter.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 15/3/5. 7 | // Copyright (c) 2015年 小码哥. All rights reserved. 8 | // 上拉刷新控件 9 | 10 | #import "MJRefreshComponent.h" 11 | 12 | @interface MJRefreshFooter : MJRefreshComponent 13 | /** 创建footer */ 14 | + (instancetype)footerWithRefreshingBlock:(MJRefreshComponentRefreshingBlock)refreshingBlock; 15 | /** 创建footer */ 16 | + (instancetype)footerWithRefreshingTarget:(id)target refreshingAction:(SEL)action; 17 | 18 | /** 提示没有更多的数据 */ 19 | - (void)endRefreshingWithNoMoreData; 20 | - (void)noticeNoMoreData MJRefreshDeprecated("使用endRefreshingWithNoMoreData"); 21 | 22 | /** 重置没有更多的数据(消除没有更多数据的状态) */ 23 | - (void)resetNoMoreData; 24 | 25 | /** 忽略多少scrollView的contentInset的bottom */ 26 | @property (assign, nonatomic) CGFloat ignoredScrollViewContentInsetBottom; 27 | 28 | /** 自动根据有无数据来显示和隐藏(有数据就显示,没有数据隐藏。默认是NO) */ 29 | @property (assign, nonatomic, getter=isAutomaticallyHidden) BOOL automaticallyHidden; 30 | @end 31 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Base/MJRefreshHeader.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // MJRefreshHeader.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 15/3/4. 7 | // Copyright (c) 2015年 小码哥. All rights reserved. 8 | // 下拉刷新控件:负责监控用户下拉的状态 9 | 10 | #import "MJRefreshComponent.h" 11 | 12 | @interface MJRefreshHeader : MJRefreshComponent 13 | /** 创建header */ 14 | + (instancetype)headerWithRefreshingBlock:(MJRefreshComponentRefreshingBlock)refreshingBlock; 15 | /** 创建header */ 16 | + (instancetype)headerWithRefreshingTarget:(id)target refreshingAction:(SEL)action; 17 | 18 | /** 这个key用来存储上一次下拉刷新成功的时间 */ 19 | @property (copy, nonatomic) NSString *lastUpdatedTimeKey; 20 | /** 上一次下拉刷新成功的时间 */ 21 | @property (strong, nonatomic, readonly) NSDate *lastUpdatedTime; 22 | 23 | /** 忽略多少scrollView的contentInset的top */ 24 | @property (assign, nonatomic) CGFloat ignoredScrollViewContentInsetTop; 25 | @end 26 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoGifFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshAutoStateFooter.h" 10 | 11 | @interface MJRefreshAutoGifFooter : MJRefreshAutoStateFooter 12 | @property (weak, nonatomic, readonly) UIImageView *gifView; 13 | 14 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 15 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 16 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 17 | @end 18 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoNormalFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshAutoStateFooter.h" 10 | 11 | @interface MJRefreshAutoNormalFooter : MJRefreshAutoStateFooter 12 | /** 菊花的样式 */ 13 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle; 14 | @end 15 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoStateFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/6/13. 6 | // Copyright © 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshAutoFooter.h" 10 | 11 | @interface MJRefreshAutoStateFooter : MJRefreshAutoFooter 12 | /** 文字距离圈圈、箭头的距离 */ 13 | @property (assign, nonatomic) CGFloat labelLeftInset; 14 | /** 显示刷新状态的label */ 15 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 16 | 17 | /** 设置state状态下的文字 */ 18 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 19 | 20 | /** 隐藏刷新状态的文字 */ 21 | @property (assign, nonatomic, getter=isRefreshingTitleHidden) BOOL refreshingTitleHidden; 22 | @end 23 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackGifFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshBackStateFooter.h" 10 | 11 | @interface MJRefreshBackGifFooter : MJRefreshBackStateFooter 12 | @property (weak, nonatomic, readonly) UIImageView *gifView; 13 | 14 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 15 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 16 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 17 | @end 18 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackNormalFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshBackStateFooter.h" 10 | 11 | @interface MJRefreshBackNormalFooter : MJRefreshBackStateFooter 12 | @property (weak, nonatomic, readonly) UIImageView *arrowView; 13 | /** 菊花的样式 */ 14 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle; 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackStateFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/6/13. 6 | // Copyright © 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshBackFooter.h" 10 | 11 | @interface MJRefreshBackStateFooter : MJRefreshBackFooter 12 | /** 文字距离圈圈、箭头的距离 */ 13 | @property (assign, nonatomic) CGFloat labelLeftInset; 14 | /** 显示刷新状态的label */ 15 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 16 | /** 设置state状态下的文字 */ 17 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 18 | 19 | /** 获取state状态下的title */ 20 | - (NSString *)titleForState:(MJRefreshState)state; 21 | @end 22 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshGifHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshGifHeader.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshStateHeader.h" 10 | 11 | @interface MJRefreshGifHeader : MJRefreshStateHeader 12 | @property (weak, nonatomic, readonly) UIImageView *gifView; 13 | 14 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 15 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 16 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 17 | @end 18 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshNormalHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshNormalHeader.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshStateHeader.h" 10 | 11 | @interface MJRefreshNormalHeader : MJRefreshStateHeader 12 | @property (weak, nonatomic, readonly) UIImageView *arrowView; 13 | /** 菊花的样式 */ 14 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle; 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshStateHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshStateHeader.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshHeader.h" 10 | 11 | @interface MJRefreshStateHeader : MJRefreshHeader 12 | #pragma mark - 刷新时间相关 13 | /** 利用这个block来决定显示的更新时间文字 */ 14 | @property (copy, nonatomic) NSString *(^lastUpdatedTimeText)(NSDate *lastUpdatedTime); 15 | /** 显示上一次刷新时间的label */ 16 | @property (weak, nonatomic, readonly) UILabel *lastUpdatedTimeLabel; 17 | 18 | #pragma mark - 状态相关 19 | /** 文字距离圈圈、箭头的距离 */ 20 | @property (assign, nonatomic) CGFloat labelLeftInset; 21 | /** 显示刷新状态的label */ 22 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 23 | /** 设置state状态下的文字 */ 24 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 25 | @end 26 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/arrow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/arrow@2x.png -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/en.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/en.lproj/Localizable.strings -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/zh-Hans.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/zh-Hans.lproj/Localizable.strings -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/zh-Hant.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "MJRefreshHeaderIdleText" = "下拉可以刷新"; 2 | "MJRefreshHeaderPullingText" = "鬆開立即刷新"; 3 | "MJRefreshHeaderRefreshingText" = "正在刷新數據中..."; 4 | 5 | "MJRefreshAutoFooterIdleText" = "點擊或上拉加載更多"; 6 | "MJRefreshAutoFooterRefreshingText" = "正在加載更多的數據..."; 7 | "MJRefreshAutoFooterNoMoreDataText" = "已經全部加載完畢"; 8 | 9 | "MJRefreshBackFooterIdleText" = "上拉可以加載更多"; 10 | "MJRefreshBackFooterPullingText" = "鬆開立即加載更多"; 11 | "MJRefreshBackFooterRefreshingText" = "正在加載更多的數據..."; 12 | "MJRefreshBackFooterNoMoreDataText" = "已經全部加載完畢"; 13 | 14 | "MJRefreshHeaderLastTimeText" = "最後更新:"; 15 | "MJRefreshHeaderDateTodayText" = "今天"; 16 | "MJRefreshHeaderNoneLastDateText" = "無記錄"; 17 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | 4 | #import "UIScrollView+MJRefresh.h" 5 | #import "UIScrollView+MJExtension.h" 6 | #import "UIView+MJExtension.h" 7 | 8 | #import "MJRefreshNormalHeader.h" 9 | #import "MJRefreshGifHeader.h" 10 | 11 | #import "MJRefreshBackNormalFooter.h" 12 | #import "MJRefreshBackGifFooter.h" 13 | #import "MJRefreshAutoNormalFooter.h" 14 | #import "MJRefreshAutoGifFooter.h" -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/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 MJRefreshLabelLeftInset = 25; 6 | const CGFloat MJRefreshHeaderHeight = 54.0; 7 | const CGFloat MJRefreshFooterHeight = 44.0; 8 | const CGFloat MJRefreshFastAnimationDuration = 0.25; 9 | const CGFloat MJRefreshSlowAnimationDuration = 0.4; 10 | 11 | NSString *const MJRefreshKeyPathContentOffset = @"contentOffset"; 12 | NSString *const MJRefreshKeyPathContentInset = @"contentInset"; 13 | NSString *const MJRefreshKeyPathContentSize = @"contentSize"; 14 | NSString *const MJRefreshKeyPathPanState = @"state"; 15 | 16 | NSString *const MJRefreshHeaderLastUpdatedTimeKey = @"MJRefreshHeaderLastUpdatedTimeKey"; 17 | 18 | NSString *const MJRefreshHeaderIdleText = @"MJRefreshHeaderIdleText"; 19 | NSString *const MJRefreshHeaderPullingText = @"MJRefreshHeaderPullingText"; 20 | NSString *const MJRefreshHeaderRefreshingText = @"MJRefreshHeaderRefreshingText"; 21 | 22 | NSString *const MJRefreshAutoFooterIdleText = @"MJRefreshAutoFooterIdleText"; 23 | NSString *const MJRefreshAutoFooterRefreshingText = @"MJRefreshAutoFooterRefreshingText"; 24 | NSString *const MJRefreshAutoFooterNoMoreDataText = @"MJRefreshAutoFooterNoMoreDataText"; 25 | 26 | NSString *const MJRefreshBackFooterIdleText = @"MJRefreshBackFooterIdleText"; 27 | NSString *const MJRefreshBackFooterPullingText = @"MJRefreshBackFooterPullingText"; 28 | NSString *const MJRefreshBackFooterRefreshingText = @"MJRefreshBackFooterRefreshingText"; 29 | NSString *const MJRefreshBackFooterNoMoreDataText = @"MJRefreshBackFooterNoMoreDataText"; 30 | 31 | NSString *const MJRefreshHeaderLastTimeText = @"MJRefreshHeaderLastTimeText"; 32 | NSString *const MJRefreshHeaderDateTodayText = @"MJRefreshHeaderDateTodayText"; 33 | NSString *const MJRefreshHeaderNoneLastDateText = @"MJRefreshHeaderNoneLastDateText"; -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/NSBundle+MJRefresh.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSBundle+MJRefresh.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 16/6/13. 6 | // Copyright © 2016年 小码哥. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface NSBundle (MJRefresh) 12 | + (instancetype)mj_refreshBundle; 13 | + (UIImage *)mj_arrowImage; 14 | + (NSString *)mj_localizedStringForKey:(NSString *)key value:(NSString *)value; 15 | + (NSString *)mj_localizedStringForKey:(NSString *)key; 16 | @end 17 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/UIScrollView+MJExtension.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // UIScrollView+Extension.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 14-5-28. 7 | // Copyright (c) 2014年 小码哥. All rights reserved. 8 | // 9 | 10 | #import 11 | 12 | @interface UIScrollView (MJExtension) 13 | @property (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 | #import "MJRefreshConst.h" 12 | 13 | @class MJRefreshHeader, MJRefreshFooter; 14 | 15 | @interface UIScrollView (MJRefresh) 16 | /** 下拉刷新控件 */ 17 | @property (strong, nonatomic) MJRefreshHeader *mj_header; 18 | @property (strong, nonatomic) MJRefreshHeader *header MJRefreshDeprecated("使用mj_header"); 19 | /** 上拉刷新控件 */ 20 | @property (strong, nonatomic) MJRefreshFooter *mj_footer; 21 | @property (strong, nonatomic) MJRefreshFooter *footer MJRefreshDeprecated("使用mj_footer"); 22 | 23 | #pragma mark - other 24 | - (NSInteger)mj_totalDataCount; 25 | @property (copy, nonatomic) void (^mj_reloadDataBlock)(NSInteger totalDataCount); 26 | @end 27 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/UIView+MJExtension.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // UIView+Extension.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 14-5-28. 7 | // Copyright (c) 2014年 小码哥. All rights reserved. 8 | // 9 | 10 | #import 11 | 12 | @interface UIView (MJExtension) 13 | @property (assign, nonatomic) CGFloat mj_x; 14 | @property (assign, nonatomic) CGFloat mj_y; 15 | @property (assign, nonatomic) CGFloat mj_w; 16 | @property (assign, nonatomic) CGFloat mj_h; 17 | @property (assign, nonatomic) CGSize mj_size; 18 | @property (assign, nonatomic) CGPoint mj_origin; 19 | @end 20 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/UIView+MJExtension.m: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // UIView+Extension.m 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 14-5-28. 7 | // Copyright (c) 2014年 小码哥. All rights reserved. 8 | // 9 | 10 | #import "UIView+MJExtension.h" 11 | 12 | @implementation UIView (MJExtension) 13 | - (void)setMj_x:(CGFloat)mj_x 14 | { 15 | CGRect frame = self.frame; 16 | frame.origin.x = mj_x; 17 | self.frame = frame; 18 | } 19 | 20 | - (CGFloat)mj_x 21 | { 22 | return self.frame.origin.x; 23 | } 24 | 25 | - (void)setMj_y:(CGFloat)mj_y 26 | { 27 | CGRect frame = self.frame; 28 | frame.origin.y = mj_y; 29 | self.frame = frame; 30 | } 31 | 32 | - (CGFloat)mj_y 33 | { 34 | return self.frame.origin.y; 35 | } 36 | 37 | - (void)setMj_w:(CGFloat)mj_w 38 | { 39 | CGRect frame = self.frame; 40 | frame.size.width = mj_w; 41 | self.frame = frame; 42 | } 43 | 44 | - (CGFloat)mj_w 45 | { 46 | return self.frame.size.width; 47 | } 48 | 49 | - (void)setMj_h:(CGFloat)mj_h 50 | { 51 | CGRect frame = self.frame; 52 | frame.size.height = mj_h; 53 | self.frame = frame; 54 | } 55 | 56 | - (CGFloat)mj_h 57 | { 58 | return self.frame.size.height; 59 | } 60 | 61 | - (void)setMj_size:(CGSize)mj_size 62 | { 63 | CGRect frame = self.frame; 64 | frame.size = mj_size; 65 | self.frame = frame; 66 | } 67 | 68 | - (CGSize)mj_size 69 | { 70 | return self.frame.size; 71 | } 72 | 73 | - (void)setMj_origin:(CGPoint)mj_origin 74 | { 75 | CGRect frame = self.frame; 76 | frame.origin = mj_origin; 77 | self.frame = frame; 78 | } 79 | 80 | - (CGPoint)mj_origin 81 | { 82 | return self.frame.origin; 83 | } 84 | @end 85 | -------------------------------------------------------------------------------- /Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - AFNetworking (3.1.0): 3 | - AFNetworking/NSURLSession (= 3.1.0) 4 | - AFNetworking/Reachability (= 3.1.0) 5 | - AFNetworking/Security (= 3.1.0) 6 | - AFNetworking/Serialization (= 3.1.0) 7 | - AFNetworking/UIKit (= 3.1.0) 8 | - AFNetworking/NSURLSession (3.1.0): 9 | - AFNetworking/Reachability 10 | - AFNetworking/Security 11 | - AFNetworking/Serialization 12 | - AFNetworking/Reachability (3.1.0) 13 | - AFNetworking/Security (3.1.0) 14 | - AFNetworking/Serialization (3.1.0) 15 | - AFNetworking/UIKit (3.1.0): 16 | - AFNetworking/NSURLSession 17 | - Masonry (1.0.1) 18 | - MJRefresh (3.1.12) 19 | - SDWebImage (3.7.6): 20 | - SDWebImage/Core (= 3.7.6) 21 | - SDWebImage/Core (3.7.6) 22 | - SVProgressHUD (2.0.3) 23 | - UITableView+FDTemplateLayoutCell (1.4) 24 | - ZYLocationManager (0.2.0) 25 | 26 | DEPENDENCIES: 27 | - AFNetworking (= 3.1.0) 28 | - Masonry 29 | - MJRefresh 30 | - SDWebImage (~> 3.7.5) 31 | - SVProgressHUD 32 | - UITableView+FDTemplateLayoutCell (= 1.4) 33 | - ZYLocationManager (~> 0.2.0) 34 | 35 | SPEC CHECKSUMS: 36 | AFNetworking: 5e0e199f73d8626b11e79750991f5d173d1f8b67 37 | Masonry: a1a931a0d08870ed8ae415a2ea5ea68ebcac77df 38 | MJRefresh: b96cdb21c4aa75a7b07654311ab2f315c497e806 39 | SDWebImage: c325cf02c30337336b95beff20a13df489ec0ec9 40 | SVProgressHUD: b0830714205bea1317ea1a2ebc71e5633af334d4 41 | UITableView+FDTemplateLayoutCell: 234e1582bcc4e18461af91155123bb96538ed030 42 | ZYLocationManager: 2dd0353e168bc853b774ee7df8a4021191592adc 43 | 44 | PODFILE CHECKSUM: dbaddb9a36839f036a5c8f65ef3b6717b9e5393d 45 | 46 | COCOAPODS: 1.1.1 47 | -------------------------------------------------------------------------------- /Pods/Masonry/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011-2012 Masonry Team - https://github.com/Masonry 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. -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/MASCompositeConstraint.h: -------------------------------------------------------------------------------- 1 | // 2 | // MASCompositeConstraint.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 21/07/13. 6 | // Copyright (c) 2013 cloudling. All rights reserved. 7 | // 8 | 9 | #import "MASConstraint.h" 10 | #import "MASUtilities.h" 11 | 12 | /** 13 | * A group of MASConstraint objects 14 | */ 15 | @interface MASCompositeConstraint : MASConstraint 16 | 17 | /** 18 | * Creates a composite with a predefined array of children 19 | * 20 | * @param children child MASConstraints 21 | * 22 | * @return a composite constraint 23 | */ 24 | - (id)initWithChildren:(NSArray *)children; 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/MASConstraint+Private.h: -------------------------------------------------------------------------------- 1 | // 2 | // MASConstraint+Private.h 3 | // Masonry 4 | // 5 | // Created by Nick Tymchenko on 29/04/14. 6 | // Copyright (c) 2014 cloudling. All rights reserved. 7 | // 8 | 9 | #import "MASConstraint.h" 10 | 11 | @protocol MASConstraintDelegate; 12 | 13 | 14 | @interface MASConstraint () 15 | 16 | /** 17 | * Whether or not to check for an existing constraint instead of adding constraint 18 | */ 19 | @property (nonatomic, assign) BOOL updateExisting; 20 | 21 | /** 22 | * Usually MASConstraintMaker but could be a parent MASConstraint 23 | */ 24 | @property (nonatomic, weak) id delegate; 25 | 26 | /** 27 | * Based on a provided value type, is equal to calling: 28 | * NSNumber - setOffset: 29 | * NSValue with CGPoint - setPointOffset: 30 | * NSValue with CGSize - setSizeOffset: 31 | * NSValue with MASEdgeInsets - setInsets: 32 | */ 33 | - (void)setLayoutConstantWithValue:(NSValue *)value; 34 | 35 | @end 36 | 37 | 38 | @interface MASConstraint (Abstract) 39 | 40 | /** 41 | * Sets the constraint relation to given NSLayoutRelation 42 | * returns a block which accepts one of the following: 43 | * MASViewAttribute, UIView, NSValue, NSArray 44 | * see readme for more details. 45 | */ 46 | - (MASConstraint * (^)(id, NSLayoutRelation))equalToWithRelation; 47 | 48 | /** 49 | * Override to set a custom chaining behaviour 50 | */ 51 | - (MASConstraint *)addConstraintWithLayoutAttribute:(NSLayoutAttribute)layoutAttribute; 52 | 53 | @end 54 | 55 | 56 | @protocol MASConstraintDelegate 57 | 58 | /** 59 | * Notifies the delegate when the constraint needs to be replaced with another constraint. For example 60 | * A MASViewConstraint may turn into a MASCompositeConstraint when an array is passed to one of the equality blocks 61 | */ 62 | - (void)constraint:(MASConstraint *)constraint shouldBeReplacedWithConstraint:(MASConstraint *)replacementConstraint; 63 | 64 | - (MASConstraint *)constraint:(MASConstraint *)constraint addConstraintWithLayoutAttribute:(NSLayoutAttribute)layoutAttribute; 65 | 66 | @end 67 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/MASLayoutConstraint.h: -------------------------------------------------------------------------------- 1 | // 2 | // MASLayoutConstraint.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 3/08/13. 6 | // Copyright (c) 2013 Jonas Budelmann. All rights reserved. 7 | // 8 | 9 | #import "MASUtilities.h" 10 | 11 | /** 12 | * When you are debugging or printing the constraints attached to a view this subclass 13 | * makes it easier to identify which constraints have been created via Masonry 14 | */ 15 | @interface MASLayoutConstraint : NSLayoutConstraint 16 | 17 | /** 18 | * a key to associate with this constraint 19 | */ 20 | @property (nonatomic, strong) id mas_key; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/MASLayoutConstraint.m: -------------------------------------------------------------------------------- 1 | // 2 | // MASLayoutConstraint.m 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 3/08/13. 6 | // Copyright (c) 2013 Jonas Budelmann. All rights reserved. 7 | // 8 | 9 | #import "MASLayoutConstraint.h" 10 | 11 | @implementation MASLayoutConstraint 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/MASViewAttribute.h: -------------------------------------------------------------------------------- 1 | // 2 | // MASAttribute.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 21/07/13. 6 | // Copyright (c) 2013 cloudling. All rights reserved. 7 | // 8 | 9 | #import "MASUtilities.h" 10 | 11 | /** 12 | * An immutable tuple which stores the view and the related NSLayoutAttribute. 13 | * Describes part of either the left or right hand side of a constraint equation 14 | */ 15 | @interface MASViewAttribute : NSObject 16 | 17 | /** 18 | * The view which the reciever relates to. Can be nil if item is not a view. 19 | */ 20 | @property (nonatomic, weak, readonly) MAS_VIEW *view; 21 | 22 | /** 23 | * The item which the reciever relates to. 24 | */ 25 | @property (nonatomic, weak, readonly) id item; 26 | 27 | /** 28 | * The attribute which the reciever relates to 29 | */ 30 | @property (nonatomic, assign, readonly) NSLayoutAttribute layoutAttribute; 31 | 32 | /** 33 | * Convenience initializer. 34 | */ 35 | - (id)initWithView:(MAS_VIEW *)view layoutAttribute:(NSLayoutAttribute)layoutAttribute; 36 | 37 | /** 38 | * The designated initializer. 39 | */ 40 | - (id)initWithView:(MAS_VIEW *)view item:(id)item layoutAttribute:(NSLayoutAttribute)layoutAttribute; 41 | 42 | /** 43 | * Determine whether the layoutAttribute is a size attribute 44 | * 45 | * @return YES if layoutAttribute is equal to NSLayoutAttributeWidth or NSLayoutAttributeHeight 46 | */ 47 | - (BOOL)isSizeAttribute; 48 | 49 | @end 50 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/MASViewAttribute.m: -------------------------------------------------------------------------------- 1 | // 2 | // MASAttribute.m 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 21/07/13. 6 | // Copyright (c) 2013 cloudling. All rights reserved. 7 | // 8 | 9 | #import "MASViewAttribute.h" 10 | 11 | @implementation MASViewAttribute 12 | 13 | - (id)initWithView:(MAS_VIEW *)view layoutAttribute:(NSLayoutAttribute)layoutAttribute { 14 | self = [self initWithView:view item:view layoutAttribute:layoutAttribute]; 15 | return self; 16 | } 17 | 18 | - (id)initWithView:(MAS_VIEW *)view item:(id)item layoutAttribute:(NSLayoutAttribute)layoutAttribute { 19 | self = [super init]; 20 | if (!self) return nil; 21 | 22 | _view = view; 23 | _item = item; 24 | _layoutAttribute = layoutAttribute; 25 | 26 | return self; 27 | } 28 | 29 | - (BOOL)isSizeAttribute { 30 | return self.layoutAttribute == NSLayoutAttributeWidth 31 | || self.layoutAttribute == NSLayoutAttributeHeight; 32 | } 33 | 34 | - (BOOL)isEqual:(MASViewAttribute *)viewAttribute { 35 | if ([viewAttribute isKindOfClass:self.class]) { 36 | return self.view == viewAttribute.view 37 | && self.layoutAttribute == viewAttribute.layoutAttribute; 38 | } 39 | return [super isEqual:viewAttribute]; 40 | } 41 | 42 | - (NSUInteger)hash { 43 | return MAS_NSUINTROTATE([self.view hash], MAS_NSUINT_BIT / 2) ^ self.layoutAttribute; 44 | } 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/MASViewConstraint.h: -------------------------------------------------------------------------------- 1 | // 2 | // MASConstraint.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 20/07/13. 6 | // Copyright (c) 2013 cloudling. All rights reserved. 7 | // 8 | 9 | #import "MASViewAttribute.h" 10 | #import "MASConstraint.h" 11 | #import "MASLayoutConstraint.h" 12 | #import "MASUtilities.h" 13 | 14 | /** 15 | * A single constraint. 16 | * Contains the attributes neccessary for creating a NSLayoutConstraint and adding it to the appropriate view 17 | */ 18 | @interface MASViewConstraint : MASConstraint 19 | 20 | /** 21 | * First item/view and first attribute of the NSLayoutConstraint 22 | */ 23 | @property (nonatomic, strong, readonly) MASViewAttribute *firstViewAttribute; 24 | 25 | /** 26 | * Second item/view and second attribute of the NSLayoutConstraint 27 | */ 28 | @property (nonatomic, strong, readonly) MASViewAttribute *secondViewAttribute; 29 | 30 | /** 31 | * initialises the MASViewConstraint with the first part of the equation 32 | * 33 | * @param firstViewAttribute view.mas_left, view.mas_width etc. 34 | * 35 | * @return a new view constraint 36 | */ 37 | - (id)initWithFirstViewAttribute:(MASViewAttribute *)firstViewAttribute; 38 | 39 | /** 40 | * Returns all MASViewConstraints installed with this view as a first item. 41 | * 42 | * @param view A view to retrieve constraints for. 43 | * 44 | * @return An array of MASViewConstraints. 45 | */ 46 | + (NSArray *)installedConstraintsForView:(MAS_VIEW *)view; 47 | 48 | @end 49 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/Masonry.h: -------------------------------------------------------------------------------- 1 | // 2 | // Masonry.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 20/07/13. 6 | // Copyright (c) 2013 cloudling. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for Masonry. 12 | FOUNDATION_EXPORT double MasonryVersionNumber; 13 | 14 | //! Project version string for Masonry. 15 | FOUNDATION_EXPORT const unsigned char MasonryVersionString[]; 16 | 17 | #import "MASUtilities.h" 18 | #import "View+MASAdditions.h" 19 | #import "View+MASShorthandAdditions.h" 20 | #import "ViewController+MASAdditions.h" 21 | #import "NSArray+MASAdditions.h" 22 | #import "NSArray+MASShorthandAdditions.h" 23 | #import "MASConstraint.h" 24 | #import "MASCompositeConstraint.h" 25 | #import "MASViewAttribute.h" 26 | #import "MASViewConstraint.h" 27 | #import "MASConstraintMaker.h" 28 | #import "MASLayoutConstraint.h" 29 | #import "NSLayoutConstraint+MASDebugAdditions.h" 30 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/NSArray+MASShorthandAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSArray+MASShorthandAdditions.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 22/07/13. 6 | // Copyright (c) 2013 Jonas Budelmann. All rights reserved. 7 | // 8 | 9 | #import "NSArray+MASAdditions.h" 10 | 11 | #ifdef MAS_SHORTHAND 12 | 13 | /** 14 | * Shorthand array additions without the 'mas_' prefixes, 15 | * only enabled if MAS_SHORTHAND is defined 16 | */ 17 | @interface NSArray (MASShorthandAdditions) 18 | 19 | - (NSArray *)makeConstraints:(void(^)(MASConstraintMaker *make))block; 20 | - (NSArray *)updateConstraints:(void(^)(MASConstraintMaker *make))block; 21 | - (NSArray *)remakeConstraints:(void(^)(MASConstraintMaker *make))block; 22 | 23 | @end 24 | 25 | @implementation NSArray (MASShorthandAdditions) 26 | 27 | - (NSArray *)makeConstraints:(void(^)(MASConstraintMaker *))block { 28 | return [self mas_makeConstraints:block]; 29 | } 30 | 31 | - (NSArray *)updateConstraints:(void(^)(MASConstraintMaker *))block { 32 | return [self mas_updateConstraints:block]; 33 | } 34 | 35 | - (NSArray *)remakeConstraints:(void(^)(MASConstraintMaker *))block { 36 | return [self mas_remakeConstraints:block]; 37 | } 38 | 39 | @end 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/NSLayoutConstraint+MASDebugAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSLayoutConstraint+MASDebugAdditions.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 3/08/13. 6 | // Copyright (c) 2013 Jonas Budelmann. All rights reserved. 7 | // 8 | 9 | #import "MASUtilities.h" 10 | 11 | /** 12 | * makes debug and log output of NSLayoutConstraints more readable 13 | */ 14 | @interface NSLayoutConstraint (MASDebugAdditions) 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/ViewController+MASAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+MASAdditions.h 3 | // Masonry 4 | // 5 | // Created by Craig Siemens on 2015-06-23. 6 | // 7 | // 8 | 9 | #import "MASUtilities.h" 10 | #import "MASConstraintMaker.h" 11 | #import "MASViewAttribute.h" 12 | 13 | #ifdef MAS_VIEW_CONTROLLER 14 | 15 | @interface MAS_VIEW_CONTROLLER (MASAdditions) 16 | 17 | /** 18 | * following properties return a new MASViewAttribute with appropriate UILayoutGuide and NSLayoutAttribute 19 | */ 20 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_topLayoutGuide; 21 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomLayoutGuide; 22 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_topLayoutGuideTop; 23 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_topLayoutGuideBottom; 24 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomLayoutGuideTop; 25 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomLayoutGuideBottom; 26 | 27 | 28 | @end 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/ViewController+MASAdditions.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+MASAdditions.m 3 | // Masonry 4 | // 5 | // Created by Craig Siemens on 2015-06-23. 6 | // 7 | // 8 | 9 | #import "ViewController+MASAdditions.h" 10 | 11 | #ifdef MAS_VIEW_CONTROLLER 12 | 13 | @implementation MAS_VIEW_CONTROLLER (MASAdditions) 14 | 15 | - (MASViewAttribute *)mas_topLayoutGuide { 16 | return [[MASViewAttribute alloc] initWithView:self.view item:self.topLayoutGuide layoutAttribute:NSLayoutAttributeBottom]; 17 | } 18 | - (MASViewAttribute *)mas_topLayoutGuideTop { 19 | return [[MASViewAttribute alloc] initWithView:self.view item:self.topLayoutGuide layoutAttribute:NSLayoutAttributeTop]; 20 | } 21 | - (MASViewAttribute *)mas_topLayoutGuideBottom { 22 | return [[MASViewAttribute alloc] initWithView:self.view item:self.topLayoutGuide layoutAttribute:NSLayoutAttributeBottom]; 23 | } 24 | 25 | - (MASViewAttribute *)mas_bottomLayoutGuide { 26 | return [[MASViewAttribute alloc] initWithView:self.view item:self.bottomLayoutGuide layoutAttribute:NSLayoutAttributeTop]; 27 | } 28 | - (MASViewAttribute *)mas_bottomLayoutGuideTop { 29 | return [[MASViewAttribute alloc] initWithView:self.view item:self.bottomLayoutGuide layoutAttribute:NSLayoutAttributeTop]; 30 | } 31 | - (MASViewAttribute *)mas_bottomLayoutGuideBottom { 32 | return [[MASViewAttribute alloc] initWithView:self.view item:self.bottomLayoutGuide layoutAttribute:NSLayoutAttributeBottom]; 33 | } 34 | 35 | 36 | 37 | @end 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /Pods/SDWebImage/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016 Olivier Poitrey rs@dailymotion.com 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is furnished 8 | to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | 21 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/NSData+ImageContentType.h: -------------------------------------------------------------------------------- 1 | // 2 | // 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/SDWebImageCompat.m: -------------------------------------------------------------------------------- 1 | // 2 | // SDWebImageCompat.m 3 | // SDWebImage 4 | // 5 | // Created by Olivier Poitrey on 11/12/12. 6 | // Copyright (c) 2012 Dailymotion. All rights reserved. 7 | // 8 | 9 | #import "SDWebImageCompat.h" 10 | 11 | #if !__has_feature(objc_arc) 12 | #error SDWebImage is ARC only. Either turn on ARC for the project or use -fobjc-arc flag 13 | #endif 14 | 15 | inline UIImage *SDScaledImageForKey(NSString *key, UIImage *image) { 16 | if (!image) { 17 | return nil; 18 | } 19 | 20 | if ([image.images count] > 0) { 21 | NSMutableArray *scaledImages = [NSMutableArray array]; 22 | 23 | for (UIImage *tempImage in image.images) { 24 | [scaledImages addObject:SDScaledImageForKey(key, tempImage)]; 25 | } 26 | 27 | return [UIImage animatedImageWithImages:scaledImages duration:image.duration]; 28 | } 29 | else { 30 | if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) { 31 | CGFloat scale = 1; 32 | if (key.length >= 8) { 33 | NSRange range = [key rangeOfString:@"@2x."]; 34 | if (range.location != NSNotFound) { 35 | scale = 2.0; 36 | } 37 | 38 | range = [key rangeOfString:@"@3x."]; 39 | if (range.location != NSNotFound) { 40 | scale = 3.0; 41 | } 42 | } 43 | 44 | UIImage *scaledImage = [[UIImage alloc] initWithCGImage:image.CGImage scale:scale orientation:image.imageOrientation]; 45 | image = scaledImage; 46 | } 47 | return image; 48 | } 49 | } 50 | 51 | NSString *const SDWebImageErrorDomain = @"SDWebImageErrorDomain"; 52 | -------------------------------------------------------------------------------- /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/SVProgressHUD/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011-2016 Sam Vermette, Tobias Tiemerding and contributors. 2 | 3 | Permission is hereby granted, free of charge, to any person 4 | obtaining a copy of this software and associated documentation 5 | files (the "Software"), to deal in the Software without 6 | restriction, including without limitation the rights to use, 7 | copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the 9 | Software is furnished to do so, subject to the following 10 | conditions: 11 | 12 | The above copyright notice and this permission notice shall be 13 | included in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 17 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 19 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 20 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | A different license may apply to other resources included in this package, 25 | including Freepik Icons. Please consult their 26 | respective headers for the terms of their individual licenses. 27 | -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVIndefiniteAnimatedView.h: -------------------------------------------------------------------------------- 1 | // 2 | // SVIndefiniteAnimatedView.h 3 | // SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD 4 | // 5 | // Copyright (c) 2014-2016 Guillaume Campagna. All rights reserved. 6 | // 7 | 8 | #import 9 | 10 | @interface SVIndefiniteAnimatedView : UIView 11 | 12 | @property (nonatomic, assign) CGFloat strokeThickness; 13 | @property (nonatomic, assign) CGFloat radius; 14 | @property (nonatomic, strong) UIColor *strokeColor; 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressAnimatedView.h: -------------------------------------------------------------------------------- 1 | // 2 | // SVProgressAnimatedView.h 3 | // SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD 4 | // 5 | // Copyright (c) 2016 Tobias Tiemerding. All rights reserved. 6 | // 7 | 8 | #import 9 | 10 | @interface SVProgressAnimatedView : UIView 11 | 12 | @property (nonatomic, assign) CGFloat radius; 13 | @property (nonatomic, assign) CGFloat strokeThickness; 14 | @property (nonatomic, strong) UIColor *strokeColor; 15 | @property (nonatomic, assign) CGFloat strokeEnd; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask@2x.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask@3x.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error@2x.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error@3x.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info@2x.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info@3x.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success@2x.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success@3x.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVRadialGradientLayer.h: -------------------------------------------------------------------------------- 1 | // 2 | // SVRadialGradientLayer.h 3 | // SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD 4 | // 5 | // Copyright (c) 2014-2016 Tobias Tiemerding. All rights reserved. 6 | // 7 | 8 | #import 9 | 10 | @interface SVRadialGradientLayer : CALayer 11 | 12 | @property (nonatomic) CGPoint gradientCenter; 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVRadialGradientLayer.m: -------------------------------------------------------------------------------- 1 | // 2 | // SVRadialGradientLayer.m 3 | // SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD 4 | // 5 | // Copyright (c) 2014-2016 Tobias Tiemerding. All rights reserved. 6 | // 7 | 8 | #import "SVRadialGradientLayer.h" 9 | 10 | @implementation SVRadialGradientLayer 11 | 12 | - (void)drawInContext:(CGContextRef)context { 13 | size_t locationsCount = 2; 14 | CGFloat locations[2] = {0.0f, 1.0f}; 15 | CGFloat colors[8] = {0.0f,0.0f,0.0f,0.0f,0.0f,0.0f,0.0f,0.75f}; 16 | CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); 17 | CGGradientRef gradient = CGGradientCreateWithColorComponents(colorSpace, colors, locations, locationsCount); 18 | CGColorSpaceRelease(colorSpace); 19 | 20 | float radius = MIN(self.bounds.size.width , self.bounds.size.height); 21 | CGContextDrawRadialGradient (context, gradient, self.gradientCenter, 0, self.gradientCenter, radius, kCGGradientDrawsAfterEndLocation); 22 | CGGradientRelease(gradient); 23 | } 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /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 | 13 | #ifndef TARGET_OS_TV 14 | #define TARGET_OS_TV 0 15 | #endif 16 | -------------------------------------------------------------------------------- /Pods/Target Support Files/AFNetworking/AFNetworking.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/AFNetworking 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | 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/MJRefresh" "${PODS_ROOT}/Headers/Public/Masonry" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/SVProgressHUD" "${PODS_ROOT}/Headers/Public/UITableView+FDTemplateLayoutCell" "${PODS_ROOT}/Headers/Public/ZYLocationManager" 4 | OTHER_LDFLAGS = -framework "CoreGraphics" -framework "MobileCoreServices" -framework "Security" -framework "SystemConfiguration" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /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 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/MJRefresh 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | 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/MJRefresh" "${PODS_ROOT}/Headers/Public/Masonry" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/SVProgressHUD" "${PODS_ROOT}/Headers/Public/UITableView+FDTemplateLayoutCell" "${PODS_ROOT}/Headers/Public/ZYLocationManager" 4 | PODS_BUILD_DIR = $BUILD_DIR 5 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 8 | SKIP_INSTALL = YES 9 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Masonry/Masonry-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Masonry : NSObject 3 | @end 4 | @implementation PodsDummy_Masonry 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Masonry/Masonry-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Masonry/Masonry.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/Masonry 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Masonry" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Masonry" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/SVProgressHUD" "${PODS_ROOT}/Headers/Public/UITableView+FDTemplateLayoutCell" "${PODS_ROOT}/Headers/Public/ZYLocationManager" 4 | OTHER_LDFLAGS = -framework "Foundation" -framework "UIKit" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-UCToutiaoClone/Pods-UCToutiaoClone-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_UCToutiaoClone : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_UCToutiaoClone 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-UCToutiaoClone/Pods-UCToutiaoClone.debug.xcconfig: -------------------------------------------------------------------------------- 1 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Masonry" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/SVProgressHUD" "${PODS_ROOT}/Headers/Public/UITableView+FDTemplateLayoutCell" "${PODS_ROOT}/Headers/Public/ZYLocationManager" 4 | LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/MJRefresh" "$PODS_CONFIGURATION_BUILD_DIR/Masonry" "$PODS_CONFIGURATION_BUILD_DIR/SDWebImage" "$PODS_CONFIGURATION_BUILD_DIR/SVProgressHUD" "$PODS_CONFIGURATION_BUILD_DIR/UITableView+FDTemplateLayoutCell" "$PODS_CONFIGURATION_BUILD_DIR/ZYLocationManager" 5 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/AFNetworking" -isystem "${PODS_ROOT}/Headers/Public/MJRefresh" -isystem "${PODS_ROOT}/Headers/Public/Masonry" -isystem "${PODS_ROOT}/Headers/Public/SDWebImage" -isystem "${PODS_ROOT}/Headers/Public/SVProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/UITableView+FDTemplateLayoutCell" -isystem "${PODS_ROOT}/Headers/Public/ZYLocationManager" 6 | OTHER_LDFLAGS = $(inherited) -ObjC -l"AFNetworking" -l"MJRefresh" -l"Masonry" -l"SDWebImage" -l"SVProgressHUD" -l"UITableView+FDTemplateLayoutCell" -l"ZYLocationManager" -framework "CoreGraphics" -framework "Foundation" -framework "ImageIO" -framework "MapKit" -framework "MobileCoreServices" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" 7 | PODS_BUILD_DIR = $BUILD_DIR 8 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_ROOT = ${SRCROOT}/Pods 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-UCToutiaoClone/Pods-UCToutiaoClone.release.xcconfig: -------------------------------------------------------------------------------- 1 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Masonry" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/SVProgressHUD" "${PODS_ROOT}/Headers/Public/UITableView+FDTemplateLayoutCell" "${PODS_ROOT}/Headers/Public/ZYLocationManager" 4 | LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/MJRefresh" "$PODS_CONFIGURATION_BUILD_DIR/Masonry" "$PODS_CONFIGURATION_BUILD_DIR/SDWebImage" "$PODS_CONFIGURATION_BUILD_DIR/SVProgressHUD" "$PODS_CONFIGURATION_BUILD_DIR/UITableView+FDTemplateLayoutCell" "$PODS_CONFIGURATION_BUILD_DIR/ZYLocationManager" 5 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/AFNetworking" -isystem "${PODS_ROOT}/Headers/Public/MJRefresh" -isystem "${PODS_ROOT}/Headers/Public/Masonry" -isystem "${PODS_ROOT}/Headers/Public/SDWebImage" -isystem "${PODS_ROOT}/Headers/Public/SVProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/UITableView+FDTemplateLayoutCell" -isystem "${PODS_ROOT}/Headers/Public/ZYLocationManager" 6 | OTHER_LDFLAGS = $(inherited) -ObjC -l"AFNetworking" -l"MJRefresh" -l"Masonry" -l"SDWebImage" -l"SVProgressHUD" -l"UITableView+FDTemplateLayoutCell" -l"ZYLocationManager" -framework "CoreGraphics" -framework "Foundation" -framework "ImageIO" -framework "MapKit" -framework "MobileCoreServices" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" 7 | PODS_BUILD_DIR = $BUILD_DIR 8 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_ROOT = ${SRCROOT}/Pods 10 | -------------------------------------------------------------------------------- /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 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/SDWebImage 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | 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/MJRefresh" "${PODS_ROOT}/Headers/Public/Masonry" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/SVProgressHUD" "${PODS_ROOT}/Headers/Public/UITableView+FDTemplateLayoutCell" "${PODS_ROOT}/Headers/Public/ZYLocationManager" 4 | OTHER_LDFLAGS = -framework "ImageIO" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SVProgressHUD/SVProgressHUD-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_SVProgressHUD : NSObject 3 | @end 4 | @implementation PodsDummy_SVProgressHUD 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SVProgressHUD/SVProgressHUD-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SVProgressHUD/SVProgressHUD.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/SVProgressHUD 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/SVProgressHUD" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Masonry" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/SVProgressHUD" "${PODS_ROOT}/Headers/Public/UITableView+FDTemplateLayoutCell" "${PODS_ROOT}/Headers/Public/ZYLocationManager" 4 | OTHER_LDFLAGS = -framework "QuartzCore" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/UITableView+FDTemplateLayoutCell/UITableView+FDTemplateLayoutCell-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_UITableView_FDTemplateLayoutCell : NSObject 3 | @end 4 | @implementation PodsDummy_UITableView_FDTemplateLayoutCell 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/UITableView+FDTemplateLayoutCell/UITableView+FDTemplateLayoutCell-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/UITableView+FDTemplateLayoutCell/UITableView+FDTemplateLayoutCell.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/UITableView+FDTemplateLayoutCell 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/UITableView+FDTemplateLayoutCell" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Masonry" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/SVProgressHUD" "${PODS_ROOT}/Headers/Public/UITableView+FDTemplateLayoutCell" "${PODS_ROOT}/Headers/Public/ZYLocationManager" 4 | PODS_BUILD_DIR = $BUILD_DIR 5 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 8 | SKIP_INSTALL = YES 9 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ZYLocationManager/ZYLocationManager-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_ZYLocationManager : NSObject 3 | @end 4 | @implementation PodsDummy_ZYLocationManager 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ZYLocationManager/ZYLocationManager-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ZYLocationManager/ZYLocationManager.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/ZYLocationManager 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/ZYLocationManager" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Masonry" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/SVProgressHUD" "${PODS_ROOT}/Headers/Public/UITableView+FDTemplateLayoutCell" "${PODS_ROOT}/Headers/Public/ZYLocationManager" 4 | OTHER_LDFLAGS = -framework "MapKit" -framework "UIKit" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/UITableView+FDTemplateLayoutCell/Classes/UITableView+FDKeyedHeightCache.h: -------------------------------------------------------------------------------- 1 | // The MIT License (MIT) 2 | // 3 | // Copyright (c) 2015-2016 forkingdog ( https://github.com/forkingdog ) 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #import 24 | 25 | @interface FDKeyedHeightCache : NSObject 26 | 27 | - (BOOL)existsHeightForKey:(id)key; 28 | - (void)cacheHeight:(CGFloat)height byKey:(id)key; 29 | - (CGFloat)heightForKey:(id)key; 30 | 31 | // Invalidation 32 | - (void)invalidateHeightForKey:(id)key; 33 | - (void)invalidateAllHeightCache; 34 | @end 35 | 36 | @interface UITableView (FDKeyedHeightCache) 37 | 38 | /// Height cache by key. Generally, you don't need to use it directly. 39 | @property (nonatomic, strong, readonly) FDKeyedHeightCache *fd_keyedHeightCache; 40 | @end 41 | -------------------------------------------------------------------------------- /Pods/UITableView+FDTemplateLayoutCell/Classes/UITableView+FDTemplateLayoutCellDebug.h: -------------------------------------------------------------------------------- 1 | // The MIT License (MIT) 2 | // 3 | // Copyright (c) 2015-2016 forkingdog ( https://github.com/forkingdog ) 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #import 24 | 25 | @interface UITableView (FDTemplateLayoutCellDebug) 26 | 27 | /// Helps to debug or inspect what is this "FDTemplateLayoutCell" extention doing, 28 | /// turning on to print logs when "creating", "calculating", "precaching" or "hitting cache". 29 | /// 30 | /// Default to NO, log by NSLog. 31 | /// 32 | @property (nonatomic, assign) BOOL fd_debugLogEnabled; 33 | 34 | /// Debug log controlled by "fd_debugLogEnabled". 35 | - (void)fd_debugLog:(NSString *)message; 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /Pods/UITableView+FDTemplateLayoutCell/Classes/UITableView+FDTemplateLayoutCellDebug.m: -------------------------------------------------------------------------------- 1 | // The MIT License (MIT) 2 | // 3 | // Copyright (c) 2015-2016 forkingdog ( https://github.com/forkingdog ) 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #import "UITableView+FDTemplateLayoutCellDebug.h" 24 | #import 25 | 26 | @implementation UITableView (FDTemplateLayoutCellDebug) 27 | 28 | - (BOOL)fd_debugLogEnabled { 29 | return [objc_getAssociatedObject(self, _cmd) boolValue]; 30 | } 31 | 32 | - (void)setFd_debugLogEnabled:(BOOL)debugLogEnabled { 33 | objc_setAssociatedObject(self, @selector(fd_debugLogEnabled), @(debugLogEnabled), OBJC_ASSOCIATION_RETAIN); 34 | } 35 | 36 | - (void)fd_debugLog:(NSString *)message { 37 | if (self.fd_debugLogEnabled) { 38 | NSLog(@"** FDTemplateLayoutCell ** %@", message); 39 | } 40 | } 41 | 42 | @end 43 | -------------------------------------------------------------------------------- /Pods/UITableView+FDTemplateLayoutCell/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /Pods/ZYLocationManager/README.md: -------------------------------------------------------------------------------- 1 |

2 | ZYLocationManager 3 |

4 | ZYLocationManager make requesting location information base on MKMapKit any time conveniently. 5 |
6 | 让你在任何时候非常方便地请求地图位置信息。 7 |
8 | 9 |

10 | 11 | 12 |

13 |
14 |
15 | 16 | 17 | #**Summary:** 18 | ZYLocationManager工作基于单例,但它支持多个发起者多个请求同时处理,同时反馈,失败重试。 19 | 20 |
21 |
22 | 23 | #**Usage:** 24 | ```- (void)getLocationCoordinate:(id)sponsor complete:(LocationCompleteBlock)completeBlock;``` 25 | ```- (void)getCity:(id)sponsor complete:(CityCompleteBlock)completeBlock;``` 26 |
27 | 使用ZYLocationManager单例对象发起地图定位信息请求,一般传入发起者controller引用: 28 | ```objc 29 | __weak __typeof(self) weakSelf = self; 30 | [[ZYLocationManager shareManager] getLocationCoordinate:weakSelf complete:^(CLLocationCoordinate2D location, NSError *error) { 31 | //do something 32 | }]; 33 | ``` 34 | 35 | 利用block携带的参数信息: 36 | ```objc 37 | __weak __typeof(self) weakSelf = self; 38 | [[ZYLocationManager shareManager] getLocationCoordinate:weakSelf complete:^(CLLocationCoordinate2D location, NSError *error) { 39 | if (nil == error) { 40 | //do something 41 | } else { 42 | //verify authority 43 | authorityBlock(error, weakSelf); 44 | } 45 | }]; 46 | ``` 47 | 若有error信息,把它交给authorityBlock,内部会做两种处理: 48 | 1.error原因为无权限,弹出AlertView询问用户是否跳转应用权限设置页做更改操作(需要在发起者遵守UIAlertViewDelegate,并实现响应的代理方法) 49 | 2.error为其他原因(信号不好,请求错误等),触发自动重试,默认为1秒,直至发起者的生命周期结束 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /Pods/ZYLocationManager/ZYLocationManager/Classes/ZYLocationManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZYLocationManager.h 3 | // ZYLocationManager 4 | // 5 | // Created by lzy on 16/7/14. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | #import 12 | 13 | typedef void (^LocationCompleteBlock)(CLLocationCoordinate2D location, NSError *error); 14 | typedef void (^CityCompleteBlock)(NSString *city, CLLocationCoordinate2D location, NSError *error); 15 | 16 | extern const void(^authorityBlock)(NSError *, id); 17 | 18 | @interface ZYLocationManager : NSObject 19 | @property (strong, nonatomic) MKMapView *mapView; 20 | @property (assign, nonatomic) CLLocationCoordinate2D lastCoordinate; 21 | @property(assign, nonatomic)float latitude; 22 | @property(assign, nonatomic)float longitude; 23 | 24 | + (ZYLocationManager *)shareManager; 25 | - (void)getLocationCoordinate:(id)sponsor complete:(LocationCompleteBlock)completeBlock; 26 | - (void)getCity:(id)sponsor complete:(CityCompleteBlock)completeBlock; 27 | @end 28 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | UC头条_Clone 3 |

4 | 1:1高仿UC头条,源码仅供学习交流用 5 |
6 |
7 | 8 |

9 | 10 |

11 | 12 | 13 | ##非常吸引眼球的炫酷天气顶部和动态TabBar 14 | ![](https://raw.githubusercontent.com/liuzhiyi1992/MyStore/master/UCToutiaoClone/%E6%BC%94%E7%A4%BAgif/UCToutiao%E5%86%85%E5%B5%8C%E6%9C%BA%E5%A3%B3%E6%BC%94%E7%A4%BA2.gif) 15 | 16 | 17 | ##首页头条内容展示 18 | ![](https://raw.githubusercontent.com/liuzhiyi1992/MyStore/master/UCToutiaoClone/%E6%BC%94%E7%A4%BA%E5%9B%BE%E7%89%87/%E9%A6%96%E9%A1%B5%E6%BC%94%E7%A4%BA.png) 19 | 20 | 21 | ##动感天气顶部栏 22 | ![](https://raw.githubusercontent.com/liuzhiyi1992/MyStore/master/UCToutiaoClone/%E6%BC%94%E7%A4%BAgif/cloud%E6%BC%94%E7%A4%BAgif.gif) 23 | ![](https://raw.githubusercontent.com/liuzhiyi1992/MyStore/master/UCToutiaoClone/%E6%BC%94%E7%A4%BAgif/gloom%E6%BC%94%E7%A4%BAgif.gif) 24 | ![](https://raw.githubusercontent.com/liuzhiyi1992/MyStore/master/UCToutiaoClone/%E6%BC%94%E7%A4%BAgif/Sunny%E6%BC%94%E7%A4%BAgif2.gif) 25 | 26 | 27 |
28 | #License 29 | UCToutiaoClone is released under the MIT license. 源码仅供学习参考使用, 如有任何疑问欢迎联系, 谢谢. 30 | -------------------------------------------------------------------------------- /UCToutiaoClone.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /UCToutiaoClone.xcodeproj/xcuserdata/lzy.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | UCToutiaoClone.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 484A90391D86FBA7002E36B4 16 | 17 | primary 18 | 19 | 20 | 484A90521D86FBA7002E36B4 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /UCToutiaoClone.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /UCToutiaoClone/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // UCToutiaoClone 4 | // 5 | // Created by lzy on 16/9/12. 6 | // Copyright © 2016年 lzy. 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 | -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "20x20", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "20x20", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "29x29", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "29x29", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "40x40", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "40x40", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "size" : "60x60", 36 | "scale" : "2x" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "size" : "60x60", 41 | "scale" : "3x" 42 | } 43 | ], 44 | "info" : { 45 | "version" : 1, 46 | "author" : "xcode" 47 | } 48 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Home/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Home/Weather/Cloud1.imageset/Cloud1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/UCToutiaoClone/Assets.xcassets/Home/Weather/Cloud1.imageset/Cloud1@2x.png -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Home/Weather/Cloud1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Cloud1@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Home/Weather/Cloud2.imageset/Cloud2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/UCToutiaoClone/Assets.xcassets/Home/Weather/Cloud2.imageset/Cloud2@2x.png -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Home/Weather/Cloud2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Cloud2@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Home/Weather/Cloud3.imageset/Cloud3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/UCToutiaoClone/Assets.xcassets/Home/Weather/Cloud3.imageset/Cloud3@2x.png -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Home/Weather/Cloud3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Cloud3@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Home/Weather/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Home/Weather/Fine1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Fine1@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Home/Weather/Fine1.imageset/Fine1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/UCToutiaoClone/Assets.xcassets/Home/Weather/Fine1.imageset/Fine1@2x.png -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Home/Weather/Fine2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Fine2@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Home/Weather/Fine2.imageset/Fine2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/UCToutiaoClone/Assets.xcassets/Home/Weather/Fine2.imageset/Fine2@2x.png -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Home/Weather/Fine3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Fine3@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Home/Weather/Fine3.imageset/Fine3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/UCToutiaoClone/Assets.xcassets/Home/Weather/Fine3.imageset/Fine3@2x.png -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Home/Weather/Fine4.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Fine4@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Home/Weather/Fine4.imageset/Fine4@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/UCToutiaoClone/Assets.xcassets/Home/Weather/Fine4.imageset/Fine4@2x.png -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Home/Weather/Gloom1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Gloom1@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Home/Weather/Gloom1.imageset/Gloom1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/UCToutiaoClone/Assets.xcassets/Home/Weather/Gloom1.imageset/Gloom1@2x.png -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Home/Weather/Gloom2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Gloom2@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Home/Weather/Gloom2.imageset/Gloom2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/UCToutiaoClone/Assets.xcassets/Home/Weather/Gloom2.imageset/Gloom2@2x.png -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Home/Weather/Gloom3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Gloom3@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Home/Weather/Gloom3.imageset/Gloom3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/UCToutiaoClone/Assets.xcassets/Home/Weather/Gloom3.imageset/Gloom3@2x.png -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Home/Weather/Rain1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Rain1@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Home/Weather/Rain1.imageset/Rain1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/UCToutiaoClone/Assets.xcassets/Home/Weather/Rain1.imageset/Rain1@2x.png -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Home/Weather/Rain2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Rain2@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Home/Weather/Rain2.imageset/Rain2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/UCToutiaoClone/Assets.xcassets/Home/Weather/Rain2.imageset/Rain2@2x.png -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Home/Weather/Rain3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Rain3@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Home/Weather/Rain3.imageset/Rain3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/UCToutiaoClone/Assets.xcassets/Home/Weather/Rain3.imageset/Rain3@2x.png -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Home/icon_search.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icon_search@3x 2.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Home/icon_search.imageset/icon_search@3x 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/UCToutiaoClone/Assets.xcassets/Home/icon_search.imageset/icon_search@3x 2.png -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Loading/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Loading/loading_0.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "loading_0@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Loading/loading_0.imageset/loading_0@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/UCToutiaoClone/Assets.xcassets/Loading/loading_0.imageset/loading_0@2x.png -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Loading/loading_1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "loading_1@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Loading/loading_1.imageset/loading_1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/UCToutiaoClone/Assets.xcassets/Loading/loading_1.imageset/loading_1@2x.png -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Loading/loading_2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "loading_2@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Loading/loading_2.imageset/loading_2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/UCToutiaoClone/Assets.xcassets/Loading/loading_2.imageset/loading_2@2x.png -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Loading/loading_3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "loading_3@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/Loading/loading_3.imageset/loading_3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/UCToutiaoClone/Assets.xcassets/Loading/loading_3.imageset/loading_3@2x.png -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/NavigationBar/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/NavigationBar/icon_alpha.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icon_back@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/NavigationBar/icon_alpha.imageset/icon_back@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/UCToutiaoClone/Assets.xcassets/NavigationBar/icon_alpha.imageset/icon_back@2x.png -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/NavigationBar/icon_back_white.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icon_back_white@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/NavigationBar/icon_back_white.imageset/icon_back_white@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/UCToutiaoClone/Assets.xcassets/NavigationBar/icon_back_white.imageset/icon_back_white@2x.png -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/NavigationBar/icon_more_white.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icon_more_white@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/NavigationBar/icon_more_white.imageset/icon_more_white@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/UCToutiaoClone/Assets.xcassets/NavigationBar/icon_more_white.imageset/icon_more_white@2x.png -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/NavigationBar/icon_nav_back.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icon_back@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/NavigationBar/icon_nav_back.imageset/icon_back@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/UCToutiaoClone/Assets.xcassets/NavigationBar/icon_nav_back.imageset/icon_back@2x.png -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/NavigationBar/icon_nav_more.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icon_more@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/NavigationBar/icon_nav_more.imageset/icon_more@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/UCToutiaoClone/Assets.xcassets/NavigationBar/icon_nav_more.imageset/icon_more@2x.png -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/TabBar/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/TabBar/icon_home.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icon_home@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/TabBar/icon_home.imageset/icon_home@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/UCToutiaoClone/Assets.xcassets/TabBar/icon_home.imageset/icon_home@2x.png -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/TabBar/icon_me.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icon_me@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/TabBar/icon_me.imageset/icon_me@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/UCToutiaoClone/Assets.xcassets/TabBar/icon_me.imageset/icon_me@2x.png -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/TabBar/icon_refresh.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icon_refresh@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/TabBar/icon_refresh.imageset/icon_refresh@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/UCToutiaoClone/Assets.xcassets/TabBar/icon_refresh.imageset/icon_refresh@2x.png -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/TabBar/icon_subscribe.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icon_subscribe@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/TabBar/icon_subscribe.imageset/icon_subscribe@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/UCToutiaoClone/Assets.xcassets/TabBar/icon_subscribe.imageset/icon_subscribe@2x.png -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/TabBar/icon_video.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icon_video@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/TabBar/icon_video.imageset/icon_video@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/UCToutiaoClone/Assets.xcassets/TabBar/icon_video.imageset/icon_video@2x.png -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/TabBar/ornament7.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ornament7@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /UCToutiaoClone/Assets.xcassets/TabBar/ornament7.imageset/ornament7@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/UCToutiaoClone/Assets.xcassets/TabBar/ornament7.imageset/ornament7@2x.png -------------------------------------------------------------------------------- /UCToutiaoClone/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /UCToutiaoClone/Controller/Base/UCTNavigationController.h: -------------------------------------------------------------------------------- 1 | // 2 | // UCTNavigationController.h 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/10/12. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UCTNavigationController : UINavigationController 12 | @end 13 | -------------------------------------------------------------------------------- /UCToutiaoClone/Controller/Base/UCTNavigationController.m: -------------------------------------------------------------------------------- 1 | // 2 | // UCTNavigationController.m 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/10/12. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import "UCTNavigationController.h" 10 | 11 | @interface UCTNavigationController () 12 | 13 | @end 14 | 15 | @implementation UCTNavigationController 16 | 17 | - (void)viewDidLoad { 18 | [super viewDidLoad]; 19 | // Do any additional setup after loading the view. 20 | } 21 | 22 | - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated { 23 | if (self.viewControllers.count > 0) { 24 | viewController.hidesBottomBarWhenPushed = YES; 25 | } 26 | [super pushViewController:viewController animated:animated]; 27 | } 28 | 29 | - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer { 30 | if (self.viewControllers.count <= 1 ) { 31 | return NO; 32 | } 33 | return YES; 34 | } 35 | 36 | - (void)didReceiveMemoryWarning { 37 | [super didReceiveMemoryWarning]; 38 | // Dispose of any resources that can be recreated. 39 | } 40 | 41 | /* 42 | #pragma mark - Navigation 43 | 44 | // In a storyboard-based application, you will often want to do a little preparation before navigation 45 | - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 46 | // Get the new view controller using [segue destinationViewController]. 47 | // Pass the selected object to the new view controller. 48 | } 49 | */ 50 | 51 | @end 52 | -------------------------------------------------------------------------------- /UCToutiaoClone/Controller/Base/UCTViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // UCTViewController.h 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/10/12. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UCTViewController : UIViewController 12 | - (void)configureNavigationBar; 13 | - (void)clickBackButton:(id)sender; 14 | @end 15 | -------------------------------------------------------------------------------- /UCToutiaoClone/Controller/Base/UCTViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // UCTViewController.m 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/10/12. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import "UCTViewController.h" 10 | #import "UIColor+hexColor.h" 11 | 12 | @interface UCTViewController () 13 | @end 14 | 15 | @implementation UCTViewController 16 | 17 | - (void)viewDidLoad { 18 | [super viewDidLoad]; 19 | self.navigationController.navigationBar.translucent = NO; 20 | [self configureNavigationBar]; 21 | } 22 | 23 | - (void)configureNavigationBar { 24 | UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"icon_nav_back"] style:UIBarButtonItemStylePlain target:self action:@selector(clickBackButton:)]; 25 | [backButton setTintColor:[UIColor hexColor:@"3B424C"]]; 26 | self.navigationItem.leftBarButtonItem = backButton; 27 | } 28 | 29 | - (void)clickBackButton:(id)sender { 30 | if ([self.navigationController.childViewControllers count] <= 1) { 31 | return; 32 | } 33 | [self.navigationController popViewControllerAnimated:YES]; 34 | } 35 | 36 | - (void)didReceiveMemoryWarning { 37 | [super didReceiveMemoryWarning]; 38 | // Dispose of any resources that can be recreated. 39 | } 40 | 41 | /* 42 | #pragma mark - Navigation 43 | 44 | // In a storyboard-based application, you will often want to do a little preparation before navigation 45 | - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 46 | // Get the new view controller using [segue destinationViewController]. 47 | // Pass the selected object to the new view controller. 48 | } 49 | */ 50 | 51 | @end 52 | -------------------------------------------------------------------------------- /UCToutiaoClone/Controller/Home/MainHomeController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MainHomeController.h 3 | // UCToutiaoClone 4 | // 5 | // Created by lzy on 16/9/12. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #define INDEX_CHANNEL_ID @"100" 12 | #define SCREEN_WIDTH [[UIScreen mainScreen] bounds].size.width 13 | #define SCREEN_HEIGHT [[UIScreen mainScreen] bounds].size.height 14 | extern const CGFloat MAIN_SCROLLVIEW_OFFSET_TOP; 15 | extern const CGFloat CUSTOM_NAV_HEIGHT; 16 | extern const CGFloat CUSTOM_NAV_DISPLAY_HEIGHT; 17 | 18 | #define CUSTOM_NAV_DISPLAY_HEIGHT 64 //不包括状态栏 19 | #define CUSTOM_NAV_HEIGHT SCREEN_WIDTH 20 | #define MAIN_SCROLLVIEW_OFFSET_TOP (CUSTOM_NAV_HEIGHT - CUSTOM_NAV_DISPLAY_HEIGHT) 21 | 22 | @protocol MainHomeControllerScrollDelegate 23 | - (void)mainHomeScrollViewDidScroll2OffsetY:(CGFloat)offsetY; 24 | @end 25 | 26 | @interface MainHomeController : UIViewController 27 | @property (weak, nonatomic) id scrollDelegate; 28 | - (void)refreshCurrentPage; 29 | @end 30 | -------------------------------------------------------------------------------- /UCToutiaoClone/Controller/Home/MineController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MineController.h 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/10/10. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MineController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /UCToutiaoClone/Controller/Home/MineController.m: -------------------------------------------------------------------------------- 1 | // 2 | // MineController.m 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/10/10. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import "MineController.h" 10 | 11 | @interface MineController () 12 | 13 | @end 14 | 15 | @implementation MineController 16 | 17 | - (void)viewDidLoad { 18 | [super viewDidLoad]; 19 | self.title = @"个人中心"; 20 | } 21 | 22 | - (void)didReceiveMemoryWarning { 23 | [super didReceiveMemoryWarning]; 24 | // Dispose of any resources that can be recreated. 25 | } 26 | @end 27 | -------------------------------------------------------------------------------- /UCToutiaoClone/Controller/Home/SubscribeController.h: -------------------------------------------------------------------------------- 1 | // 2 | // SubscribeController.h 3 | // UCToutiaoClone 4 | // 5 | // Created by lzy on 16/10/9. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SubscribeController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /UCToutiaoClone/Controller/Home/SubscribeController.m: -------------------------------------------------------------------------------- 1 | // 2 | // SubscribeController.m 3 | // UCToutiaoClone 4 | // 5 | // Created by lzy on 16/10/9. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import "SubscribeController.h" 10 | 11 | @interface SubscribeController () 12 | 13 | @end 14 | 15 | @implementation SubscribeController 16 | 17 | - (void)viewDidLoad { 18 | [super viewDidLoad]; 19 | self.title = @"订阅号"; 20 | } 21 | 22 | - (void)didReceiveMemoryWarning { 23 | [super didReceiveMemoryWarning]; 24 | // Dispose of any resources that can be recreated. 25 | } 26 | 27 | /* 28 | #pragma mark - Navigation 29 | 30 | // In a storyboard-based application, you will often want to do a little preparation before navigation 31 | - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 32 | // Get the new view controller using [segue destinationViewController]. 33 | // Pass the selected object to the new view controller. 34 | } 35 | */ 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /UCToutiaoClone/Controller/Home/VideoController.h: -------------------------------------------------------------------------------- 1 | // 2 | // VideoController.h 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/10/10. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface VideoController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /UCToutiaoClone/Controller/Home/VideoController.m: -------------------------------------------------------------------------------- 1 | // 2 | // VideoController.m 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/10/10. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import "VideoController.h" 10 | 11 | @interface VideoController () 12 | 13 | @end 14 | 15 | @implementation VideoController 16 | 17 | - (void)viewDidLoad { 18 | [super viewDidLoad]; 19 | self.title = @"视频"; 20 | } 21 | 22 | - (void)didReceiveMemoryWarning { 23 | [super didReceiveMemoryWarning]; 24 | // Dispose of any resources that can be recreated. 25 | } 26 | @end 27 | -------------------------------------------------------------------------------- /UCToutiaoClone/Controller/Home/ZYHPageCollectionViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZYHPageCollectionViewController.h 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/9/21. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol ZYHPageCollectionViewControllerDelegate 12 | - (void)pageScrollViewDidScroll2OffsetY:(CGFloat)offsetY; 13 | @end 14 | 15 | @protocol ZYHPageCollectionViewControllerHomeDelegate 16 | - (void)pageScrollViewDidEndDragging; 17 | - (void)pageScrollViewDidEndDecelerating; 18 | - (void)pageScrollViewDidMakeWeatherAppear; 19 | - (void)pageScrollViewDidMakeWeatherDisappear; 20 | - (void)pageScrollViewDidScroll:(UIScrollView *)scrollView; 21 | @end 22 | 23 | @interface ZYHPageCollectionViewController : UICollectionViewController 24 | @property (copy, nonatomic) NSString *channelId; 25 | @property (strong, nonatomic) UIScrollView *homePageScrollView; 26 | @property (weak, nonatomic) id scrollDelegate; 27 | @property (weak, nonatomic) id homeDelegate; 28 | - (void)freshData; 29 | - (void)beginRefresh; 30 | @end 31 | -------------------------------------------------------------------------------- /UCToutiaoClone/Controller/Home/ZYHPageTableViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZYHomePageTableViewController.h 3 | // UCToutiaoClone 4 | // 5 | // Created by lzy on 16/9/12. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | extern const char kHomeTableViewCellClass; 12 | @interface ZYHPageTableViewController : UIViewController 13 | @property (copy, nonatomic) NSString *channelId; 14 | - (void)freshData; 15 | @end 16 | -------------------------------------------------------------------------------- /UCToutiaoClone/Controller/TabBar/UCTTabBarController.h: -------------------------------------------------------------------------------- 1 | // 2 | // UCTTabBarController.h 3 | // UCToutiaoClone 4 | // 5 | // Created by lzy on 16/10/8. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "UCTHomeTabBarItem.h" 11 | 12 | @interface UCTTabBarController : UITabBarController 13 | - (void)mainHomeTabBarItemChangeAnimStatus:(HomeTabBarItemStatus)status; 14 | @end 15 | -------------------------------------------------------------------------------- /UCToutiaoClone/Controller/WebView/UCTWebViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // UCTWebViewController.h 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/10/12. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "UCTViewController.h" 11 | 12 | @interface UCTWebViewController : UCTViewController 13 | - (instancetype)initWithRequestUrlString:(NSString *)requestUrlString title:(NSString *)title; 14 | @end 15 | -------------------------------------------------------------------------------- /UCToutiaoClone/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSLocationWhenInUseUsageDescription 6 | 获取你所在的定位信息 7 | NSLocationAlwaysUsageDescription 8 | 获取你所在的定位信息 9 | UIViewControllerBasedStatusBarAppearance 10 | 11 | CFBundleDevelopmentRegion 12 | en 13 | CFBundleExecutable 14 | $(EXECUTABLE_NAME) 15 | CFBundleIdentifier 16 | $(PRODUCT_BUNDLE_IDENTIFIER) 17 | CFBundleInfoDictionaryVersion 18 | 6.0 19 | CFBundleName 20 | $(PRODUCT_NAME) 21 | CFBundlePackageType 22 | APPL 23 | CFBundleShortVersionString 24 | 1.0 25 | CFBundleSignature 26 | ???? 27 | CFBundleVersion 28 | 1 29 | LSRequiresIPhoneOS 30 | 31 | UILaunchStoryboardName 32 | LaunchScreen 33 | UIMainStoryboardFile 34 | Main 35 | UIRequiredDeviceCapabilities 36 | 37 | armv7 38 | 39 | NSAppTransportSecurity 40 | 41 | NSAllowsArbitraryLoads 42 | 43 | 44 | UISupportedInterfaceOrientations 45 | 46 | UIInterfaceOrientationPortrait 47 | UIInterfaceOrientationLandscapeLeft 48 | UIInterfaceOrientationLandscapeRight 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /UCToutiaoClone/Manager/MetadataManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // MetadataManager.h 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/10/28. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface MetadataManager : NSObject 13 | + (instancetype)shareManager; 14 | - (void)prepareLocationInfo; 15 | - (CLLocationCoordinate2D)location; 16 | - (NSString *)city; 17 | @end 18 | -------------------------------------------------------------------------------- /UCToutiaoClone/Model/Home/ZYHArticleModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZYHArticleModel.h 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/9/18. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ZYHArticleModel : NSObject 12 | @property (copy, nonatomic) NSString *articleId; 13 | @property (copy, nonatomic) NSString *recoid; 14 | @property (copy, nonatomic) NSString *articleTitle; 15 | @property (copy, nonatomic) NSString *urlString; 16 | @property (copy, nonatomic) NSString *zzdUrlString; 17 | @property (strong, nonatomic) NSArray *thumbnails; 18 | @property (strong, nonatomic) NSArray *images; 19 | 20 | @property (copy, nonatomic) NSString *opMark; //hot则有"hot"标志 21 | @property (copy, nonatomic) NSString *opMarkIconUrl; 22 | 23 | @property (copy, nonatomic) NSString *sourceName; 24 | @property (strong, nonatomic) NSArray *tags; 25 | @property (strong, nonatomic) NSArray *category; 26 | @property (copy, nonatomic) NSString *grabTime; 27 | @property (copy, nonatomic) NSString *publicTimeString;//publish_time 28 | - (instancetype)initWithDataDict:(NSDictionary *)dict; 29 | @end 30 | -------------------------------------------------------------------------------- /UCToutiaoClone/Model/Home/ZYHChannelModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZYHChannelModel.h 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/9/14. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ZYHChannelModel : NSObject 12 | @property (copy, nonatomic) NSString *channelId; 13 | @property (copy, nonatomic) NSString *channelName; 14 | @property (assign, nonatomic) BOOL isDefault; 15 | @property (assign, nonatomic) BOOL isFixed; 16 | @property (assign, nonatomic) BOOL isSelected; 17 | - (instancetype)initWithChannelDict:(NSDictionary *)channelDict; 18 | @end 19 | -------------------------------------------------------------------------------- /UCToutiaoClone/Model/Home/ZYHChannelModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // ZYHChannelModel.m 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/9/14. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import "ZYHChannelModel.h" 10 | 11 | @implementation ZYHChannelModel 12 | - (instancetype)initWithChannelDict:(NSDictionary *)channelDict { 13 | self = [super init]; 14 | if (self) { 15 | [self packageDataWithDict:channelDict]; 16 | } 17 | return self; 18 | } 19 | 20 | - (void)packageDataWithDict:(NSDictionary *)dict { 21 | self.channelId = [dict[@"id"] stringValue]; 22 | self.channelName = dict[@"name"]; 23 | self.isDefault = [dict[@"is_default"] boolValue]; 24 | self.isFixed = [dict[@"is_fixed"] boolValue]; 25 | } 26 | @end 27 | -------------------------------------------------------------------------------- /UCToutiaoClone/Network/NetworkManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // NetworkManager.h 3 | // UCToutiaoClone 4 | // 5 | // Created by lzy on 16/9/17. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface NetworkManager : NSObject 12 | @end 13 | -------------------------------------------------------------------------------- /UCToutiaoClone/Network/NetworkManager.m: -------------------------------------------------------------------------------- 1 | // 2 | // NetworkManager.m 3 | // UCToutiaoClone 4 | // 5 | // Created by lzy on 16/9/17. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import "NetworkManager.h" 10 | 11 | @implementation NetworkManager 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /UCToutiaoClone/Network/Service/CommonService.h: -------------------------------------------------------------------------------- 1 | // 2 | // CommonService.h 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/10/27. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "UCTNetwork.h" 11 | 12 | @interface CommonService : NSObject 13 | + (void)queryLocationInfoWithLatitude:(double)latitude 14 | longitude:(double)longitude 15 | completion:(void(^)(UCTNetworkResponseStatus status, NSDictionary *resultDict))completion; 16 | @end 17 | -------------------------------------------------------------------------------- /UCToutiaoClone/Network/Service/CommonService.m: -------------------------------------------------------------------------------- 1 | // 2 | // CommonService.m 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/10/27. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import "CommonService.h" 10 | 11 | @implementation CommonService 12 | //+ (void)queryLocationInfoWithLatitude:(double)latitude 13 | // longitude:(double)longitude 14 | // completion:(void (^)(UCTNetworkResponseStatus, NSDictionary *))completion { 15 | // NSMutableDictionary *reqDict = [NSMutableDictionary dictionary]; 16 | // [reqDict setValue:@"zh" forKey:@"language"]; 17 | // [reqDict setValue:@"base" forKey:@"extensions"]; 18 | // [reqDict setValue:@"28f346541fd31c674eb2caa0115b2734" forKey:@"key"]; 19 | // [reqDict setValue:[NSString stringWithFormat:@"%f,%f", longitude, latitude] forKey:@"location"]; 20 | // [reqDict setValue:@"b14adae9bc080537209d4582f0846b8e" forKey:@"scode"]; 21 | // [reqDict setValue:@"1473747666717" forKey:@"ts"]; 22 | // //http://restapi.amap.com/v3/geocode/regeo?language=zh&extensions=base&key=28f346541fd31c674eb2caa0115b2734&location=113.410492%2C23.135062&scode=b14adae9bc080537209d4582f0846b8e&ts=1473747666717 23 | // [UCTNetwork getWithUrlString:@"http://restapi.amap.com/v3/geocode/regeo" parameters:reqDict responseHandler:^(UCTNetworkResponseStatus status, NSDictionary *resultDict) { 24 | // 25 | // 26 | // dispatch_async(dispatch_get_main_queue(), ^{ 27 | // completion(status, @{}); 28 | // }); 29 | // }]; 30 | //} 31 | @end 32 | -------------------------------------------------------------------------------- /UCToutiaoClone/Network/Service/NewsService.h: -------------------------------------------------------------------------------- 1 | // 2 | // NewsService.h 3 | // UCToutiaoClone 4 | // 5 | // Created by lzy on 16/9/14. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "UCTNetwork.h" 11 | 12 | @interface NewsService : NSObject 13 | + (void)queryNavChannelWithcompletion:(void(^)(UCTNetworkResponseStatus status, NSArray *channelList))completion; 14 | 15 | + (void)queryNewsWithChannelId:(NSString *)channelId 16 | method:(NSString *)method 17 | recoid:(NSString *)recoid 18 | completion:(void (^)(UCTNetworkResponseStatus, NSDictionary *))completion; 19 | @end 20 | -------------------------------------------------------------------------------- /UCToutiaoClone/Network/Service/WeatherService.h: -------------------------------------------------------------------------------- 1 | // 2 | // WeatherService.h 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/10/27. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "UCTNetwork.h" 11 | 12 | @interface WeatherService : NSObject 13 | + (void)queryWeatherInfoWithCity:(NSString *)city 14 | completion:(void (^)(UCTNetworkResponseStatus status, NSDictionary *resultDict))completion; 15 | @end 16 | -------------------------------------------------------------------------------- /UCToutiaoClone/Network/Service/WeatherService.m: -------------------------------------------------------------------------------- 1 | // 2 | // WeatherService.m 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/10/27. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import "WeatherService.h" 10 | 11 | @implementation WeatherService 12 | //http://wea.uc.cn/v2/swa_weather.php?uc_param_str=nieidnutssvebipfcp&ni=bTkwBcd6OU+h1+EknDFySo+hR/ME5WOj3Sc5R4aZCpXoTw==&ei=bTkwBcp6WRXW18XtgEFXD+2mgmcA/q4i2wVC8I2V9tsiwRl1f1Y043KT1P831Q==&dn=4725376569-64cbf0ae&ss=414x736&ve=1.6.0.809&bi=997&pf=195&cp=isp:%E7%A7%BB%E5%8A%A8;prov:%E7%A6%8F%E5%BB%BA;city:%E6%B3%89%E5%B7%9E;na:;cc:;ac:&city=%E5%B9%BF%E5%B7%9E&county=%E5%A4%A9%E6%B2%B3%E5%8C%BA&v=1&vcode=bb1495bb5b6736c5 13 | + (void)queryWeatherInfoWithCity:(NSString *)city 14 | completion:(void (^)(UCTNetworkResponseStatus, NSDictionary *))completion { 15 | NSMutableDictionary *reqDict = [NSMutableDictionary dictionary]; 16 | [reqDict setValue:city forKey:@"city"]; 17 | [reqDict setValue:@"nieidnutssvebipfcp" forKey:@"uc_param_str"]; 18 | [reqDict setValue:@"bTkwBcd6OU h1 EknDFySo hR/ME5WOj3Sc5R4aZCpXoTw==" forKey:@"ni"]; 19 | [reqDict setValue:@"bTkwBcp6WRXW18XtgEFXD 2mgmcA/q4i2wVC8I2V9tsiwRl1f1Y043KT1P831Q==" forKey:@"ei"]; 20 | [reqDict setValue:@"4725376569-64cbf0ae" forKey:@"dn"]; 21 | [reqDict setValue:@"414x736" forKey:@"ss"]; 22 | [reqDict setValue:@"997" forKey:@"bi"]; 23 | [reqDict setValue:@"bb1495bb5b6736c5" forKey:@"vcode"]; 24 | [reqDict setValue:@"天河区" forKey:@"county"]; 25 | // [reqDict setValue:@"1" forKey:@"v"]; 26 | //county 27 | //ve=1.6.0.809 28 | 29 | [UCTNetwork getWithUrlString:@"http://wea.uc.cn/v2/swa_weather.php" parameters:reqDict responseHandler:^(UCTNetworkResponseStatus status, NSDictionary *resultDict) { 30 | NSDictionary *dataDict = [resultDict objectForKey:@"data"]; 31 | dispatch_async(dispatch_get_main_queue(), ^{ 32 | completion(status, dataDict); 33 | }); 34 | }]; 35 | } 36 | @end 37 | -------------------------------------------------------------------------------- /UCToutiaoClone/Network/UCTNetwork.h: -------------------------------------------------------------------------------- 1 | // 2 | // UCTNetwork.h 3 | // UCToutiaoClone 4 | // 5 | // Created by lzy on 16/9/14. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #define UCTNetworkManagerClassString @"UCTNetworkManager" 12 | #define NETWORK_REQUEST_TIMEOUT_INTERVAL 20 13 | 14 | @class UCTNetworkManager; 15 | typedef NS_ENUM(NSUInteger, UCTNetworkResponseStatus) { 16 | UCTNetworkResponseSucceed = 0, 17 | UCTNetworkResponseFail = 1 18 | }; 19 | typedef void(^UCTNetworkResponseHandler)(UCTNetworkResponseStatus status, NSDictionary *resultDict); 20 | 21 | @protocol UCTNetworkDelegate 22 | + (NSDictionary *)zyNetworkAppendDefaultParam:(NSDictionary *)requestDict; 23 | + (NSDictionary *)zyNetworkVerifyResultData:(NSDictionary *)resultData response:(NSURLResponse *)response; 24 | @end 25 | 26 | @interface UCTNetwork : NSObject 27 | @property (weak, nonatomic) id delegate; 28 | + (NSURLSessionTask *)getWithUrlString:(NSString *)urlString 29 | parameters:(NSDictionary *)parameters 30 | responseHandler:(UCTNetworkResponseHandler)responseHandler; 31 | @end 32 | -------------------------------------------------------------------------------- /UCToutiaoClone/Network/UCTNetworkManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // UCTNetworkManager.h 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/9/14. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "UCTNetwork.h" 11 | 12 | @interface UCTNetworkManager : NSObject 13 | + (NSDictionary *)zyNetworkAppendDefaultParam:(NSDictionary *)parameters; 14 | + (NSDictionary *)zyNetworkVerifyResultData:(NSDictionary *)resultData response:(NSURLResponse *)response; 15 | @end 16 | -------------------------------------------------------------------------------- /UCToutiaoClone/Network/UCTNetworkManager.m: -------------------------------------------------------------------------------- 1 | // 2 | // UCTNetworkManager.m 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/9/14. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import "UCTNetworkManager.h" 10 | #import "UCTNetwork.h" 11 | 12 | @implementation UCTNetworkManager 13 | /** 14 | * stats params 15 | */ 16 | + (NSDictionary *)zyNetworkAppendDefaultParam:(NSDictionary *)undressedParam { 17 | NSMutableDictionary *mutDict = [NSMutableDictionary dictionaryWithDictionary:undressedParam]; 18 | [mutDict setValue:@"1.5.0.805" forKey:@"ve"]; 19 | [mutDict setValue:@"iphone" forKey:@"fe"]; 20 | [mutDict setValue:@"iPhone7,1" forKey:@"mi"]; 21 | [mutDict setValue:@"195" forKey:@"pf"]; 22 | [mutDict setValue:@"isp:电信;prov:广东;city:广州;na:中国;cc:CN;ac:cp=" forKey:@"cp"]; 23 | [mutDict setValue:@"bTkwBTigl5NEMRtjFm+RjbHqHnskMiIuAfMEejMnsF3quRENtz7M+1hVGmkdEw==" forKey:@"ei"];//todo不要 24 | return mutDict; 25 | } 26 | 27 | /** 28 | * 数据有效化 合法化 29 | */ 30 | + (NSDictionary *)zyNetworkVerifyResultData:(NSDictionary *)resultData response:(NSURLResponse *)response { 31 | NSLog(@"\nreqUrl: %@", [response.URL absoluteString]); 32 | return resultData; 33 | } 34 | @end 35 | -------------------------------------------------------------------------------- /UCToutiaoClone/Resource/channelPagePlaceholder@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuzhiyi1992/UCToutiaoClone/ecd1393b5daacb3e5bf0ad8e131d1d1536eebaf3/UCToutiaoClone/Resource/channelPagePlaceholder@2x.png -------------------------------------------------------------------------------- /UCToutiaoClone/Utils/UICollectionView+Bounds.h: -------------------------------------------------------------------------------- 1 | // 2 | // UICollectionView+Bounds.h 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/9/22. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UICollectionView (Bounds) 12 | @property (assign, nonatomic) BOOL isForbidSpringback; //是否禁止回弹状态 13 | @property (assign, nonatomic) CGFloat offsetYBoundary; //禁止回弹分界线 14 | @property (assign, nonatomic) CGFloat forbidAndAutoDistanceY; //过禁止回弹分界线后自动终点 15 | @property (assign, nonatomic) BOOL isAnimating; 16 | @end 17 | -------------------------------------------------------------------------------- /UCToutiaoClone/Utils/UIColor+hexColor.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIColor+hexColor.h 3 | // IBABoss 4 | // 5 | // Created by lzy on 16/8/31. 6 | // Copyright © 2016年 IBA. All rights reserved. 7 | // 8 | 9 | #import 10 | @interface UIColor (hexColor) 11 | + (UIColor *)hexColor:(NSString *)hexColor; 12 | @end 13 | -------------------------------------------------------------------------------- /UCToutiaoClone/Utils/UIColor+hexColor.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIColor+hexColor.m 3 | // IBABoss 4 | // 5 | // Created by lzy on 16/8/31. 6 | // Copyright © 2016年 IBA. All rights reserved. 7 | // 8 | 9 | #import "UIColor+hexColor.h" 10 | @implementation UIColor (hexColor) 11 | + (UIColor *)hexColor:(NSString *)hexColor{ 12 | if ([hexColor length] < 6) { 13 | return nil; 14 | } 15 | unsigned int red,green,blue; 16 | NSRange range; 17 | range.length = 2; 18 | range.location = 0; 19 | [[NSScanner scannerWithString:[hexColor substringWithRange:range]] scanHexInt:&red]; 20 | range.location = 2; 21 | [[NSScanner scannerWithString:[hexColor substringWithRange:range]] scanHexInt:&green]; 22 | range.location = 4; 23 | [[NSScanner scannerWithString:[hexColor substringWithRange:range]] scanHexInt:&blue]; 24 | return [UIColor colorWithRed:(float)(red/255.f) green:(float)(green / 255.f) blue:(float)(blue / 255.f) alpha:1.f]; 25 | } 26 | @end 27 | -------------------------------------------------------------------------------- /UCToutiaoClone/Utils/UIView+Utils.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+Utils.h 3 | // Sport 4 | // 5 | // Created by haodong  on 13-6-25. 6 | // Copyright (c) 2013年 haodong . All rights reserved. 7 | // 8 | 9 | #import 10 | typedef NS_ENUM(NSInteger,CornerSide) { 11 | CornerSideLeft = 0, 12 | CornerSideRight = 1, 13 | CornerSideAll = 2, 14 | }; 15 | @interface UIView (Utils) 16 | 17 | - (void)updateOriginX:(CGFloat)originX; 18 | - (void)updateOriginY:(CGFloat)originY; 19 | - (void)updateCenterX:(CGFloat)centerX; 20 | - (void)updateCenterY:(CGFloat)centerY; 21 | - (void)updateWidth:(CGFloat)width; 22 | - (void)updateHeight:(CGFloat)height; 23 | - (void)roundSide:(CornerSide)side 24 | size:(CGFloat)size 25 | borderColor:(CGColorRef )cGColor 26 | borderWidth:(CGFloat)width; 27 | - (void)findControllerWithResultController:(UIViewController **)resultController; 28 | @end 29 | -------------------------------------------------------------------------------- /UCToutiaoClone/Utils/ZYHArticleDateFormatter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZYHArticleDateFormatter.h 3 | // UCToutiaoClone 4 | // 5 | // Created by lzy on 16/9/21. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ZYHArticleDateFormatter : NSObject 12 | + (NSDateFormatter *)shareFormatter; 13 | + (NSString *)publicTimeStringByTimeInterval:(NSTimeInterval)timeInterval; 14 | @end 15 | -------------------------------------------------------------------------------- /UCToutiaoClone/Utils/ZYHArticleDateFormatter.m: -------------------------------------------------------------------------------- 1 | // 2 | // ZYHArticleDateFormatter.m 3 | // UCToutiaoClone 4 | // 5 | // Created by lzy on 16/9/21. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import "ZYHArticleDateFormatter.h" 10 | 11 | static NSDateFormatter *_zyhArticleDateFormatter; 12 | @implementation ZYHArticleDateFormatter 13 | + (NSDateFormatter *)shareFormatter { 14 | static dispatch_once_t onceToken; 15 | dispatch_once(&onceToken, ^{ 16 | _zyhArticleDateFormatter = [[NSDateFormatter alloc] init]; 17 | }); 18 | return _zyhArticleDateFormatter; 19 | } 20 | 21 | + (NSString *)publicTimeStringByTimeInterval:(NSTimeInterval)timeInterval { 22 | timeInterval = timeInterval / 1000; 23 | NSDateFormatter *formatter = [self shareFormatter]; 24 | NSDate *date = [NSDate dateWithTimeIntervalSince1970:timeInterval]; 25 | NSString *timeString; 26 | int timeDiff = ([[NSDate date] timeIntervalSince1970] - timeInterval); 27 | if (timeDiff < 600) {//刚刚 28 | timeString = @"刚刚"; 29 | } else if (timeDiff < 3600) {//分钟 30 | //todo 检查下耗时点 31 | [formatter setDateFormat:@"m分钟前"]; 32 | timeString = [formatter stringFromDate:date]; 33 | } else { 34 | [formatter setDateFormat:@"H小时前"]; 35 | timeString = [formatter stringFromDate:date]; 36 | } 37 | return timeString; 38 | } 39 | @end 40 | -------------------------------------------------------------------------------- /UCToutiaoClone/View/Home/CollectionViewCell/SingleImgNewsCollectionViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // SingleImgNewsCollectionViewCell.h 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/9/13. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import "UCTNewsCollectionViewCell.h" 10 | 11 | @interface SingleImgNewsCollectionViewCell : UCTNewsCollectionViewCell 12 | @end 13 | -------------------------------------------------------------------------------- /UCToutiaoClone/View/Home/CollectionViewCell/SingleTitleNewsCollectionViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // SingleTitleNewsCollectionViewCell.h 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/9/19. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import "UCTNewsCollectionViewCell.h" 10 | 11 | @interface SingleTitleNewsCollectionViewCell : UCTNewsCollectionViewCell 12 | @end 13 | -------------------------------------------------------------------------------- /UCToutiaoClone/View/Home/CollectionViewCell/SpecialNewsCollectionViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // SpecialNewsCollectionViewCell.h 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/9/20. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import "UCTNewsCollectionViewCell.h" 10 | 11 | @interface SpecialNewsCollectionViewCell : UCTNewsCollectionViewCell 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /UCToutiaoClone/View/Home/CollectionViewCell/ThreeImgNewsCollectionViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // ThreeImgNewsCollectionViewCell.h 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/9/13. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import "UCTNewsCollectionViewCell.h" 10 | 11 | @interface ThreeImgNewsCollectionViewCell : UCTNewsCollectionViewCell 12 | @end 13 | -------------------------------------------------------------------------------- /UCToutiaoClone/View/Home/CollectionViewCell/UCTCollectionViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // UCTCollectionViewCell.h 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/9/14. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UCTCollectionViewCell : UICollectionViewCell 12 | + (NSString *)cellReuseIdentifier; 13 | @end 14 | -------------------------------------------------------------------------------- /UCToutiaoClone/View/Home/CollectionViewCell/UCTCollectionViewCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // UCTCollectionViewCell.m 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/9/14. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import "UCTCollectionViewCell.h" 10 | 11 | @implementation UCTCollectionViewCell 12 | + (NSString *)cellReuseIdentifier { 13 | return @"UCTCollectionViewCell"; 14 | } 15 | 16 | - (instancetype)initWithFrame:(CGRect)frame { 17 | self = [super initWithFrame:frame]; 18 | if (self) { 19 | [self setBackgroundColor:[UIColor whiteColor]]; 20 | } 21 | return self; 22 | } 23 | @end 24 | -------------------------------------------------------------------------------- /UCToutiaoClone/View/Home/CollectionViewCell/UCTNewsCollectionViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // UCTNewsTableViewCell.h 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/9/19. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import "UCTCollectionViewCell.h" 10 | #import "UCTOPMarkView.h" 11 | 12 | #define TITLE_LABEL_FONT [UIFont boldSystemFontOfSize:14.f] 13 | #define SOURCE_LABEL_FONT [UIFont systemFontOfSize:10.f] 14 | 15 | @class ZYHArticleModel; 16 | @interface UCTNewsCollectionViewCell : UCTCollectionViewCell 17 | @property (strong, nonatomic) UILabel *sourceLabel; 18 | @property (strong, nonatomic) UCTOPMarkView *opMark; 19 | @property (strong, nonatomic) NSArray *footerIconHConstraints; 20 | - (void)updateCellWithModel:(ZYHArticleModel *)model; 21 | @end 22 | -------------------------------------------------------------------------------- /UCToutiaoClone/View/Home/CollectionViewCell/UCTNewsCollectionViewCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // UCTNewsTableViewCell.m 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/9/19. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import "UCTNewsCollectionViewCell.h" 10 | #import "ZYHArticleModel.h" 11 | 12 | @implementation UCTNewsCollectionViewCell 13 | - (void)updateCellWithModel:(ZYHArticleModel *)model { 14 | //opMark 15 | if (_opMark) { 16 | if (self.footerIconHConstraints) { 17 | [self.contentView removeConstraints:self.footerIconHConstraints]; 18 | } 19 | if (model.opMark.length > 0) { 20 | [self.opMark setHidden:NO]; 21 | [self.opMark updateWithTitle:model.opMark iconUrlString:model.opMarkIconUrl]; 22 | //layout sourceLabel & opMark 23 | CGSize opMarkSize = [UCTOPMarkView opMarkSizeWithString:model.opMark]; 24 | [self.opMark setTranslatesAutoresizingMaskIntoConstraints:NO]; 25 | [self.sourceLabel setTranslatesAutoresizingMaskIntoConstraints:NO]; 26 | NSDictionary *views = @{@"opMark":self.opMark, @"sourceLabel":self.sourceLabel}; 27 | //todo sourceLabel不一定有 28 | NSString *hConstraintString = [NSString stringWithFormat:@"H:|-12-[opMark(%f)]-5-[sourceLabel]", opMarkSize.width]; 29 | NSArray *hConstraints = [NSLayoutConstraint constraintsWithVisualFormat:hConstraintString options:NSLayoutFormatAlignAllCenterY metrics:nil views:views]; 30 | self.footerIconHConstraints = hConstraints; 31 | [self.contentView addConstraints:self.footerIconHConstraints]; 32 | } else { 33 | [self.opMark setHidden:YES]; 34 | } 35 | } 36 | } 37 | @end 38 | -------------------------------------------------------------------------------- /UCToutiaoClone/View/Home/TableViewCell/UCTTableViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // UCTTableViewCell.h 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/9/19. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UCTTableViewCell : UITableViewCell 12 | + (NSString *)cellReuseIdentifier; 13 | @end 14 | -------------------------------------------------------------------------------- /UCToutiaoClone/View/Home/TableViewCell/UCTTableViewCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // UCTTableViewCell.m 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/9/19. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import "UCTTableViewCell.h" 10 | 11 | @implementation UCTTableViewCell 12 | + (NSString *)cellReuseIdentifier { 13 | return @"UCTTableViewCell"; 14 | } 15 | 16 | - (instancetype)initWithFrame:(CGRect)frame { 17 | self = [super initWithFrame:frame]; 18 | if (self) { 19 | [self setBackgroundColor:[UIColor whiteColor]]; 20 | } 21 | return self; 22 | } 23 | @end 24 | -------------------------------------------------------------------------------- /UCToutiaoClone/View/Home/UCTClipAnimatedView.h: -------------------------------------------------------------------------------- 1 | // 2 | // UCTClipAnimatedView.h 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/9/26. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UCTClipAnimatedView : UIView 12 | @end 13 | -------------------------------------------------------------------------------- /UCToutiaoClone/View/Home/UCTHomeSearchBar.h: -------------------------------------------------------------------------------- 1 | // 2 | // UCTHomeSearchBar.h 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/9/22. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UCTHomeSearchBar : UIView 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /UCToutiaoClone/View/Home/UCTHomeSearchBar.m: -------------------------------------------------------------------------------- 1 | // 2 | // UCTHomeSearchBar.m 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/9/22. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import "UCTHomeSearchBar.h" 10 | 11 | 12 | @interface UCTHomeSearchBar () 13 | 14 | @end 15 | 16 | @implementation UCTHomeSearchBar 17 | 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /UCToutiaoClone/View/Home/UCTHomeSearchRefreshView.h: -------------------------------------------------------------------------------- 1 | // 2 | // UCTHomeSearchRefreshView.h 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/9/22. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UCTHomeSearchRefreshView : UIView 12 | - (CGFloat)searchRefreshViewHeight; 13 | @end 14 | -------------------------------------------------------------------------------- /UCToutiaoClone/View/Home/UCTOPMarkView.h: -------------------------------------------------------------------------------- 1 | // 2 | // UCTOPMarkView.h 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/9/30. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #define OP_MARK_IMAGE_TITLE_MARGIN 2 12 | 13 | @interface UCTOPMarkView : UIView 14 | - (void)updateWithTitle:(NSString *)title iconUrlString:(NSString *)iconUrlString; 15 | + (CGSize)opMarkSizeWithString:(NSString *)string; 16 | @end 17 | -------------------------------------------------------------------------------- /UCToutiaoClone/View/Home/WeatherAnimatedView/UCTCloudWeatherView.h: -------------------------------------------------------------------------------- 1 | // 2 | // UCTCloudWeatherView.h 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/10/27. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import "UCTWeatherAnimatedView.h" 10 | 11 | @interface UCTCloudWeatherView : UCTWeatherAnimatedView 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /UCToutiaoClone/View/Home/WeatherAnimatedView/UCTGloomRainWeatherView.h: -------------------------------------------------------------------------------- 1 | // 2 | // UCTGloomRainWeatherView.h 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/10/27. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import "UCTWeatherAnimatedView.h" 10 | 11 | @interface UCTGloomRainWeatherView : UCTWeatherAnimatedView 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /UCToutiaoClone/View/Home/WeatherAnimatedView/UCTSunnyWeatherView.h: -------------------------------------------------------------------------------- 1 | // 2 | // UCTSunnyWeatherView.h 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/10/27. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import "UCTWeatherAnimatedView.h" 10 | 11 | @interface UCTSunnyWeatherView : UCTWeatherAnimatedView 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /UCToutiaoClone/View/Home/WeatherAnimatedView/UCTWeatherAnimatedView.h: -------------------------------------------------------------------------------- 1 | // 2 | // UCTWeatherAnimatedView.h 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/9/27. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | extern NSString * const NOTIFICATION_NAME_BEGIN_WEATHER_ANIMATION; 12 | 13 | @interface UCTWeatherAnimatedView : UIView 14 | - (void)transformWithHomeScrollOffsetY:(CGFloat)offsetY; 15 | - (void)transformWithPageScrollOffsetY:(CGFloat)offsetY; 16 | - (void)setupView; 17 | @end 18 | -------------------------------------------------------------------------------- /UCToutiaoClone/View/Home/ZYNavChannelView.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZYNavCategoryView.h 3 | // UCToutiaoClone 4 | // 5 | // Created by lzy on 16/9/12. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ZYNavChannelView : UICollectionView 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /UCToutiaoClone/View/Home/ZYNavChannelView.m: -------------------------------------------------------------------------------- 1 | // 2 | // ZYNavCategoryView.m 3 | // UCToutiaoClone 4 | // 5 | // Created by lzy on 16/9/12. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import "ZYNavChannelView.h" 10 | #import "Masonry.h" 11 | 12 | @implementation ZYNavChannelView 13 | - (instancetype)initWithFrame:(CGRect)frame collectionViewLayout:(UICollectionViewLayout *)layout { 14 | self = [super initWithFrame:frame collectionViewLayout:layout]; 15 | if (self) { 16 | //do something 17 | [self setBackgroundColor:[UIColor whiteColor]]; 18 | } 19 | return self; 20 | } 21 | @end 22 | -------------------------------------------------------------------------------- /UCToutiaoClone/View/TabBar/UCTAnimTabBarItem.h: -------------------------------------------------------------------------------- 1 | // 2 | // UCTAnimTabBarItem.h 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/9/30. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UCTAnimTabBarItem : UIView 12 | @property (strong, nonatomic) UIButton *mainButton; 13 | @property (strong, nonatomic) UILabel *titleLabel; 14 | @property (strong, nonatomic) UIImageView *mainImageView; 15 | @property (strong, nonatomic) UITabBarController *tabBarController; 16 | @property (assign, nonatomic) NSUInteger index; 17 | - (instancetype)initWithTabBarController:(UITabBarController *)tabBarController index:(NSUInteger)index; 18 | - (void)setupItem; 19 | - (void)handleClick; 20 | - (void)releaseAnim; 21 | - (void)selectedAnim; 22 | @end 23 | -------------------------------------------------------------------------------- /UCToutiaoClone/View/TabBar/UCTHomeTabBarItem.h: -------------------------------------------------------------------------------- 1 | // 2 | // UCTHomeTabBarItem.h 3 | // UCToutiaoClone 4 | // 5 | // Created by zhiyi on 16/9/30. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import "UCTAnimTabBarItem.h" 10 | 11 | extern NSString * const NOTIFICATION_NAME_HOME_PAGE_DID_LOAD_DATA; 12 | 13 | typedef NS_ENUM(NSUInteger, HomeTabBarItemStatus) { 14 | HomeTabBarItemStatusWeather = 0, 15 | HomeTabBarItemStatusReading = 1, 16 | HomeTabBarItemStatusNeedsRefresh = 2, 17 | }; 18 | 19 | @interface UCTHomeTabBarItem : UCTAnimTabBarItem 20 | @property (assign, nonatomic) HomeTabBarItemStatus itemStatus; 21 | @end 22 | -------------------------------------------------------------------------------- /UCToutiaoClone/View/TabBar/UCTMineTabBarItem.h: -------------------------------------------------------------------------------- 1 | // 2 | // UCTMineTabBarItem.h 3 | // UCToutiaoClone 4 | // 5 | // Created by lzy on 16/10/9. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import "UCTAnimTabBarItem.h" 10 | 11 | @interface UCTMineTabBarItem : UCTAnimTabBarItem 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /UCToutiaoClone/View/TabBar/UCTSubscribeTabBarItem.h: -------------------------------------------------------------------------------- 1 | // 2 | // UCTSubscribeTabBarItem.h 3 | // UCToutiaoClone 4 | // 5 | // Created by lzy on 16/10/9. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import "UCTAnimTabBarItem.h" 10 | 11 | @interface UCTSubscribeTabBarItem : UCTAnimTabBarItem 12 | @end 13 | -------------------------------------------------------------------------------- /UCToutiaoClone/View/TabBar/UCTVideoTabBarItem.h: -------------------------------------------------------------------------------- 1 | // 2 | // UCTVideoTabBarItem.h 3 | // UCToutiaoClone 4 | // 5 | // Created by lzy on 16/10/9. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import "UCTAnimTabBarItem.h" 10 | 11 | @interface UCTVideoTabBarItem : UCTAnimTabBarItem 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /UCToutiaoClone/View/ZYHChannelItemCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZYHCategoryItemCell.h 3 | // UCToutiaoClone 4 | // 5 | // Created by lzy on 16/9/13. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "UCTCollectionViewCell.h" 11 | 12 | @class ZYHChannelModel; 13 | @interface ZYHChannelItemCell : UCTCollectionViewCell 14 | @property (strong, nonatomic) UILabel *titleLabel; 15 | + (NSString *)cellReuseIdentifier; 16 | - (void)updateCellWithChannel:(ZYHChannelModel *)channel; 17 | - (void)changeCellSelect:(BOOL)select; 18 | + (NSDictionary *)attributeForTitleLabel; 19 | @end 20 | -------------------------------------------------------------------------------- /UCToutiaoClone/View/ZYHChannelItemCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // ZYHCategoryItemCell.m 3 | // UCToutiaoClone 4 | // 5 | // Created by lzy on 16/9/13. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import "ZYHChannelItemCell.h" 10 | #import "UIColor+hexColor.h" 11 | #import "Masonry.h" 12 | #import "ZYHChannelModel.h" 13 | 14 | #define TITLE_FONT_SIZE 16.f 15 | #define TITLE_COLOR_NORMAL [UIColor hexColor:@"777777"] 16 | #define TITLE_COLOR_SELECTED [UIColor hexColor:@"777777"] 17 | 18 | @interface ZYHChannelItemCell () 19 | @end 20 | 21 | @implementation ZYHChannelItemCell 22 | + (NSString *)cellReuseIdentifier { 23 | return @"ZYHChannelItemCell"; 24 | } 25 | 26 | - (instancetype)initWithFrame:(CGRect)frame { 27 | self = [super initWithFrame:frame]; 28 | if (self) { 29 | [self setupCell]; 30 | } 31 | return self; 32 | } 33 | 34 | + (NSDictionary *)attributeForTitleLabel { 35 | return @{NSFontAttributeName:[UIFont systemFontOfSize:TITLE_FONT_SIZE]}; 36 | } 37 | 38 | - (void)setupCell { 39 | self.titleLabel = [[UILabel alloc] init]; 40 | [_titleLabel setFont:[UIFont systemFontOfSize:TITLE_FONT_SIZE]]; 41 | [_titleLabel setTextColor:TITLE_COLOR_NORMAL]; 42 | [self addSubview:_titleLabel]; 43 | 44 | [_titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { 45 | make.centerX.equalTo(self); 46 | make.centerY.equalTo(self); 47 | }]; 48 | } 49 | 50 | - (void)updateCellWithChannel:(ZYHChannelModel *)channel { 51 | [_titleLabel setText:channel.channelName]; 52 | [self changeCellSelect:channel.isSelected]; 53 | } 54 | 55 | - (void)changeCellSelect:(BOOL)select { 56 | if (select) { 57 | [_titleLabel setTextColor:TITLE_COLOR_SELECTED]; 58 | } else { 59 | [_titleLabel setTextColor:TITLE_COLOR_NORMAL]; 60 | } 61 | } 62 | 63 | @end 64 | -------------------------------------------------------------------------------- /UCToutiaoClone/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // UCToutiaoClone 4 | // 5 | // Created by lzy on 16/9/12. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /UCToutiaoClone/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // UCToutiaoClone 4 | // 5 | // Created by lzy on 16/9/12. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import "ViewController.h" 10 | 11 | @interface ViewController () 12 | 13 | @end 14 | 15 | @implementation ViewController 16 | 17 | - (void)viewDidLoad { 18 | [super viewDidLoad]; 19 | // Do any additional setup after loading the view, typically from a nib. 20 | } 21 | 22 | - (void)didReceiveMemoryWarning { 23 | [super didReceiveMemoryWarning]; 24 | // Dispose of any resources that can be recreated. 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /UCToutiaoClone/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // UCToutiaoClone 4 | // 5 | // Created by lzy on 16/9/12. 6 | // Copyright © 2016年 lzy. 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 | -------------------------------------------------------------------------------- /UCToutiaoCloneTests/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 | -------------------------------------------------------------------------------- /UCToutiaoCloneTests/UCToutiaoCloneTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // UCToutiaoCloneTests.m 3 | // UCToutiaoCloneTests 4 | // 5 | // Created by lzy on 16/9/12. 6 | // Copyright © 2016年 lzy. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UCToutiaoCloneTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation UCToutiaoCloneTests 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 | --------------------------------------------------------------------------------