├── .gitignore ├── LICENSE ├── Podfile ├── Podfile.lock ├── Pods ├── AFNetworking │ ├── AFNetworking │ │ ├── AFHTTPRequestOperation.h │ │ ├── AFHTTPRequestOperation.m │ │ ├── AFHTTPRequestOperationManager.h │ │ ├── AFHTTPRequestOperationManager.m │ │ ├── AFHTTPSessionManager.h │ │ ├── AFHTTPSessionManager.m │ │ ├── AFNetworkReachabilityManager.h │ │ ├── AFNetworkReachabilityManager.m │ │ ├── AFNetworking.h │ │ ├── AFSecurityPolicy.h │ │ ├── AFSecurityPolicy.m │ │ ├── AFURLConnectionOperation.h │ │ ├── AFURLConnectionOperation.m │ │ ├── AFURLRequestSerialization.h │ │ ├── AFURLRequestSerialization.m │ │ ├── AFURLResponseSerialization.h │ │ ├── AFURLResponseSerialization.m │ │ ├── AFURLSessionManager.h │ │ └── AFURLSessionManager.m │ ├── LICENSE │ ├── README.md │ └── UIKit+AFNetworking │ │ ├── AFNetworkActivityIndicatorManager.h │ │ ├── AFNetworkActivityIndicatorManager.m │ │ ├── UIActivityIndicatorView+AFNetworking.h │ │ ├── UIActivityIndicatorView+AFNetworking.m │ │ ├── UIAlertView+AFNetworking.h │ │ ├── UIAlertView+AFNetworking.m │ │ ├── UIButton+AFNetworking.h │ │ ├── UIButton+AFNetworking.m │ │ ├── UIImage+AFNetworking.h │ │ ├── UIImageView+AFNetworking.h │ │ ├── UIImageView+AFNetworking.m │ │ ├── UIKit+AFNetworking.h │ │ ├── UIProgressView+AFNetworking.h │ │ ├── UIProgressView+AFNetworking.m │ │ ├── UIRefreshControl+AFNetworking.h │ │ ├── UIRefreshControl+AFNetworking.m │ │ ├── UIWebView+AFNetworking.h │ │ └── UIWebView+AFNetworking.m ├── FDFullscreenPopGesture │ ├── FDFullscreenPopGesture │ │ ├── UINavigationController+FDFullscreenPopGesture.h │ │ └── UINavigationController+FDFullscreenPopGesture.m │ ├── LICENSE │ └── README.md ├── FMDB │ ├── LICENSE.txt │ ├── README.markdown │ └── src │ │ └── fmdb │ │ ├── FMDB.h │ │ ├── FMDatabase.h │ │ ├── FMDatabase.m │ │ ├── FMDatabaseAdditions.h │ │ ├── FMDatabaseAdditions.m │ │ ├── FMDatabasePool.h │ │ ├── FMDatabasePool.m │ │ ├── FMDatabaseQueue.h │ │ ├── FMDatabaseQueue.m │ │ ├── FMResultSet.h │ │ └── FMResultSet.m ├── Headers │ ├── Private │ │ ├── AFNetworking │ │ │ ├── AFHTTPRequestOperation.h │ │ │ ├── AFHTTPRequestOperationManager.h │ │ │ ├── AFHTTPSessionManager.h │ │ │ ├── AFNetworkActivityIndicatorManager.h │ │ │ ├── AFNetworkReachabilityManager.h │ │ │ ├── AFNetworking.h │ │ │ ├── AFSecurityPolicy.h │ │ │ ├── AFURLConnectionOperation.h │ │ │ ├── AFURLRequestSerialization.h │ │ │ ├── AFURLResponseSerialization.h │ │ │ ├── AFURLSessionManager.h │ │ │ ├── UIActivityIndicatorView+AFNetworking.h │ │ │ ├── UIAlertView+AFNetworking.h │ │ │ ├── UIButton+AFNetworking.h │ │ │ ├── UIImage+AFNetworking.h │ │ │ ├── UIImageView+AFNetworking.h │ │ │ ├── UIKit+AFNetworking.h │ │ │ ├── UIProgressView+AFNetworking.h │ │ │ ├── UIRefreshControl+AFNetworking.h │ │ │ └── UIWebView+AFNetworking.h │ │ ├── FDFullscreenPopGesture │ │ │ └── UINavigationController+FDFullscreenPopGesture.h │ │ ├── FMDB │ │ │ ├── FMDB.h │ │ │ ├── FMDatabase.h │ │ │ ├── FMDatabaseAdditions.h │ │ │ ├── FMDatabasePool.h │ │ │ ├── FMDatabaseQueue.h │ │ │ └── FMResultSet.h │ │ ├── MJRefresh │ │ │ ├── MJRefresh.h │ │ │ ├── MJRefreshAutoFooter.h │ │ │ ├── MJRefreshAutoGifFooter.h │ │ │ ├── MJRefreshAutoNormalFooter.h │ │ │ ├── MJRefreshAutoStateFooter.h │ │ │ ├── MJRefreshBackFooter.h │ │ │ ├── MJRefreshBackGifFooter.h │ │ │ ├── MJRefreshBackNormalFooter.h │ │ │ ├── MJRefreshBackStateFooter.h │ │ │ ├── MJRefreshComponent.h │ │ │ ├── MJRefreshConst.h │ │ │ ├── MJRefreshFooter.h │ │ │ ├── MJRefreshGifHeader.h │ │ │ ├── MJRefreshHeader.h │ │ │ ├── MJRefreshNormalHeader.h │ │ │ ├── MJRefreshStateHeader.h │ │ │ ├── UIScrollView+MJExtension.h │ │ │ ├── UIScrollView+MJRefresh.h │ │ │ └── UIView+MJExtension.h │ │ ├── Reachability │ │ │ └── Reachability.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 │ │ └── pop │ │ │ ├── FloatConversion.h │ │ │ ├── POP.h │ │ │ ├── POPAction.h │ │ │ ├── POPAnimatableProperty.h │ │ │ ├── POPAnimatablePropertyTypes.h │ │ │ ├── POPAnimation.h │ │ │ ├── POPAnimationEvent.h │ │ │ ├── POPAnimationEventInternal.h │ │ │ ├── POPAnimationExtras.h │ │ │ ├── POPAnimationInternal.h │ │ │ ├── POPAnimationPrivate.h │ │ │ ├── POPAnimationRuntime.h │ │ │ ├── POPAnimationTracer.h │ │ │ ├── POPAnimationTracerInternal.h │ │ │ ├── POPAnimator.h │ │ │ ├── POPAnimatorPrivate.h │ │ │ ├── POPBasicAnimation.h │ │ │ ├── POPBasicAnimationInternal.h │ │ │ ├── POPCGUtils.h │ │ │ ├── POPCustomAnimation.h │ │ │ ├── POPDecayAnimation.h │ │ │ ├── POPDecayAnimationInternal.h │ │ │ ├── POPDefines.h │ │ │ ├── POPGeometry.h │ │ │ ├── POPLayerExtras.h │ │ │ ├── POPMath.h │ │ │ ├── POPPropertyAnimation.h │ │ │ ├── POPPropertyAnimationInternal.h │ │ │ ├── POPSpringAnimation.h │ │ │ ├── POPSpringAnimationInternal.h │ │ │ ├── POPSpringSolver.h │ │ │ ├── POPVector.h │ │ │ ├── TransformationMatrix.h │ │ │ └── UnitBezier.h │ └── Public │ │ ├── AFNetworking │ │ ├── AFHTTPRequestOperation.h │ │ ├── AFHTTPRequestOperationManager.h │ │ ├── AFHTTPSessionManager.h │ │ ├── AFNetworkActivityIndicatorManager.h │ │ ├── AFNetworkReachabilityManager.h │ │ ├── AFNetworking.h │ │ ├── AFSecurityPolicy.h │ │ ├── AFURLConnectionOperation.h │ │ ├── AFURLRequestSerialization.h │ │ ├── AFURLResponseSerialization.h │ │ ├── AFURLSessionManager.h │ │ ├── UIActivityIndicatorView+AFNetworking.h │ │ ├── UIAlertView+AFNetworking.h │ │ ├── UIButton+AFNetworking.h │ │ ├── UIImage+AFNetworking.h │ │ ├── UIImageView+AFNetworking.h │ │ ├── UIKit+AFNetworking.h │ │ ├── UIProgressView+AFNetworking.h │ │ ├── UIRefreshControl+AFNetworking.h │ │ └── UIWebView+AFNetworking.h │ │ ├── FDFullscreenPopGesture │ │ └── UINavigationController+FDFullscreenPopGesture.h │ │ ├── FMDB │ │ ├── FMDB.h │ │ ├── FMDatabase.h │ │ ├── FMDatabaseAdditions.h │ │ ├── FMDatabasePool.h │ │ ├── FMDatabaseQueue.h │ │ └── FMResultSet.h │ │ ├── MJRefresh │ │ ├── MJRefresh.h │ │ ├── MJRefreshAutoFooter.h │ │ ├── MJRefreshAutoGifFooter.h │ │ ├── MJRefreshAutoNormalFooter.h │ │ ├── MJRefreshAutoStateFooter.h │ │ ├── MJRefreshBackFooter.h │ │ ├── MJRefreshBackGifFooter.h │ │ ├── MJRefreshBackNormalFooter.h │ │ ├── MJRefreshBackStateFooter.h │ │ ├── MJRefreshComponent.h │ │ ├── MJRefreshConst.h │ │ ├── MJRefreshFooter.h │ │ ├── MJRefreshGifHeader.h │ │ ├── MJRefreshHeader.h │ │ ├── MJRefreshNormalHeader.h │ │ ├── MJRefreshStateHeader.h │ │ ├── UIScrollView+MJExtension.h │ │ ├── UIScrollView+MJRefresh.h │ │ └── UIView+MJExtension.h │ │ ├── Reachability │ │ └── Reachability.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 │ │ └── pop │ │ ├── POP.h │ │ ├── POPAnimatableProperty.h │ │ ├── POPAnimatablePropertyTypes.h │ │ ├── POPAnimation.h │ │ ├── POPAnimationEvent.h │ │ ├── POPAnimationExtras.h │ │ ├── POPAnimationTracer.h │ │ ├── POPAnimator.h │ │ ├── POPBasicAnimation.h │ │ ├── POPCustomAnimation.h │ │ ├── POPDecayAnimation.h │ │ ├── POPDefines.h │ │ ├── POPGeometry.h │ │ ├── POPLayerExtras.h │ │ ├── POPPropertyAnimation.h │ │ ├── POPSpringAnimation.h │ │ └── POPVector.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 │ │ ├── MJRefresh.h │ │ ├── MJRefreshConst.h │ │ ├── MJRefreshConst.m │ │ ├── UIScrollView+MJExtension.h │ │ ├── UIScrollView+MJExtension.m │ │ ├── UIScrollView+MJRefresh.h │ │ ├── UIScrollView+MJRefresh.m │ │ ├── UIView+MJExtension.h │ │ └── UIView+MJExtension.m │ └── README.md ├── Manifest.lock ├── Pods.xcodeproj │ └── project.pbxproj ├── Reachability │ ├── LICENCE.txt │ ├── README.md │ ├── Reachability.h │ └── Reachability.m ├── SDWebImage │ ├── LICENSE │ ├── README.md │ └── SDWebImage │ │ ├── NSData+ImageContentType.h │ │ ├── NSData+ImageContentType.m │ │ ├── SDImageCache.h │ │ ├── SDImageCache.m │ │ ├── SDWebImageCompat.h │ │ ├── SDWebImageCompat.m │ │ ├── SDWebImageDecoder.h │ │ ├── SDWebImageDecoder.m │ │ ├── SDWebImageDownloader.h │ │ ├── SDWebImageDownloader.m │ │ ├── SDWebImageDownloaderOperation.h │ │ ├── SDWebImageDownloaderOperation.m │ │ ├── SDWebImageManager.h │ │ ├── SDWebImageManager.m │ │ ├── SDWebImageOperation.h │ │ ├── SDWebImagePrefetcher.h │ │ ├── SDWebImagePrefetcher.m │ │ ├── UIButton+WebCache.h │ │ ├── UIButton+WebCache.m │ │ ├── UIImage+GIF.h │ │ ├── UIImage+GIF.m │ │ ├── UIImage+MultiFormat.h │ │ ├── UIImage+MultiFormat.m │ │ ├── UIImageView+HighlightedWebCache.h │ │ ├── UIImageView+HighlightedWebCache.m │ │ ├── UIImageView+WebCache.h │ │ ├── UIImageView+WebCache.m │ │ ├── UIView+WebCacheOperation.h │ │ └── UIView+WebCacheOperation.m ├── Target Support Files │ ├── AFNetworking │ │ ├── AFNetworking-dummy.m │ │ ├── AFNetworking-prefix.pch │ │ └── AFNetworking.xcconfig │ ├── FDFullscreenPopGesture │ │ ├── FDFullscreenPopGesture-dummy.m │ │ ├── FDFullscreenPopGesture-prefix.pch │ │ └── FDFullscreenPopGesture.xcconfig │ ├── FMDB │ │ ├── FMDB-dummy.m │ │ ├── FMDB-prefix.pch │ │ └── FMDB.xcconfig │ ├── MJRefresh │ │ ├── MJRefresh-dummy.m │ │ ├── MJRefresh-prefix.pch │ │ └── MJRefresh.xcconfig │ ├── Pods-SUMusic │ │ ├── Pods-SUMusic-acknowledgements.markdown │ │ ├── Pods-SUMusic-acknowledgements.plist │ │ ├── Pods-SUMusic-dummy.m │ │ ├── Pods-SUMusic-frameworks.sh │ │ ├── Pods-SUMusic-resources.sh │ │ ├── Pods-SUMusic.debug.xcconfig │ │ └── Pods-SUMusic.release.xcconfig │ ├── Reachability │ │ ├── Reachability-dummy.m │ │ ├── Reachability-prefix.pch │ │ └── Reachability.xcconfig │ ├── SDWebImage │ │ ├── SDWebImage-dummy.m │ │ ├── SDWebImage-prefix.pch │ │ └── SDWebImage.xcconfig │ └── pop │ │ ├── pop-dummy.m │ │ ├── pop-prefix.pch │ │ └── pop.xcconfig └── pop │ ├── LICENSE │ ├── README.md │ └── pop │ ├── POP.h │ ├── POPAction.h │ ├── POPAnimatableProperty.h │ ├── POPAnimatableProperty.mm │ ├── POPAnimatablePropertyTypes.h │ ├── POPAnimation.h │ ├── POPAnimation.mm │ ├── POPAnimationEvent.h │ ├── POPAnimationEvent.mm │ ├── POPAnimationEventInternal.h │ ├── POPAnimationExtras.h │ ├── POPAnimationExtras.mm │ ├── POPAnimationInternal.h │ ├── POPAnimationPrivate.h │ ├── POPAnimationRuntime.h │ ├── POPAnimationRuntime.mm │ ├── POPAnimationTracer.h │ ├── POPAnimationTracer.mm │ ├── POPAnimationTracerInternal.h │ ├── POPAnimator.h │ ├── POPAnimator.mm │ ├── POPAnimatorPrivate.h │ ├── POPBasicAnimation.h │ ├── POPBasicAnimation.mm │ ├── POPBasicAnimationInternal.h │ ├── POPCGUtils.h │ ├── POPCGUtils.mm │ ├── POPCustomAnimation.h │ ├── POPCustomAnimation.mm │ ├── POPDecayAnimation.h │ ├── POPDecayAnimation.mm │ ├── POPDecayAnimationInternal.h │ ├── POPDefines.h │ ├── POPGeometry.h │ ├── POPGeometry.mm │ ├── POPLayerExtras.h │ ├── POPLayerExtras.mm │ ├── POPMath.h │ ├── POPMath.mm │ ├── POPPropertyAnimation.h │ ├── POPPropertyAnimation.mm │ ├── POPPropertyAnimationInternal.h │ ├── POPSpringAnimation.h │ ├── POPSpringAnimation.mm │ ├── POPSpringAnimationInternal.h │ ├── POPSpringSolver.h │ ├── POPVector.h │ ├── POPVector.mm │ └── WebCore │ ├── FloatConversion.h │ ├── TransformationMatrix.cpp │ ├── TransformationMatrix.h │ └── UnitBezier.h ├── README.md ├── SUMusic.xcodeproj ├── project.pbxproj └── project.xcworkspace │ └── contents.xcworkspacedata ├── SUMusic.xcworkspace ├── contents.xcworkspacedata └── xcshareddata │ └── IDEWorkspaceChecks.plist └── SUMusic ├── AppDelegate.h ├── AppDelegate.m ├── Assets.xcassets ├── AppIcon.appiconset │ ├── Contents.json │ ├── Icon-120.png │ ├── Icon-121.png │ ├── Icon-152.png │ ├── Icon-180.png │ ├── Icon-29.png │ ├── Icon-40.png │ ├── Icon-58.png │ ├── Icon-59.png │ ├── Icon-76.png │ ├── Icon-80.png │ ├── Icon-81.png │ └── Icon-87.png ├── ChannelDefault.imageset │ ├── Contents.json │ └── cover.png ├── Contents.json ├── LaunchImage.launchimage │ ├── Contents.json │ └── LaunchImage-700-568h@2x.png ├── Share_sina.imageset │ ├── Contents.json │ └── Share_sina@2x.png ├── Share_timeline.imageset │ ├── Contents.json │ └── Share_timeline@2x.png ├── Share_wechat.imageset │ ├── Contents.json │ └── Share_wechat@2x.png ├── back_btn.imageset │ ├── Contents.json │ ├── navigationbar_back.png │ ├── navigationbar_back@2x.png │ └── navigationbar_back@3x.png ├── downLoad.imageset │ ├── Contents.json │ ├── userinfo_relationship_indicator_download_default@2x.png │ └── userinfo_relationship_indicator_download_default@3x.png ├── loading.imageset │ ├── Contents.json │ └── ic_freshen_loading_icon@2x.png ├── logo.imageset │ ├── Contents.json │ └── Icon-152.png ├── navbar_back.imageset │ ├── Contents.json │ ├── navigationbar_back_withtext@2x.png │ └── navigationbar_back_withtext@3x.png ├── network_404.imageset │ ├── Contents.json │ └── sapi_404@2x.png └── user_avatar.imageset │ ├── Contents.json │ └── user_avatar.png ├── Controller ├── BaseViewController.h ├── BaseViewController.m ├── ChannelListViewController.h ├── ChannelListViewController.m ├── ChannelListViewController.xib ├── CopyrightViewController.h ├── CopyrightViewController.m ├── CopyrightViewController.xib ├── DownLoadingViewController.h ├── DownLoadingViewController.m ├── DownLoadingViewController.xib ├── HomeViewController.h ├── HomeViewController.m ├── LoginPage.h ├── LoginPage.m ├── LoginPage.xib ├── MineViewController.h ├── MineViewController.m ├── MineViewController.xib ├── MyFavorViewController.h ├── MyFavorViewController.m ├── MyFavorViewController.xib ├── MyOffLineViewController.h ├── MyOffLineViewController.m ├── MyOffLineViewController.xib ├── MySharedViewController.h ├── MySharedViewController.m ├── MySharedViewController.xib ├── PlayViewController.h ├── PlayViewController.m ├── PlayViewController.xib ├── SettingViewController.h ├── SettingViewController.m └── SettingViewController.xib ├── Define ├── DouAPI.h └── SuDefine.h ├── Expand ├── DB │ ├── SuDBManager+private.h │ ├── SuDBManager+private.m │ ├── SuDBManager.h │ └── SuDBManager.m ├── SSSJson │ ├── NSObject+SSS.h │ ├── NSObject+SSS.m │ └── SSSJsonManager.h └── SuUtility │ ├── Extension │ ├── NSDate+SU.h │ ├── NSDate+SU.m │ ├── NSDictionary+SU.h │ ├── NSDictionary+SU.m │ ├── NSString+SU.h │ ├── NSString+SU.m │ ├── UIButton+SU.h │ ├── UIButton+SU.m │ ├── UIColor+SU.h │ ├── UIColor+SU.m │ ├── UIImage+SU.h │ ├── UIImage+SU.m │ ├── UILabel+SU.h │ ├── UILabel+SU.m │ ├── UITextField+SU.h │ ├── UITextField+SU.m │ ├── UIView+SU.h │ ├── UIView+SU.m │ ├── UIWindow+SU.h │ └── UIWindow+SU.m │ ├── Inherit │ ├── SuButton.h │ ├── SuButton.m │ ├── SuCaptureCodeView.h │ ├── SuCaptureCodeView.m │ ├── SuTabBarController.h │ └── SuTabBarController.m │ ├── SuCategory.h │ ├── SuTool.h │ └── Tool │ ├── SuAppSetting.h │ ├── SuAppSetting.m │ ├── SuFile.h │ ├── SuFile.m │ ├── SuImageView.h │ ├── SuImageView.m │ ├── SuLyricTool.h │ ├── SuLyricTool.m │ ├── SuNetworkMonitor.h │ ├── SuNetworkMonitor.m │ ├── SuString.h │ └── SuString.m ├── Global ├── SuGlobal.h └── SuGlobal.m ├── Info.plist ├── Model ├── BaseInfo.h ├── BaseInfo.m ├── ChannelInfo.h ├── ChannelInfo.m ├── DownLoadInfo.h ├── DownLoadInfo.m ├── SongInfo.h ├── SongInfo.m ├── UserInfo.h └── UserInfo.m ├── Network ├── OffLineManager.h ├── OffLineManager.m ├── SUNetwork.h └── SUNetwork.m ├── PrefixHeader.pch ├── Resource ├── Login.xcassets │ ├── Contents.json │ ├── iconfont-password.imageset │ │ ├── Contents.json │ │ └── iconfont-password.png │ ├── iconfont-user.imageset │ │ ├── Contents.json │ │ └── iconfont-user.png │ ├── login-arm-left.imageset │ │ ├── Contents.json │ │ └── login-arm-left@2x.png │ ├── login-arm-normal.imageset │ │ ├── Contents.json │ │ └── login-arm-normal.png │ ├── login-arm-right.imageset │ │ ├── Contents.json │ │ └── login-arm-right@2x.png │ └── login.imageset │ │ ├── Contents.json │ │ └── login@2x.png ├── Mine.xcassets │ ├── Contents.json │ ├── mine_anouce.imageset │ │ ├── Contents.json │ │ └── abc_ic_cab_done_holo_light.png │ ├── mine_down.imageset │ │ ├── Contents.json │ │ └── ic_action_download.png │ ├── mine_favor.imageset │ │ ├── Contents.json │ │ └── ic_action_uncollect.png │ ├── mine_setting.imageset │ │ ├── Contents.json │ │ └── ic_action_detail.png │ └── mine_share.imageset │ │ ├── Contents.json │ │ └── ic_action_share.png └── Player.xcassets │ ├── Contents.json │ ├── Player_hide.imageset │ ├── Contents.json │ └── ic_action_clear.png │ ├── cover.imageset │ ├── Contents.json │ └── cover_expand.png │ ├── ic_action_ban.imageset │ ├── Contents.json │ └── ic_action_ban.png │ ├── ic_action_ban_disable.imageset │ ├── Contents.json │ └── ic_action_ban_disable.png │ ├── ic_action_ban_pressed.imageset │ ├── Contents.json │ └── ic_action_ban_pressed.png │ ├── ic_action_collect.imageset │ ├── Contents.json │ └── ic_action_collect.png │ ├── ic_action_fav.imageset │ ├── Contents.json │ └── ic_action_fav.png │ ├── ic_action_fav_disable.imageset │ ├── Contents.json │ └── ic_action_fav_disable.png │ ├── ic_action_fav_pressed.imageset │ ├── Contents.json │ └── ic_action_fav_pressed.png │ ├── ic_action_lyric.imageset │ ├── Contents.json │ └── ic_action_lyric.png │ ├── ic_action_lyric_pressed.imageset │ ├── Contents.json │ └── ic_action_lyric_pressed.png │ ├── ic_action_next.imageset │ ├── Contents.json │ └── ic_action_next.png │ ├── ic_action_next_disable.imageset │ ├── Contents.json │ └── ic_action_next_disable.png │ ├── ic_action_next_pressed.imageset │ ├── Contents.json │ └── ic_action_next_pressed.png │ ├── ic_action_play.imageset │ ├── Contents.json │ └── ic_action_play.png │ ├── ic_action_prev.imageset │ ├── Contents.json │ └── ic_action_prev.png │ ├── ic_action_prev_disable.imageset │ ├── Contents.json │ └── ic_action_prev_disable.png │ ├── ic_action_prev_pressed.imageset │ ├── Contents.json │ └── ic_action_prev_pressed.png │ ├── ic_action_share.imageset │ ├── Contents.json │ └── ic_action_share.png │ ├── ic_action_share_disable.imageset │ ├── Contents.json │ └── ic_action_share_disable.png │ ├── ic_action_share_pressed.imageset │ ├── Contents.json │ └── ic_action_share_pressed.png │ ├── ic_action_uncollect.imageset │ ├── Contents.json │ └── ic_action_uncollect.png │ ├── ic_action_uncollect_pressed.imageset │ ├── Contents.json │ └── ic_action_uncollect_pressed.png │ ├── ic_action_unfav.imageset │ ├── Contents.json │ └── ic_action_unfav.png │ ├── ic_action_unfav_pressed.imageset │ ├── Contents.json │ └── ic_action_unfav_pressed.png │ ├── ic_channel_nowplaying1.imageset │ ├── Contents.json │ └── ic_channel_nowplaying1.png │ ├── ic_channel_nowplaying2.imageset │ ├── Contents.json │ └── ic_channel_nowplaying2.png │ ├── ic_channel_nowplaying3.imageset │ ├── Contents.json │ └── ic_channel_nowplaying3.png │ ├── ic_channel_nowplaying4.imageset │ ├── Contents.json │ └── ic_channel_nowplaying4.png │ ├── ic_share_to_other_app.imageset │ ├── Contents.json │ └── ic_share_to_other_app.png │ ├── playingPet_1.imageset │ ├── Contents.json │ └── ktv_main_1@2x.png │ ├── playingPet_2.imageset │ ├── Contents.json │ └── ktv_main_2@2x.png │ ├── playingPet_3.imageset │ ├── Contents.json │ └── ktv_main_3@2x.png │ └── zero_data.imageset │ ├── Contents.json │ └── playingPet_default.png ├── SUPlayer ├── SUPlayerManager.h └── SUPlayerManager.m ├── VIew ├── ChannelTableViewCell.h ├── ChannelTableViewCell.m ├── ChannelTableViewCell.xib ├── LyricView.h ├── LyricView.m ├── MineHeader.h ├── MineHeader.m ├── MineHeader.xib ├── MineTableViewCell.h ├── MineTableViewCell.m ├── MineTableViewCell.xib ├── ShareView.h ├── ShareView.m ├── ShareView.xib ├── SongListTableViewCell.h ├── SongListTableViewCell.m ├── SongListTableViewCell.xib ├── TopAlertView │ ├── Resource │ │ ├── TopAlert_add.png │ │ ├── TopAlert_ban.png │ │ └── TopAlert_check.png │ ├── TopAlertView.h │ └── TopAlertView.m ├── TopTabItemView.h ├── TopTabItemView.m └── TopTabItemView.xib └── main.m /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | # 3 | build/ 4 | *.pbxuser 5 | !default.pbxuser 6 | *.mode1v3 7 | !default.mode1v3 8 | *.mode2v3 9 | !default.mode2v3 10 | *.perspectivev3 11 | !default.perspectivev3 12 | xcuserdata 13 | *.xccheckout 14 | *.moved-aside 15 | DerivedData 16 | *.hmap 17 | *.ipa 18 | *.xcuserstate 19 | 20 | # CocoaPods 21 | # 22 | # We recommend against adding the Pods directory to your .gitignore. However 23 | # you should judge for yourself, the pros and cons are mentioned at: 24 | # http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control 25 | # 26 | #Pods/ 27 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 DaMingShen 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, "9.0" 2 | 3 | inhibit_all_warnings! 4 | 5 | target 'SUMusic' do 6 | 7 | pod 'MJRefresh', '~> 2.4.10' 8 | pod 'AFNetworking', '~> 2.6.0' 9 | pod 'pop', '~> 1.0.8' 10 | pod 'FDFullscreenPopGesture', '~> 1.1' 11 | pod 'SDWebImage', '~> 3.7.3' 12 | #pod 'UMengSocial', '~> 4.2.3' 13 | pod 'FMDB', '~> 2.5' 14 | pod 'Reachability', '~> 3.2' 15 | 16 | end 17 | -------------------------------------------------------------------------------- /Pods/AFNetworking/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011–2015 Alamofire Software Foundation (http://alamofire.org/) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Pods/AFNetworking/UIKit+AFNetworking/UIImage+AFNetworking.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+AFNetworking.h 3 | // 4 | // 5 | // Created by Paulo Ferreira on 08/07/15. 6 | // 7 | // Permission is hereby granted, free of charge, to any person obtaining a copy 8 | // of this software and associated documentation files (the "Software"), to deal 9 | // in the Software without restriction, including without limitation the rights 10 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | // copies of the Software, and to permit persons to whom the Software is 12 | // furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in 15 | // all copies or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | // THE SOFTWARE. 24 | 25 | #if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) 26 | 27 | #import 28 | 29 | @interface UIImage (AFNetworking) 30 | 31 | + (UIImage*) safeImageWithData:(NSData*)data; 32 | 33 | @end 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /Pods/FDFullscreenPopGesture/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/FMDB/LICENSE.txt: -------------------------------------------------------------------------------- 1 | If you are using FMDB in your project, I'd love to hear about it. Let Gus know 2 | by sending an email to gus@flyingmeat.com. 3 | 4 | And if you happen to come across either Gus Mueller or Rob Ryan in a bar, you 5 | might consider purchasing a drink of their choosing if FMDB has been useful to 6 | you. 7 | 8 | Finally, and shortly, this is the MIT License. 9 | 10 | Copyright (c) 2008-2014 Flying Meat Inc. 11 | 12 | Permission is hereby granted, free of charge, to any person obtaining a copy 13 | of this software and associated documentation files (the "Software"), to deal 14 | in the Software without restriction, including without limitation the rights 15 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 16 | copies of the Software, and to permit persons to whom the Software is 17 | furnished to do so, subject to the following conditions: 18 | 19 | The above copyright notice and this permission notice shall be included in 20 | all copies or substantial portions of the Software. 21 | 22 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 23 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 24 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 25 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 26 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 27 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 28 | THE SOFTWARE. -------------------------------------------------------------------------------- /Pods/FMDB/src/fmdb/FMDB.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | FOUNDATION_EXPORT double FMDBVersionNumber; 4 | FOUNDATION_EXPORT const unsigned char FMDBVersionString[]; 5 | 6 | #import "FMDatabase.h" 7 | #import "FMResultSet.h" 8 | #import "FMDatabaseAdditions.h" 9 | #import "FMDatabaseQueue.h" 10 | #import "FMDatabasePool.h" 11 | -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFHTTPRequestOperation.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFHTTPRequestOperation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFHTTPRequestOperationManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFHTTPRequestOperationManager.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFHTTPSessionManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFHTTPSessionManager.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFNetworkActivityIndicatorManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/AFNetworkActivityIndicatorManager.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFNetworkReachabilityManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFNetworkReachabilityManager.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFSecurityPolicy.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFSecurityPolicy.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFURLConnectionOperation.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLConnectionOperation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFURLRequestSerialization.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLRequestSerialization.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFURLResponseSerialization.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLResponseSerialization.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFURLSessionManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLSessionManager.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIActivityIndicatorView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIAlertView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIAlertView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIButton+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIButton+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIImage+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIImage+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIImageView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIImageView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIKit+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIKit+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIProgressView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIProgressView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIRefreshControl+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIRefreshControl+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIWebView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIWebView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/FDFullscreenPopGesture/UINavigationController+FDFullscreenPopGesture.h: -------------------------------------------------------------------------------- 1 | ../../../FDFullscreenPopGesture/FDFullscreenPopGesture/UINavigationController+FDFullscreenPopGesture.h -------------------------------------------------------------------------------- /Pods/Headers/Private/FMDB/FMDB.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMDB.h -------------------------------------------------------------------------------- /Pods/Headers/Private/FMDB/FMDatabase.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMDatabase.h -------------------------------------------------------------------------------- /Pods/Headers/Private/FMDB/FMDatabaseAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMDatabaseAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Private/FMDB/FMDatabasePool.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMDatabasePool.h -------------------------------------------------------------------------------- /Pods/Headers/Private/FMDB/FMDatabaseQueue.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMDatabaseQueue.h -------------------------------------------------------------------------------- /Pods/Headers/Private/FMDB/FMResultSet.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMResultSet.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/MJRefresh.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshAutoFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshAutoFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshAutoGifFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshAutoNormalFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshAutoStateFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshBackFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshBackFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshBackGifFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshBackNormalFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshBackStateFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshComponent.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshComponent.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshConst.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/MJRefreshConst.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshGifHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshGifHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshNormalHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshNormalHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshStateHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshStateHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/UIScrollView+MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIScrollView+MJExtension.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/UIScrollView+MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIScrollView+MJRefresh.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/UIView+MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIView+MJExtension.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Reachability/Reachability.h: -------------------------------------------------------------------------------- 1 | ../../../Reachability/Reachability.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/pop/FloatConversion.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/WebCore/FloatConversion.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POP.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POP.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAction.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAction.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimatableProperty.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimatableProperty.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimatablePropertyTypes.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimatablePropertyTypes.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimationEvent.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationEvent.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimationEventInternal.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationEventInternal.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimationExtras.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationExtras.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimationInternal.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationInternal.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimationPrivate.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationPrivate.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimationRuntime.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationRuntime.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimationTracer.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationTracer.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimationTracerInternal.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationTracerInternal.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimator.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimator.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimatorPrivate.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimatorPrivate.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPBasicAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPBasicAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPBasicAnimationInternal.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPBasicAnimationInternal.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPCGUtils.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPCGUtils.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPCustomAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPCustomAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPDecayAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPDecayAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPDecayAnimationInternal.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPDecayAnimationInternal.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPDefines.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPDefines.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPGeometry.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPGeometry.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPLayerExtras.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPLayerExtras.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPMath.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPMath.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPPropertyAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPPropertyAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPPropertyAnimationInternal.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPPropertyAnimationInternal.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPSpringAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPSpringAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPSpringAnimationInternal.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPSpringAnimationInternal.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPSpringSolver.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPSpringSolver.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPVector.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPVector.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/TransformationMatrix.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/WebCore/TransformationMatrix.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/UnitBezier.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/WebCore/UnitBezier.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFHTTPRequestOperation.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFHTTPRequestOperation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFHTTPRequestOperationManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFHTTPRequestOperationManager.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFHTTPSessionManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFHTTPSessionManager.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFNetworkActivityIndicatorManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/AFNetworkActivityIndicatorManager.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFNetworkReachabilityManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFNetworkReachabilityManager.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFSecurityPolicy.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFSecurityPolicy.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFURLConnectionOperation.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLConnectionOperation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFURLRequestSerialization.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLRequestSerialization.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFURLResponseSerialization.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLResponseSerialization.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFURLSessionManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLSessionManager.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIActivityIndicatorView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIAlertView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIAlertView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIButton+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIButton+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIImage+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIImage+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIImageView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIImageView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIKit+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIKit+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIProgressView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIProgressView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIRefreshControl+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIRefreshControl+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIWebView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIWebView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/FDFullscreenPopGesture/UINavigationController+FDFullscreenPopGesture.h: -------------------------------------------------------------------------------- 1 | ../../../FDFullscreenPopGesture/FDFullscreenPopGesture/UINavigationController+FDFullscreenPopGesture.h -------------------------------------------------------------------------------- /Pods/Headers/Public/FMDB/FMDB.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMDB.h -------------------------------------------------------------------------------- /Pods/Headers/Public/FMDB/FMDatabase.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMDatabase.h -------------------------------------------------------------------------------- /Pods/Headers/Public/FMDB/FMDatabaseAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMDatabaseAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Public/FMDB/FMDatabasePool.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMDatabasePool.h -------------------------------------------------------------------------------- /Pods/Headers/Public/FMDB/FMDatabaseQueue.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMDatabaseQueue.h -------------------------------------------------------------------------------- /Pods/Headers/Public/FMDB/FMResultSet.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMResultSet.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/MJRefresh.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshAutoFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshAutoFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshAutoGifFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshAutoNormalFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshAutoStateFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshBackFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshBackFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshBackGifFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshBackNormalFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshBackStateFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshComponent.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshComponent.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshConst.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/MJRefreshConst.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshGifHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshGifHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshNormalHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshNormalHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshStateHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshStateHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/UIScrollView+MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIScrollView+MJExtension.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/UIScrollView+MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIScrollView+MJRefresh.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/UIView+MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIView+MJExtension.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Reachability/Reachability.h: -------------------------------------------------------------------------------- 1 | ../../../Reachability/Reachability.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/pop/POP.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POP.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPAnimatableProperty.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimatableProperty.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPAnimatablePropertyTypes.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimatablePropertyTypes.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPAnimationEvent.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationEvent.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPAnimationExtras.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationExtras.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPAnimationTracer.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationTracer.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPAnimator.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimator.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPBasicAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPBasicAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPCustomAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPCustomAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPDecayAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPDecayAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPDefines.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPDefines.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPGeometry.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPGeometry.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPLayerExtras.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPLayerExtras.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPPropertyAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPPropertyAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPSpringAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPSpringAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPVector.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPVector.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("请使用automaticallyChangeAlpha属性"); 17 | 18 | /** 当底部控件出现多少时就自动刷新(默认为1.0,也就是底部控件完全出现时,才会自动刷新) */ 19 | @property (assign, nonatomic) CGFloat triggerAutomaticallyRefreshPercent; 20 | @end 21 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Base/MJRefreshBackFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshFooter.h" 10 | 11 | @interface MJRefreshBackFooter : MJRefreshFooter 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Base/MJRefreshFooter.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // MJRefreshFooter.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 15/3/5. 7 | // Copyright (c) 2015年 小码哥. All rights reserved. 8 | // 上拉刷新控件 9 | 10 | #import "MJRefreshComponent.h" 11 | 12 | @interface MJRefreshFooter : MJRefreshComponent 13 | /** 创建footer */ 14 | + (instancetype)footerWithRefreshingBlock:(MJRefreshComponentRefreshingBlock)refreshingBlock; 15 | /** 创建footer */ 16 | + (instancetype)footerWithRefreshingTarget:(id)target refreshingAction:(SEL)action; 17 | 18 | /** 提示没有更多的数据 */ 19 | - (void)endRefreshingWithNoMoreData; 20 | - (void)noticeNoMoreData MJRefreshDeprecated("使用endRefreshingWithNoMoreData"); 21 | 22 | /** 重置没有更多的数据(消除没有更多数据的状态) */ 23 | - (void)resetNoMoreData; 24 | 25 | /** 忽略多少scrollView的contentInset的bottom */ 26 | @property (assign, nonatomic) CGFloat ignoredScrollViewContentInsetBottom; 27 | 28 | /** 自动根据有无数据来显示和隐藏(有数据就显示,没有数据隐藏) */ 29 | @property (assign, nonatomic, getter=isAutomaticallyHidden) BOOL automaticallyHidden; 30 | @end 31 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Base/MJRefreshHeader.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // MJRefreshHeader.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 15/3/4. 7 | // Copyright (c) 2015年 小码哥. All rights reserved. 8 | // 下拉刷新控件:负责监控用户下拉的状态 9 | 10 | #import "MJRefreshComponent.h" 11 | 12 | @interface MJRefreshHeader : MJRefreshComponent 13 | /** 创建header */ 14 | + (instancetype)headerWithRefreshingBlock:(MJRefreshComponentRefreshingBlock)refreshingBlock; 15 | /** 创建header */ 16 | + (instancetype)headerWithRefreshingTarget:(id)target refreshingAction:(SEL)action; 17 | 18 | /** 这个key用来存储上一次下拉刷新成功的时间 */ 19 | @property (copy, nonatomic) NSString *lastUpdatedTimeKey; 20 | /** 上一次下拉刷新成功的时间 */ 21 | @property (strong, nonatomic, readonly) NSDate *lastUpdatedTime; 22 | 23 | /** 忽略多少scrollView的contentInset的top */ 24 | @property (assign, nonatomic) CGFloat ignoredScrollViewContentInsetTop; 25 | @end 26 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoGifFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshAutoStateFooter.h" 10 | 11 | @interface MJRefreshAutoGifFooter : MJRefreshAutoStateFooter 12 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 13 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 14 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoNormalFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshAutoStateFooter.h" 10 | 11 | @interface MJRefreshAutoNormalFooter : MJRefreshAutoStateFooter 12 | /** 菊花的样式 */ 13 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle; 14 | @end 15 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoStateFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/6/13. 6 | // Copyright © 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshAutoFooter.h" 10 | 11 | @interface MJRefreshAutoStateFooter : MJRefreshAutoFooter 12 | /** 显示刷新状态的label */ 13 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 14 | 15 | /** 设置state状态下的文字 */ 16 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 17 | 18 | /** 隐藏刷新状态的文字 */ 19 | @property (assign, nonatomic, getter=isRefreshingTitleHidden) BOOL refreshingTitleHidden; 20 | @end 21 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackGifFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshBackStateFooter.h" 10 | 11 | @interface MJRefreshBackGifFooter : MJRefreshBackStateFooter 12 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 13 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 14 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackNormalFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshBackStateFooter.h" 10 | 11 | @interface MJRefreshBackNormalFooter : MJRefreshBackStateFooter 12 | @property (weak, nonatomic, readonly) UIImageView *arrowView; 13 | /** 菊花的样式 */ 14 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle; 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackStateFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/6/13. 6 | // Copyright © 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshBackFooter.h" 10 | 11 | @interface MJRefreshBackStateFooter : MJRefreshBackFooter 12 | /** 显示刷新状态的label */ 13 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 14 | /** 设置state状态下的文字 */ 15 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 16 | 17 | /** 获取state状态下的title */ 18 | - (NSString *)titleForState:(MJRefreshState)state; 19 | @end 20 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshGifHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshGifHeader.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshStateHeader.h" 10 | 11 | @interface MJRefreshGifHeader : MJRefreshStateHeader 12 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 13 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 14 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshNormalHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshNormalHeader.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshStateHeader.h" 10 | 11 | @interface MJRefreshNormalHeader : MJRefreshStateHeader 12 | @property (weak, nonatomic, readonly) UIImageView *arrowView; 13 | /** 菊花的样式 */ 14 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle; 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshStateHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshStateHeader.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshHeader.h" 10 | 11 | @interface MJRefreshStateHeader : MJRefreshHeader 12 | #pragma mark - 刷新时间相关 13 | /** 利用这个block来决定显示的更新时间文字 */ 14 | @property (copy, nonatomic) NSString *(^lastUpdatedTimeText)(NSDate *lastUpdatedTime); 15 | /** 显示上一次刷新时间的label */ 16 | @property (weak, nonatomic, readonly) UILabel *lastUpdatedTimeLabel; 17 | 18 | #pragma mark - 状态相关 19 | /** 显示刷新状态的label */ 20 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 21 | /** 设置state状态下的文字 */ 22 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 23 | @end 24 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/arrow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/arrow@2x.png -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | 4 | #import "UIScrollView+MJRefresh.h" 5 | #import "UIScrollView+MJExtension.h" 6 | #import "UIView+MJExtension.h" 7 | 8 | #import "MJRefreshNormalHeader.h" 9 | #import "MJRefreshGifHeader.h" 10 | 11 | #import "MJRefreshBackNormalFooter.h" 12 | #import "MJRefreshBackGifFooter.h" 13 | #import "MJRefreshAutoNormalFooter.h" 14 | #import "MJRefreshAutoGifFooter.h" -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefreshConst.m: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | #import 4 | 5 | const CGFloat MJRefreshHeaderHeight = 54.0; 6 | const CGFloat MJRefreshFooterHeight = 44.0; 7 | const CGFloat MJRefreshFastAnimationDuration = 0.25; 8 | const CGFloat MJRefreshSlowAnimationDuration = 0.4; 9 | 10 | NSString *const MJRefreshKeyPathContentOffset = @"contentOffset"; 11 | NSString *const MJRefreshKeyPathContentInset = @"contentInset"; 12 | NSString *const MJRefreshKeyPathContentSize = @"contentSize"; 13 | NSString *const MJRefreshKeyPathPanState = @"state"; 14 | 15 | NSString *const MJRefreshHeaderLastUpdatedTimeKey = @"MJRefreshHeaderLastUpdatedTimeKey"; 16 | 17 | NSString *const MJRefreshHeaderIdleText = @"下拉可以刷新"; 18 | NSString *const MJRefreshHeaderPullingText = @"松开立即刷新"; 19 | NSString *const MJRefreshHeaderRefreshingText = @"正在刷新数据中..."; 20 | 21 | NSString *const MJRefreshAutoFooterIdleText = @"点击或上拉加载更多"; 22 | NSString *const MJRefreshAutoFooterRefreshingText = @"正在加载更多的数据..."; 23 | NSString *const MJRefreshAutoFooterNoMoreDataText = @"已经全部加载完毕"; 24 | 25 | NSString *const MJRefreshBackFooterIdleText = @"上拉可以加载更多"; 26 | NSString *const MJRefreshBackFooterPullingText = @"松开立即加载更多"; 27 | NSString *const MJRefreshBackFooterRefreshingText = @"正在加载更多的数据..."; 28 | NSString *const MJRefreshBackFooterNoMoreDataText = @"已经全部加载完毕"; -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/UIScrollView+MJExtension.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // UIScrollView+Extension.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 14-5-28. 7 | // Copyright (c) 2014年 小码哥. All rights reserved. 8 | // 9 | 10 | #import 11 | 12 | @interface UIScrollView (MJExtension) 13 | @property (assign, nonatomic) CGFloat mj_insetT; 14 | @property (assign, nonatomic) CGFloat mj_insetB; 15 | @property (assign, nonatomic) CGFloat mj_insetL; 16 | @property (assign, nonatomic) CGFloat mj_insetR; 17 | 18 | @property (assign, nonatomic) CGFloat mj_offsetX; 19 | @property (assign, nonatomic) CGFloat mj_offsetY; 20 | 21 | @property (assign, nonatomic) CGFloat mj_contentW; 22 | @property (assign, nonatomic) CGFloat mj_contentH; 23 | @end 24 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/UIScrollView+MJRefresh.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // UIScrollView+MJRefresh.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 15/3/4. 7 | // Copyright (c) 2015年 小码哥. All rights reserved. 8 | // 给ScrollView增加下拉刷新、上拉刷新的功能 9 | 10 | #import 11 | 12 | @class MJRefreshHeader, MJRefreshFooter; 13 | 14 | @interface UIScrollView (MJRefresh) 15 | /** 下拉刷新控件 */ 16 | @property (strong, nonatomic) MJRefreshHeader *header; 17 | /** 上拉刷新控件 */ 18 | @property (strong, nonatomic) MJRefreshFooter *footer; 19 | 20 | #pragma mark - other 21 | - (NSInteger)totalDataCount; 22 | @property (copy, nonatomic) void (^reloadDataBlock)(NSInteger totalDataCount); 23 | @end 24 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/UIView+MJExtension.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // UIView+Extension.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 14-5-28. 7 | // Copyright (c) 2014年 小码哥. All rights reserved. 8 | // 9 | 10 | #import 11 | 12 | @interface UIView (MJExtension) 13 | @property (assign, nonatomic) CGFloat mj_x; 14 | @property (assign, nonatomic) CGFloat mj_y; 15 | @property (assign, nonatomic) CGFloat mj_w; 16 | @property (assign, nonatomic) CGFloat mj_h; 17 | @property (assign, nonatomic) CGSize mj_size; 18 | @property (assign, nonatomic) CGPoint mj_origin; 19 | @end 20 | -------------------------------------------------------------------------------- /Pods/Reachability/LICENCE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011-2013, Tony Million. 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | 1. Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | 2. Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 15 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 18 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 19 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 20 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 21 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 22 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 23 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 24 | POSSIBILITY OF SUCH DAMAGE. 25 | -------------------------------------------------------------------------------- /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/SDWebImageDecoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * Created by james on 9/28/11. 6 | * 7 | * For the full copyright and license information, please view the LICENSE 8 | * file that was distributed with this source code. 9 | */ 10 | 11 | #import 12 | #import "SDWebImageCompat.h" 13 | 14 | @interface UIImage (ForceDecode) 15 | 16 | + (UIImage *)decodedImageWithImage:(UIImage *)image; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/SDWebImageOperation.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import 10 | 11 | @protocol SDWebImageOperation 12 | 13 | - (void)cancel; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/UIImage+GIF.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+GIF.h 3 | // LBGIFImage 4 | // 5 | // Created by Laurin Brandner on 06.01.12. 6 | // Copyright (c) 2012 __MyCompanyName__. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIImage (GIF) 12 | 13 | + (UIImage *)sd_animatedGIFNamed:(NSString *)name; 14 | 15 | + (UIImage *)sd_animatedGIFWithData:(NSData *)data; 16 | 17 | - (UIImage *)sd_animatedImageByScalingAndCroppingToSize:(CGSize)size; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/UIImage+MultiFormat.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+MultiFormat.h 3 | // SDWebImage 4 | // 5 | // Created by Olivier Poitrey on 07/06/13. 6 | // Copyright (c) 2013 Dailymotion. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIImage (MultiFormat) 12 | 13 | + (UIImage *)sd_imageWithData:(NSData *)data; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/UIView+WebCacheOperation.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import 10 | #import "SDWebImageManager.h" 11 | 12 | @interface UIView (WebCacheOperation) 13 | 14 | /** 15 | * Set the image load operation (storage in a UIView based dictionary) 16 | * 17 | * @param operation the operation 18 | * @param key key for storing the operation 19 | */ 20 | - (void)sd_setImageLoadOperation:(id)operation forKey:(NSString *)key; 21 | 22 | /** 23 | * Cancel all operations for the current UIView and key 24 | * 25 | * @param key key for identifying the operations 26 | */ 27 | - (void)sd_cancelImageLoadOperationWithKey:(NSString *)key; 28 | 29 | /** 30 | * Just remove the operations corresponding to the current UIView and key without cancelling them 31 | * 32 | * @param key key for identifying the operations 33 | */ 34 | - (void)sd_removeImageLoadOperationWithKey:(NSString *)key; 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /Pods/Target Support Files/AFNetworking/AFNetworking-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_AFNetworking : NSObject 3 | @end 4 | @implementation PodsDummy_AFNetworking 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/AFNetworking/AFNetworking-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #ifndef TARGET_OS_IOS 14 | #define TARGET_OS_IOS TARGET_OS_IPHONE 15 | #endif 16 | 17 | #ifndef TARGET_OS_WATCH 18 | #define TARGET_OS_WATCH 0 19 | #endif 20 | -------------------------------------------------------------------------------- /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 = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/AFNetworking" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" 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 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/AFNetworking 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/FDFullscreenPopGesture/FDFullscreenPopGesture-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_FDFullscreenPopGesture : NSObject 3 | @end 4 | @implementation PodsDummy_FDFullscreenPopGesture 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/FDFullscreenPopGesture/FDFullscreenPopGesture-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/FDFullscreenPopGesture/FDFullscreenPopGesture.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/FDFullscreenPopGesture 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/FDFullscreenPopGesture" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/FDFullscreenPopGesture" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/FDFullscreenPopGesture 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/FMDB/FMDB-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_FMDB : NSObject 3 | @end 4 | @implementation PodsDummy_FMDB 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/FMDB/FMDB-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/FMDB/FMDB.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/FMDB 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/FMDB" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/FMDB" 4 | OTHER_LDFLAGS = -l"sqlite3" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/FMDB 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJRefresh/MJRefresh-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_MJRefresh : NSObject 3 | @end 4 | @implementation PodsDummy_MJRefresh 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJRefresh/MJRefresh-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJRefresh/MJRefresh.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MJRefresh" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/MJRefresh" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/MJRefresh 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-SUMusic/Pods-SUMusic-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_SUMusic : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_SUMusic 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Reachability/Reachability-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Reachability : NSObject 3 | @end 4 | @implementation PodsDummy_Reachability 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Reachability/Reachability-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Reachability/Reachability.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Reachability 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Reachability" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Reachability" 4 | OTHER_LDFLAGS = -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 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Reachability 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDWebImage/SDWebImage-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_SDWebImage : NSObject 3 | @end 4 | @implementation PodsDummy_SDWebImage 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDWebImage/SDWebImage-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDWebImage/SDWebImage.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/SDWebImage" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/SDWebImage" 4 | 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 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/SDWebImage 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/pop/pop-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_pop : NSObject 3 | @end 4 | @implementation PodsDummy_pop 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/pop/pop-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/pop/pop.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_CXX_LANGUAGE_STANDARD = c++11 2 | CLANG_CXX_LIBRARY = libc++ 3 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/pop 4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 5 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/pop" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/pop" 6 | OTHER_LDFLAGS = -l"c++" 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_ROOT = ${SRCROOT} 10 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/pop 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | -------------------------------------------------------------------------------- /Pods/pop/LICENSE: -------------------------------------------------------------------------------- 1 | BSD License 2 | 3 | For Pop software 4 | 5 | Copyright (c) 2014, Facebook, Inc. All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without modification, 8 | are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name Facebook nor the names of its contributors may be used to 18 | endorse or promote products derived from this software without specific 19 | prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 22 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 23 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR 25 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 26 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 27 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 28 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 30 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | -------------------------------------------------------------------------------- /Pods/pop/pop/POP.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #ifndef POP_POP_H 11 | #define POP_POP_H 12 | 13 | #import 14 | 15 | #import 16 | #import 17 | #import 18 | #import 19 | #import 20 | #import 21 | #import 22 | #import 23 | #import 24 | #import 25 | #import 26 | #import 27 | #import 28 | #import 29 | 30 | #endif /* POP_POP_H */ 31 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPAction.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #ifndef POPACTION_H 11 | #define POPACTION_H 12 | 13 | #import 14 | 15 | #import 16 | 17 | #ifdef __cplusplus 18 | 19 | namespace POP { 20 | 21 | /** 22 | @abstract Disables Core Animation actions using RAII. 23 | @discussion The disablement of actions is scoped to the current transaction. 24 | */ 25 | class ActionDisabler 26 | { 27 | BOOL state; 28 | 29 | public: 30 | ActionDisabler() POP_NOTHROW 31 | { 32 | state = [CATransaction disableActions]; 33 | [CATransaction setDisableActions:YES]; 34 | } 35 | 36 | ~ActionDisabler() 37 | { 38 | [CATransaction setDisableActions:state]; 39 | } 40 | }; 41 | 42 | /** 43 | @abstract Enables Core Animation actions using RAII. 44 | @discussion The enablement of actions is scoped to the current transaction. 45 | */ 46 | class ActionEnabler 47 | { 48 | BOOL state; 49 | 50 | public: 51 | ActionEnabler() POP_NOTHROW 52 | { 53 | state = [CATransaction disableActions]; 54 | [CATransaction setDisableActions:NO]; 55 | } 56 | 57 | ~ActionEnabler() 58 | { 59 | [CATransaction setDisableActions:state]; 60 | } 61 | }; 62 | 63 | } 64 | 65 | #endif /* __cplusplus */ 66 | 67 | #endif /* POPACTION_H */ 68 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPAnimatablePropertyTypes.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | typedef void (^POPAnimatablePropertyReadBlock)(id obj, CGFloat values[]); 11 | typedef void (^POPAnimatablePropertyWriteBlock)(id obj, const CGFloat values[]); 12 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPAnimationEventInternal.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "POPAnimationEvent.h" 13 | 14 | @interface POPAnimationEvent () 15 | 16 | /** 17 | @abstract Default initializer. 18 | */ 19 | - (instancetype)initWithType:(POPAnimationEventType)type time:(CFTimeInterval)time; 20 | 21 | /** 22 | @abstract Readwrite redefinition of public property. 23 | */ 24 | @property (readwrite, nonatomic, copy) NSString *animationDescription; 25 | 26 | @end 27 | 28 | @interface POPAnimationValueEvent () 29 | 30 | /** 31 | @abstract Default initializer. 32 | */ 33 | - (instancetype)initWithType:(POPAnimationEventType)type time:(CFTimeInterval)time value:(id)value; 34 | 35 | /** 36 | @abstract Readwrite redefinition of public property. 37 | */ 38 | @property (readwrite, nonatomic, strong) id velocity; 39 | 40 | @end 41 | 42 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPAnimationExtras.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import 13 | #import 14 | 15 | /** 16 | @abstract The current drag coefficient. 17 | @discussion A value greater than 1.0 indicates Simulator slow-motion animations are enabled. Defaults to 1.0. 18 | */ 19 | extern CGFloat POPAnimationDragCoefficient(void); 20 | 21 | @interface CAAnimation (POPAnimationExtras) 22 | 23 | /** 24 | @abstract Apply the current drag coefficient to animation speed. 25 | @discussion Convenience utility to respect Simulator slow-motion animation settings. 26 | */ 27 | - (void)pop_applyDragCoefficient; 28 | 29 | @end 30 | 31 | @interface POPSpringAnimation (POPAnimationExtras) 32 | 33 | /** 34 | @abstract Converts from spring bounciness and speed to tension, friction and mass dynamics values. 35 | */ 36 | + (void)convertBounciness:(CGFloat)bounciness speed:(CGFloat)speed toTension:(CGFloat *)outTension friction:(CGFloat *)outFriction mass:(CGFloat *)outMass; 37 | 38 | /** 39 | @abstract Converts from dynamics tension, friction and mass to spring bounciness and speed values. 40 | */ 41 | + (void)convertTension:(CGFloat)tension friction:(CGFloat)friction toBounciness:(CGFloat *)outBounciness speed:(CGFloat *)outSpeed; 42 | 43 | @end 44 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPAnimationPrivate.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #define POP_ANIMATION_FRICTION_FOR_QC_FRICTION(qcFriction) (25.0 + (((qcFriction - 8.0) / 2.0) * (25.0 - 19.0))) 13 | #define POP_ANIMATION_TENSION_FOR_QC_TENSION(qcTension) (194.0 + (((qcTension - 30.0) / 50.0) * (375.0 - 194.0))) 14 | 15 | #define QC_FRICTION_FOR_POP_ANIMATION_FRICTION(fbFriction) (8.0 + 2.0 * ((fbFriction - 25.0)/(25.0 - 19.0))) 16 | #define QC_TENSION_FOR_POP_ANIMATION_TENSION(fbTension) (30.0 + 50.0 * ((fbTension - 194.0)/(375.0 - 194.0))) 17 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPDefines.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #ifndef POP_POPDefines_h 11 | #define POP_POPDefines_h 12 | 13 | #import 14 | 15 | #ifdef __cplusplus 16 | # define POP_EXTERN_C_BEGIN extern "C" { 17 | # define POP_EXTERN_C_END } 18 | #else 19 | # define POP_EXTERN_C_BEGIN 20 | # define POP_EXTERN_C_END 21 | #endif 22 | 23 | #define POP_ARRAY_COUNT(x) sizeof(x) / sizeof(x[0]) 24 | 25 | #if defined (__cplusplus) && defined (__GNUC__) 26 | # define POP_NOTHROW __attribute__ ((nothrow)) 27 | #else 28 | # define POP_NOTHROW 29 | #endif 30 | 31 | #if defined(POP_USE_SCENEKIT) 32 | # if TARGET_OS_MAC || TARGET_OS_IPHONE 33 | # define SCENEKIT_SDK_AVAILABLE 1 34 | # endif 35 | #endif 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 介绍 2 | 在线音乐电台类APP,采用豆瓣电台接口,gitHub地址:[电台律动](https://github.com/DaMingShen/SUMusic) 3 | 4 | # 功能 5 | 1、登录功能(豆瓣接口) 6 | 2、电台频道切换功能(豆瓣接口) 7 | 3、跳过当前歌曲、红心歌曲、ban掉歌曲功能(豆瓣接口) 8 | 4、显示歌词功能(豆瓣接口) 9 | 5、收藏频道功能(本地储存) 10 | 6、离线歌曲功能(本地储存) 11 | 7、分享歌曲到微博、朋友圈功能 12 | 8、Play Center 13 | 9、Remote Control 14 | 10、事件打断处理 15 | 11、网络状态处理 16 | 17 | # 界面 18 | 更多界面请下载查看 19 | 1、播放界面 20 | 21 | ![播放界面](http://upload-images.jianshu.io/upload_images/1644426-658f67e82f3ed192.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 22 | 23 | 2、频道列表 24 | 25 | ![频道列表](http://upload-images.jianshu.io/upload_images/1644426-41051360b3c9e282.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 26 | 27 | 3、我的页面 28 | 29 | ![我的页面](http://upload-images.jianshu.io/upload_images/1644426-24e3f9bb2a12fa31.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 30 | 31 | 4、离线歌曲列表 32 | 33 | ![离线歌曲列表](http://upload-images.jianshu.io/upload_images/1644426-0128a9259b9e8b54.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 34 | -------------------------------------------------------------------------------- /SUMusic.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SUMusic.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /SUMusic.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SUMusic/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // SUMusic 4 | // 5 | // Created by KevinSu on 16/1/10. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "SUPlayerManager.h" 11 | #import "UserInfo.h" 12 | #import "PlayViewController.h" 13 | #import 14 | 15 | @interface AppDelegate : UIResponder 16 | 17 | @property (strong, nonatomic) UIWindow *window; 18 | 19 | /* 20 | * 用户信息 21 | */ 22 | @property (nonatomic, strong) UserInfo * userInfo; 23 | 24 | /* 25 | * 播放器类 26 | */ 27 | @property (nonatomic, strong) SUPlayerManager * player; 28 | 29 | /* 30 | * 播放界面 31 | */ 32 | @property (nonatomic, strong) PlayViewController * playView; 33 | 34 | /* 35 | * 网络状态 36 | */ 37 | @property (nonatomic, assign) NetworkStatus networkStatus; 38 | 39 | /* 40 | * 获取app代理 41 | */ 42 | + (AppDelegate *)delegate; 43 | 44 | /* 45 | * 更新NowPlayingCenter 46 | */ 47 | - (void)configNowPlayingCenter; 48 | 49 | @end 50 | 51 | -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/AppIcon.appiconset/Icon-120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Assets.xcassets/AppIcon.appiconset/Icon-120.png -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/AppIcon.appiconset/Icon-121.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Assets.xcassets/AppIcon.appiconset/Icon-121.png -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/AppIcon.appiconset/Icon-152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Assets.xcassets/AppIcon.appiconset/Icon-152.png -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/AppIcon.appiconset/Icon-180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Assets.xcassets/AppIcon.appiconset/Icon-180.png -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/AppIcon.appiconset/Icon-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Assets.xcassets/AppIcon.appiconset/Icon-29.png -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/AppIcon.appiconset/Icon-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Assets.xcassets/AppIcon.appiconset/Icon-40.png -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/AppIcon.appiconset/Icon-58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Assets.xcassets/AppIcon.appiconset/Icon-58.png -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/AppIcon.appiconset/Icon-59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Assets.xcassets/AppIcon.appiconset/Icon-59.png -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/AppIcon.appiconset/Icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Assets.xcassets/AppIcon.appiconset/Icon-76.png -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/AppIcon.appiconset/Icon-80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Assets.xcassets/AppIcon.appiconset/Icon-80.png -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/AppIcon.appiconset/Icon-81.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Assets.xcassets/AppIcon.appiconset/Icon-81.png -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/AppIcon.appiconset/Icon-87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Assets.xcassets/AppIcon.appiconset/Icon-87.png -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/ChannelDefault.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "cover.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/ChannelDefault.imageset/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Assets.xcassets/ChannelDefault.imageset/cover.png -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "8.0", 8 | "subtype" : "736h", 9 | "scale" : "3x" 10 | }, 11 | { 12 | "orientation" : "portrait", 13 | "idiom" : "iphone", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "8.0", 16 | "subtype" : "667h", 17 | "scale" : "2x" 18 | }, 19 | { 20 | "orientation" : "portrait", 21 | "idiom" : "iphone", 22 | "extent" : "full-screen", 23 | "minimum-system-version" : "7.0", 24 | "scale" : "2x" 25 | }, 26 | { 27 | "extent" : "full-screen", 28 | "idiom" : "iphone", 29 | "subtype" : "retina4", 30 | "filename" : "LaunchImage-700-568h@2x.png", 31 | "minimum-system-version" : "7.0", 32 | "orientation" : "portrait", 33 | "scale" : "2x" 34 | } 35 | ], 36 | "info" : { 37 | "version" : 1, 38 | "author" : "xcode" 39 | } 40 | } -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/LaunchImage.launchimage/LaunchImage-700-568h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Assets.xcassets/LaunchImage.launchimage/LaunchImage-700-568h@2x.png -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/Share_sina.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Share_sina@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 | } -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/Share_sina.imageset/Share_sina@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Assets.xcassets/Share_sina.imageset/Share_sina@2x.png -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/Share_timeline.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Share_timeline@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 | } -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/Share_timeline.imageset/Share_timeline@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Assets.xcassets/Share_timeline.imageset/Share_timeline@2x.png -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/Share_wechat.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Share_wechat@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 | } -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/Share_wechat.imageset/Share_wechat@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Assets.xcassets/Share_wechat.imageset/Share_wechat@2x.png -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/back_btn.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "navigationbar_back.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "navigationbar_back@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "navigationbar_back@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/back_btn.imageset/navigationbar_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Assets.xcassets/back_btn.imageset/navigationbar_back.png -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/back_btn.imageset/navigationbar_back@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Assets.xcassets/back_btn.imageset/navigationbar_back@2x.png -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/back_btn.imageset/navigationbar_back@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Assets.xcassets/back_btn.imageset/navigationbar_back@3x.png -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/downLoad.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "userinfo_relationship_indicator_download_default@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "userinfo_relationship_indicator_download_default@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/downLoad.imageset/userinfo_relationship_indicator_download_default@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Assets.xcassets/downLoad.imageset/userinfo_relationship_indicator_download_default@2x.png -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/downLoad.imageset/userinfo_relationship_indicator_download_default@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Assets.xcassets/downLoad.imageset/userinfo_relationship_indicator_download_default@3x.png -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/loading.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_freshen_loading_icon@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 | } -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/loading.imageset/ic_freshen_loading_icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Assets.xcassets/loading.imageset/ic_freshen_loading_icon@2x.png -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/logo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Icon-152.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/logo.imageset/Icon-152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Assets.xcassets/logo.imageset/Icon-152.png -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/navbar_back.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "navigationbar_back_withtext@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "navigationbar_back_withtext@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/navbar_back.imageset/navigationbar_back_withtext@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Assets.xcassets/navbar_back.imageset/navigationbar_back_withtext@2x.png -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/navbar_back.imageset/navigationbar_back_withtext@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Assets.xcassets/navbar_back.imageset/navigationbar_back_withtext@3x.png -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/network_404.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "sapi_404@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 | } -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/network_404.imageset/sapi_404@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Assets.xcassets/network_404.imageset/sapi_404@2x.png -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/user_avatar.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "user_avatar.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Assets.xcassets/user_avatar.imageset/user_avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Assets.xcassets/user_avatar.imageset/user_avatar.png -------------------------------------------------------------------------------- /SUMusic/Controller/BaseViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // BaseViewController.h 3 | // SUMusic 4 | // 5 | // Created by KevinSu on 16/1/17. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface BaseViewController : UIViewController 12 | 13 | 14 | #pragma mark ===========================消息相关============================ 15 | 16 | - (void)ToastMessage:(NSString *)message; 17 | - (void)showAlert:(NSString *)message; 18 | 19 | //显示动画 20 | - (void)showLoadingAni; 21 | - (void)hideAni; 22 | - (UIView *)showLoadingInView:(UIView *)sender; 23 | - (void)hideLoading:(UIView *)loadingView; 24 | 25 | #pragma mark ===========================导航相关============================ 26 | - (void)setNavigationTitle:(NSString *)title; 27 | - (void)setNavigationTitleView:(UIView *)view; 28 | - (void)setStatusBarStyle:(UIStatusBarStyle)style; 29 | - (UIBarButtonItem *)setNavigationLeft:(NSString *)imageName sel:(SEL)sel; 30 | - (UIBarButtonItem *)setNavigationRight:(NSString *)imageName sel:(SEL)sel; 31 | - (UIBarButtonItem *)setNavigationRightButton:(NSString *)btnName sel:(SEL)sel; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /SUMusic/Controller/ChannelListViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // HomeViewController.h 3 | // SUMusic 4 | // 5 | // Created by KevinSu on 16/1/17. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import "BaseViewController.h" 10 | 11 | @interface ChannelListViewController : BaseViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /SUMusic/Controller/CopyrightViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // CopyrightViewController.h 3 | // SUMusic 4 | // 5 | // Created by KevinSu on 16/1/17. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import "BaseViewController.h" 10 | 11 | @interface CopyrightViewController : BaseViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /SUMusic/Controller/CopyrightViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // CopyrightViewController.m 3 | // SUMusic 4 | // 5 | // Created by KevinSu on 16/1/17. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import "CopyrightViewController.h" 10 | 11 | @interface CopyrightViewController () 12 | 13 | @end 14 | 15 | @implementation CopyrightViewController 16 | 17 | - (void)viewDidLoad { 18 | [super viewDidLoad]; 19 | 20 | self.title = @"版权声明"; 21 | } 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /SUMusic/Controller/DownLoadingViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // DownLoadingViewController.h 3 | // SUMusic 4 | // 5 | // Created by KevinSu on 16/2/9. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import "BaseViewController.h" 10 | 11 | @interface DownLoadingViewController : BaseViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /SUMusic/Controller/HomeViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // HomeViewController.h 3 | // SUMusic 4 | // 5 | // Created by KevinSu on 16/1/17. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import "BaseViewController.h" 10 | 11 | @interface HomeViewController : BaseViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /SUMusic/Controller/LoginPage.h: -------------------------------------------------------------------------------- 1 | // 2 | // LoginPage.h 3 | // LazyWeather 4 | // 5 | // Created by 万众科技 on 15/10/27. 6 | // Copyright © 2015年 SuXiaoMing. All rights reserved. 7 | // 8 | 9 | #import "BaseViewController.h" 10 | 11 | @interface LoginPage : BaseViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /SUMusic/Controller/MineViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MineViewController.h 3 | // SUMusic 4 | // 5 | // Created by KevinSu on 16/1/17. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import "BaseViewController.h" 10 | 11 | @interface MineViewController : BaseViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /SUMusic/Controller/MyFavorViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MyFavorViewController.h 3 | // SUMusic 4 | // 5 | // Created by 万众科技 on 16/2/1. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import "BaseViewController.h" 10 | 11 | @interface MyFavorViewController : BaseViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /SUMusic/Controller/MyOffLineViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MyOffLineViewController.h 3 | // SUMusic 4 | // 5 | // Created by 万众科技 on 16/2/2. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import "BaseViewController.h" 10 | 11 | @interface MyOffLineViewController : BaseViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /SUMusic/Controller/MySharedViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MySharedViewController.h 3 | // SUMusic 4 | // 5 | // Created by 万众科技 on 16/2/2. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import "BaseViewController.h" 10 | 11 | @interface MySharedViewController : BaseViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /SUMusic/Controller/PlayViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // PlayViewController.h 3 | // SUMusic 4 | // 5 | // Created by KevinSu on 16/1/17. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import "BaseViewController.h" 10 | 11 | @interface PlayViewController : BaseViewController 12 | 13 | /** 14 | * 界面 15 | */ 16 | - (void)show; 17 | 18 | - (void)launchShow; 19 | 20 | - (IBAction)hide:(UIButton *)sender; 21 | 22 | /** 23 | * 下一首歌曲 24 | */ 25 | - (IBAction)skipSong:(UIButton *)sender; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /SUMusic/Controller/SettingViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // SettingViewController.h 3 | // SUMusic 4 | // 5 | // Created by KevinSu on 16/2/13. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import "BaseViewController.h" 10 | 11 | @interface SettingViewController : BaseViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /SUMusic/Define/DouAPI.h: -------------------------------------------------------------------------------- 1 | // 2 | // DouAPI.h 3 | // SUMusic 4 | // 5 | // Created by KevinSu on 16/1/12. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | /* 9 | https://github.com/zonyitoo/doubanfm-qt/wiki/豆瓣FM-API 10 | http://my.oschina.net/itfanr/blog/195130?fromerr=FotLJtKf 11 | http://blog.sina.com.cn/s/blog_6f58a6200100zdvr.html 12 | https://www.zhihu.com/question/19679351/answer/19145520 13 | */ 14 | 15 | #ifndef DouAPI_h 16 | #define DouAPI_h 17 | 18 | #pragma mark - 登陆 19 | #define DOU_API_Login @"http://www.douban.com/j/app/login" 20 | 21 | #pragma mark - 频道(Channels) 22 | #define DOU_API_Channels @"http://www.douban.com/j/app/radio/channels" 23 | 24 | #pragma mark - 歌曲列表(未登陆) 25 | #define DOU_API_PlayList @"http://www.douban.com/j/app/radio/people?type=%@&sid=%@&pt=%@&channel=%@&app_name=radio_android&version=100" 26 | 27 | #pragma mark - 歌曲列表(已登陆) 28 | #define DOU_API_PlayList_Login @"http://www.douban.com/j/app/radio/people?type=%@&sid=%@&pt=%@&channel=%@&app_name=radio_android&version=100&user_id=%@&expire=%@&token=%@" 29 | 30 | #pragma mark - 歌词 31 | #define DOU_API_Lyric @"http://api.douban.com/v2/fm/lyric" 32 | 33 | #endif /* DouAPI_h */ 34 | -------------------------------------------------------------------------------- /SUMusic/Expand/DB/SuDBManager+private.h: -------------------------------------------------------------------------------- 1 | // 2 | // SuDBManager+private.h 3 | // DBTest 4 | // 5 | // Created by 万众科技 on 15/11/27. 6 | // Copyright © 2015年 万众科技. All rights reserved. 7 | // 8 | 9 | #import "SuDBManager.h" 10 | 11 | @interface SuDBManager (private) 12 | 13 | /** 14 | * 将内容存储到指定数据库的表中 15 | * 16 | * @param dictContent 要存储的内容(包含主键) 17 | * @param primaryKey 表主键,不能为nil 18 | * @param tableName 表名称 19 | * @param dbFile 数据库文件,路径+文件名 20 | */ 21 | + (void)save:(NSDictionary *)dictContent 22 | primaryKey:(NSString *)primaryKey 23 | inTable:(NSString *)tableName 24 | inDBFile:(NSString *)dbFile; 25 | 26 | /** 27 | * 读取指定的内容 28 | * 29 | * @param dictCondition 条件关键字,格式为:{字段:值} 30 | * @param fields 查询的字段,格式为字符串数组 31 | * @param tableName 表名称 32 | * @param dbFile 数据库文件,路径+文件名 33 | * 34 | * @return 结果数组,包含字典,字典格式为:{字段:值} 35 | */ 36 | + (NSArray *)fetchWithCondition:(NSDictionary *)dictCondition 37 | forFields:(NSArray *)fields 38 | inTable:(NSString *)tableName 39 | inDBFile:(NSString *)dbFile; 40 | 41 | /** 42 | * 删除指定的内容 43 | * 44 | * @param dictCondition 条件关键字,格式为:{字段:值} 45 | * @param tableName 表名称 46 | * @param dbFile 数据库文件,路径+文件名 47 | */ 48 | + (void)deleteWithCondition:(NSDictionary *)dictCondition 49 | inTable:(NSString *)tableName 50 | inDBFile:(NSString *)dbFile; 51 | 52 | 53 | 54 | @end 55 | -------------------------------------------------------------------------------- /SUMusic/Expand/DB/SuDBManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // SuDBManager.h 3 | // DBTest 4 | // 5 | // Created by 万众科技 on 15/11/27. 6 | // Copyright © 2015年 万众科技. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | @interface SuDBManager : NSObject 13 | 14 | #pragma mark - 离线(未下载列表) 15 | /* 16 | * 保存歌曲到待离线歌曲列表 17 | */ 18 | + (void)saveToDownList; 19 | 20 | /* 21 | * 获取待离线歌曲列表 22 | */ 23 | + (NSArray *)fetchDownList; 24 | 25 | /* 26 | * 从待离线歌曲列表删除歌曲 27 | */ 28 | + (void)deleteFromDownListWithSid:(NSString *)sid; 29 | 30 | /* 31 | * 从待离线歌曲列表获取歌曲信息 32 | */ 33 | + (SongInfo *)fetchSongInfoWithSid:(NSString *)sid; 34 | 35 | #pragma mark - 离线(已下载列表) 36 | /* 37 | * 保存歌曲到已离线歌曲列表 38 | */ 39 | + (void)saveToOffLineListWithSongInfo:(SongInfo *)info; 40 | 41 | /* 42 | * 获取已离线歌曲列表 43 | */ 44 | + (NSArray *)fetchOffLineList; 45 | 46 | /* 47 | * 从离线歌曲列表删除歌曲 48 | */ 49 | + (void)deleteFromOffLineListWithSid:(NSString *)sid; 50 | 51 | #pragma mark - 收藏 52 | /* 53 | * 收藏当前频道 54 | */ 55 | + (void)saveToFavorList; 56 | 57 | /* 58 | * 获取收藏频道列表 59 | */ 60 | + (NSArray *)fetchFavorList; 61 | 62 | /* 63 | * 取消收藏当前频道 64 | */ 65 | + (void)deleteFromFavorListWithSid:(NSString *)sid; 66 | 67 | #pragma mark - 分享的歌曲 68 | /* 69 | * 保存当前歌曲到分享歌曲列表 70 | */ 71 | + (void)saveToSharedList; 72 | 73 | /* 74 | * 获取分享歌曲列表 75 | */ 76 | + (NSArray *)fetchSharedList; 77 | 78 | @end 79 | -------------------------------------------------------------------------------- /SUMusic/Expand/SSSJson/NSObject+SSS.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSObject+SSS.h 3 | // SSSJsonModel 4 | // 5 | // Created by KevinSu on 15/12/16. 6 | // Copyright © 2015年 SuXiaoMing. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface NSObject (SSS) 12 | 13 | /* 14 | * 将Json转化成Model(全部解析成字符串) 15 | */ 16 | - (_Nullable id)initWithStringDict:(NSDictionary * _Nonnull )dict; 17 | 18 | /* 19 | * 将Json转化成Model(对空值不作处理) 20 | */ 21 | - (_Nullable id)initWithOriginalDict:( NSDictionary * _Nonnull )dict; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /SUMusic/Expand/SSSJson/SSSJsonManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // SSSJsonManager.h 3 | // SSSJsonModel 4 | // 5 | // Created by KevinSu on 15/12/16. 6 | // Copyright © 2015年 SuXiaoMing. All rights reserved. 7 | // 8 | 9 | #ifndef SSSJsonManager_h 10 | #define SSSJsonManager_h 11 | 12 | #import "NSObject+SSS.h" 13 | 14 | #endif /* SSSJsonManager_h */ 15 | -------------------------------------------------------------------------------- /SUMusic/Expand/SuUtility/Extension/NSDate+SU.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSDate+SuExt.h 3 | // SuUtility 4 | // 5 | // Created by KevinSu on 15/10/17. 6 | // Copyright (c) 2015年 SuXiaoMing. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface NSDate (SU) 12 | 13 | /** 14 | * 获取当前时间 15 | */ 16 | + (NSDate *)localDate; 17 | 18 | /** 19 | * 是否为今天 20 | */ 21 | - (BOOL)isToday; 22 | 23 | /** 24 | * 是否为昨天 25 | */ 26 | - (BOOL)isYesterday; 27 | 28 | /** 29 | * 是否为今年 30 | */ 31 | - (BOOL)isThisYear; 32 | 33 | /** 34 | * 返回一个只有年月日的时间 35 | */ 36 | - (NSDate *)dateWithYMD; 37 | 38 | /** 39 | * 获得与当前时间的差距 40 | */ 41 | - (NSDateComponents *)deltaWithNow; 42 | 43 | @end 44 | -------------------------------------------------------------------------------- /SUMusic/Expand/SuUtility/Extension/NSDictionary+SU.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSDictionary+SuExt.h 3 | // NewsReader 4 | // 5 | // Created by KevinSu on 15/10/17. 6 | // Copyright (c) 2015年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface NSDictionary (SU) 12 | 13 | 14 | /* 15 | * 从字典取值,并转化成字符串 16 | * nil和null值判断,返回空字符串 17 | */ 18 | - (NSString *)getObjectFromKey:(NSString *)key; 19 | 20 | 21 | /* 22 | * @brief 把格式化的JSON格式的字符串转换成字典 23 | * @param jsonString JSON格式的字符串 24 | * @return 返回字典 25 | */ 26 | + (NSDictionary *)dictionaryWithJsonString:(NSString *)jsonString; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /SUMusic/Expand/SuUtility/Extension/NSDictionary+SU.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSDictionary+SuExt.m 3 | // NewsReader 4 | // 5 | // Created by KevinSu on 15/10/17. 6 | // Copyright (c) 2015年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import "NSDictionary+SU.h" 10 | 11 | @implementation NSDictionary (SU) 12 | 13 | - (NSString *)getObjectFromKey:(NSString *)key { 14 | 15 | NSString * obj = [self valueForKey:key]; 16 | 17 | if (obj == nil || [obj isKindOfClass:[NSNull class]]) { 18 | return @""; 19 | } 20 | 21 | return [NSString stringWithFormat:@"%@",obj]; 22 | } 23 | 24 | + (NSDictionary *)dictionaryWithJsonString:(NSString *)jsonString { 25 | 26 | if (jsonString == nil) { 27 | 28 | return nil; 29 | } 30 | 31 | NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; 32 | 33 | NSError *err; 34 | NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&err]; 35 | 36 | if(err) { 37 | 38 | return nil; 39 | } 40 | 41 | return dic; 42 | } 43 | 44 | #if 0 45 | - (NSString *)descriptionWithLocale:(id)locale 46 | { 47 | // 在iOS中,如果数据包含在数组或者字典中,直接打印看不到结果,所以需要重写此方法,修正此BUG 48 | NSMutableString *strM = [NSMutableString stringWithString:@"{\n"]; 49 | 50 | [self enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { 51 | [strM appendFormat:@"\t%@ = %@,\n", key, obj]; 52 | }]; 53 | 54 | [strM appendString:@"}"]; 55 | return strM; 56 | } 57 | #endif 58 | 59 | @end 60 | -------------------------------------------------------------------------------- /SUMusic/Expand/SuUtility/Extension/NSString+SU.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSString+SuExt.h 3 | // SuUtility 4 | // 5 | // Created by KevinSu on 15/10/17. 6 | // Copyright (c) 2015年 SuXiaoMing. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface NSString (SU) 12 | 13 | /** 14 | * 将url进行encode成UTF8格式的编码 15 | */ 16 | - (NSString *)URLEncodedString; 17 | 18 | /** 19 | * 将一个对象转成字符串 20 | */ 21 | - (NSString *)stringWith:(id)obj; 22 | 23 | /** 24 | * 追加文档目录 25 | */ 26 | - (NSString *)appendDocumentDir; 27 | 28 | /** 29 | * 追加缓存目录 30 | */ 31 | - (NSString *)appendCacheDir; 32 | 33 | /** 34 | * 追加临时目录 35 | */ 36 | - (NSString *)appendTempDir; 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /SUMusic/Expand/SuUtility/Extension/UIColor+SU.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIColor+SuExt.h 3 | // SuUtility 4 | // 5 | // Created by KevinSu on 15/10/17. 6 | // Copyright (c) 2015年 SuXiaoMing. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIColor (SU) 12 | 13 | /*由16进制字符串获取颜色*/ 14 | + (UIColor *)colorWithHexRGB:(NSString *)hexRGBString; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /SUMusic/Expand/SuUtility/Extension/UIColor+SU.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIColor+SuExt.m 3 | // SuUtility 4 | // 5 | // Created by KevinSu on 15/10/17. 6 | // Copyright (c) 2015年 SuXiaoMing. All rights reserved. 7 | // 8 | 9 | #import "UIColor+SU.h" 10 | 11 | @implementation UIColor (SU) 12 | 13 | + (UIColor *)colorWithHexRGB:(NSString *)hexRGBString 14 | { 15 | 16 | if ([hexRGBString hasPrefix:@"#"]) { 17 | 18 | hexRGBString = [hexRGBString substringFromIndex:1]; 19 | } 20 | unsigned int colorCode = 0; 21 | unsigned char redByte, greenByte, blueByte; 22 | 23 | if (hexRGBString) { 24 | NSScanner *scanner = [NSScanner scannerWithString:hexRGBString]; 25 | [scanner scanHexInt:&colorCode]; 26 | } 27 | redByte = (unsigned char) (colorCode >> 16); 28 | greenByte = (unsigned char) (colorCode >> 8); 29 | blueByte = (unsigned char) (colorCode); // masks off high bits 30 | 31 | return [UIColor colorWithRed:(float)redByte/0xff green:(float)greenByte/0xff blue:(float)blueByte/0xff alpha:1.0]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /SUMusic/Expand/SuUtility/Extension/UILabel+SU.h: -------------------------------------------------------------------------------- 1 | // 2 | // UILabel+SuExt.h 3 | // SuUtility 4 | // 5 | // Created by KevinSu on 15/10/17. 6 | // Copyright (c) 2015年 SuXiaoMing. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UILabel (SU) 12 | 13 | /* 14 | 获得Label的大小,常用于自适应高度 15 | */ 16 | - (CGSize)boundsSize:(CGSize)size; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /SUMusic/Expand/SuUtility/Extension/UILabel+SU.m: -------------------------------------------------------------------------------- 1 | // 2 | // UILabel+SuExt.m 3 | // SuUtility 4 | // 5 | // Created by KevinSu on 15/10/17. 6 | // Copyright (c) 2015年 SuXiaoMing. All rights reserved. 7 | // 8 | 9 | #import "UILabel+SU.h" 10 | 11 | @implementation UILabel (SU) 12 | 13 | - (CGSize)boundsSize:(CGSize)size 14 | { 15 | CGSize resSize = CGSizeZero; 16 | if ([[[UIDevice currentDevice] systemVersion] compare:@"7.0"] != NSOrderedDescending) { 17 | NSDictionary *attribute = @{NSFontAttributeName:self.font}; 18 | 19 | resSize = [self.text boundingRectWithSize:size options:NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:attribute context:nil].size; 20 | } else { 21 | resSize = [self.text sizeWithFont:[UIFont systemFontOfSize:self.font.pointSize] constrainedToSize:CGSizeMake(size.width, CGFLOAT_MAX) lineBreakMode:NSLineBreakByWordWrapping]; 22 | } 23 | 24 | return resSize; 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /SUMusic/Expand/SuUtility/Extension/UITextField+SU.h: -------------------------------------------------------------------------------- 1 | // 2 | // UITextField+SuExt.h 3 | // SuUtility 4 | // 5 | // Created by KevinSu on 15/10/17. 6 | // Copyright (c) 2015年 SuXiaoMing. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UITextField (SU) 12 | 13 | /** 14 | 添加文件输入框左边的View,添加图片 15 | */ 16 | -(void)addLeftViewWithImage:(NSString *)image; 17 | 18 | /** 19 | * 判断是否为手机号码 20 | */ 21 | -(BOOL)isTelphoneNum; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /SUMusic/Expand/SuUtility/Extension/UITextField+SU.m: -------------------------------------------------------------------------------- 1 | // 2 | // UITextField+SuExt.m 3 | // SuUtility 4 | // 5 | // Created by KevinSu on 15/10/17. 6 | // Copyright (c) 2015年 SuXiaoMing. All rights reserved. 7 | // 8 | 9 | #import "UITextField+SU.h" 10 | 11 | @implementation UITextField (SU) 12 | 13 | -(void)addLeftViewWithImage:(NSString *)image{ 14 | 15 | 16 | // 密码输入框左边图片 17 | UIImageView *lockIv = [[UIImageView alloc] init]; 18 | 19 | // 设置尺寸 20 | CGRect imageBound = self.bounds; 21 | // 宽度高度一样 22 | imageBound.size.width = imageBound.size.height; 23 | lockIv.bounds = imageBound; 24 | 25 | // 设置图片 26 | lockIv.image = [UIImage imageNamed:image]; 27 | 28 | // 设置图片居中显示 29 | lockIv.contentMode = UIViewContentModeCenter; 30 | 31 | // 添加TextFiled的左边视图 32 | self.leftView = lockIv; 33 | 34 | // 设置TextField左边的总是显示 35 | self.leftViewMode = UITextFieldViewModeAlways; 36 | } 37 | 38 | 39 | -(BOOL)isTelphoneNum{ 40 | 41 | NSString *telRegex = @"^1[3578]\\d{9}$"; 42 | NSPredicate *prediate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", telRegex]; 43 | return [prediate evaluateWithObject:self.text]; 44 | } 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /SUMusic/Expand/SuUtility/Extension/UIView+SU.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+SuExt.h 3 | // SuUtility 4 | // 5 | // Created by KevinSu on 15/10/17. 6 | // Copyright (c) 2015年 SuXiaoMing. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIView (SU) 12 | 13 | 14 | /* 15 | 设置或返回View的 x y h w 16 | */ 17 | @property (nonatomic, assign) float h; 18 | @property (nonatomic, assign) float w; 19 | @property (nonatomic, assign) float x; 20 | @property (nonatomic, assign) float y; 21 | @property (nonatomic, assign) CGFloat centerX; 22 | @property (nonatomic, assign) CGFloat centerY; 23 | @property (nonatomic, assign) CGSize size; 24 | @property (nonatomic, assign) CGPoint origin; 25 | 26 | 27 | @property (nonatomic,readonly) float top; 28 | @property (nonatomic,readonly) float bottom; 29 | @property (nonatomic,readonly) float left; 30 | @property (nonatomic,readonly) float right; 31 | 32 | /* 33 | 画像素为1的线 34 | */ 35 | + (instancetype)drawVerticalLineWithFrame:(CGRect)frame; 36 | + (instancetype)drawHorizonLineWithFrame:(CGRect)frame; 37 | 38 | - (void)startShakeAnimation;//摇动动画 39 | - (void)stopShakeAnimation; 40 | - (void)startRotateAnimation;//360°旋转动画 41 | - (void)stopRotateAnimation; 42 | 43 | ///截图 44 | - (UIImage *)screenshot; 45 | 46 | - (void)startTransitionAnimation; 47 | 48 | @end 49 | -------------------------------------------------------------------------------- /SUMusic/Expand/SuUtility/Extension/UIWindow+SU.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIWindow+SuExt.h 3 | // SuUtility 4 | // 5 | // Created by KevinSu on 15/10/17. 6 | // Copyright (c) 2015年 SuXiaoMing. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIWindow (SU) 12 | 13 | 14 | /* 15 | 是否显示新特性页面 16 | */ 17 | - (void)chooseRootViewControllerWithNewFeatureController:(UIViewController *)loginVC homeController:(UIViewController *)homeVC; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /SUMusic/Expand/SuUtility/Extension/UIWindow+SU.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIWindow+SuExt.m 3 | // SuUtility 4 | // 5 | // Created by KevinSu on 15/10/17. 6 | // Copyright (c) 2015年 SuXiaoMing. All rights reserved. 7 | // 8 | 9 | #import "UIWindow+SU.h" 10 | 11 | @implementation UIWindow (SU) 12 | 13 | - (void)chooseRootViewControllerWithNewFeatureController:(UIViewController *)newFeatureVC homeController:(UIViewController *)homeVC { 14 | 15 | // 判断是否显示新特性 16 | NSString *currentVersion = [NSBundle mainBundle].infoDictionary[@"CFBundleShortVersionString"]; 17 | 18 | NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 19 | NSString *localVersion = [defaults objectForKey:@"CFBundleShortVersionString"]; 20 | 21 | UIWindow *window = [UIApplication sharedApplication].keyWindow; 22 | if ([currentVersion compare:localVersion] == NSOrderedDescending) { 23 | 24 | window.rootViewController = newFeatureVC; 25 | 26 | [defaults setObject:currentVersion forKey:@"CFBundleShortVersionString"]; 27 | [defaults synchronize]; 28 | } else { 29 | window.rootViewController = homeVC; 30 | } 31 | } 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /SUMusic/Expand/SuUtility/Inherit/SuButton.h: -------------------------------------------------------------------------------- 1 | // 2 | // SuButton.h 3 | // SuUtility 4 | // 5 | // Created by KevinSu on 15/10/18. 6 | // Copyright (c) 2015年 SuXiaoMing. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SuButton : UIButton 12 | 13 | @property (nonatomic,copy) void(^buttonAction)(SuButton * button); 14 | 15 | #pragma mark 系统按钮,自定义标题,字体 16 | + (instancetype)systemButtonWithFrame:(CGRect)frame title:(NSString *)title font:(UIFont *)font; 17 | 18 | 19 | #pragma mark 自定义按钮,自定义标题,字体 20 | + (instancetype)customButtonWithFrame:(CGRect)frame title:(NSString *)title font:(UIFont *)font titleColor:(UIColor *)color; 21 | 22 | + (instancetype)customButtonWithFrame:(CGRect)frame normalImage:(NSString *)normalImage highLightedImage:(NSString *)highLightedImage; 23 | 24 | + (instancetype)customButtonWithFrame:(CGRect)frame normalImage:(NSString *)normalImage selectedImage:(NSString *)selectedImage disableImage:(NSString *)disableImage; 25 | 26 | + (instancetype)customButtonWithFrame:(CGRect)frame titlt:(NSString *)title normalBGImage:(NSString *)normalImage selectedBGImage:(NSString *)selectedImage disableBGImage:(NSString *)disableImage; 27 | 28 | /* 29 | 重写layoutSubviews方法设置图片文字垂直排列 30 | */ 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /SUMusic/Expand/SuUtility/Inherit/SuCaptureCodeView.h: -------------------------------------------------------------------------------- 1 | // 2 | // SuCaptureCodeView.h 3 | // SuUtility 4 | // 5 | // Created by KevinSu on 15/10/17. 6 | // Copyright (c) 2015年 SuXiaoMing. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface SuCaptureCodeView : UIView 13 | 14 | 15 | /* 16 | 扫描二维码 17 | */ 18 | + (void)startCaptureWithPreView:(UIView *)preView Content:(void(^)(BOOL *stop,AVMetadataMachineReadableCodeObject *content))content; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /SUMusic/Expand/SuUtility/Inherit/SuTabBarController.h: -------------------------------------------------------------------------------- 1 | // 2 | // SuTabBarController.h 3 | // tabbartest 4 | // 5 | // Created by KevinSu on 15/11/4. 6 | // Copyright (c) 2015年 SuXiaoMing. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SuTabBarController : UITabBarController 12 | 13 | @property (nonatomic, strong) NSArray * VCs; 14 | @property (nonatomic, strong) NSArray * Titles; 15 | @property (nonatomic, strong) NSArray * Imgs; 16 | @property (nonatomic, strong) NSArray * SelectedImgs; 17 | 18 | @property (nonatomic, strong) UIView * customTabbar; 19 | @property (nonatomic, assign) BOOL tabbarHidden; 20 | 21 | 22 | 23 | @property (nonatomic, strong) NSMutableArray * buttonItemArray; 24 | - (void)creatVCs; 25 | - (void)selectedBarItemWithTag:(NSInteger)tag; 26 | @end 27 | -------------------------------------------------------------------------------- /SUMusic/Expand/SuUtility/SuCategory.h: -------------------------------------------------------------------------------- 1 | // 2 | // SuCategory.h 3 | // SuUtility 4 | // 5 | // Created by KevinSu on 15/10/19. 6 | // Copyright (c) 2015年 SuXiaoMing. All rights reserved. 7 | // 8 | 9 | #ifndef SuUtility_SuCategory_h 10 | #define SuUtility_SuCategory_h 11 | 12 | #import "NSDictionary+SU.h" 13 | #import "NSDate+SU.h" 14 | #import "NSString+SU.h" 15 | #import "UIImage+SU.h" 16 | #import "UILabel+SU.h" 17 | #import "UIWindow+SU.h" 18 | #import "UIButton+SU.h" 19 | #import "UITextField+SU.h" 20 | #import "UIView+SU.h" 21 | #import "UIColor+SU.h" 22 | 23 | #import "SuButton.h" 24 | #import "SuCaptureCodeView.h" 25 | #import "SuTabBarController.h" 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /SUMusic/Expand/SuUtility/SuTool.h: -------------------------------------------------------------------------------- 1 | // 2 | // SuTool.h 3 | // SuUtility 4 | // 5 | // Created by KevinSu on 15/10/19. 6 | // Copyright (c) 2015年 SuXiaoMing. All rights reserved. 7 | // 8 | 9 | #ifndef SuUtility_SuTool_h 10 | #define SuUtility_SuTool_h 11 | 12 | #import "SuAppSetting.h" 13 | #import "SuFile.h" 14 | #import "SuString.h" 15 | #import "SuImageView.h" 16 | #import "SuNetworkMonitor.h" 17 | #import "SuLyricTool.h" 18 | 19 | //#import "WZOperation.h" 20 | 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /SUMusic/Expand/SuUtility/Tool/SuAppSetting.h: -------------------------------------------------------------------------------- 1 | // 2 | // SuAppSetting.h 3 | // SuUtility 4 | // 5 | // Created by KevinSu on 15/10/17. 6 | // Copyright (c) 2015年 SuXiaoMing. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SuAppSetting : NSObject 12 | 13 | /* 14 | 从UserDefault取值 15 | */ 16 | + (BOOL)getBool:(NSString *)key; 17 | 18 | /* 19 | 存值到UserDefault 20 | */ 21 | + (void)setBool:(BOOL)value forKey:(NSString *)key; 22 | 23 | /* 24 | 从UserDefault取值 25 | */ 26 | + (NSString *)getValue:(NSString *)key; 27 | 28 | /* 29 | 存值到UserDefault 30 | */ 31 | + (void)setValue:(id)value forKey:(NSString *)key; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /SUMusic/Expand/SuUtility/Tool/SuAppSetting.m: -------------------------------------------------------------------------------- 1 | // 2 | // SuAppSetting.m 3 | // SuUtility 4 | // 5 | // Created by KevinSu on 15/10/17. 6 | // Copyright (c) 2015年 SuXiaoMing. All rights reserved. 7 | // 8 | 9 | #import "SuAppSetting.h" 10 | 11 | @implementation SuAppSetting 12 | 13 | + (BOOL)getBool:(NSString *)key { 14 | 15 | NSUserDefaults *userDef = [NSUserDefaults standardUserDefaults]; 16 | 17 | return [userDef boolForKey:key]; 18 | } 19 | 20 | + (void)setBool:(BOOL)value forKey:(NSString *)key { 21 | 22 | NSUserDefaults *userDef = [NSUserDefaults standardUserDefaults]; 23 | 24 | [userDef setBool:value forKey:key]; 25 | [userDef synchronize]; 26 | } 27 | 28 | 29 | + (NSString *)getValue:(NSString *)key 30 | { 31 | NSUserDefaults *userDef = [NSUserDefaults standardUserDefaults]; 32 | 33 | return [userDef objectForKey:key]; 34 | } 35 | 36 | + (void)setValue:(id)value forKey:(NSString *)key 37 | { 38 | NSUserDefaults *userDef = [NSUserDefaults standardUserDefaults]; 39 | 40 | [userDef setObject:value forKey:key]; 41 | [userDef synchronize]; 42 | } 43 | 44 | @end 45 | -------------------------------------------------------------------------------- /SUMusic/Expand/SuUtility/Tool/SuImageView.h: -------------------------------------------------------------------------------- 1 | // 2 | // SuNav.h 3 | // LazyWeather 4 | // 5 | // Created by KevinSu on 15/10/27. 6 | // Copyright (c) 2015年 SuXiaoMing. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SuImageView : NSObject 12 | 13 | /* 14 | * 寻找1像素的线(可以用来隐藏导航栏下面的黑线) 15 | */ 16 | + (UIImageView *)findHairlineImageViewUnder:(UIView *)view; 17 | 18 | //对图片尺寸进行压缩-- 19 | -(UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /SUMusic/Expand/SuUtility/Tool/SuImageView.m: -------------------------------------------------------------------------------- 1 | // 2 | // SuNav.m 3 | // LazyWeather 4 | // 5 | // Created by KevinSu on 15/10/27. 6 | // Copyright (c) 2015年 SuXiaoMing. All rights reserved. 7 | // 8 | 9 | #import "SuImageView.h" 10 | 11 | @implementation SuImageView 12 | 13 | + (UIImageView *)findHairlineImageViewUnder:(UIView *)view { 14 | 15 | if ([view isKindOfClass:UIImageView.class] && view.bounds.size.height <= 1.0) { 16 | return (UIImageView *)view; 17 | } 18 | 19 | for (UIView * subview in view.subviews) { 20 | UIImageView * imageView = [self findHairlineImageViewUnder:subview]; 21 | if (imageView) { 22 | return imageView; 23 | } 24 | } 25 | return nil; 26 | } 27 | 28 | //对图片尺寸进行压缩-- 29 | -(UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize 30 | { 31 | // Create a graphics image context 32 | UIGraphicsBeginImageContext(newSize); 33 | 34 | // Tell the old image to draw in this new context, with the desired 35 | // new size 36 | [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)]; 37 | 38 | // Get the new image from the context 39 | UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext(); 40 | 41 | // End the context 42 | UIGraphicsEndImageContext(); 43 | 44 | // Return the new image. 45 | return newImage; 46 | } 47 | 48 | @end 49 | -------------------------------------------------------------------------------- /SUMusic/Expand/SuUtility/Tool/SuLyricTool.h: -------------------------------------------------------------------------------- 1 | // 2 | // SuLyricTool.h 3 | // SUMusic 4 | // 5 | // Created by 万众科技 on 16/1/25. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SuLyricTool : NSObject 12 | 13 | + (NSDictionary *)parseLyricStirng:(NSString *)lyricsString; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /SUMusic/Expand/SuUtility/Tool/SuNetworkMonitor.h: -------------------------------------------------------------------------------- 1 | // 2 | // SuNetwork.h 3 | // WanZhongLife 4 | // 5 | // Created by 万众科技 on 15/11/26. 6 | // Copyright © 2015年 com.revenco.company. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SuNetworkMonitor : NSObject 12 | 13 | + (instancetype)monitor; 14 | 15 | /** 16 | * 开启网络状态的监听 17 | */ 18 | - (void)startMonitorNetwork; 19 | 20 | - (BOOL)isWiFiEnable; 21 | 22 | - (BOOL)isNetworkEnable; 23 | 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /SUMusic/Expand/SuUtility/Tool/SuString.h: -------------------------------------------------------------------------------- 1 | // 2 | // SuString.h 3 | // SuUtility 4 | // 5 | // Created by KevinSu on 15/10/17. 6 | // Copyright (c) 2015年 SuXiaoMing. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SuString : NSObject 12 | 13 | /* 14 | * 对字符串进行URL编码转换 15 | */ 16 | + (NSString *)urlEncodeCovertString:(NSString *)source; 17 | 18 | /* 19 | * 将字典转换为JSON字典 20 | */ 21 | + (NSString *)dictionaryToJson:(NSDictionary *)dic; 22 | 23 | /* 24 | * 将字典数组转换为JSON数组 25 | */ 26 | + (NSString *)dictionaryArrayToJsonArray:(NSArray *)dicArray; 27 | 28 | 29 | /* 30 | * 将字符串转换为 31 | */ 32 | + (void)convertString:(NSString *)source toHexBytes:(unsigned char *)hexBuffer; 33 | 34 | /* 35 | * 将当前时间转换为时间戳字符串:since 1970,如@"1369118167" 36 | */ 37 | + (NSString *)intervalFromNowTime; 38 | 39 | /* 40 | * 删除中文输入法下的空格 41 | */ 42 | + (NSString *)deleteChinesSpace:(NSString *)sourceText; 43 | 44 | /* 45 | * 转化为字符串类型 46 | */ 47 | + (NSString *)stringFromObject:(id)obj; 48 | 49 | /* 50 | * 将URL的查询字符串放入字典中如:http://..?userName=name&password=password 51 | * 将查询字符串userName=name&password=password 放入字典 52 | */ 53 | + (NSDictionary *)parseURLQueryString:(NSString *)queryString; 54 | 55 | /* 56 | * 将unicode码转成普通文字.(\u6790) 57 | */ 58 | + (NSString *)replaceUnicode:(NSString *)unicodeString; 59 | 60 | @end 61 | -------------------------------------------------------------------------------- /SUMusic/Global/SuGlobal.h: -------------------------------------------------------------------------------- 1 | // 2 | // FxGlobal.h 3 | // FxHejinbo 4 | // 5 | // Created by hejinbo on 15/5/12. 6 | // Copyright (c) 2015年 MyCos. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SuGlobal : NSObject 12 | 13 | /* 14 | * 用户是否已登陆 15 | */ 16 | + (BOOL)checkLogin; 17 | + (void)setLoginStatus:(BOOL)status; 18 | 19 | /* 20 | * APP是否刚启动 21 | */ 22 | + (BOOL)checkLauch; 23 | + (void)setLauchStatus:(BOOL)status; 24 | 25 | /* 26 | * APP是否第一次打开 27 | */ 28 | + (BOOL)checkFirstOpenAPP; 29 | + (void)setFirstOpenStatus:(BOOL)status; 30 | 31 | /* 32 | * 是否使用流量收听 33 | */ 34 | + (BOOL)checkFlowUsable; 35 | + (void)setFlowUsableStatus:(BOOL)status; 36 | 37 | // 缓存路径 38 | + (NSString *)getRootPath; 39 | + (NSString *)getArchiverFile; 40 | + (NSString *)getUserDBFile; 41 | + (NSString *)getOffLinePath; 42 | + (NSString *)getOffLineFilePath; 43 | 44 | // 系统提示 45 | + (void)alertMessage:(NSString *)message; 46 | 47 | #pragma mark - 可收听验证 48 | + (BOOL)checkNetworkEnable; 49 | 50 | @end 51 | -------------------------------------------------------------------------------- /SUMusic/Model/BaseInfo.h: -------------------------------------------------------------------------------- 1 | // 2 | // BaseInfo.h 3 | // NewsReader 4 | // 5 | // Created by KevinSu on 15/10/17. 6 | // Copyright (c) 2015年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface BaseInfo : NSObject 12 | 13 | #pragma mark - 数据解析 14 | //从字典获取modol实例 15 | + (instancetype)infoFromDict:(NSDictionary *)dict; 16 | 17 | //从字典获取model数组 18 | + (NSArray *)arrayFromDict:(NSDictionary *)dict; 19 | 20 | //从字典数组获取model数组 21 | + (NSArray *)arrayFromArray:(NSArray *)array; 22 | 23 | 24 | 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /SUMusic/Model/BaseInfo.m: -------------------------------------------------------------------------------- 1 | // 2 | // BaseInfo.m 3 | // NewsReader 4 | // 5 | // Created by KevinSu on 15/10/17. 6 | // Copyright (c) 2015年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import "BaseInfo.h" 10 | 11 | @implementation BaseInfo 12 | 13 | + (instancetype)infoFromDict:(NSDictionary *)dict { 14 | 15 | return [[self alloc]initWithStringDict:dict]; 16 | } 17 | 18 | + (NSArray *)arrayFromDict:(NSDictionary *)dict { 19 | 20 | NSArray * array = [dict objectForKey:NetSong]; 21 | 22 | return [[self class] arrayFromArray:array]; 23 | } 24 | 25 | + (NSArray *)arrayFromArray:(NSArray *)array { 26 | 27 | NSMutableArray * infos = [NSMutableArray array]; 28 | 29 | for (NSDictionary * dict in array) { 30 | [infos addObject:[[self class] infoFromDict:dict]]; 31 | } 32 | 33 | if (infos.count == 0) { 34 | infos = nil; 35 | } 36 | 37 | return infos; 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /SUMusic/Model/ChannelInfo.h: -------------------------------------------------------------------------------- 1 | // 2 | // ChannelInfo.h 3 | // SUMusic 4 | // 5 | // Created by KevinSu on 16/1/17. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import "BaseInfo.h" 10 | 11 | @interface ChannelInfo : BaseInfo 12 | 13 | @property (nonatomic) NSString *abbr_en; 14 | 15 | @property (nonatomic) NSString *channel_id; 16 | 17 | @property (nonatomic) NSString *name; 18 | 19 | @property (nonatomic) NSString *name_en; 20 | 21 | @property (nonatomic) NSString *seq_id; 22 | 23 | @property (nonatomic, copy) NSString * jsonString; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /SUMusic/Model/ChannelInfo.m: -------------------------------------------------------------------------------- 1 | // 2 | // ChannelInfo.m 3 | // SUMusic 4 | // 5 | // Created by KevinSu on 16/1/17. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import "ChannelInfo.h" 10 | 11 | @implementation ChannelInfo 12 | 13 | + (instancetype)infoFromDict:(NSDictionary *)dict { 14 | ChannelInfo * info = [[self alloc]initWithStringDict:dict]; 15 | info.jsonString = [SuString dictionaryToJson:dict]; 16 | return info; 17 | } 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /SUMusic/Model/DownLoadInfo.h: -------------------------------------------------------------------------------- 1 | // 2 | // DownLoadInfo.h 3 | // SUMusic 4 | // 5 | // Created by 万众科技 on 16/2/3. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import "BaseInfo.h" 10 | 11 | @interface DownLoadInfo : BaseInfo 12 | 13 | @property (nonatomic, copy) NSString * sid; 14 | 15 | @property (nonatomic, copy) NSString * url; 16 | 17 | @property (nonatomic, weak) AFHTTPRequestOperation * op; 18 | 19 | @property (nonatomic, assign) int percent; 20 | 21 | @property (nonatomic, assign) BOOL isDownLoading; 22 | 23 | @property (nonatomic, assign) BOOL isSucc; 24 | 25 | @property (nonatomic, assign) BOOL isFail; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /SUMusic/Model/DownLoadInfo.m: -------------------------------------------------------------------------------- 1 | // 2 | // DownLoadInfo.m 3 | // SUMusic 4 | // 5 | // Created by 万众科技 on 16/2/3. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import "DownLoadInfo.h" 10 | 11 | @implementation DownLoadInfo 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /SUMusic/Model/SongInfo.h: -------------------------------------------------------------------------------- 1 | // 2 | // SongInfo.h 3 | // SUMusic 4 | // 5 | // Created by KevinSu on 16/1/10. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import "BaseInfo.h" 10 | 11 | @class Singers; 12 | @interface SongInfo : BaseInfo 13 | 14 | @property (nonatomic, copy) NSString * like; 15 | 16 | @property (nonatomic, copy) NSString *aid; 17 | 18 | @property (nonatomic, copy) NSString *album; 19 | 20 | @property (nonatomic, copy) NSString *sha256; 21 | 22 | @property (nonatomic, copy) NSString *kbps; 23 | 24 | @property (nonatomic, copy) NSString *alert_msg; 25 | 26 | @property (nonatomic, copy) NSString *picture; 27 | 28 | @property (nonatomic, copy) NSString *url; 29 | 30 | @property (nonatomic, strong) NSArray *singers; 31 | 32 | @property (nonatomic, copy) NSString * length; 33 | 34 | @property (nonatomic, copy) NSString *title; 35 | 36 | @property (nonatomic, copy) NSString *sid; 37 | 38 | @property (nonatomic, copy) NSString *albumtitle; 39 | 40 | @property (nonatomic, copy) NSString *file_ext; 41 | 42 | @property (nonatomic, copy) NSString *ssid; 43 | 44 | @property (nonatomic, copy) NSString *artist; 45 | 46 | @property (nonatomic, copy) NSString * status; 47 | 48 | @property (nonatomic, copy) NSString *subtype; 49 | 50 | @property (nonatomic, copy) NSString * jsonString; 51 | 52 | @end 53 | 54 | 55 | @interface Singers : BaseInfo 56 | 57 | @property (nonatomic, assign) NSInteger related_site_id; 58 | 59 | @property (nonatomic, copy) NSString *id; 60 | 61 | @property (nonatomic, copy) NSString *name; 62 | 63 | @property (nonatomic, assign) BOOL is_site_artist; 64 | 65 | @end 66 | 67 | -------------------------------------------------------------------------------- /SUMusic/Model/SongInfo.m: -------------------------------------------------------------------------------- 1 | // 2 | // SongInfo.m 3 | // SUMusic 4 | // 5 | // Created by KevinSu on 16/1/10. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import "SongInfo.h" 10 | 11 | @implementation SongInfo 12 | 13 | + (instancetype)infoFromDict:(NSDictionary *)dict { 14 | SongInfo * info = [[self alloc]initWithStringDict:dict]; 15 | info.jsonString = [SuString dictionaryToJson:dict]; 16 | return info; 17 | } 18 | 19 | @end 20 | 21 | @implementation Singers 22 | 23 | @end 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /SUMusic/Model/UserInfo.h: -------------------------------------------------------------------------------- 1 | // 2 | // UserInfo.h 3 | // SUMusic 4 | // 5 | // Created by KevinSu on 16/1/17. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import "BaseInfo.h" 10 | 11 | @interface UserInfo : BaseInfo 12 | 13 | @property (nonatomic, strong) NSString * email; 14 | @property (nonatomic, strong) NSString * expire; 15 | @property (nonatomic, strong) NSString * token; 16 | @property (nonatomic, strong) NSString * user_id; 17 | @property (nonatomic, strong) NSString * user_name; 18 | 19 | - (void)archiverUserInfo; 20 | + (instancetype)loadUserInfo; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /SUMusic/Network/OffLineManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // OffLineManager.h 3 | // SUMusic 4 | // 5 | // Created by 万众科技 on 16/2/1. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "DownLoadInfo.h" 11 | 12 | @interface OffLineManager : NSObject 13 | 14 | @property (nonatomic, strong) NSMutableArray * downLoadingList; 15 | 16 | /* 17 | * 单例 18 | */ 19 | + (instancetype)manager; 20 | 21 | /* 22 | * 下载当前歌曲 23 | */ 24 | - (void)downLoadSong; 25 | 26 | /* 27 | * 下载未下载完成的歌曲 28 | */ 29 | - (void)downLoadUncompletedSongs; 30 | 31 | /* 32 | * 下载指定歌曲 33 | */ 34 | - (void)downLoadSongWithSongInfo:(SongInfo *)songInfo; 35 | 36 | /* 37 | * 删除指定歌曲(未下载完成时的删除) 38 | */ 39 | - (void)deleteSongWithSongInfo:(SongInfo *)songInfo; 40 | 41 | /* 42 | * 检测歌曲是否在下载中 43 | */ 44 | - (DownLoadInfo *)checkSongDownloadingWithSid:(NSString *)sid; 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /SUMusic/Network/SUNetwork.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUNetwork.h 3 | // SUMusic 4 | // 5 | // Created by KevinSu on 16/1/12. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "SongInfo.h" 11 | 12 | typedef NS_ENUM(NSInteger, OperationType) { 13 | OperationTypeNone, 14 | OperationTypeEnd, 15 | OperationTypeUnHeart, 16 | OperationTypeHeart, 17 | OperationTypeSkip, 18 | OperationTypeBan, 19 | OperationTypePlay 20 | }; 21 | 22 | @interface SUNetwork : NSObject 23 | 24 | + (AFHTTPRequestOperationManager *)manager; 25 | 26 | #pragma mark - 登陆 27 | + (void)loginWithUserName:(NSString *)userName password:(NSString *)pwd completion:(void(^)(BOOL isSucc, NSString * msg))completion; 28 | 29 | #pragma mark - 频道列表 30 | + (void)fetchChannelsWithCompletion:(void(^)(BOOL isSucc, NSArray * channels))completion; 31 | 32 | #pragma mark - 歌曲操作 33 | + (void)fetchPlayListWithType:(OperationType)type completion:(void(^)(BOOL isSucc))completion; 34 | 35 | #pragma mark - 歌词 36 | + (void)fetchLyricWithCompletion:(void(^)(BOOL isSucc, BOOL isExist, NSDictionary * lyric))completion; 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /SUMusic/PrefixHeader.pch: -------------------------------------------------------------------------------- 1 | // 2 | // PrefixHeader.pch 3 | // SUMusic 4 | // 5 | // Created by KevinSu on 16/1/12. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #ifndef PrefixHeader_pch 10 | #define PrefixHeader_pch 11 | 12 | #import 13 | 14 | #import 15 | #import 16 | #import 17 | 18 | #import "SSSJsonManager.h" 19 | #import "SUNetwork.h" 20 | #import "SuDefine.h" 21 | #import "SuCategory.h" 22 | #import "SuTool.h" 23 | #import "DouAPI.h" 24 | 25 | #import "AppDelegate.h" 26 | #import "SuGlobal.h" 27 | #import "SuDBManager.h" 28 | 29 | #import "TopAlertView.h" 30 | 31 | #endif /* PrefixHeader_pch */ 32 | -------------------------------------------------------------------------------- /SUMusic/Resource/Login.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Login.xcassets/iconfont-password.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "iconfont-password.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Login.xcassets/iconfont-password.imageset/iconfont-password.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Login.xcassets/iconfont-password.imageset/iconfont-password.png -------------------------------------------------------------------------------- /SUMusic/Resource/Login.xcassets/iconfont-user.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "iconfont-user.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Login.xcassets/iconfont-user.imageset/iconfont-user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Login.xcassets/iconfont-user.imageset/iconfont-user.png -------------------------------------------------------------------------------- /SUMusic/Resource/Login.xcassets/login-arm-left.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "login-arm-left@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 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Login.xcassets/login-arm-left.imageset/login-arm-left@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Login.xcassets/login-arm-left.imageset/login-arm-left@2x.png -------------------------------------------------------------------------------- /SUMusic/Resource/Login.xcassets/login-arm-normal.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "login-arm-normal.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Login.xcassets/login-arm-normal.imageset/login-arm-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Login.xcassets/login-arm-normal.imageset/login-arm-normal.png -------------------------------------------------------------------------------- /SUMusic/Resource/Login.xcassets/login-arm-right.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "login-arm-right@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 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Login.xcassets/login-arm-right.imageset/login-arm-right@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Login.xcassets/login-arm-right.imageset/login-arm-right@2x.png -------------------------------------------------------------------------------- /SUMusic/Resource/Login.xcassets/login.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "login@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 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Login.xcassets/login.imageset/login@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Login.xcassets/login.imageset/login@2x.png -------------------------------------------------------------------------------- /SUMusic/Resource/Mine.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Mine.xcassets/mine_anouce.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "abc_ic_cab_done_holo_light.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Mine.xcassets/mine_anouce.imageset/abc_ic_cab_done_holo_light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Mine.xcassets/mine_anouce.imageset/abc_ic_cab_done_holo_light.png -------------------------------------------------------------------------------- /SUMusic/Resource/Mine.xcassets/mine_down.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_action_download.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Mine.xcassets/mine_down.imageset/ic_action_download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Mine.xcassets/mine_down.imageset/ic_action_download.png -------------------------------------------------------------------------------- /SUMusic/Resource/Mine.xcassets/mine_favor.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_action_uncollect.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Mine.xcassets/mine_favor.imageset/ic_action_uncollect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Mine.xcassets/mine_favor.imageset/ic_action_uncollect.png -------------------------------------------------------------------------------- /SUMusic/Resource/Mine.xcassets/mine_setting.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_action_detail.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Mine.xcassets/mine_setting.imageset/ic_action_detail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Mine.xcassets/mine_setting.imageset/ic_action_detail.png -------------------------------------------------------------------------------- /SUMusic/Resource/Mine.xcassets/mine_share.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_action_share.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Mine.xcassets/mine_share.imageset/ic_action_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Mine.xcassets/mine_share.imageset/ic_action_share.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/Player_hide.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_action_clear.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/Player_hide.imageset/ic_action_clear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/Player_hide.imageset/ic_action_clear.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/cover.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "cover_expand.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/cover.imageset/cover_expand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/cover.imageset/cover_expand.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_ban.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_action_ban.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_ban.imageset/ic_action_ban.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/ic_action_ban.imageset/ic_action_ban.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_ban_disable.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_action_ban_disable.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_ban_disable.imageset/ic_action_ban_disable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/ic_action_ban_disable.imageset/ic_action_ban_disable.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_ban_pressed.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_action_ban_pressed.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_ban_pressed.imageset/ic_action_ban_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/ic_action_ban_pressed.imageset/ic_action_ban_pressed.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_collect.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_action_collect.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_collect.imageset/ic_action_collect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/ic_action_collect.imageset/ic_action_collect.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_fav.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_action_fav.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_fav.imageset/ic_action_fav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/ic_action_fav.imageset/ic_action_fav.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_fav_disable.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_action_fav_disable.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_fav_disable.imageset/ic_action_fav_disable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/ic_action_fav_disable.imageset/ic_action_fav_disable.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_fav_pressed.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_action_fav_pressed.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_fav_pressed.imageset/ic_action_fav_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/ic_action_fav_pressed.imageset/ic_action_fav_pressed.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_lyric.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_action_lyric.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_lyric.imageset/ic_action_lyric.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/ic_action_lyric.imageset/ic_action_lyric.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_lyric_pressed.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_action_lyric_pressed.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_lyric_pressed.imageset/ic_action_lyric_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/ic_action_lyric_pressed.imageset/ic_action_lyric_pressed.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_next.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_action_next.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_next.imageset/ic_action_next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/ic_action_next.imageset/ic_action_next.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_next_disable.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_action_next_disable.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_next_disable.imageset/ic_action_next_disable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/ic_action_next_disable.imageset/ic_action_next_disable.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_next_pressed.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_action_next_pressed.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_next_pressed.imageset/ic_action_next_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/ic_action_next_pressed.imageset/ic_action_next_pressed.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_play.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_action_play.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_play.imageset/ic_action_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/ic_action_play.imageset/ic_action_play.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_prev.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_action_prev.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_prev.imageset/ic_action_prev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/ic_action_prev.imageset/ic_action_prev.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_prev_disable.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_action_prev_disable.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_prev_disable.imageset/ic_action_prev_disable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/ic_action_prev_disable.imageset/ic_action_prev_disable.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_prev_pressed.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_action_prev_pressed.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_prev_pressed.imageset/ic_action_prev_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/ic_action_prev_pressed.imageset/ic_action_prev_pressed.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_share.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_action_share.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_share.imageset/ic_action_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/ic_action_share.imageset/ic_action_share.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_share_disable.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_action_share_disable.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_share_disable.imageset/ic_action_share_disable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/ic_action_share_disable.imageset/ic_action_share_disable.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_share_pressed.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_action_share_pressed.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_share_pressed.imageset/ic_action_share_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/ic_action_share_pressed.imageset/ic_action_share_pressed.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_uncollect.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_action_uncollect.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_uncollect.imageset/ic_action_uncollect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/ic_action_uncollect.imageset/ic_action_uncollect.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_uncollect_pressed.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_action_uncollect_pressed.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_uncollect_pressed.imageset/ic_action_uncollect_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/ic_action_uncollect_pressed.imageset/ic_action_uncollect_pressed.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_unfav.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_action_unfav.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_unfav.imageset/ic_action_unfav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/ic_action_unfav.imageset/ic_action_unfav.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_unfav_pressed.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_action_unfav_pressed.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_action_unfav_pressed.imageset/ic_action_unfav_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/ic_action_unfav_pressed.imageset/ic_action_unfav_pressed.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_channel_nowplaying1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_channel_nowplaying1.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_channel_nowplaying1.imageset/ic_channel_nowplaying1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/ic_channel_nowplaying1.imageset/ic_channel_nowplaying1.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_channel_nowplaying2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_channel_nowplaying2.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_channel_nowplaying2.imageset/ic_channel_nowplaying2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/ic_channel_nowplaying2.imageset/ic_channel_nowplaying2.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_channel_nowplaying3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_channel_nowplaying3.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_channel_nowplaying3.imageset/ic_channel_nowplaying3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/ic_channel_nowplaying3.imageset/ic_channel_nowplaying3.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_channel_nowplaying4.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_channel_nowplaying4.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_channel_nowplaying4.imageset/ic_channel_nowplaying4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/ic_channel_nowplaying4.imageset/ic_channel_nowplaying4.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_share_to_other_app.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_share_to_other_app.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/ic_share_to_other_app.imageset/ic_share_to_other_app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/ic_share_to_other_app.imageset/ic_share_to_other_app.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/playingPet_1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ktv_main_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 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/playingPet_1.imageset/ktv_main_1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/playingPet_1.imageset/ktv_main_1@2x.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/playingPet_2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ktv_main_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 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/playingPet_2.imageset/ktv_main_2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/playingPet_2.imageset/ktv_main_2@2x.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/playingPet_3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ktv_main_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 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/playingPet_3.imageset/ktv_main_3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/playingPet_3.imageset/ktv_main_3@2x.png -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/zero_data.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "playingPet_default.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SUMusic/Resource/Player.xcassets/zero_data.imageset/playingPet_default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/Resource/Player.xcassets/zero_data.imageset/playingPet_default.png -------------------------------------------------------------------------------- /SUMusic/VIew/ChannelTableViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // ChannelTableViewCell.h 3 | // SUMusic 4 | // 5 | // Created by KevinSu on 16/1/17. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ChannelTableViewCell : UITableViewCell 12 | 13 | @property (weak, nonatomic) IBOutlet UIImageView *icon; 14 | 15 | @property (weak, nonatomic) IBOutlet UILabel *channelName; 16 | 17 | @property (weak, nonatomic) IBOutlet UIImageView *playIndicator; 18 | 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /SUMusic/VIew/ChannelTableViewCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // ChannelTableViewCell.m 3 | // SUMusic 4 | // 5 | // Created by KevinSu on 16/1/17. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import "ChannelTableViewCell.h" 10 | 11 | @implementation ChannelTableViewCell 12 | 13 | - (void)awakeFromNib { 14 | // Initialization code 15 | } 16 | 17 | - (void)setSelected:(BOOL)selected animated:(BOOL)animated { 18 | [super setSelected:selected animated:animated]; 19 | 20 | // Configure the view for the selected state 21 | } 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /SUMusic/VIew/LyricView.h: -------------------------------------------------------------------------------- 1 | // 2 | // LyricView.h 3 | // SUMusic 4 | // 5 | // Created by 万众科技 on 16/1/26. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LyricView : UIView 12 | 13 | @property (nonatomic, copy) void(^tapBlock)(LyricView * lyrView); 14 | 15 | /* 16 | * 加载歌词 17 | */ 18 | - (void)loadLyric:(NSDictionary *)dict; 19 | 20 | /* 21 | * 清除歌词 22 | */ 23 | - (void)clearLyric; 24 | 25 | /** 26 | * 滚动歌词 27 | */ 28 | - (void)startRoll; 29 | 30 | /** 31 | * 停止滚动 32 | */ 33 | - (void)stopRoll; 34 | 35 | /* 36 | * 滚动歌词 37 | */ 38 | - (void)scrollLyric; 39 | 40 | /* 41 | * 显示 42 | */ 43 | - (void)show; 44 | 45 | /* 46 | * 隐藏 47 | */ 48 | - (void)hide; 49 | 50 | @end 51 | -------------------------------------------------------------------------------- /SUMusic/VIew/MineHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // MineHeader.h 3 | // SUMusic 4 | // 5 | // Created by KevinSu on 16/1/17. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MineHeader : UIView 12 | 13 | @property (weak, nonatomic) IBOutlet UIButton *userIcon; 14 | 15 | @property (weak, nonatomic) IBOutlet UILabel *userName; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /SUMusic/VIew/MineHeader.m: -------------------------------------------------------------------------------- 1 | // 2 | // MineHeader.m 3 | // SUMusic 4 | // 5 | // Created by KevinSu on 16/1/17. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import "MineHeader.h" 10 | 11 | @implementation MineHeader 12 | 13 | 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /SUMusic/VIew/MineTableViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // MineTableViewCell.h 3 | // SUMusic 4 | // 5 | // Created by KevinSu on 16/1/17. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MineTableViewCell : UITableViewCell 12 | 13 | @property (weak, nonatomic) IBOutlet UIImageView *icon; 14 | 15 | @property (weak, nonatomic) IBOutlet UILabel *name; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /SUMusic/VIew/MineTableViewCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // MineTableViewCell.m 3 | // SUMusic 4 | // 5 | // Created by KevinSu on 16/1/17. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import "MineTableViewCell.h" 10 | 11 | @implementation MineTableViewCell 12 | 13 | - (void)awakeFromNib { 14 | // Initialization code 15 | } 16 | 17 | - (void)setSelected:(BOOL)selected animated:(BOOL)animated { 18 | [super setSelected:selected animated:animated]; 19 | 20 | // Configure the view for the selected state 21 | } 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /SUMusic/VIew/ShareView.h: -------------------------------------------------------------------------------- 1 | // 2 | // ShareView.h 3 | // SUMusic 4 | // 5 | // Created by 万众科技 on 16/2/1. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | typedef NS_ENUM(NSInteger, ShareType) { 12 | ShareTypeSina, 13 | ShareTypeWeChat, 14 | ShareTypeTimeLine 15 | }; 16 | 17 | @interface ShareView : UIView 18 | 19 | @property (nonatomic, copy) void(^shareBlock)(NSInteger shareType); 20 | 21 | - (void)showInView:(UIView *)view; 22 | 23 | - (IBAction)dismiss:(id)sender; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /SUMusic/VIew/ShareView.m: -------------------------------------------------------------------------------- 1 | // 2 | // ShareView.m 3 | // SUMusic 4 | // 5 | // Created by 万众科技 on 16/2/1. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import "ShareView.h" 10 | 11 | @interface ShareView () 12 | 13 | @property (weak, nonatomic) IBOutlet UIView *bg; 14 | @property (weak, nonatomic) IBOutlet UIView *panel; 15 | @end 16 | 17 | @implementation ShareView 18 | 19 | - (void)showInView:(UIView *)view { 20 | self.userInteractionEnabled = YES; 21 | self.panel.y = self.h; 22 | [view addSubview:self]; 23 | [UIView animateWithDuration:0.2 animations:^{ 24 | self.bg.alpha = 0.2; 25 | self.panel.y = self.h - self.panel.h; 26 | }]; 27 | } 28 | 29 | - (IBAction)share:(UIButton *)sender { 30 | if (self.shareBlock) self.shareBlock(sender.tag); 31 | } 32 | 33 | - (IBAction)dismiss:(id)sender { 34 | self.userInteractionEnabled = NO; 35 | [UIView animateWithDuration:0.2 animations:^{ 36 | self.bg.alpha = 0.f; 37 | self.panel.y = self.h; 38 | } completion:^(BOOL finished) { 39 | [self removeFromSuperview]; 40 | }]; 41 | } 42 | 43 | @end 44 | -------------------------------------------------------------------------------- /SUMusic/VIew/SongListTableViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // MyFavorTableViewCell.h 3 | // SUMusic 4 | // 5 | // Created by 万众科技 on 16/2/1. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SongListTableViewCell : UITableViewCell 12 | 13 | @property (nonatomic, copy) void(^downLoadBlock)(UIButton * sender); 14 | 15 | @property (weak, nonatomic) IBOutlet UIImageView *songCover; 16 | 17 | @property (weak, nonatomic) IBOutlet UILabel *songName; 18 | 19 | @property (weak, nonatomic) IBOutlet UILabel *artist; 20 | 21 | @property (weak, nonatomic) IBOutlet UIImageView *playIndicator; 22 | 23 | @property (weak, nonatomic) IBOutlet UIView *progressIndicator; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /SUMusic/VIew/SongListTableViewCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // MyFavorTableViewCell.m 3 | // SUMusic 4 | // 5 | // Created by 万众科技 on 16/2/1. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import "SongListTableViewCell.h" 10 | 11 | @implementation SongListTableViewCell 12 | 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /SUMusic/VIew/TopAlertView/Resource/TopAlert_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/VIew/TopAlertView/Resource/TopAlert_add.png -------------------------------------------------------------------------------- /SUMusic/VIew/TopAlertView/Resource/TopAlert_ban.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/VIew/TopAlertView/Resource/TopAlert_ban.png -------------------------------------------------------------------------------- /SUMusic/VIew/TopAlertView/Resource/TopAlert_check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaMingShen/SUMusic/8fda6181d9398a83eb1e72b4409a29a3d575545a/SUMusic/VIew/TopAlertView/Resource/TopAlert_check.png -------------------------------------------------------------------------------- /SUMusic/VIew/TopAlertView/TopAlertView.h: -------------------------------------------------------------------------------- 1 | // 2 | // TopAlertView.h 3 | // SUMusic 4 | // 5 | // Created by 万众科技 on 16/2/15. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | typedef NS_ENUM(NSInteger, TopAlertType) { 12 | TopAlertTypeAdd, 13 | TopAlertTypeBan, 14 | TopAlertTypeCheck 15 | }; 16 | 17 | @interface TopAlertView : UIView 18 | 19 | //@property (nonatomic, assign) NSInteger duration; 20 | 21 | + (TopAlertView *)showWithType:(TopAlertType)type message:(NSString*)text; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /SUMusic/VIew/TopTabItemView.h: -------------------------------------------------------------------------------- 1 | // 2 | // TopTabItemView.h 3 | // SUMusic 4 | // 5 | // Created by KevinSu on 16/1/17. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface TopTabItemView : UIView 12 | 13 | @property (nonatomic, copy) void(^tabBlock)(NSInteger index); 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /SUMusic/VIew/TopTabItemView.m: -------------------------------------------------------------------------------- 1 | // 2 | // TopTabItemView.m 3 | // SUMusic 4 | // 5 | // Created by KevinSu on 16/1/17. 6 | // Copyright © 2016年 KevinSu. All rights reserved. 7 | // 8 | 9 | #import "TopTabItemView.h" 10 | 11 | @interface TopTabItemView () 12 | 13 | @property (weak, nonatomic) IBOutlet UIButton *channels; 14 | @property (weak, nonatomic) IBOutlet UIButton *mine; 15 | @property (weak, nonatomic) IBOutlet UIView *line; 16 | @property (nonatomic, strong) UIButton * currentTab; 17 | 18 | @end 19 | 20 | @implementation TopTabItemView 21 | 22 | - (IBAction)tabItemClick:(UIButton *)sender { 23 | 24 | if (self.currentTab == sender) return; 25 | 26 | sender.selected = YES; 27 | sender.userInteractionEnabled = NO; 28 | self.currentTab.selected = NO; 29 | self.currentTab.userInteractionEnabled = YES; 30 | self.currentTab = sender; 31 | [UIView animateWithDuration:0.3 animations:^{ 32 | 33 | self.line.centerX = sender.centerX; 34 | } completion:^(BOOL finished) { 35 | 36 | }]; 37 | if (self.tabBlock) self.tabBlock(sender.tag); 38 | } 39 | 40 | - (UIButton *)currentTab { 41 | if (_currentTab == nil) { 42 | _currentTab = self.channels; 43 | } 44 | return _currentTab; 45 | } 46 | 47 | 48 | @end 49 | -------------------------------------------------------------------------------- /SUMusic/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // SUMusic 4 | // 5 | // Created by KevinSu on 16/1/10. 6 | // Copyright © 2016年 KevinSu. 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 | --------------------------------------------------------------------------------