├── .gitignore ├── LICENSE ├── Podfile ├── Podfile.lock ├── Pods ├── Alamofire │ ├── LICENSE │ ├── README.md │ └── Source │ │ ├── AFError.swift │ │ ├── Alamofire.swift │ │ ├── AlamofireExtended.swift │ │ ├── CachedResponseHandler.swift │ │ ├── DispatchQueue+Alamofire.swift │ │ ├── EventMonitor.swift │ │ ├── HTTPHeaders.swift │ │ ├── HTTPMethod.swift │ │ ├── MultipartFormData.swift │ │ ├── MultipartUpload.swift │ │ ├── NetworkReachabilityManager.swift │ │ ├── Notifications.swift │ │ ├── OperationQueue+Alamofire.swift │ │ ├── ParameterEncoder.swift │ │ ├── ParameterEncoding.swift │ │ ├── Protector.swift │ │ ├── RedirectHandler.swift │ │ ├── Request.swift │ │ ├── RequestInterceptor.swift │ │ ├── RequestTaskMap.swift │ │ ├── Response.swift │ │ ├── ResponseSerialization.swift │ │ ├── Result+Alamofire.swift │ │ ├── RetryPolicy.swift │ │ ├── ServerTrustEvaluation.swift │ │ ├── Session.swift │ │ ├── SessionDelegate.swift │ │ ├── URLConvertible+URLRequestConvertible.swift │ │ ├── URLEncodedFormEncoder.swift │ │ ├── URLRequest+Alamofire.swift │ │ ├── URLSessionConfiguration+Alamofire.swift │ │ └── Validation.swift ├── HWPanModal │ ├── LICENSE │ ├── README-CN.md │ └── Sources │ │ ├── Animator │ │ ├── HWPanModalAnimator.h │ │ ├── HWPanModalAnimator.m │ │ ├── HWPanModalInteractiveAnimator.h │ │ ├── HWPanModalInteractiveAnimator.m │ │ ├── HWPanModalPresentationAnimator.h │ │ ├── HWPanModalPresentationAnimator.m │ │ ├── HWPresentingVCAnimatedTransitioning.h │ │ └── PresentingVCAnimation │ │ │ ├── HWPageSheetPresentingAnimation.h │ │ │ ├── HWPageSheetPresentingAnimation.m │ │ │ ├── HWShoppingCartPresentingAnimation.h │ │ │ └── HWShoppingCartPresentingAnimation.m │ │ ├── Category │ │ ├── NSObject+HW_Swizzle.h │ │ ├── NSObject+HW_Swizzle.m │ │ ├── UINavigationController+HWPanModal.h │ │ ├── UINavigationController+HWPanModal.m │ │ ├── UIScrollView+Helper.h │ │ ├── UIScrollView+Helper.m │ │ ├── UIView+HW_Frame.h │ │ └── UIView+HW_Frame.m │ │ ├── Controller │ │ ├── HWPanModalPresentationController.h │ │ └── HWPanModalPresentationController.m │ │ ├── Delegate │ │ ├── HWPanModalPresentationDelegate.h │ │ └── HWPanModalPresentationDelegate.m │ │ ├── HWPanModal.h │ │ ├── KVO │ │ ├── KeyValueObserver.h │ │ └── KeyValueObserver.m │ │ ├── Mediator │ │ ├── HWPanModalPresentableHandler.h │ │ └── HWPanModalPresentableHandler.m │ │ ├── Presentable │ │ ├── HWPanModalHeight.h │ │ ├── HWPanModalPresentable.h │ │ ├── HWPanModalPresentationUpdateProtocol.h │ │ ├── UIViewController+LayoutHelper.h │ │ ├── UIViewController+LayoutHelper.m │ │ ├── UIViewController+PanModalDefault.h │ │ ├── UIViewController+PanModalDefault.m │ │ ├── UIViewController+Presentation.h │ │ └── UIViewController+Presentation.m │ │ ├── Presenter │ │ ├── HWPanModalPresenterProtocol.h │ │ ├── UIViewController+PanModalPresenter.h │ │ └── UIViewController+PanModalPresenter.m │ │ └── View │ │ ├── HWDimmedView.h │ │ ├── HWDimmedView.m │ │ ├── HWPanContainerView.h │ │ ├── HWPanContainerView.m │ │ ├── HWPanIndicatorView.h │ │ ├── HWPanIndicatorView.m │ │ ├── HWPanModalIndicatorProtocol.h │ │ ├── HWVisualEffectView.h │ │ ├── HWVisualEffectView.m │ │ └── PanModal │ │ ├── HWPanModalContainerView.h │ │ ├── HWPanModalContainerView.m │ │ ├── HWPanModalContentView.h │ │ └── HWPanModalContentView.m ├── Kingfisher │ ├── LICENSE │ ├── README.md │ └── Sources │ │ ├── Cache │ │ ├── CacheSerializer.swift │ │ ├── DiskStorage.swift │ │ ├── FormatIndicatedCacheSerializer.swift │ │ ├── ImageCache.swift │ │ ├── MemoryStorage.swift │ │ └── Storage.swift │ │ ├── Extensions │ │ ├── ImageView+Kingfisher.swift │ │ ├── NSButton+Kingfisher.swift │ │ ├── UIButton+Kingfisher.swift │ │ └── WKInterfaceImage+Kingfisher.swift │ │ ├── General │ │ ├── Deprecated.swift │ │ ├── ImageSource │ │ │ ├── ImageDataProvider.swift │ │ │ ├── Resource.swift │ │ │ └── Source.swift │ │ ├── Kingfisher.swift │ │ ├── KingfisherError.swift │ │ ├── KingfisherManager.swift │ │ └── KingfisherOptionsInfo.swift │ │ ├── Image │ │ ├── Filter.swift │ │ ├── GIFAnimatedImage.swift │ │ ├── Image.swift │ │ ├── ImageDrawing.swift │ │ ├── ImageFormat.swift │ │ ├── ImageProcessor.swift │ │ ├── ImageProgressive.swift │ │ ├── ImageTransition.swift │ │ └── Placeholder.swift │ │ ├── Kingfisher.h │ │ ├── Networking │ │ ├── AuthenticationChallengeResponsable.swift │ │ ├── ImageDataProcessor.swift │ │ ├── ImageDownloader.swift │ │ ├── ImageDownloaderDelegate.swift │ │ ├── ImageModifier.swift │ │ ├── ImagePrefetcher.swift │ │ ├── RedirectHandler.swift │ │ ├── RequestModifier.swift │ │ ├── SessionDataTask.swift │ │ └── SessionDelegate.swift │ │ ├── Utility │ │ ├── Box.swift │ │ ├── CallbackQueue.swift │ │ ├── Delegate.swift │ │ ├── ExtensionHelpers.swift │ │ ├── Result.swift │ │ ├── Runtime.swift │ │ ├── SizeExtensions.swift │ │ └── String+MD5.swift │ │ └── Views │ │ ├── AnimatedImageView.swift │ │ └── Indicator.swift ├── MJRefresh │ ├── LICENSE │ ├── MJRefresh │ │ ├── Base │ │ │ ├── MJRefreshAutoFooter.h │ │ │ ├── MJRefreshAutoFooter.m │ │ │ ├── MJRefreshBackFooter.h │ │ │ ├── MJRefreshBackFooter.m │ │ │ ├── MJRefreshComponent.h │ │ │ ├── MJRefreshComponent.m │ │ │ ├── MJRefreshFooter.h │ │ │ ├── MJRefreshFooter.m │ │ │ ├── MJRefreshHeader.h │ │ │ └── MJRefreshHeader.m │ │ ├── Custom │ │ │ ├── Footer │ │ │ │ ├── Auto │ │ │ │ │ ├── MJRefreshAutoGifFooter.h │ │ │ │ │ ├── MJRefreshAutoGifFooter.m │ │ │ │ │ ├── MJRefreshAutoNormalFooter.h │ │ │ │ │ ├── MJRefreshAutoNormalFooter.m │ │ │ │ │ ├── MJRefreshAutoStateFooter.h │ │ │ │ │ └── MJRefreshAutoStateFooter.m │ │ │ │ └── Back │ │ │ │ │ ├── MJRefreshBackGifFooter.h │ │ │ │ │ ├── MJRefreshBackGifFooter.m │ │ │ │ │ ├── MJRefreshBackNormalFooter.h │ │ │ │ │ ├── MJRefreshBackNormalFooter.m │ │ │ │ │ ├── MJRefreshBackStateFooter.h │ │ │ │ │ └── MJRefreshBackStateFooter.m │ │ │ └── Header │ │ │ │ ├── MJRefreshGifHeader.h │ │ │ │ ├── MJRefreshGifHeader.m │ │ │ │ ├── MJRefreshNormalHeader.h │ │ │ │ ├── MJRefreshNormalHeader.m │ │ │ │ ├── MJRefreshStateHeader.h │ │ │ │ └── MJRefreshStateHeader.m │ │ ├── MJRefresh.bundle │ │ │ ├── arrow@2x.png │ │ │ ├── en.lproj │ │ │ │ └── Localizable.strings │ │ │ ├── ko.lproj │ │ │ │ └── Localizable.strings │ │ │ ├── ru.lproj │ │ │ │ └── Localizable.strings │ │ │ ├── uk.lproj │ │ │ │ └── Localizable.strings │ │ │ ├── zh-Hans.lproj │ │ │ │ └── Localizable.strings │ │ │ └── zh-Hant.lproj │ │ │ │ └── Localizable.strings │ │ ├── MJRefresh.h │ │ ├── MJRefreshConfig.h │ │ ├── MJRefreshConfig.m │ │ ├── MJRefreshConst.h │ │ ├── MJRefreshConst.m │ │ ├── NSBundle+MJRefresh.h │ │ ├── NSBundle+MJRefresh.m │ │ ├── UIScrollView+MJExtension.h │ │ ├── UIScrollView+MJExtension.m │ │ ├── UIScrollView+MJRefresh.h │ │ ├── UIScrollView+MJRefresh.m │ │ ├── UIView+MJExtension.h │ │ └── UIView+MJExtension.m │ └── README.md ├── Manifest.lock ├── MarqueeLabel │ ├── LICENSE │ ├── README.mdown │ └── Sources │ │ └── Swift │ │ └── MarqueeLabel.swift ├── ObjectMapper │ ├── LICENSE │ ├── README-CN.md │ └── Sources │ │ ├── CodableTransform.swift │ │ ├── CustomDateFormatTransform.swift │ │ ├── DataTransform.swift │ │ ├── DateFormatterTransform.swift │ │ ├── DateTransform.swift │ │ ├── DictionaryTransform.swift │ │ ├── EnumOperators.swift │ │ ├── EnumTransform.swift │ │ ├── FromJSON.swift │ │ ├── HexColorTransform.swift │ │ ├── ISO8601DateTransform.swift │ │ ├── ImmutableMappable.swift │ │ ├── IntegerOperators.swift │ │ ├── Map.swift │ │ ├── MapError.swift │ │ ├── Mappable.swift │ │ ├── Mapper.swift │ │ ├── NSDecimalNumberTransform.swift │ │ ├── Operators.swift │ │ ├── ToJSON.swift │ │ ├── TransformOf.swift │ │ ├── TransformOperators.swift │ │ ├── TransformType.swift │ │ └── URLTransform.swift ├── PKHUD │ ├── LICENSE │ ├── PKHUD │ │ ├── FrameView.swift │ │ ├── HUD.swift │ │ ├── Images.xcassets │ │ │ ├── Contents.json │ │ │ ├── checkmark.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── checkmark.pdf │ │ │ ├── cross.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── cross.pdf │ │ │ ├── progress_activity.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── progress.pdf │ │ │ └── progress_circular.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── progress_circular.pdf │ │ ├── PKHUD.h │ │ ├── PKHUD.swift │ │ ├── PKHUDAnimating.swift │ │ ├── PKHUDAnimation.swift │ │ ├── PKHUDAssets.swift │ │ ├── PKHUDErrorView.swift │ │ ├── PKHUDProgressView.swift │ │ ├── PKHUDRotatingImageView.swift │ │ ├── PKHUDSquareBaseView.swift │ │ ├── PKHUDSuccessView.swift │ │ ├── PKHUDSystemActivityIndicatorView.swift │ │ ├── PKHUDTextView.swift │ │ ├── PKHUDWideBaseView.swift │ │ ├── Window.swift │ │ └── WindowRootViewController.swift │ └── README.md ├── Pods.xcodeproj │ └── project.pbxproj ├── SnapKit │ ├── LICENSE │ ├── README.md │ └── Source │ │ ├── Constraint.swift │ │ ├── ConstraintAttributes.swift │ │ ├── ConstraintConfig.swift │ │ ├── ConstraintConstantTarget.swift │ │ ├── ConstraintDSL.swift │ │ ├── ConstraintDescription.swift │ │ ├── ConstraintDirectionalInsetTarget.swift │ │ ├── ConstraintDirectionalInsets.swift │ │ ├── ConstraintInsetTarget.swift │ │ ├── ConstraintInsets.swift │ │ ├── ConstraintItem.swift │ │ ├── ConstraintLayoutGuide+Extensions.swift │ │ ├── ConstraintLayoutGuide.swift │ │ ├── ConstraintLayoutGuideDSL.swift │ │ ├── ConstraintLayoutSupport.swift │ │ ├── ConstraintLayoutSupportDSL.swift │ │ ├── ConstraintMaker.swift │ │ ├── ConstraintMakerEditable.swift │ │ ├── ConstraintMakerExtendable.swift │ │ ├── ConstraintMakerFinalizable.swift │ │ ├── ConstraintMakerPriortizable.swift │ │ ├── ConstraintMakerRelatable.swift │ │ ├── ConstraintMultiplierTarget.swift │ │ ├── ConstraintOffsetTarget.swift │ │ ├── ConstraintPriority.swift │ │ ├── ConstraintPriorityTarget.swift │ │ ├── ConstraintRelatableTarget.swift │ │ ├── ConstraintRelation.swift │ │ ├── ConstraintView+Extensions.swift │ │ ├── ConstraintView.swift │ │ ├── ConstraintViewDSL.swift │ │ ├── Debugging.swift │ │ ├── LayoutConstraint.swift │ │ ├── LayoutConstraintItem.swift │ │ ├── Typealiases.swift │ │ └── UILayoutSupport+Extensions.swift ├── Target Support Files │ ├── Alamofire │ │ ├── Alamofire-Info.plist │ │ ├── Alamofire-dummy.m │ │ ├── Alamofire-prefix.pch │ │ ├── Alamofire-umbrella.h │ │ ├── Alamofire.debug.xcconfig │ │ ├── Alamofire.modulemap │ │ └── Alamofire.release.xcconfig │ ├── HWPanModal │ │ ├── HWPanModal-Info.plist │ │ ├── HWPanModal-dummy.m │ │ ├── HWPanModal-prefix.pch │ │ ├── HWPanModal-umbrella.h │ │ ├── HWPanModal.debug.xcconfig │ │ ├── HWPanModal.modulemap │ │ └── HWPanModal.release.xcconfig │ ├── Kingfisher │ │ ├── Kingfisher-Info.plist │ │ ├── Kingfisher-dummy.m │ │ ├── Kingfisher-prefix.pch │ │ ├── Kingfisher-umbrella.h │ │ ├── Kingfisher.debug.xcconfig │ │ ├── Kingfisher.modulemap │ │ └── Kingfisher.release.xcconfig │ ├── MJRefresh │ │ ├── MJRefresh-Info.plist │ │ ├── MJRefresh-dummy.m │ │ ├── MJRefresh-prefix.pch │ │ ├── MJRefresh-umbrella.h │ │ ├── MJRefresh.debug.xcconfig │ │ ├── MJRefresh.modulemap │ │ └── MJRefresh.release.xcconfig │ ├── MarqueeLabel │ │ ├── MarqueeLabel-Info.plist │ │ ├── MarqueeLabel-dummy.m │ │ ├── MarqueeLabel-prefix.pch │ │ ├── MarqueeLabel-umbrella.h │ │ ├── MarqueeLabel.debug.xcconfig │ │ ├── MarqueeLabel.modulemap │ │ └── MarqueeLabel.release.xcconfig │ ├── ObjectMapper │ │ ├── ObjectMapper-Info.plist │ │ ├── ObjectMapper-dummy.m │ │ ├── ObjectMapper-prefix.pch │ │ ├── ObjectMapper-umbrella.h │ │ ├── ObjectMapper.debug.xcconfig │ │ ├── ObjectMapper.modulemap │ │ └── ObjectMapper.release.xcconfig │ ├── PKHUD │ │ ├── PKHUD-Info.plist │ │ ├── PKHUD-dummy.m │ │ ├── PKHUD-prefix.pch │ │ ├── PKHUD-umbrella.h │ │ ├── PKHUD.debug.xcconfig │ │ ├── PKHUD.modulemap │ │ ├── PKHUD.release.xcconfig │ │ └── ResourceBundle-PKHUDResources-PKHUD-Info.plist │ ├── Pods-YYMusic-YYMusicUITests │ │ ├── Pods-YYMusic-YYMusicUITests-Info.plist │ │ ├── Pods-YYMusic-YYMusicUITests-acknowledgements.markdown │ │ ├── Pods-YYMusic-YYMusicUITests-acknowledgements.plist │ │ ├── Pods-YYMusic-YYMusicUITests-dummy.m │ │ ├── Pods-YYMusic-YYMusicUITests-frameworks-Debug-input-files.xcfilelist │ │ ├── Pods-YYMusic-YYMusicUITests-frameworks-Debug-output-files.xcfilelist │ │ ├── Pods-YYMusic-YYMusicUITests-frameworks-Release-input-files.xcfilelist │ │ ├── Pods-YYMusic-YYMusicUITests-frameworks-Release-output-files.xcfilelist │ │ ├── Pods-YYMusic-YYMusicUITests-frameworks.sh │ │ ├── Pods-YYMusic-YYMusicUITests-resources-Debug-input-files.xcfilelist │ │ ├── Pods-YYMusic-YYMusicUITests-resources-Debug-output-files.xcfilelist │ │ ├── Pods-YYMusic-YYMusicUITests-resources-Release-input-files.xcfilelist │ │ ├── Pods-YYMusic-YYMusicUITests-resources-Release-output-files.xcfilelist │ │ ├── Pods-YYMusic-YYMusicUITests-resources.sh │ │ ├── Pods-YYMusic-YYMusicUITests-umbrella.h │ │ ├── Pods-YYMusic-YYMusicUITests.debug.xcconfig │ │ ├── Pods-YYMusic-YYMusicUITests.modulemap │ │ └── Pods-YYMusic-YYMusicUITests.release.xcconfig │ ├── Pods-YYMusic │ │ ├── Pods-YYMusic-Info.plist │ │ ├── Pods-YYMusic-acknowledgements.markdown │ │ ├── Pods-YYMusic-acknowledgements.plist │ │ ├── Pods-YYMusic-dummy.m │ │ ├── Pods-YYMusic-frameworks-Debug-input-files.xcfilelist │ │ ├── Pods-YYMusic-frameworks-Debug-output-files.xcfilelist │ │ ├── Pods-YYMusic-frameworks-Release-input-files.xcfilelist │ │ ├── Pods-YYMusic-frameworks-Release-output-files.xcfilelist │ │ ├── Pods-YYMusic-frameworks.sh │ │ ├── Pods-YYMusic-resources-Debug-input-files.xcfilelist │ │ ├── Pods-YYMusic-resources-Debug-output-files.xcfilelist │ │ ├── Pods-YYMusic-resources-Release-input-files.xcfilelist │ │ ├── Pods-YYMusic-resources-Release-output-files.xcfilelist │ │ ├── Pods-YYMusic-resources.sh │ │ ├── Pods-YYMusic-umbrella.h │ │ ├── Pods-YYMusic.debug.xcconfig │ │ ├── Pods-YYMusic.modulemap │ │ └── Pods-YYMusic.release.xcconfig │ ├── Pods-YYMusicTests │ │ ├── Pods-YYMusicTests-Info.plist │ │ ├── Pods-YYMusicTests-acknowledgements.markdown │ │ ├── Pods-YYMusicTests-acknowledgements.plist │ │ ├── Pods-YYMusicTests-dummy.m │ │ ├── Pods-YYMusicTests-umbrella.h │ │ ├── Pods-YYMusicTests.debug.xcconfig │ │ ├── Pods-YYMusicTests.modulemap │ │ └── Pods-YYMusicTests.release.xcconfig │ ├── SnapKit │ │ ├── SnapKit-Info.plist │ │ ├── SnapKit-dummy.m │ │ ├── SnapKit-prefix.pch │ │ ├── SnapKit-umbrella.h │ │ ├── SnapKit.debug.xcconfig │ │ ├── SnapKit.modulemap │ │ └── SnapKit.release.xcconfig │ └── ZFPlayer │ │ ├── ZFPlayer-Info.plist │ │ ├── ZFPlayer-dummy.m │ │ ├── ZFPlayer-prefix.pch │ │ ├── ZFPlayer-umbrella.h │ │ ├── ZFPlayer.debug.xcconfig │ │ ├── ZFPlayer.modulemap │ │ └── ZFPlayer.release.xcconfig └── ZFPlayer │ ├── LICENSE │ ├── README.md │ └── ZFPlayer │ └── Classes │ ├── AVPlayer │ ├── ZFAVPlayerManager.h │ └── ZFAVPlayerManager.m │ ├── ControlView │ ├── UIImageView+ZFCache.h │ ├── UIImageView+ZFCache.m │ ├── UIView+ZFFrame.h │ ├── UIView+ZFFrame.m │ ├── ZFLandScapeControlView.h │ ├── ZFLandScapeControlView.m │ ├── ZFLoadingView.h │ ├── ZFLoadingView.m │ ├── ZFNetworkSpeedMonitor.h │ ├── ZFNetworkSpeedMonitor.m │ ├── ZFPlayer.bundle │ │ ├── ZFPlayer_back_full@2x.png │ │ ├── ZFPlayer_back_full@3x.png │ │ ├── ZFPlayer_bottom_shadow.png │ │ ├── ZFPlayer_brightness_high@2x.png │ │ ├── ZFPlayer_brightness_high@3x.png │ │ ├── ZFPlayer_brightness_low@2x.png │ │ ├── ZFPlayer_brightness_low@3x.png │ │ ├── ZFPlayer_close@2x.png │ │ ├── ZFPlayer_close@3x.png │ │ ├── ZFPlayer_closeWatch@2x.png │ │ ├── ZFPlayer_closeWatch@3x.png │ │ ├── ZFPlayer_fast_backward@2x.png │ │ ├── ZFPlayer_fast_backward@3x.png │ │ ├── ZFPlayer_fast_forward@2x.png │ │ ├── ZFPlayer_fast_forward@3x.png │ │ ├── ZFPlayer_fullscreen@2x.png │ │ ├── ZFPlayer_fullscreen@3x.png │ │ ├── ZFPlayer_lock-nor@2x.png │ │ ├── ZFPlayer_lock-nor@3x.png │ │ ├── ZFPlayer_muted@2x.png │ │ ├── ZFPlayer_muted@3x.png │ │ ├── ZFPlayer_next@2x.png │ │ ├── ZFPlayer_next@3x.png │ │ ├── ZFPlayer_pause@2x.png │ │ ├── ZFPlayer_pause@3x.png │ │ ├── ZFPlayer_play@2x.png │ │ ├── ZFPlayer_play@3x.png │ │ ├── ZFPlayer_shrinkscreen@2x.png │ │ ├── ZFPlayer_shrinkscreen@3x.png │ │ ├── ZFPlayer_slider.png │ │ ├── ZFPlayer_slider@2x.png │ │ ├── ZFPlayer_slider@3x.png │ │ ├── ZFPlayer_top_shadow.png │ │ ├── ZFPlayer_unlock-nor@2x.png │ │ ├── ZFPlayer_unlock-nor@3x.png │ │ ├── ZFPlayer_volume_high@2x.png │ │ ├── ZFPlayer_volume_high@3x.png │ │ ├── ZFPlayer_volume_low@2x.png │ │ ├── ZFPlayer_volume_low@3x.png │ │ ├── new_allPause_44x44_@2x.png │ │ ├── new_allPause_44x44_@3x.png │ │ ├── new_allPlay_44x44_@2x.png │ │ └── new_allPlay_44x44_@3x.png │ ├── ZFPlayerControlView.h │ ├── ZFPlayerControlView.m │ ├── ZFPortraitControlView.h │ ├── ZFPortraitControlView.m │ ├── ZFSliderView.h │ ├── ZFSliderView.m │ ├── ZFSmallFloatControlView.h │ ├── ZFSmallFloatControlView.m │ ├── ZFSpeedLoadingView.h │ ├── ZFSpeedLoadingView.m │ ├── ZFUtilities.h │ ├── ZFUtilities.m │ ├── ZFVolumeBrightnessView.h │ └── ZFVolumeBrightnessView.m │ └── Core │ ├── UIScrollView+ZFPlayer.h │ ├── UIScrollView+ZFPlayer.m │ ├── UIViewController+ZFPlayerRotation.m │ ├── ZFFloatView.h │ ├── ZFFloatView.m │ ├── ZFKVOController.h │ ├── ZFKVOController.m │ ├── ZFOrientationObserver.h │ ├── ZFOrientationObserver.m │ ├── ZFPlayer.h │ ├── ZFPlayerController.h │ ├── ZFPlayerController.m │ ├── ZFPlayerGestureControl.h │ ├── ZFPlayerGestureControl.m │ ├── ZFPlayerLogManager.h │ ├── ZFPlayerLogManager.m │ ├── ZFPlayerMediaControl.h │ ├── ZFPlayerMediaPlayback.h │ ├── ZFPlayerNotification.h │ ├── ZFPlayerNotification.m │ ├── ZFPlayerView.h │ ├── ZFPlayerView.m │ ├── ZFReachabilityManager.h │ └── ZFReachabilityManager.m ├── README.md ├── YYMusic.xcodeproj ├── project.pbxproj └── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ └── IDEWorkspaceChecks.plist ├── YYMusic.xcworkspace ├── contents.xcworkspacedata └── xcshareddata │ └── IDEWorkspaceChecks.plist ├── YYMusic ├── AppDelegate.swift ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ ├── Contents.json │ ├── Music │ │ ├── Contents.json │ │ ├── arrow.imageset │ │ │ ├── Contents.json │ │ │ └── arrow.png │ │ ├── arrow_down.imageset │ │ │ ├── Contents.json │ │ │ └── arrow_down.png │ │ ├── avatar_bg.imageset │ │ │ ├── Contents.json │ │ │ └── avatar_bg@2x.png │ │ ├── big_pause_button.imageset │ │ │ ├── Contents.json │ │ │ └── big_pause_button.png │ │ ├── big_play_button.imageset │ │ │ ├── Contents.json │ │ │ └── big_play_button.png │ │ ├── empty_heart.imageset │ │ │ ├── Contents.json │ │ │ └── empty_heart.png │ │ ├── icon_dot.imageset │ │ │ ├── Contents.json │ │ │ └── icon_dot@2x.png │ │ ├── icon_more.imageset │ │ │ ├── Contents.json │ │ │ └── icon_more@2x.png │ │ ├── icon_order.imageset │ │ │ ├── Contents.json │ │ │ └── icon_order@2x.png │ │ ├── icon_random.imageset │ │ │ ├── Contents.json │ │ │ └── icon_random@2x.png │ │ ├── icon_share.imageset │ │ │ ├── Contents.json │ │ │ └── icon_share@2x.png │ │ ├── icon_single.imageset │ │ │ ├── Contents.json │ │ │ └── icon_single@2x.png │ │ ├── icons_play_music1.imageset │ │ │ ├── Contents.json │ │ │ ├── icons_play_music1.png │ │ │ ├── icons_play_music1@2x.png │ │ │ └── icons_play_music1@3x.png │ │ ├── icons_stop_music1.imageset │ │ │ ├── Contents.json │ │ │ ├── icons_stop_music1.png │ │ │ ├── icons_stop_music1@2x.png │ │ │ └── icons_stop_music1@3x.png │ │ ├── launchImage.imageset │ │ │ ├── Contents.json │ │ │ └── music.png │ │ ├── menu.imageset │ │ │ ├── Contents.json │ │ │ └── menu.png │ │ ├── music_placeholder.imageset │ │ │ ├── Contents.json │ │ │ └── dfxnnxf .png │ │ ├── music_slider_circle.imageset │ │ │ ├── Contents.json │ │ │ └── music_slider_circle.png │ │ ├── musicicon.imageset │ │ │ ├── Contents.json │ │ │ └── musicicon.png │ │ ├── nav_back.imageset │ │ │ ├── Contents.json │ │ │ ├── nav_back@2x.png │ │ │ └── nav_back@3x.png │ │ ├── next_song.imageset │ │ │ ├── Contents.json │ │ │ └── next_song.png │ │ ├── prev_song.imageset │ │ │ ├── Contents.json │ │ │ └── prev_song.png │ │ └── red_heart.imageset │ │ │ ├── Contents.json │ │ │ └── red_heart.png │ └── tabs │ │ ├── Contents.json │ │ ├── ico_sy.imageset │ │ ├── Contents.json │ │ ├── ico_sy@2x.png │ │ └── ico_sy@3x.png │ │ ├── ico_sy_xz.imageset │ │ ├── Contents.json │ │ ├── ico_sy_xz@2x.png │ │ └── ico_sy_xz@3x.png │ │ ├── ico_wd.imageset │ │ ├── Contents.json │ │ ├── ico_wd@2x.png │ │ └── ico_wd@3x.png │ │ └── ico_wd_xz.imageset │ │ ├── Contents.json │ │ ├── ico_wd_xz@2x.png │ │ └── ico_wd_xz@3x.png ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard ├── Controller │ ├── 我的 │ │ ├── MVListViewController.swift │ │ └── MVPlayViewController.swift │ └── 首页 │ │ ├── BillListViewController.swift │ │ ├── MoreListViewController.swift │ │ └── TrackListViewController.swift ├── Extension │ ├── NotificationCenterExtension.swift │ ├── StringExtention.swift │ ├── UIColorExtention.swift │ └── UIViewExtention.swift ├── Info.plist ├── Main │ ├── BaseNavigationViewController.swift │ ├── BaseViewController.swift │ └── MainTabBarViewController.swift ├── Model │ ├── BDModel.swift │ ├── CommonResult.swift │ └── PlayerModel.swift ├── NetWork │ ├── AlamofireManager.swift │ ├── NetWorkingTool.swift │ └── RequestHelper.swift ├── Tools │ ├── Common.swift │ ├── CustomHUD.swift │ ├── DeviceInfo.swift │ ├── FileCache │ │ ├── CacheFileHandle.swift │ │ ├── RequestTask.swift │ │ ├── ResourceLoader.swift │ │ └── URLExtention.swift │ ├── OverlayModalPresentation │ │ ├── OverlayAnimatedTransitioner.swift │ │ ├── OverlayModalPresentation.swift │ │ ├── OverlayPickerViewController.swift │ │ └── OverlayPresentationController.swift │ ├── PageView │ │ ├── PageScrollView.swift │ │ ├── SelectConfigue.swift │ │ └── TitleScrollView.swift │ ├── PlayTools │ │ ├── LrcAnalyzer.swift │ │ ├── LyricViewController.swift │ │ ├── LyricViewController.xib │ │ ├── MainPlayViewController.swift │ │ ├── MainPlayViewController.xib │ │ ├── MusicSliderView.swift │ │ ├── PlayDetailViewController.swift │ │ └── PlayDetailViewController.xib │ ├── PlayerManager.swift │ └── UserDefaultsManager.swift ├── View │ ├── InfiniteCycleView.swift │ ├── LrcCell.swift │ ├── LrcLabel.swift │ ├── MusicView.swift │ ├── WHPlayerBottomView.swift │ └── ZFTableViewCell.swift └── screenshot │ ├── Simulator Screen Shot - iPhone 8 - 2020-06-30 at 16.58.37.png │ ├── Simulator Screen Shot - iPhone 8 - 2020-06-30 at 16.58.49.png │ └── Simulator Screen Shot - iPhone 8 - 2020-06-30 at 16.58.53.png ├── YYMusicTests ├── Info.plist └── YYMusicTests.swift └── YYMusicUITests ├── Info.plist └── YYMusicUITests.swift /Podfile: -------------------------------------------------------------------------------- 1 | source 'https://github.com/CocoaPods/Specs.git' 2 | target 'YYMusic' do 3 | platform :ios, '10.0' 4 | use_frameworks! 5 | # 忽略pod警告 6 | inhibit_all_warnings! 7 | 8 | pod 'Alamofire', '~> 5.0.0' 9 | pod 'Kingfisher', '~> 5.13.1' 10 | pod 'ObjectMapper', '~> 3.5.1' 11 | pod 'PKHUD', '~> 5.3.0' 12 | pod 'SnapKit', '~> 5.0.1' 13 | pod 'MJRefresh', '~> 3.3.1' 14 | pod 'HWPanModal', '~> 0.6.7' 15 | pod 'ZFPlayer', '~> 3.2.17' 16 | pod 'ZFPlayer/AVPlayer', '~> 3.2.17' 17 | pod 'ZFPlayer/ControlView', '~> 3.2.17' 18 | pod 'MarqueeLabel/Swift', '~> 3.2.1' 19 | 20 | 21 | target 'YYMusicTests' do 22 | inherit! :search_paths 23 | # Pods for testing 24 | end 25 | 26 | target 'YYMusicUITests' do 27 | # Pods for testing 28 | end 29 | 30 | end 31 | 32 | post_install do |installer| 33 | installer.pods_project.targets.each do |target| 34 | target.build_configurations.each do |config| 35 | config.build_settings['SWIFT_VERSION'] = '5.0' 36 | end 37 | end 38 | end 39 | -------------------------------------------------------------------------------- /Pods/Alamofire/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014-2020 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/Alamofire/Source/Alamofire.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Alamofire.swift 3 | // 4 | // Copyright (c) 2014-2018 Alamofire Software Foundation (http://alamofire.org/) 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | // 24 | 25 | /// Reference to `Session.default` for quick bootstrapping and examples. 26 | public let AF = Session.default 27 | 28 | /// Current Alamofire version. Necessary since SPM doesn't use dynamic libraries. Plus this will be more accurate. 29 | let version = "5.0.0" 30 | -------------------------------------------------------------------------------- /Pods/HWPanModal/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Heath Wang 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 | -------------------------------------------------------------------------------- /Pods/HWPanModal/Sources/Animator/HWPanModalAnimator.h: -------------------------------------------------------------------------------- 1 | // 2 | // HWPanModalAnimator.h 3 | // HWPanModal 4 | // 5 | // Created by heath wang on 2019/4/26. 6 | // 7 | 8 | #import 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | typedef void(^AnimationBlockType)(void); 14 | typedef void(^AnimationCompletionType)(BOOL completion); 15 | 16 | static NSTimeInterval kTransitionDuration = 0.5; 17 | 18 | @interface HWPanModalAnimator : NSObject 19 | 20 | + (void)animate:(AnimationBlockType)animations config:(nullable id )config completion:(nullable AnimationCompletionType)completion; 21 | 22 | + (void)dismissAnimate:(AnimationBlockType)animations config:(nullable id )config completion:(AnimationCompletionType)completion; 23 | 24 | + (void)smoothAnimate:(AnimationBlockType)animations duration:(NSTimeInterval)duration completion:(nullable AnimationCompletionType)completion; 25 | @end 26 | 27 | NS_ASSUME_NONNULL_END 28 | -------------------------------------------------------------------------------- /Pods/HWPanModal/Sources/Animator/HWPanModalInteractiveAnimator.h: -------------------------------------------------------------------------------- 1 | // 2 | // HWPanModalInteractiveAnimator.h 3 | // HWPanModal 4 | // 5 | // Created by heath wang on 2019/5/14. 6 | // 7 | 8 | #import 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface HWPanModalInteractiveAnimator : UIPercentDrivenInteractiveTransition 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Pods/HWPanModal/Sources/Animator/HWPanModalInteractiveAnimator.m: -------------------------------------------------------------------------------- 1 | // 2 | // HWPanModalInteractiveAnimator.m 3 | // HWPanModal 4 | // 5 | // Created by heath wang on 2019/5/14. 6 | // 7 | 8 | #import "HWPanModalInteractiveAnimator.h" 9 | 10 | @implementation HWPanModalInteractiveAnimator 11 | 12 | - (CGFloat)completionSpeed { 13 | return 0.618; 14 | } 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Pods/HWPanModal/Sources/Animator/HWPanModalPresentationAnimator.h: -------------------------------------------------------------------------------- 1 | // 2 | // HWPanModalPresentationAnimator.h 3 | // HWPanModal 4 | // 5 | // Created by heath wang on 2019/4/29. 6 | // 7 | 8 | #import 9 | #import 10 | #import "HWPanModalPresentationDelegate.h" 11 | 12 | typedef NS_ENUM(NSInteger, TransitionStyle) { 13 | TransitionStylePresentation, 14 | TransitionStyleDismissal, 15 | }; 16 | 17 | NS_ASSUME_NONNULL_BEGIN 18 | 19 | @interface HWPanModalPresentationAnimator : NSObject 20 | 21 | - (instancetype)initWithTransitionStyle:(TransitionStyle)transitionStyle interactiveMode:(PanModalInteractiveMode)mode; 22 | 23 | - (instancetype)init NS_UNAVAILABLE; 24 | - (instancetype)new NS_UNAVAILABLE; 25 | 26 | @end 27 | 28 | NS_ASSUME_NONNULL_END 29 | -------------------------------------------------------------------------------- /Pods/HWPanModal/Sources/Animator/PresentingVCAnimation/HWPageSheetPresentingAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // HWPageSheetPresentingAnimation.h 3 | // HWPanModal-iOS10.0 4 | // 5 | // Created by heath wang on 2019/9/5. 6 | // 7 | 8 | #import 9 | #import "HWPresentingVCAnimatedTransitioning.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface HWPageSheetPresentingAnimation : NSObject 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Pods/HWPanModal/Sources/Animator/PresentingVCAnimation/HWPageSheetPresentingAnimation.m: -------------------------------------------------------------------------------- 1 | // 2 | // HWPageSheetPresentingAnimation.m 3 | // HWPanModal-iOS10.0 4 | // 5 | // Created by heath wang on 2019/9/5. 6 | // 7 | 8 | #import "HWPageSheetPresentingAnimation.h" 9 | 10 | @implementation HWPageSheetPresentingAnimation 11 | 12 | - (void)presentAnimateTransition:(nonnull id )context { 13 | NSTimeInterval duration = [context transitionDuration]; 14 | UIViewController *fromVC = [context viewControllerForKey:UITransitionContextFromViewControllerKey]; 15 | [UIView animateWithDuration:duration delay:0 usingSpringWithDamping:0.9 initialSpringVelocity:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{ 16 | CGFloat statusBarHeight = [UIApplication sharedApplication].statusBarFrame.size.height; 17 | CGFloat scale = 1 - statusBarHeight * 2 / CGRectGetHeight(fromVC.view.bounds); 18 | fromVC.view.transform = CGAffineTransformMakeScale(scale, scale); 19 | } completion:^(BOOL finished) { 20 | 21 | }]; 22 | } 23 | 24 | - (void)dismissAnimateTransition:(nonnull id )context { 25 | UIViewController *toVC = [context viewControllerForKey:UITransitionContextToViewControllerKey]; 26 | toVC.view.transform = CGAffineTransformIdentity; 27 | } 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Pods/HWPanModal/Sources/Animator/PresentingVCAnimation/HWShoppingCartPresentingAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // HWShoppingCartPresentingAnimation.h 3 | // HWPanModal-iOS10.0 4 | // 5 | // Created by heath wang on 2019/9/5. 6 | // 7 | 8 | #import 9 | #import "HWPresentingVCAnimatedTransitioning.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface HWShoppingCartPresentingAnimation : NSObject 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Pods/HWPanModal/Sources/Category/NSObject+HW_Swizzle.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSObject+HW_Swizzle.h 3 | // HWPanModal 4 | // 5 | // Created by heath wang on 2019/8/16. 6 | // 7 | 8 | #import 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface NSObject (HW_Swizzle) 14 | 15 | + (BOOL)hw_swizzleInstanceMethod:(SEL)originalSel with:(SEL)newSel; 16 | + (BOOL)hw_swizzleClassMethod:(SEL)originalSel with:(SEL)newSel; 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /Pods/HWPanModal/Sources/Category/NSObject+HW_Swizzle.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSObject+HW_Swizzle.m 3 | // HWPanModal 4 | // 5 | // Created by heath wang on 2019/8/16. 6 | // 7 | 8 | #import "NSObject+HW_Swizzle.h" 9 | #import 10 | 11 | @implementation NSObject (HW_Swizzle) 12 | 13 | + (BOOL)hw_swizzleInstanceMethod:(SEL)originalSel with:(SEL)newSel { 14 | Method originalMethod = class_getInstanceMethod(self, originalSel); 15 | Method newMethod = class_getInstanceMethod(self, newSel); 16 | if (!originalMethod || !newMethod) return NO; 17 | 18 | class_addMethod(self, 19 | originalSel, 20 | class_getMethodImplementation(self, originalSel), 21 | method_getTypeEncoding(originalMethod)); 22 | class_addMethod(self, 23 | newSel, 24 | class_getMethodImplementation(self, newSel), 25 | method_getTypeEncoding(newMethod)); 26 | 27 | method_exchangeImplementations(class_getInstanceMethod(self, originalSel), 28 | class_getInstanceMethod(self, newSel)); 29 | return YES; 30 | } 31 | 32 | + (BOOL)hw_swizzleClassMethod:(SEL)originalSel with:(SEL)newSel { 33 | Class class = object_getClass(self); 34 | Method originalMethod = class_getInstanceMethod(class, originalSel); 35 | Method newMethod = class_getInstanceMethod(class, newSel); 36 | if (!originalMethod || !newMethod) return NO; 37 | method_exchangeImplementations(originalMethod, newMethod); 38 | return YES; 39 | } 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /Pods/HWPanModal/Sources/Category/UINavigationController+HWPanModal.h: -------------------------------------------------------------------------------- 1 | // 2 | // UINavigationController+HWPanModal.h 3 | // HWPanModal 4 | // 5 | // Created by heath wang on 2019/8/16. 6 | // 7 | 8 | #import 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface UINavigationController (HWPanModal) 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Pods/HWPanModal/Sources/Category/UIScrollView+Helper.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIScrollView+Helper.h 3 | // Pods 4 | // 5 | // Created by heath wang on 2019/10/15. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface UIScrollView (Helper) 13 | 14 | @property (nonatomic, assign, readonly) BOOL isScrolling; 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Pods/HWPanModal/Sources/Category/UIScrollView+Helper.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIScrollView+Helper.m 3 | // Pods 4 | // 5 | // Created by heath wang on 2019/10/15. 6 | // 7 | 8 | #import "UIScrollView+Helper.h" 9 | 10 | @implementation UIScrollView (Helper) 11 | 12 | - (BOOL)isScrolling { 13 | return (self.isDragging && !self.isDecelerating) || self.isTracking; 14 | } 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Pods/HWPanModal/Sources/Category/UIView+HW_Frame.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+HW_Frame.h 3 | // HWPanModal 4 | // 5 | // Created by heath wang on 2019/5/20. 6 | // 7 | 8 | #import 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface UIView (HW_Frame) 14 | 15 | @property (nonatomic, assign) CGFloat hw_left; ///< Shortcut for frame.origin.x. 16 | @property (nonatomic, assign) CGFloat hw_top; ///< Shortcut for frame.origin.y 17 | @property (nonatomic, assign) CGFloat hw_right; ///< Shortcut for frame.origin.x + frame.size.width 18 | @property (nonatomic, assign) CGFloat hw_bottom; ///< Shortcut for frame.origin.y + frame.size.height 19 | @property (nonatomic, assign) CGFloat hw_width; ///< Shortcut for frame.size.width. 20 | @property (nonatomic, assign) CGFloat hw_height; ///< Shortcut for frame.size.height. 21 | @property (nonatomic, assign) CGFloat hw_centerX; ///< Shortcut for center.x 22 | @property (nonatomic, assign) CGFloat hw_centerY; ///< Shortcut for center.y 23 | @property (nonatomic, assign) CGPoint hw_origin; ///< Shortcut for frame.origin. 24 | @property (nonatomic, assign) CGSize hw_size; ///< Shortcut for frame.size. 25 | 26 | @end 27 | 28 | NS_ASSUME_NONNULL_END 29 | -------------------------------------------------------------------------------- /Pods/HWPanModal/Sources/Controller/HWPanModalPresentationController.h: -------------------------------------------------------------------------------- 1 | // 2 | // HWPanModalPresentationController.h 3 | // HWPanModal 4 | // 5 | // Created by heath wang on 2019/4/26. 6 | // 7 | 8 | #import 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | 14 | @interface HWPanModalPresentationController : UIPresentationController 15 | 16 | - (void)setNeedsLayoutUpdate; 17 | 18 | - (void)transitionToState:(PresentationState)state animated:(BOOL)animated; 19 | 20 | - (void)setScrollableContentOffset:(CGPoint)offset animated:(BOOL)animated; 21 | 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /Pods/HWPanModal/Sources/Delegate/HWPanModalPresentationDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // HWPanModalPresentationDelegate.h 3 | // HWPanModal 4 | // 5 | // Created by heath wang on 2019/4/29. 6 | // 7 | 8 | #import 9 | #import 10 | 11 | @class HWPanModalInteractiveAnimator; 12 | 13 | typedef NS_ENUM(NSInteger, PanModalInteractiveMode) { 14 | PanModalInteractiveModeNone, 15 | PanModalInteractiveModeSideslip, // 侧滑返回 16 | PanModalInteractiveModeDragDown, // 向下拖拽返回 17 | }; 18 | 19 | NS_ASSUME_NONNULL_BEGIN 20 | 21 | @interface HWPanModalPresentationDelegate : NSObject 22 | 23 | @property (nonatomic, assign) BOOL interactive; 24 | @property (nonatomic, assign) PanModalInteractiveMode interactiveMode; 25 | @property (nonnull, nonatomic, strong, readonly) HWPanModalInteractiveAnimator *interactiveDismissalAnimator; 26 | 27 | @end 28 | 29 | NS_ASSUME_NONNULL_END 30 | -------------------------------------------------------------------------------- /Pods/HWPanModal/Sources/HWPanModal.h: -------------------------------------------------------------------------------- 1 | // 2 | // HWPanModal.h 3 | // Pods 4 | // 5 | // Created by heath wang on 2019/4/30. 6 | // 7 | 8 | //! Project version number for HWPanModal. 9 | FOUNDATION_EXPORT double HWPanModalVersionNumber; 10 | 11 | //! Project version string for JYHitchModule. 12 | FOUNDATION_EXPORT const unsigned char HWPanModalVersionString[]; 13 | 14 | // protocol 15 | #import 16 | #import 17 | 18 | #import 19 | 20 | // category 21 | #import 22 | #import 23 | #import 24 | #import 25 | 26 | // custom animation 27 | #import 28 | 29 | // view 30 | #import 31 | #import 32 | 33 | // panModal view 34 | #import 35 | -------------------------------------------------------------------------------- /Pods/HWPanModal/Sources/Presentable/HWPanModalPresentationUpdateProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // HWPanModalPresentationUpdateProtocol.h 3 | // Pods 4 | // 5 | // Created by heath wang on 2019/10/17. 6 | // 7 | 8 | #import 9 | 10 | @protocol HWPanModalPresentationUpdateProtocol 11 | 12 | /** 13 | * force update pan modal State, short/long 14 | */ 15 | - (void)hw_panModalTransitionTo:(PresentationState)state NS_SWIFT_NAME(panModalTransitionTo(state:)); 16 | 17 | /** 18 | * force update pan modal State, short/long 19 | * @param state transition state 20 | * @param animated whether animate when set state 21 | */ 22 | - (void)hw_panModalTransitionTo:(PresentationState)state animated:(BOOL)animated NS_SWIFT_NAME(panModalTransitionTo(state:animated:)); 23 | 24 | /** 25 | * When presented ViewController has a UIScrollView, Use This method to update UIScrollView contentOffset 26 | * Default it has animation 27 | */ 28 | - (void)hw_panModalSetContentOffset:(CGPoint)offset NS_SWIFT_NAME(panModalSetContentOffset(offset:)); 29 | 30 | /** 31 | * When presented ViewController has a UIScrollView, Use This method to update UIScrollView contentOffset 32 | * @param offset scrollView offset value 33 | * @param animated whether animate 34 | */ 35 | - (void)hw_panModalSetContentOffset:(CGPoint)offset animated:(BOOL)animated NS_SWIFT_NAME(panModalSetContentOffset(offset:animated:)); 36 | 37 | /** 38 | * Note:if we present a NavigationController, and we want to pan screen edge to dismiss. 39 | * We MUST call this method when we PUSH/POP viewController. 40 | * 41 | */ 42 | - (void)hw_panModalSetNeedsLayoutUpdate NS_SWIFT_NAME(panModalSetNeedsLayoutUpdate()); 43 | 44 | @end 45 | -------------------------------------------------------------------------------- /Pods/HWPanModal/Sources/Presentable/UIViewController+LayoutHelper.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+LayoutHelper.h 3 | // HWPanModal 4 | // 5 | // Created by heath wang on 2019/4/26. 6 | // 7 | 8 | #import 9 | @class HWPanModalPresentationController; 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol HWPanModalPresentableLayoutProtocol 14 | 15 | @property (nonatomic, assign, readonly) CGFloat topLayoutOffset; 16 | 17 | @property (nonatomic, assign, readonly) CGFloat bottomLayoutOffset; 18 | 19 | @property (nonatomic, assign, readonly) CGFloat shortFormYPos; 20 | 21 | @property (nonatomic, assign, readonly) CGFloat longFormYPos; 22 | 23 | @property (nonatomic, assign, readonly) CGFloat bottomYPos; 24 | 25 | @end 26 | 27 | /** 28 | * Help presentedViewController/presented View to layout. 29 | */ 30 | @interface UIViewController (LayoutHelper) 31 | 32 | @property (nullable, nonatomic, strong, readonly) HWPanModalPresentationController *hw_presentedVC; 33 | 34 | @end 35 | 36 | NS_ASSUME_NONNULL_END 37 | -------------------------------------------------------------------------------- /Pods/HWPanModal/Sources/Presentable/UIViewController+PanModalDefault.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+PanModalDefault.h 3 | // HWPanModal 4 | // 5 | // Created by heath wang on 2019/4/26. 6 | // 7 | 8 | #import 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface UIViewController (PanModalDefault) 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Pods/HWPanModal/Sources/Presentable/UIViewController+Presentation.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+Presentation.h 3 | // HWPanModal 4 | // 5 | // Created by heath wang on 2019/4/29. 6 | // 7 | 8 | #import 9 | #import 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | /** 15 | * The presented Controller can use the category to update UIPresentationController container. 16 | */ 17 | @interface UIViewController (Presentation) 18 | 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Pods/HWPanModal/Sources/Presentable/UIViewController+Presentation.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+Presentation.m 3 | // HWPanModal 4 | // 5 | // Created by heath wang on 2019/4/29. 6 | // 7 | 8 | #import "UIViewController+Presentation.h" 9 | #import "UIViewController+LayoutHelper.h" 10 | #import "HWPanModalPresentationController.h" 11 | 12 | @interface UIViewController () 13 | 14 | @end 15 | 16 | @implementation UIViewController (Presentation) 17 | 18 | - (void)hw_panModalTransitionTo:(PresentationState)state { 19 | if (!self.hw_presentedVC) return; 20 | [self.hw_presentedVC transitionToState:state animated:YES]; 21 | } 22 | 23 | - (void)hw_panModalTransitionTo:(PresentationState)state animated:(BOOL)animated { 24 | if (!self.hw_presentedVC) return; 25 | [self.hw_presentedVC transitionToState:state animated:animated]; 26 | } 27 | 28 | - (void)hw_panModalSetContentOffset:(CGPoint)offset animated:(BOOL)animated { 29 | if (!self.hw_presentedVC) return; 30 | [self.hw_presentedVC setScrollableContentOffset:offset animated:animated]; 31 | } 32 | 33 | 34 | - (void)hw_panModalSetContentOffset:(CGPoint)offset { 35 | if (!self.hw_presentedVC) return; 36 | [self.hw_presentedVC setScrollableContentOffset:offset animated:YES]; 37 | } 38 | 39 | - (void)hw_panModalSetNeedsLayoutUpdate { 40 | if (!self.hw_presentedVC) return; 41 | [self.hw_presentedVC setNeedsLayoutUpdate]; 42 | } 43 | 44 | @end 45 | -------------------------------------------------------------------------------- /Pods/HWPanModal/Sources/Presenter/HWPanModalPresenterProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // HWPanModalPresenterProtocol.h 3 | // Pods 4 | // 5 | // Created by heath wang on 2019/4/29. 6 | // 7 | 8 | #import 9 | #import 10 | #import 11 | @class HWPanModalPresentationDelegate; 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @protocol HWPanModalPresenter 16 | 17 | @property (nonatomic, assign, readonly) BOOL isPanModalPresented; 18 | /** 19 | * 这里我们将实现UIViewControllerTransitioningDelegate协议的delegate通过runtime存入到viewControllerToPresent中。 20 | * use runtime to store this prop to hw_presentedVC 21 | */ 22 | @property (nonnull, nonatomic, strong) HWPanModalPresentationDelegate *hw_panModalPresentationDelegate; 23 | 24 | /** 25 | * Note: This method ONLY for iPad, like UIPopoverPresentationController. 26 | */ 27 | - (void)presentPanModal:(UIViewController *)viewControllerToPresent 28 | sourceView:(nullable UIView *)sourceView 29 | sourceRect:(CGRect)rect; 30 | 31 | - (void)presentPanModal:(UIViewController *)viewControllerToPresent 32 | sourceView:(nullable UIView *)sourceView 33 | sourceRect:(CGRect)rect 34 | completion:(void (^ __nullable)(void))completion; 35 | 36 | /** 37 | * Present the Controller from bottom. 38 | */ 39 | - (void)presentPanModal:(UIViewController *)viewControllerToPresent; 40 | 41 | - (void)presentPanModal:(UIViewController *)viewControllerToPresent 42 | completion:(void (^ __nullable)(void))completion; 43 | 44 | @end 45 | 46 | NS_ASSUME_NONNULL_END 47 | 48 | -------------------------------------------------------------------------------- /Pods/HWPanModal/Sources/Presenter/UIViewController+PanModalPresenter.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+PanModalPresenter.h 3 | // HWPanModal 4 | // 5 | // Created by heath wang on 2019/4/29. 6 | // 7 | 8 | #import 9 | #import "HWPanModalPresenterProtocol.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface UIViewController (PanModalPresenter) 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Pods/HWPanModal/Sources/View/HWDimmedView.h: -------------------------------------------------------------------------------- 1 | // 2 | // HWDimmedView.h 3 | // HWPanModal 4 | // 5 | // Created by heath wang on 2019/4/26. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | typedef NS_ENUM(NSInteger, DimState) { 13 | DimStateMax, 14 | DimStateOff, 15 | DimStatePercent, 16 | }; 17 | 18 | typedef void(^didTap)(UITapGestureRecognizer *recognizer); 19 | 20 | @interface HWDimmedView : UIView 21 | 22 | @property (nonatomic, assign) DimState dimState; 23 | @property (nonatomic, assign) CGFloat percent; 24 | @property (nullable, nonatomic, copy) didTap tapBlock; 25 | @property (nullable, nonatomic, strong) UIColor *blurTintColor; 26 | 27 | /** 28 | * init with the max dim alpha & max blur radius. 29 | */ 30 | - (instancetype)initWithDimAlpha:(CGFloat)dimAlpha blurRadius:(CGFloat)blurRadius; 31 | 32 | @end 33 | 34 | NS_ASSUME_NONNULL_END 35 | -------------------------------------------------------------------------------- /Pods/HWPanModal/Sources/View/HWPanContainerView.h: -------------------------------------------------------------------------------- 1 | // 2 | // HWPanContainerView.h 3 | // HWPanModal 4 | // 5 | // Created by heath wang on 2019/4/26. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface HWPanContainerView : UIView 13 | 14 | /// the presented view should add to the content view. 15 | @property (nonatomic, strong, readonly) UIView *contentView; 16 | 17 | - (instancetype)initWithPresentedView:(UIView *)presentedView frame:(CGRect)frame; 18 | 19 | - (void)updateShadow:(UIColor *)shadowColor 20 | shadowRadius:(CGFloat)shadowRadius 21 | shadowOffset:(CGSize)shadowOffset 22 | shadowOpacity:(float)shadowOpacity; 23 | 24 | @end 25 | 26 | @interface UIView (PanContainer) 27 | 28 | @property (nullable, nonatomic, strong, readonly) HWPanContainerView *panContainerView; 29 | 30 | @end 31 | 32 | NS_ASSUME_NONNULL_END 33 | -------------------------------------------------------------------------------- /Pods/HWPanModal/Sources/View/HWPanContainerView.m: -------------------------------------------------------------------------------- 1 | // 2 | // HWPanContainerView.m 3 | // HWPanModal 4 | // 5 | // Created by heath wang on 2019/4/26. 6 | // 7 | 8 | #import "HWPanContainerView.h" 9 | 10 | @interface HWPanContainerView () 11 | 12 | @property (nonatomic, strong) UIView *contentView; 13 | 14 | @end 15 | 16 | @implementation HWPanContainerView 17 | 18 | - (instancetype)initWithPresentedView:(UIView *)presentedView frame:(CGRect)frame { 19 | self = [super initWithFrame:frame]; 20 | if (self) { 21 | _contentView = [UIView new]; 22 | 23 | _contentView.frame = self.bounds; 24 | [self addSubview:_contentView]; 25 | [_contentView addSubview:presentedView]; 26 | } 27 | 28 | return self; 29 | } 30 | 31 | - (void)updateShadow:(UIColor *)shadowColor shadowRadius:(CGFloat)shadowRadius shadowOffset:(CGSize)shadowOffset shadowOpacity:(float)shadowOpacity { 32 | 33 | self.layer.shadowColor = shadowColor.CGColor; 34 | self.layer.shadowRadius = shadowRadius; 35 | self.layer.shadowOffset = shadowOffset; 36 | self.layer.shadowOpacity = shadowOpacity; 37 | } 38 | 39 | @end 40 | 41 | @implementation UIView (PanContainer) 42 | 43 | - (HWPanContainerView *)panContainerView { 44 | for (UIView *subview in self.subviews) { 45 | if ([subview isKindOfClass:HWPanContainerView.class]) { 46 | return (HWPanContainerView *) subview; 47 | } 48 | } 49 | return nil; 50 | } 51 | 52 | 53 | @end 54 | -------------------------------------------------------------------------------- /Pods/HWPanModal/Sources/View/HWPanIndicatorView.h: -------------------------------------------------------------------------------- 1 | // 2 | // HWPanIndicatorView.h 3 | // HWPanModal 4 | // 5 | // Created by heath wang on 2019/5/16. 6 | // 7 | 8 | #import 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface HWPanIndicatorView : UIView 14 | 15 | @property (nonnull, nonatomic, strong) UIColor *indicatorColor; 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Pods/HWPanModal/Sources/View/HWPanModalIndicatorProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // HWPanModalIndicatorProtocol.h 3 | // HWPanModal 4 | // 5 | // Created by heath wang on 2019/8/9. 6 | // 7 | 8 | typedef NS_ENUM(NSUInteger, HWIndicatorState) { 9 | HWIndicatorStateNormal NS_SWIFT_NAME(normal), // origin state 10 | HWIndicatorStatePullDown NS_SWIFT_NAME(pull), // drag down state 11 | }; 12 | 13 | static CGFloat const kIndicatorYOffset = 5; 14 | 15 | @protocol HWPanModalIndicatorProtocol 16 | 17 | /** 18 | * When user drags, the state will change. 19 | * You can change your UI here. 20 | * @param state The state when drag changed. 21 | */ 22 | - (void)didChangeToState:(HWIndicatorState)state; 23 | 24 | /** 25 | * Tell the size of the indicator. 26 | */ 27 | - (CGSize)indicatorSize; 28 | 29 | /** 30 | * You can layout your UI here if you need. 31 | * This method called when indicator added to super view 32 | */ 33 | - (void)setupSubviews; 34 | 35 | @end 36 | 37 | -------------------------------------------------------------------------------- /Pods/HWPanModal/Sources/View/HWVisualEffectView.h: -------------------------------------------------------------------------------- 1 | // 2 | // HWVisualEffectView.h 3 | // HWPanModal 4 | // 5 | // Created by heath wang on 2019/6/14. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface HWVisualEffectView : UIVisualEffectView 13 | 14 | /** 15 | * tint color 16 | * default is nil 17 | */ 18 | @property (nullable, nonatomic, strong) UIColor *colorTint; 19 | /** 20 | * tint color alpha 21 | * default is 0.0 22 | */ 23 | @property (nonatomic, assign) CGFloat colorTintAlpha; 24 | /** 25 | * blur radius, change it to make blur affect 26 | * default is 0.0 27 | */ 28 | @property (nonatomic, assign) CGFloat blurRadius; 29 | /** 30 | * scale factor. 31 | * default is 1.0 32 | */ 33 | @property (nonatomic, assign) CGFloat scale; 34 | 35 | @end 36 | 37 | NS_ASSUME_NONNULL_END 38 | -------------------------------------------------------------------------------- /Pods/HWPanModal/Sources/View/PanModal/HWPanModalContainerView.h: -------------------------------------------------------------------------------- 1 | // 2 | // HWPanModalContainerView.h 3 | // Pods 4 | // 5 | // Created by heath wang on 2019/10/17. 6 | // 7 | 8 | #import 9 | #import 10 | 11 | @class HWPanModalContentView; 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface HWPanModalContainerView : UIView 16 | 17 | - (instancetype)initWithPresentingView:(UIView *)presentingView contentView:(HWPanModalContentView *)contentView; 18 | 19 | - (void)show; 20 | 21 | - (void)dismissAnimated:(BOOL)flag completion:(void (^)(void))completion; 22 | 23 | - (void)setNeedsLayoutUpdate; 24 | 25 | - (void)transitionToState:(PresentationState)state animated:(BOOL)animated; 26 | 27 | - (void)setScrollableContentOffset:(CGPoint)offset animated:(BOOL)animated; 28 | 29 | @end 30 | 31 | NS_ASSUME_NONNULL_END 32 | -------------------------------------------------------------------------------- /Pods/HWPanModal/Sources/View/PanModal/HWPanModalContentView.h: -------------------------------------------------------------------------------- 1 | // 2 | // HWPanModalContentView.h 3 | // Pods 4 | // 5 | // Created by heath wang on 2019/10/17. 6 | // 7 | 8 | #import 9 | #import 10 | #import 11 | #import 12 | 13 | @class HWPanModalContainerView; 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /// when use `HWPanModalContentView`, you should take care of the safe area by yourself. 18 | @interface HWPanModalContentView : UIView 19 | 20 | /** 21 | * present in the target view 22 | * @param view The view which present to. If the view is nil, will use UIWindow's keyWindow. 23 | */ 24 | - (void)presentInView:(nullable UIView *)view; 25 | 26 | /** 27 | * call this method to dismiss contentView directly. 28 | * @param flag should animate flag 29 | * @param completion dismiss completion block 30 | */ 31 | - (void)dismissAnimated:(BOOL)flag completion:(void (^)(void))completion; 32 | 33 | @end 34 | 35 | NS_ASSUME_NONNULL_END 36 | -------------------------------------------------------------------------------- /Pods/Kingfisher/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2019 Wei Wang 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/Kingfisher/Sources/Utility/Box.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Box.swift 3 | // Kingfisher 4 | // 5 | // Created by Wei Wang on 2018/3/17. 6 | // Copyright (c) 2019 Wei Wang 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy 9 | // of this software and associated documentation files (the "Software"), to deal 10 | // in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | // copies of the Software, and to permit persons to whom the Software is 13 | // furnished to do so, subject to the following conditions: 14 | // 15 | // The above copyright notice and this permission notice shall be included in 16 | // all copies or substantial portions of the Software. 17 | // 18 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24 | // THE SOFTWARE. 25 | 26 | import Foundation 27 | 28 | class Box { 29 | var value: T 30 | 31 | init(_ value: T) { 32 | self.value = value 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /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 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshAutoFooter : MJRefreshFooter 14 | /** 是否自动刷新(默认为YES) */ 15 | @property (assign, nonatomic, getter=isAutomaticallyRefresh) BOOL automaticallyRefresh; 16 | 17 | /** 当底部控件出现多少时就自动刷新(默认为1.0,也就是底部控件完全出现时,才会自动刷新) */ 18 | @property (assign, nonatomic) CGFloat appearencePercentTriggerAutoRefresh MJRefreshDeprecated("请使用triggerAutomaticallyRefreshPercent属性"); 19 | 20 | /** 当底部控件出现多少时就自动刷新(默认为1.0,也就是底部控件完全出现时,才会自动刷新) */ 21 | @property (assign, nonatomic) CGFloat triggerAutomaticallyRefreshPercent; 22 | 23 | /** 自动触发次数, 默认为 1, 仅在拖拽 ScrollView 时才生效, 24 | 25 | 如果为 -1, 则为无限触发 26 | */ 27 | @property (nonatomic) NSInteger autoTriggerTimes; 28 | @end 29 | 30 | NS_ASSUME_NONNULL_END 31 | -------------------------------------------------------------------------------- /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 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshBackFooter : MJRefreshFooter 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /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 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface MJRefreshFooter : MJRefreshComponent 15 | /** 创建footer */ 16 | + (instancetype)footerWithRefreshingBlock:(MJRefreshComponentAction)refreshingBlock; 17 | /** 创建footer */ 18 | + (instancetype)footerWithRefreshingTarget:(id)target refreshingAction:(SEL)action; 19 | 20 | /** 提示没有更多的数据 */ 21 | - (void)endRefreshingWithNoMoreData; 22 | - (void)noticeNoMoreData MJRefreshDeprecated("使用endRefreshingWithNoMoreData"); 23 | 24 | /** 重置没有更多的数据(消除没有更多数据的状态) */ 25 | - (void)resetNoMoreData; 26 | 27 | /** 忽略多少scrollView的contentInset的bottom */ 28 | @property (assign, nonatomic) CGFloat ignoredScrollViewContentInsetBottom; 29 | 30 | /** 自动根据有无数据来显示和隐藏(有数据就显示,没有数据隐藏。默认是NO) */ 31 | @property (assign, nonatomic, getter=isAutomaticallyHidden) BOOL automaticallyHidden MJRefreshDeprecated("已废弃此属性,开发者请自行控制footer的显示和隐藏"); 32 | @end 33 | 34 | NS_ASSUME_NONNULL_END 35 | -------------------------------------------------------------------------------- /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 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface MJRefreshHeader : MJRefreshComponent 15 | /** 创建header */ 16 | + (instancetype)headerWithRefreshingBlock:(MJRefreshComponentAction)refreshingBlock; 17 | /** 创建header */ 18 | + (instancetype)headerWithRefreshingTarget:(id)target refreshingAction:(SEL)action; 19 | 20 | /** 这个key用来存储上一次下拉刷新成功的时间 */ 21 | @property (copy, nonatomic) NSString *lastUpdatedTimeKey; 22 | /** 上一次下拉刷新成功的时间 */ 23 | @property (strong, nonatomic, readonly, nullable) NSDate *lastUpdatedTime; 24 | 25 | /** 忽略多少scrollView的contentInset的top */ 26 | @property (assign, nonatomic) CGFloat ignoredScrollViewContentInsetTop; 27 | @end 28 | 29 | NS_ASSUME_NONNULL_END 30 | -------------------------------------------------------------------------------- /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 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshAutoGifFooter : MJRefreshAutoStateFooter 14 | @property (weak, nonatomic, readonly) UIImageView *gifView; 15 | 16 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 17 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 18 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /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 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshAutoNormalFooter : MJRefreshAutoStateFooter 14 | @property (weak, nonatomic, readonly) UIActivityIndicatorView *loadingView; 15 | 16 | /** 菊花的样式 */ 17 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle MJRefreshDeprecated("first deprecated in 3.2.2 - Use `loadingView` property"); 18 | @end 19 | 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /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 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshAutoStateFooter : MJRefreshAutoFooter 14 | /** 文字距离圈圈、箭头的距离 */ 15 | @property (assign, nonatomic) CGFloat labelLeftInset; 16 | /** 显示刷新状态的label */ 17 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 18 | 19 | /** 设置state状态下的文字 */ 20 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 21 | 22 | /** 隐藏刷新状态的文字 */ 23 | @property (assign, nonatomic, getter=isRefreshingTitleHidden) BOOL refreshingTitleHidden; 24 | @end 25 | 26 | NS_ASSUME_NONNULL_END 27 | -------------------------------------------------------------------------------- /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 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshBackGifFooter : MJRefreshBackStateFooter 14 | @property (weak, nonatomic, readonly) UIImageView *gifView; 15 | 16 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 17 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 18 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /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 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshBackNormalFooter : MJRefreshBackStateFooter 14 | @property (weak, nonatomic, readonly) UIImageView *arrowView; 15 | @property (weak, nonatomic, readonly) UIActivityIndicatorView *loadingView; 16 | 17 | /** 菊花的样式 */ 18 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle MJRefreshDeprecated("first deprecated in 3.2.2 - Use `loadingView` property"); 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /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 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshBackStateFooter : MJRefreshBackFooter 14 | /** 文字距离圈圈、箭头的距离 */ 15 | @property (assign, nonatomic) CGFloat labelLeftInset; 16 | /** 显示刷新状态的label */ 17 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 18 | /** 设置state状态下的文字 */ 19 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 20 | 21 | /** 获取state状态下的title */ 22 | - (NSString *)titleForState:(MJRefreshState)state; 23 | @end 24 | 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /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 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshGifHeader : MJRefreshStateHeader 14 | @property (weak, nonatomic, readonly) UIImageView *gifView; 15 | 16 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 17 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 18 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /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 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshNormalHeader : MJRefreshStateHeader 14 | @property (weak, nonatomic, readonly) UIImageView *arrowView; 15 | @property (weak, nonatomic, readonly) UIActivityIndicatorView *loadingView; 16 | 17 | 18 | /** 菊花的样式 */ 19 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle MJRefreshDeprecated("first deprecated in 3.2.2 - Use `loadingView` property"); 20 | @end 21 | 22 | NS_ASSUME_NONNULL_END 23 | -------------------------------------------------------------------------------- /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 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MJRefreshStateHeader : MJRefreshHeader 14 | #pragma mark - 刷新时间相关 15 | /** 利用这个block来决定显示的更新时间文字 */ 16 | @property (copy, nonatomic, nullable) NSString *(^lastUpdatedTimeText)(NSDate * _Nullable lastUpdatedTime); 17 | /** 显示上一次刷新时间的label */ 18 | @property (weak, nonatomic, readonly) UILabel *lastUpdatedTimeLabel; 19 | 20 | #pragma mark - 状态相关 21 | /** 文字距离圈圈、箭头的距离 */ 22 | @property (assign, nonatomic) CGFloat labelLeftInset; 23 | /** 显示刷新状态的label */ 24 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 25 | /** 设置state状态下的文字 */ 26 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 27 | @end 28 | 29 | NS_ASSUME_NONNULL_END 30 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/arrow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/arrow@2x.png -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/en.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/en.lproj/Localizable.strings -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/ko.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "MJRefreshHeaderIdleText" = "아래로 당겨 새로고침"; 2 | "MJRefreshHeaderPullingText" = "놓으면 새로고침"; 3 | "MJRefreshHeaderRefreshingText" = "로딩중..."; 4 | 5 | "MJRefreshAutoFooterIdleText" = "탭 또는 위로 당겨 로드함"; 6 | "MJRefreshAutoFooterRefreshingText" = "로딩중..."; 7 | "MJRefreshAutoFooterNoMoreDataText" = "더이상 데이터 없음"; 8 | 9 | "MJRefreshBackFooterIdleText" = "위로 당겨 더 로드 가능"; 10 | "MJRefreshBackFooterPullingText" = "놓으면 더 로드됨."; 11 | "MJRefreshBackFooterRefreshingText" = "로딩중..."; 12 | "MJRefreshBackFooterNoMoreDataText" = "더이상 데이터 없음"; 13 | 14 | "MJRefreshHeaderLastTimeText" = "마지막 업데이트: "; 15 | "MJRefreshHeaderDateTodayText" = "오늘"; 16 | "MJRefreshHeaderNoneLastDateText" = "기록 없음"; 17 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/ru.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/ru.lproj/Localizable.strings -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/uk.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/uk.lproj/Localizable.strings -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/zh-Hans.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/zh-Hans.lproj/Localizable.strings -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/zh-Hant.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "MJRefreshHeaderIdleText" = "下拉可以刷新"; 2 | "MJRefreshHeaderPullingText" = "鬆開立即刷新"; 3 | "MJRefreshHeaderRefreshingText" = "正在刷新數據中..."; 4 | 5 | "MJRefreshAutoFooterIdleText" = "點擊或上拉加載更多"; 6 | "MJRefreshAutoFooterRefreshingText" = "正在加載更多的數據..."; 7 | "MJRefreshAutoFooterNoMoreDataText" = "已經全部加載完畢"; 8 | 9 | "MJRefreshBackFooterIdleText" = "上拉可以加載更多"; 10 | "MJRefreshBackFooterPullingText" = "鬆開立即加載更多"; 11 | "MJRefreshBackFooterRefreshingText" = "正在加載更多的數據..."; 12 | "MJRefreshBackFooterNoMoreDataText" = "已經全部加載完畢"; 13 | 14 | "MJRefreshHeaderLastTimeText" = "最後更新:"; 15 | "MJRefreshHeaderDateTodayText" = "今天"; 16 | "MJRefreshHeaderNoneLastDateText" = "無記錄"; 17 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | 4 | #import "UIScrollView+MJRefresh.h" 5 | #import "UIScrollView+MJExtension.h" 6 | #import "UIView+MJExtension.h" 7 | 8 | #import "MJRefreshNormalHeader.h" 9 | #import "MJRefreshGifHeader.h" 10 | 11 | #import "MJRefreshBackNormalFooter.h" 12 | #import "MJRefreshBackGifFooter.h" 13 | #import "MJRefreshAutoNormalFooter.h" 14 | #import "MJRefreshAutoGifFooter.h" -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefreshConfig.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshConfig.h 3 | // 4 | // Created by Frank on 2018/11/27. 5 | // Copyright © 2018 小码哥. All rights reserved. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface MJRefreshConfig : NSObject 13 | 14 | /** 默认使用的语言版本, 默认为 nil. 将随系统的语言自动改变 */ 15 | @property (copy, nonatomic, nullable) NSString *languageCode; 16 | 17 | /** @return Singleton Config instance */ 18 | + (instancetype)defaultConfig; 19 | 20 | - (instancetype)init NS_UNAVAILABLE; 21 | + (instancetype)new NS_UNAVAILABLE; 22 | 23 | @end 24 | 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefreshConfig.m: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshConfig.m 3 | // 4 | // Created by Frank on 2018/11/27. 5 | // Copyright © 2018 小码哥. All rights reserved. 6 | // 7 | 8 | #import "MJRefreshConfig.h" 9 | 10 | @implementation MJRefreshConfig 11 | 12 | static MJRefreshConfig *mj_RefreshConfig = nil; 13 | 14 | + (instancetype)defaultConfig { 15 | static dispatch_once_t onceToken; 16 | dispatch_once(&onceToken, ^{ 17 | mj_RefreshConfig = [[self alloc] init]; 18 | }); 19 | return mj_RefreshConfig; 20 | } 21 | 22 | 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/NSBundle+MJRefresh.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSBundle+MJRefresh.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 16/6/13. 6 | // Copyright © 2016年 小码哥. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface NSBundle (MJRefresh) 14 | + (instancetype)mj_refreshBundle; 15 | + (UIImage *)mj_arrowImage; 16 | + (NSString *)mj_localizedStringForKey:(NSString *)key value:(nullable NSString *)value; 17 | + (NSString *)mj_localizedStringForKey:(NSString *)key; 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /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 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface UIScrollView (MJExtension) 15 | @property (readonly, nonatomic) UIEdgeInsets mj_inset; 16 | 17 | @property (assign, nonatomic) CGFloat mj_insetT; 18 | @property (assign, nonatomic) CGFloat mj_insetB; 19 | @property (assign, nonatomic) CGFloat mj_insetL; 20 | @property (assign, nonatomic) CGFloat mj_insetR; 21 | 22 | @property (assign, nonatomic) CGFloat mj_offsetX; 23 | @property (assign, nonatomic) CGFloat mj_offsetY; 24 | 25 | @property (assign, nonatomic) CGFloat mj_contentW; 26 | @property (assign, nonatomic) CGFloat mj_contentH; 27 | @end 28 | 29 | NS_ASSUME_NONNULL_END 30 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/UIScrollView+MJRefresh.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // UIScrollView+MJRefresh.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 15/3/4. 7 | // Copyright (c) 2015年 小码哥. All rights reserved. 8 | // 给ScrollView增加下拉刷新、上拉刷新的功能 9 | 10 | #import 11 | #import "MJRefreshConst.h" 12 | 13 | @class MJRefreshHeader, MJRefreshFooter; 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface UIScrollView (MJRefresh) 18 | /** 下拉刷新控件 */ 19 | @property (strong, nonatomic, nullable) MJRefreshHeader *mj_header; 20 | @property (strong, nonatomic, nullable) MJRefreshHeader *header MJRefreshDeprecated("使用mj_header"); 21 | /** 上拉刷新控件 */ 22 | @property (strong, nonatomic, nullable) MJRefreshFooter *mj_footer; 23 | @property (strong, nonatomic, nullable) MJRefreshFooter *footer MJRefreshDeprecated("使用mj_footer"); 24 | 25 | #pragma mark - other 26 | - (NSInteger)mj_totalDataCount; 27 | 28 | @end 29 | 30 | NS_ASSUME_NONNULL_END 31 | -------------------------------------------------------------------------------- /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 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface UIView (MJExtension) 15 | @property (assign, nonatomic) CGFloat mj_x; 16 | @property (assign, nonatomic) CGFloat mj_y; 17 | @property (assign, nonatomic) CGFloat mj_w; 18 | @property (assign, nonatomic) CGFloat mj_h; 19 | @property (assign, nonatomic) CGSize mj_size; 20 | @property (assign, nonatomic) CGPoint mj_origin; 21 | @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /Pods/MarqueeLabel/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011-2017 Charles Powell 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 4 | documentation files (the "Software"), to deal in the Software without restriction, including without limitation 5 | the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and 6 | to permit persons to whom the Software is furnished to do so, subject to the following conditions: 7 | 8 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 9 | 10 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 11 | TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 12 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF 13 | CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 14 | IN THE SOFTWARE. -------------------------------------------------------------------------------- /Pods/ObjectMapper/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | Copyright (c) 2014 Hearst 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 5 | 6 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 7 | 8 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 9 | -------------------------------------------------------------------------------- /Pods/ObjectMapper/Sources/TransformType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TransformType.swift 3 | // ObjectMapper 4 | // 5 | // Created by Syo Ikeda on 2/4/15. 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2014-2018 Tristan Himmelman 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | public protocol TransformType { 30 | associatedtype Object 31 | associatedtype JSON 32 | 33 | func transformFromJSON(_ value: Any?) -> Object? 34 | func transformToJSON(_ value: Object?) -> JSON? 35 | } 36 | -------------------------------------------------------------------------------- /Pods/PKHUD/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Philip Kluz (Philip.Kluz@gmail.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /Pods/PKHUD/PKHUD/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Pods/PKHUD/PKHUD/Images.xcassets/checkmark.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "checkmark.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Pods/PKHUD/PKHUD/Images.xcassets/checkmark.imageset/checkmark.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/PKHUD/PKHUD/Images.xcassets/checkmark.imageset/checkmark.pdf -------------------------------------------------------------------------------- /Pods/PKHUD/PKHUD/Images.xcassets/cross.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "cross.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Pods/PKHUD/PKHUD/Images.xcassets/cross.imageset/cross.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/PKHUD/PKHUD/Images.xcassets/cross.imageset/cross.pdf -------------------------------------------------------------------------------- /Pods/PKHUD/PKHUD/Images.xcassets/progress_activity.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "progress.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Pods/PKHUD/PKHUD/Images.xcassets/progress_activity.imageset/progress.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/PKHUD/PKHUD/Images.xcassets/progress_activity.imageset/progress.pdf -------------------------------------------------------------------------------- /Pods/PKHUD/PKHUD/Images.xcassets/progress_circular.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "progress_circular.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "original" 14 | } 15 | } -------------------------------------------------------------------------------- /Pods/PKHUD/PKHUD/Images.xcassets/progress_circular.imageset/progress_circular.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/PKHUD/PKHUD/Images.xcassets/progress_circular.imageset/progress_circular.pdf -------------------------------------------------------------------------------- /Pods/PKHUD/PKHUD/PKHUD.h: -------------------------------------------------------------------------------- 1 | // 2 | // PKHUD.h 3 | // PKHUD 4 | // 5 | // Created by Philip Kluz on 6/17/14. 6 | // Copyright (c) 2016 NSExceptional. All rights reserved. 7 | // Licensed under the MIT license. 8 | // 9 | 10 | @import UIKit; 11 | 12 | //! Project version number for PKHUD. 13 | FOUNDATION_EXPORT double PKHUDVersionNumber; 14 | 15 | //! Project version string for PKHUD. 16 | FOUNDATION_EXPORT const unsigned char PKHUDVersionString[]; 17 | -------------------------------------------------------------------------------- /Pods/PKHUD/PKHUD/PKHUDAnimating.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PKHUDAnimatingContentView.swift 3 | // PKHUD 4 | // 5 | // Created by Philip Kluz on 9/27/15. 6 | // Copyright (c) 2016 NSExceptional. All rights reserved. 7 | // Licensed under the MIT license. 8 | // 9 | 10 | import UIKit 11 | 12 | @objc public protocol PKHUDAnimating { 13 | 14 | func startAnimation() 15 | @objc optional func stopAnimation() 16 | } 17 | -------------------------------------------------------------------------------- /Pods/PKHUD/PKHUD/PKHUDAssets.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PKHUD.Assets.swift 3 | // PKHUD 4 | // 5 | // Created by Philip Kluz on 6/18/14. 6 | // Copyright (c) 2016 NSExceptional. All rights reserved. 7 | // Licensed under the MIT license. 8 | // 9 | 10 | import UIKit 11 | 12 | /// PKHUDAssets provides a set of default images, that can be supplied to the PKHUD's content views. 13 | open class PKHUDAssets: NSObject { 14 | 15 | open class var crossImage: UIImage { return PKHUDAssets.bundledImage(named: "cross") } 16 | open class var checkmarkImage: UIImage { return PKHUDAssets.bundledImage(named: "checkmark") } 17 | open class var progressActivityImage: UIImage { return PKHUDAssets.bundledImage(named: "progress_activity") } 18 | open class var progressCircularImage: UIImage { return PKHUDAssets.bundledImage(named: "progress_circular") } 19 | 20 | internal class func bundledImage(named name: String) -> UIImage { 21 | let primaryBundle = Bundle(for: PKHUDAssets.self) 22 | if let image = UIImage(named: name, in: primaryBundle, compatibleWith: nil) { 23 | // Load image in cases where PKHUD is directly integrated 24 | return image 25 | } else if 26 | let subBundleUrl = primaryBundle.url(forResource: "PKHUDResources", withExtension: "bundle"), 27 | let subBundle = Bundle(url: subBundleUrl), 28 | let image = UIImage(named: name, in: subBundle, compatibleWith: nil) 29 | { 30 | // Load image in cases where PKHUD is integrated via cocoapods as a dynamic or static framework with a separate resource bundle 31 | return image 32 | } 33 | 34 | return UIImage() 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Pods/PKHUD/PKHUD/PKHUDProgressView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PKHUDProgressVIew.swift 3 | // PKHUD 4 | // 5 | // Created by Philip Kluz on 6/12/15. 6 | // Copyright (c) 2016 NSExceptional. All rights reserved. 7 | // Licensed under the MIT license. 8 | // 9 | 10 | import UIKit 11 | import QuartzCore 12 | 13 | /// PKHUDProgressView provides an indeterminate progress view. 14 | open class PKHUDProgressView: PKHUDSquareBaseView, PKHUDAnimating { 15 | 16 | public init(title: String? = nil, subtitle: String? = nil) { 17 | super.init(image: PKHUDAssets.progressActivityImage, title: title, subtitle: subtitle) 18 | } 19 | 20 | public required init?(coder aDecoder: NSCoder) { 21 | super.init(coder: aDecoder) 22 | } 23 | 24 | public func startAnimation() { 25 | imageView.layer.add(PKHUDAnimation.discreteRotation, forKey: "progressAnimation") 26 | } 27 | 28 | public func stopAnimation() { 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Pods/PKHUD/PKHUD/PKHUDRotatingImageView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PKHUDRotatingImageView.swift 3 | // PKHUD 4 | // 5 | // Created by Mark Koh on 1/14/16. 6 | // Copyright © 2016 NSExceptional. All rights reserved. 7 | // Licensed under the MIT license. 8 | // 9 | 10 | import UIKit 11 | import QuartzCore 12 | 13 | /// PKHUDRotatingImageView provides a content view that rotates the supplied image automatically. 14 | open class PKHUDRotatingImageView: PKHUDSquareBaseView, PKHUDAnimating { 15 | 16 | public func startAnimation() { 17 | imageView.layer.add(PKHUDAnimation.continuousRotation, forKey: "progressAnimation") 18 | } 19 | 20 | public func stopAnimation() { 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Pods/PKHUD/PKHUD/PKHUDTextView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PKHUDTextView.swift 3 | // PKHUD 4 | // 5 | // Created by Philip Kluz on 6/12/15. 6 | // Copyright (c) 2016 NSExceptional. All rights reserved. 7 | // Licensed under the MIT license. 8 | // 9 | 10 | import UIKit 11 | 12 | /// PKHUDTextView provides a wide, three line text view, which you can use to display information. 13 | open class PKHUDTextView: PKHUDWideBaseView { 14 | 15 | public init(text: String?) { 16 | super.init() 17 | commonInit(text) 18 | } 19 | 20 | public required init?(coder aDecoder: NSCoder) { 21 | super.init(coder: aDecoder) 22 | commonInit("") 23 | } 24 | 25 | func commonInit(_ text: String?) { 26 | titleLabel.text = text 27 | addSubview(titleLabel) 28 | } 29 | 30 | open override func layoutSubviews() { 31 | super.layoutSubviews() 32 | 33 | let padding: CGFloat = 10.0 34 | titleLabel.frame = bounds.insetBy(dx: padding, dy: padding) 35 | } 36 | 37 | public let titleLabel: UILabel = { 38 | let label = UILabel() 39 | label.textAlignment = .center 40 | label.font = UIFont.boldSystemFont(ofSize: 17.0) 41 | label.textColor = UIColor.black.withAlphaComponent(0.85) 42 | label.adjustsFontSizeToFitWidth = true 43 | label.numberOfLines = 3 44 | return label 45 | }() 46 | } 47 | -------------------------------------------------------------------------------- /Pods/PKHUD/PKHUD/PKHUDWideBaseView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PKHUDWideBaseView.swift 3 | // PKHUD 4 | // 5 | // Created by Philip Kluz on 6/12/15. 6 | // Copyright (c) 2016 NSExceptional. All rights reserved. 7 | // Licensed under the MIT license. 8 | // 9 | 10 | import UIKit 11 | 12 | /// PKHUDWideBaseView provides a wide base view, which you can subclass and add additional views to. 13 | open class PKHUDWideBaseView: UIView { 14 | 15 | static let defaultWideBaseViewFrame = CGRect(origin: CGPoint.zero, size: CGSize(width: 265.0, height: 90.0)) 16 | 17 | public init() { 18 | super.init(frame: PKHUDWideBaseView.defaultWideBaseViewFrame) 19 | } 20 | 21 | public override init(frame: CGRect) { 22 | super.init(frame: frame) 23 | } 24 | 25 | public required init?(coder aDecoder: NSCoder) { 26 | super.init(coder: aDecoder) 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Pods/SnapKit/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit 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/SnapKit/Source/ConstraintDirectionalInsets.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SnapKit 3 | // 4 | // Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #if os(iOS) || os(tvOS) 25 | import UIKit 26 | #else 27 | import AppKit 28 | #endif 29 | 30 | 31 | #if os(iOS) || os(tvOS) 32 | @available(iOS 11.0, tvOS 11.0, *) 33 | public typealias ConstraintDirectionalInsets = NSDirectionalEdgeInsets 34 | #endif 35 | -------------------------------------------------------------------------------- /Pods/SnapKit/Source/ConstraintInsets.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SnapKit 3 | // 4 | // Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #if os(iOS) || os(tvOS) 25 | import UIKit 26 | #else 27 | import AppKit 28 | #endif 29 | 30 | 31 | #if os(iOS) || os(tvOS) 32 | public typealias ConstraintInsets = UIEdgeInsets 33 | #else 34 | public typealias ConstraintInsets = NSEdgeInsets 35 | #endif 36 | -------------------------------------------------------------------------------- /Pods/SnapKit/Source/ConstraintLayoutGuide+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SnapKit 3 | // 4 | // Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #if os(iOS) || os(tvOS) 25 | import UIKit 26 | #endif 27 | 28 | 29 | @available(iOS 9.0, OSX 10.11, *) 30 | public extension ConstraintLayoutGuide { 31 | 32 | var snp: ConstraintLayoutGuideDSL { 33 | return ConstraintLayoutGuideDSL(guide: self) 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /Pods/SnapKit/Source/ConstraintLayoutGuide.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SnapKit 3 | // 4 | // Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #if os(iOS) || os(tvOS) 25 | import UIKit 26 | #else 27 | import AppKit 28 | #endif 29 | 30 | 31 | #if os(iOS) || os(tvOS) 32 | @available(iOS 9.0, *) 33 | public typealias ConstraintLayoutGuide = UILayoutGuide 34 | #else 35 | @available(OSX 10.11, *) 36 | public typealias ConstraintLayoutGuide = NSLayoutGuide 37 | #endif 38 | -------------------------------------------------------------------------------- /Pods/SnapKit/Source/ConstraintLayoutSupport.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SnapKit 3 | // 4 | // Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #if os(iOS) || os(tvOS) 25 | import UIKit 26 | #else 27 | import AppKit 28 | #endif 29 | 30 | 31 | #if os(iOS) || os(tvOS) 32 | @available(iOS 8.0, *) 33 | public typealias ConstraintLayoutSupport = UILayoutSupport 34 | #else 35 | public class ConstraintLayoutSupport {} 36 | #endif 37 | -------------------------------------------------------------------------------- /Pods/SnapKit/Source/ConstraintView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SnapKit 3 | // 4 | // Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #if os(iOS) || os(tvOS) 25 | import UIKit 26 | #else 27 | import AppKit 28 | #endif 29 | 30 | 31 | #if os(iOS) || os(tvOS) 32 | public typealias ConstraintView = UIView 33 | #else 34 | public typealias ConstraintView = NSView 35 | #endif 36 | -------------------------------------------------------------------------------- /Pods/SnapKit/Source/UILayoutSupport+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SnapKit 3 | // 4 | // Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #if os(iOS) || os(tvOS) 25 | import UIKit 26 | #endif 27 | 28 | 29 | @available(iOS 8.0, *) 30 | public extension ConstraintLayoutSupport { 31 | 32 | var snp: ConstraintLayoutSupportDSL { 33 | return ConstraintLayoutSupportDSL(support: self) 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Alamofire/Alamofire-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 5.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Alamofire/Alamofire-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Alamofire : NSObject 3 | @end 4 | @implementation PodsDummy_Alamofire 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Alamofire/Alamofire-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/Alamofire/Alamofire-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double AlamofireVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char AlamofireVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Alamofire/Alamofire.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Alamofire 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_LDFLAGS = $(inherited) -framework "CFNetwork" 4 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -suppress-warnings 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}/Alamofire 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 12 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Alamofire/Alamofire.modulemap: -------------------------------------------------------------------------------- 1 | framework module Alamofire { 2 | umbrella header "Alamofire-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Alamofire/Alamofire.release.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Alamofire 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_LDFLAGS = $(inherited) -framework "CFNetwork" 4 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -suppress-warnings 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}/Alamofire 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 12 | -------------------------------------------------------------------------------- /Pods/Target Support Files/HWPanModal/HWPanModal-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 0.6.7 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/HWPanModal/HWPanModal-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_HWPanModal : NSObject 3 | @end 4 | @implementation PodsDummy_HWPanModal 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/HWPanModal/HWPanModal-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/HWPanModal/HWPanModal-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "HWPanModalAnimator.h" 14 | #import "HWPanModalInteractiveAnimator.h" 15 | #import "HWPanModalPresentationAnimator.h" 16 | #import "HWPresentingVCAnimatedTransitioning.h" 17 | #import "HWPageSheetPresentingAnimation.h" 18 | #import "HWShoppingCartPresentingAnimation.h" 19 | #import "NSObject+HW_Swizzle.h" 20 | #import "UINavigationController+HWPanModal.h" 21 | #import "UIScrollView+Helper.h" 22 | #import "UIView+HW_Frame.h" 23 | #import "HWPanModalPresentationController.h" 24 | #import "HWPanModalPresentationDelegate.h" 25 | #import "HWPanModal.h" 26 | #import "KeyValueObserver.h" 27 | #import "HWPanModalPresentableHandler.h" 28 | #import "HWPanModalHeight.h" 29 | #import "HWPanModalPresentable.h" 30 | #import "HWPanModalPresentationUpdateProtocol.h" 31 | #import "UIViewController+LayoutHelper.h" 32 | #import "UIViewController+PanModalDefault.h" 33 | #import "UIViewController+Presentation.h" 34 | #import "HWPanModalPresenterProtocol.h" 35 | #import "UIViewController+PanModalPresenter.h" 36 | #import "HWDimmedView.h" 37 | #import "HWPanContainerView.h" 38 | #import "HWPanIndicatorView.h" 39 | #import "HWPanModalIndicatorProtocol.h" 40 | #import "HWVisualEffectView.h" 41 | #import "HWPanModalContainerView.h" 42 | #import "HWPanModalContentView.h" 43 | 44 | FOUNDATION_EXPORT double HWPanModalVersionNumber; 45 | FOUNDATION_EXPORT const unsigned char HWPanModalVersionString[]; 46 | 47 | -------------------------------------------------------------------------------- /Pods/Target Support Files/HWPanModal/HWPanModal.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/HWPanModal 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | PODS_BUILD_DIR = ${BUILD_DIR} 4 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 5 | PODS_ROOT = ${SRCROOT} 6 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/HWPanModal 7 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 8 | SKIP_INSTALL = YES 9 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/HWPanModal/HWPanModal.modulemap: -------------------------------------------------------------------------------- 1 | framework module HWPanModal { 2 | umbrella header "HWPanModal-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/HWPanModal/HWPanModal.release.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/HWPanModal 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | PODS_BUILD_DIR = ${BUILD_DIR} 4 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 5 | PODS_ROOT = ${SRCROOT} 6 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/HWPanModal 7 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 8 | SKIP_INSTALL = YES 9 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Kingfisher/Kingfisher-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 5.13.1 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Kingfisher/Kingfisher-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Kingfisher : NSObject 3 | @end 4 | @implementation PodsDummy_Kingfisher 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Kingfisher/Kingfisher-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/Kingfisher/Kingfisher-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "Kingfisher.h" 14 | 15 | FOUNDATION_EXPORT double KingfisherVersionNumber; 16 | FOUNDATION_EXPORT const unsigned char KingfisherVersionString[]; 17 | 18 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Kingfisher/Kingfisher.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_LDFLAGS = $(inherited) -framework "Accelerate" -framework "CFNetwork" 4 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -suppress-warnings 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}/Kingfisher 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 12 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Kingfisher/Kingfisher.modulemap: -------------------------------------------------------------------------------- 1 | framework module Kingfisher { 2 | umbrella header "Kingfisher-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Kingfisher/Kingfisher.release.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_LDFLAGS = $(inherited) -framework "Accelerate" -framework "CFNetwork" 4 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -suppress-warnings 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}/Kingfisher 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 12 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJRefresh/MJRefresh-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 3.3.1 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /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-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "MJRefreshAutoFooter.h" 14 | #import "MJRefreshBackFooter.h" 15 | #import "MJRefreshComponent.h" 16 | #import "MJRefreshFooter.h" 17 | #import "MJRefreshHeader.h" 18 | #import "MJRefreshAutoGifFooter.h" 19 | #import "MJRefreshAutoNormalFooter.h" 20 | #import "MJRefreshAutoStateFooter.h" 21 | #import "MJRefreshBackGifFooter.h" 22 | #import "MJRefreshBackNormalFooter.h" 23 | #import "MJRefreshBackStateFooter.h" 24 | #import "MJRefreshGifHeader.h" 25 | #import "MJRefreshNormalHeader.h" 26 | #import "MJRefreshStateHeader.h" 27 | #import "MJRefresh.h" 28 | #import "MJRefreshConfig.h" 29 | #import "MJRefreshConst.h" 30 | #import "NSBundle+MJRefresh.h" 31 | #import "UIScrollView+MJExtension.h" 32 | #import "UIScrollView+MJRefresh.h" 33 | #import "UIView+MJExtension.h" 34 | 35 | FOUNDATION_EXPORT double MJRefreshVersionNumber; 36 | FOUNDATION_EXPORT const unsigned char MJRefreshVersionString[]; 37 | 38 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJRefresh/MJRefresh.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | PODS_BUILD_DIR = ${BUILD_DIR} 4 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 5 | PODS_ROOT = ${SRCROOT} 6 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/MJRefresh 7 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 8 | SKIP_INSTALL = YES 9 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJRefresh/MJRefresh.modulemap: -------------------------------------------------------------------------------- 1 | framework module MJRefresh { 2 | umbrella header "MJRefresh-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJRefresh/MJRefresh.release.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | PODS_BUILD_DIR = ${BUILD_DIR} 4 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 5 | PODS_ROOT = ${SRCROOT} 6 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/MJRefresh 7 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 8 | SKIP_INSTALL = YES 9 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MarqueeLabel/MarqueeLabel-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 3.2.1 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MarqueeLabel/MarqueeLabel-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_MarqueeLabel : NSObject 3 | @end 4 | @implementation PodsDummy_MarqueeLabel 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MarqueeLabel/MarqueeLabel-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/MarqueeLabel/MarqueeLabel-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double MarqueeLabelVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char MarqueeLabelVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MarqueeLabel/MarqueeLabel.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MarqueeLabel 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_LDFLAGS = $(inherited) -framework "QuartzCore" -framework "UIKit" 4 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -suppress-warnings 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}/MarqueeLabel 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 12 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MarqueeLabel/MarqueeLabel.modulemap: -------------------------------------------------------------------------------- 1 | framework module MarqueeLabel { 2 | umbrella header "MarqueeLabel-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MarqueeLabel/MarqueeLabel.release.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MarqueeLabel 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_LDFLAGS = $(inherited) -framework "QuartzCore" -framework "UIKit" 4 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -suppress-warnings 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}/MarqueeLabel 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 12 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ObjectMapper/ObjectMapper-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 3.5.1 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ObjectMapper/ObjectMapper-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_ObjectMapper : NSObject 3 | @end 4 | @implementation PodsDummy_ObjectMapper 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ObjectMapper/ObjectMapper-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/ObjectMapper/ObjectMapper-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double ObjectMapperVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char ObjectMapperVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ObjectMapper/ObjectMapper.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/ObjectMapper 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -suppress-warnings 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}/ObjectMapper 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ObjectMapper/ObjectMapper.modulemap: -------------------------------------------------------------------------------- 1 | framework module ObjectMapper { 2 | umbrella header "ObjectMapper-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ObjectMapper/ObjectMapper.release.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/ObjectMapper 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -suppress-warnings 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}/ObjectMapper 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/PKHUD/PKHUD-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 5.3.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/PKHUD/PKHUD-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_PKHUD : NSObject 3 | @end 4 | @implementation PodsDummy_PKHUD 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/PKHUD/PKHUD-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/PKHUD/PKHUD-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "PKHUD.h" 14 | 15 | FOUNDATION_EXPORT double PKHUDVersionNumber; 16 | FOUNDATION_EXPORT const unsigned char PKHUDVersionString[]; 17 | 18 | -------------------------------------------------------------------------------- /Pods/Target Support Files/PKHUD/PKHUD.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/PKHUD 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -suppress-warnings 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}/PKHUD 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/PKHUD/PKHUD.modulemap: -------------------------------------------------------------------------------- 1 | framework module PKHUD { 2 | umbrella header "PKHUD-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/PKHUD/PKHUD.release.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/PKHUD 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -suppress-warnings 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}/PKHUD 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/PKHUD/ResourceBundle-PKHUDResources-PKHUD-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleIdentifier 8 | ${PRODUCT_BUNDLE_IDENTIFIER} 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundleName 12 | ${PRODUCT_NAME} 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 5.3.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | NSPrincipalClass 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-YYMusic-YYMusicUITests/Pods-YYMusic-YYMusicUITests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-YYMusic-YYMusicUITests/Pods-YYMusic-YYMusicUITests-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_YYMusic_YYMusicUITests : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_YYMusic_YYMusicUITests 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-YYMusic-YYMusicUITests/Pods-YYMusic-YYMusicUITests-frameworks-Debug-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-YYMusic-YYMusicUITests/Pods-YYMusic-YYMusicUITests-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework 3 | ${BUILT_PRODUCTS_DIR}/HWPanModal/HWPanModal.framework 4 | ${BUILT_PRODUCTS_DIR}/Kingfisher/Kingfisher.framework 5 | ${BUILT_PRODUCTS_DIR}/MJRefresh/MJRefresh.framework 6 | ${BUILT_PRODUCTS_DIR}/MarqueeLabel/MarqueeLabel.framework 7 | ${BUILT_PRODUCTS_DIR}/ObjectMapper/ObjectMapper.framework 8 | ${BUILT_PRODUCTS_DIR}/PKHUD/PKHUD.framework 9 | ${BUILT_PRODUCTS_DIR}/SnapKit/SnapKit.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-YYMusic-YYMusicUITests/Pods-YYMusic-YYMusicUITests-frameworks-Debug-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Alamofire.framework 2 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/HWPanModal.framework 3 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Kingfisher.framework 4 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MJRefresh.framework 5 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MarqueeLabel.framework 6 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ObjectMapper.framework 7 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PKHUD.framework 8 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SnapKit.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-YYMusic-YYMusicUITests/Pods-YYMusic-YYMusicUITests-frameworks-Release-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-YYMusic-YYMusicUITests/Pods-YYMusic-YYMusicUITests-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework 3 | ${BUILT_PRODUCTS_DIR}/HWPanModal/HWPanModal.framework 4 | ${BUILT_PRODUCTS_DIR}/Kingfisher/Kingfisher.framework 5 | ${BUILT_PRODUCTS_DIR}/MJRefresh/MJRefresh.framework 6 | ${BUILT_PRODUCTS_DIR}/MarqueeLabel/MarqueeLabel.framework 7 | ${BUILT_PRODUCTS_DIR}/ObjectMapper/ObjectMapper.framework 8 | ${BUILT_PRODUCTS_DIR}/PKHUD/PKHUD.framework 9 | ${BUILT_PRODUCTS_DIR}/SnapKit/SnapKit.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-YYMusic-YYMusicUITests/Pods-YYMusic-YYMusicUITests-frameworks-Release-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Alamofire.framework 2 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/HWPanModal.framework 3 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Kingfisher.framework 4 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MJRefresh.framework 5 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MarqueeLabel.framework 6 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ObjectMapper.framework 7 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PKHUD.framework 8 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SnapKit.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-YYMusic-YYMusicUITests/Pods-YYMusic-YYMusicUITests-resources-Debug-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-YYMusic-YYMusicUITests/Pods-YYMusic-YYMusicUITests-resources.sh 2 | ${PODS_ROOT}/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-YYMusic-YYMusicUITests/Pods-YYMusic-YYMusicUITests-resources-Debug-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ZFPlayer.bundle -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-YYMusic-YYMusicUITests/Pods-YYMusic-YYMusicUITests-resources-Release-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-YYMusic-YYMusicUITests/Pods-YYMusic-YYMusicUITests-resources.sh 2 | ${PODS_ROOT}/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-YYMusic-YYMusicUITests/Pods-YYMusic-YYMusicUITests-resources-Release-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ZFPlayer.bundle -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-YYMusic-YYMusicUITests/Pods-YYMusic-YYMusicUITests-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_YYMusic_YYMusicUITestsVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_YYMusic_YYMusicUITestsVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-YYMusic-YYMusicUITests/Pods-YYMusic-YYMusicUITests.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_YYMusic_YYMusicUITests { 2 | umbrella header "Pods-YYMusic-YYMusicUITests-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-YYMusic/Pods-YYMusic-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-YYMusic/Pods-YYMusic-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_YYMusic : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_YYMusic 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-YYMusic/Pods-YYMusic-frameworks-Debug-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-YYMusic/Pods-YYMusic-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework 3 | ${BUILT_PRODUCTS_DIR}/HWPanModal/HWPanModal.framework 4 | ${BUILT_PRODUCTS_DIR}/Kingfisher/Kingfisher.framework 5 | ${BUILT_PRODUCTS_DIR}/MJRefresh/MJRefresh.framework 6 | ${BUILT_PRODUCTS_DIR}/MarqueeLabel/MarqueeLabel.framework 7 | ${BUILT_PRODUCTS_DIR}/ObjectMapper/ObjectMapper.framework 8 | ${BUILT_PRODUCTS_DIR}/PKHUD/PKHUD.framework 9 | ${BUILT_PRODUCTS_DIR}/SnapKit/SnapKit.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-YYMusic/Pods-YYMusic-frameworks-Debug-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Alamofire.framework 2 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/HWPanModal.framework 3 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Kingfisher.framework 4 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MJRefresh.framework 5 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MarqueeLabel.framework 6 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ObjectMapper.framework 7 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PKHUD.framework 8 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SnapKit.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-YYMusic/Pods-YYMusic-frameworks-Release-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-YYMusic/Pods-YYMusic-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework 3 | ${BUILT_PRODUCTS_DIR}/HWPanModal/HWPanModal.framework 4 | ${BUILT_PRODUCTS_DIR}/Kingfisher/Kingfisher.framework 5 | ${BUILT_PRODUCTS_DIR}/MJRefresh/MJRefresh.framework 6 | ${BUILT_PRODUCTS_DIR}/MarqueeLabel/MarqueeLabel.framework 7 | ${BUILT_PRODUCTS_DIR}/ObjectMapper/ObjectMapper.framework 8 | ${BUILT_PRODUCTS_DIR}/PKHUD/PKHUD.framework 9 | ${BUILT_PRODUCTS_DIR}/SnapKit/SnapKit.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-YYMusic/Pods-YYMusic-frameworks-Release-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Alamofire.framework 2 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/HWPanModal.framework 3 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Kingfisher.framework 4 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MJRefresh.framework 5 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MarqueeLabel.framework 6 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ObjectMapper.framework 7 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PKHUD.framework 8 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SnapKit.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-YYMusic/Pods-YYMusic-resources-Debug-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-YYMusic/Pods-YYMusic-resources.sh 2 | ${PODS_ROOT}/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-YYMusic/Pods-YYMusic-resources-Debug-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ZFPlayer.bundle -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-YYMusic/Pods-YYMusic-resources-Release-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-YYMusic/Pods-YYMusic-resources.sh 2 | ${PODS_ROOT}/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-YYMusic/Pods-YYMusic-resources-Release-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ZFPlayer.bundle -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-YYMusic/Pods-YYMusic-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_YYMusicVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_YYMusicVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-YYMusic/Pods-YYMusic.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_YYMusic { 2 | umbrella header "Pods-YYMusic-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-YYMusicTests/Pods-YYMusicTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-YYMusicTests/Pods-YYMusicTests-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | Generated by CocoaPods - https://cocoapods.org 4 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-YYMusicTests/Pods-YYMusicTests-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | Generated by CocoaPods - https://cocoapods.org 18 | Title 19 | 20 | Type 21 | PSGroupSpecifier 22 | 23 | 24 | StringsTable 25 | Acknowledgements 26 | Title 27 | Acknowledgements 28 | 29 | 30 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-YYMusicTests/Pods-YYMusicTests-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_YYMusicTests : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_YYMusicTests 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-YYMusicTests/Pods-YYMusicTests-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_YYMusicTestsVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_YYMusicTestsVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-YYMusicTests/Pods-YYMusicTests.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_YYMusicTests { 2 | umbrella header "Pods-YYMusicTests-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SnapKit/SnapKit-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 5.0.1 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SnapKit/SnapKit-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_SnapKit : NSObject 3 | @end 4 | @implementation PodsDummy_SnapKit 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SnapKit/SnapKit-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/SnapKit/SnapKit-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double SnapKitVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char SnapKitVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SnapKit/SnapKit.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SnapKit 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -suppress-warnings 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}/SnapKit 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SnapKit/SnapKit.modulemap: -------------------------------------------------------------------------------- 1 | framework module SnapKit { 2 | umbrella header "SnapKit-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SnapKit/SnapKit.release.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SnapKit 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -suppress-warnings 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}/SnapKit 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ZFPlayer/ZFPlayer-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 3.2.17 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ZFPlayer/ZFPlayer-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_ZFPlayer : NSObject 3 | @end 4 | @implementation PodsDummy_ZFPlayer 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ZFPlayer/ZFPlayer-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/ZFPlayer/ZFPlayer-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "ZFAVPlayerManager.h" 14 | #import "UIImageView+ZFCache.h" 15 | #import "UIView+ZFFrame.h" 16 | #import "ZFLandScapeControlView.h" 17 | #import "ZFLoadingView.h" 18 | #import "ZFNetworkSpeedMonitor.h" 19 | #import "ZFPlayerControlView.h" 20 | #import "ZFPortraitControlView.h" 21 | #import "ZFSliderView.h" 22 | #import "ZFSmallFloatControlView.h" 23 | #import "ZFSpeedLoadingView.h" 24 | #import "ZFUtilities.h" 25 | #import "ZFVolumeBrightnessView.h" 26 | #import "UIScrollView+ZFPlayer.h" 27 | #import "ZFFloatView.h" 28 | #import "ZFKVOController.h" 29 | #import "ZFOrientationObserver.h" 30 | #import "ZFPlayer.h" 31 | #import "ZFPlayerController.h" 32 | #import "ZFPlayerGestureControl.h" 33 | #import "ZFPlayerLogManager.h" 34 | #import "ZFPlayerMediaControl.h" 35 | #import "ZFPlayerMediaPlayback.h" 36 | #import "ZFPlayerNotification.h" 37 | #import "ZFPlayerView.h" 38 | #import "ZFReachabilityManager.h" 39 | 40 | FOUNDATION_EXPORT double ZFPlayerVersionNumber; 41 | FOUNDATION_EXPORT const unsigned char ZFPlayerVersionString[]; 42 | 43 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ZFPlayer/ZFPlayer.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/ZFPlayer 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | PODS_BUILD_DIR = ${BUILD_DIR} 4 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 5 | PODS_ROOT = ${SRCROOT} 6 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/ZFPlayer 7 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 8 | SKIP_INSTALL = YES 9 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ZFPlayer/ZFPlayer.modulemap: -------------------------------------------------------------------------------- 1 | framework module ZFPlayer { 2 | umbrella header "ZFPlayer-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ZFPlayer/ZFPlayer.release.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/ZFPlayer 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | PODS_BUILD_DIR = ${BUILD_DIR} 4 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 5 | PODS_ROOT = ${SRCROOT} 6 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/ZFPlayer 7 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 8 | SKIP_INSTALL = YES 9 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 10 | -------------------------------------------------------------------------------- /Pods/ZFPlayer/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2018 renzifeng 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/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_back_full@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_back_full@2x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_back_full@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_back_full@3x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_bottom_shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_bottom_shadow.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_brightness_high@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_brightness_high@2x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_brightness_high@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_brightness_high@3x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_brightness_low@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_brightness_low@2x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_brightness_low@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_brightness_low@3x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_close@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_close@2x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_close@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_close@3x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_closeWatch@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_closeWatch@2x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_closeWatch@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_closeWatch@3x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_fast_backward@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_fast_backward@2x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_fast_backward@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_fast_backward@3x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_fast_forward@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_fast_forward@2x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_fast_forward@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_fast_forward@3x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_fullscreen@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_fullscreen@2x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_fullscreen@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_fullscreen@3x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_lock-nor@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_lock-nor@2x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_lock-nor@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_lock-nor@3x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_muted@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_muted@2x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_muted@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_muted@3x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_next@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_next@2x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_next@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_next@3x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_pause@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_pause@2x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_pause@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_pause@3x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_play@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_play@2x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_play@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_play@3x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_shrinkscreen@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_shrinkscreen@2x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_shrinkscreen@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_shrinkscreen@3x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_slider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_slider.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_slider@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_slider@2x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_slider@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_slider@3x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_top_shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_top_shadow.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_unlock-nor@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_unlock-nor@2x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_unlock-nor@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_unlock-nor@3x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_volume_high@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_volume_high@2x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_volume_high@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_volume_high@3x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_volume_low@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_volume_low@2x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_volume_low@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/ZFPlayer_volume_low@3x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/new_allPause_44x44_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/new_allPause_44x44_@2x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/new_allPause_44x44_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/new_allPause_44x44_@3x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/new_allPlay_44x44_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/new_allPlay_44x44_@2x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/new_allPlay_44x44_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFPlayer.bundle/new_allPlay_44x44_@3x.png -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFSmallFloatControlView.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZFSmallFloatControlView.h 3 | // ZFPlayer 4 | // 5 | // Copyright (c) 2016年 任子丰 ( http://github.com/renzifeng ) 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 | #import 26 | 27 | @interface ZFSmallFloatControlView : UIView 28 | 29 | @property (nonatomic, copy, nullable) void(^closeClickCallback)(void); 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/ControlView/ZFSpeedLoadingView.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZFSpeedLoadingView.h 3 | // Pods-ZFPlayer_Example 4 | // 5 | // Created by 紫枫 on 2018/6/27. 6 | // 7 | 8 | #import 9 | #import "ZFLoadingView.h" 10 | 11 | @interface ZFSpeedLoadingView : UIView 12 | 13 | @property (nonatomic, strong) ZFLoadingView *loadingView; 14 | 15 | @property (nonatomic, strong) UILabel *speedTextLabel; 16 | 17 | /** 18 | * Starts animation of the spinner. 19 | */ 20 | - (void)startAnimating; 21 | 22 | /** 23 | * Stops animation of the spinnner. 24 | */ 25 | - (void)stopAnimating; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/Core/ZFFloatView.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZFFloatView.h 3 | // ZFPlayer 4 | // 5 | // Copyright (c) 2016年 任子丰 ( http://github.com/renzifeng ) 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 | #import 26 | 27 | @interface ZFFloatView : UIView 28 | 29 | /// The parent View 30 | @property(nonatomic, weak) UIView *parentView; 31 | 32 | /// Safe margins, mainly for those with Navbar and tabbar 33 | @property(nonatomic, assign) UIEdgeInsets safeInsets; 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /Pods/ZFPlayer/ZFPlayer/Classes/Core/ZFPlayerView.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZFPlayerView.h 3 | // ZFPlayer 4 | // 5 | // Copyright (c) 2016年 任子丰 ( http://github.com/renzifeng ) 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 | #import 26 | 27 | @interface ZFPlayerView : UIView 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # YYMusic 2 | 高仿QQ音乐播放器 3 | 1.支持歌词进度显示 4 | 2.支持歌曲缓冲 5 | 3.支持锁屏 6 | 7 | 图示一: 8 | ![页面1](https://raw.githubusercontent.com/wh8817221/YYMusic/master/YYMusic/screenshot/Simulator%20Screen%20Shot%20-%20iPhone%208%20-%202020-06-30%20at%2016.58.37.png) 9 | 图示二: 10 | ![页面2](https://github.com/wh8817221/YYMusic/blob/master/YYMusic/screenshot/Simulator%20Screen%20Shot%20-%20iPhone%208%20-%202020-06-30%20at%2016.58.49.png) 11 | 图示三: 12 | ![页面3](https://github.com/wh8817221/YYMusic/blob/master/YYMusic/screenshot/Simulator%20Screen%20Shot%20-%20iPhone%208%20-%202020-06-30%20at%2016.58.53.png) 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /YYMusic.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /YYMusic.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /YYMusic.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /YYMusic.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/arrow.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "arrow.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/arrow.imageset/arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/Music/arrow.imageset/arrow.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/arrow_down.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "arrow_down.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/arrow_down.imageset/arrow_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/Music/arrow_down.imageset/arrow_down.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/avatar_bg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "avatar_bg@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/avatar_bg.imageset/avatar_bg@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/Music/avatar_bg.imageset/avatar_bg@2x.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/big_pause_button.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "big_pause_button.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/big_pause_button.imageset/big_pause_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/Music/big_pause_button.imageset/big_pause_button.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/big_play_button.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "big_play_button.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/big_play_button.imageset/big_play_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/Music/big_play_button.imageset/big_play_button.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/empty_heart.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "empty_heart.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/empty_heart.imageset/empty_heart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/Music/empty_heart.imageset/empty_heart.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/icon_dot.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "icon_dot@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/icon_dot.imageset/icon_dot@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/Music/icon_dot.imageset/icon_dot@2x.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/icon_more.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "icon_more@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/icon_more.imageset/icon_more@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/Music/icon_more.imageset/icon_more@2x.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/icon_order.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "icon_order@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/icon_order.imageset/icon_order@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/Music/icon_order.imageset/icon_order@2x.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/icon_random.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "icon_random@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/icon_random.imageset/icon_random@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/Music/icon_random.imageset/icon_random@2x.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/icon_share.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "icon_share@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/icon_share.imageset/icon_share@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/Music/icon_share.imageset/icon_share@2x.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/icon_single.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "icon_single@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/icon_single.imageset/icon_single@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/Music/icon_single.imageset/icon_single@2x.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/icons_play_music1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icons_play_music1.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "icons_play_music1@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "icons_play_music1@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/icons_play_music1.imageset/icons_play_music1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/Music/icons_play_music1.imageset/icons_play_music1.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/icons_play_music1.imageset/icons_play_music1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/Music/icons_play_music1.imageset/icons_play_music1@2x.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/icons_play_music1.imageset/icons_play_music1@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/Music/icons_play_music1.imageset/icons_play_music1@3x.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/icons_stop_music1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icons_stop_music1.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "icons_stop_music1@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "icons_stop_music1@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/icons_stop_music1.imageset/icons_stop_music1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/Music/icons_stop_music1.imageset/icons_stop_music1.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/icons_stop_music1.imageset/icons_stop_music1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/Music/icons_stop_music1.imageset/icons_stop_music1@2x.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/icons_stop_music1.imageset/icons_stop_music1@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/Music/icons_stop_music1.imageset/icons_stop_music1@3x.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/launchImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "music.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/launchImage.imageset/music.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/Music/launchImage.imageset/music.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/menu.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "menu.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/menu.imageset/menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/Music/menu.imageset/menu.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/music_placeholder.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "dfxnnxf .png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/music_placeholder.imageset/dfxnnxf .png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/Music/music_placeholder.imageset/dfxnnxf .png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/music_slider_circle.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "music_slider_circle.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/music_slider_circle.imageset/music_slider_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/Music/music_slider_circle.imageset/music_slider_circle.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/musicicon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "musicicon.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/musicicon.imageset/musicicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/Music/musicicon.imageset/musicicon.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/nav_back.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "nav_back@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "nav_back@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/nav_back.imageset/nav_back@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/Music/nav_back.imageset/nav_back@2x.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/nav_back.imageset/nav_back@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/Music/nav_back.imageset/nav_back@3x.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/next_song.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "next_song.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/next_song.imageset/next_song.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/Music/next_song.imageset/next_song.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/prev_song.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "prev_song.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/prev_song.imageset/prev_song.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/Music/prev_song.imageset/prev_song.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/red_heart.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "red_heart.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/Music/red_heart.imageset/red_heart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/Music/red_heart.imageset/red_heart.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/tabs/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/tabs/ico_sy.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "ico_sy@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "ico_sy@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | }, 22 | "properties" : { 23 | "template-rendering-intent" : "original" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/tabs/ico_sy.imageset/ico_sy@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/tabs/ico_sy.imageset/ico_sy@2x.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/tabs/ico_sy.imageset/ico_sy@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/tabs/ico_sy.imageset/ico_sy@3x.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/tabs/ico_sy_xz.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "ico_sy_xz@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "ico_sy_xz@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | }, 22 | "properties" : { 23 | "template-rendering-intent" : "original" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/tabs/ico_sy_xz.imageset/ico_sy_xz@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/tabs/ico_sy_xz.imageset/ico_sy_xz@2x.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/tabs/ico_sy_xz.imageset/ico_sy_xz@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/tabs/ico_sy_xz.imageset/ico_sy_xz@3x.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/tabs/ico_wd.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "ico_wd@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "ico_wd@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | }, 22 | "properties" : { 23 | "template-rendering-intent" : "original" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/tabs/ico_wd.imageset/ico_wd@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/tabs/ico_wd.imageset/ico_wd@2x.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/tabs/ico_wd.imageset/ico_wd@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/tabs/ico_wd.imageset/ico_wd@3x.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/tabs/ico_wd_xz.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "ico_wd_xz@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "ico_wd_xz@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | }, 22 | "properties" : { 23 | "template-rendering-intent" : "original" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/tabs/ico_wd_xz.imageset/ico_wd_xz@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/tabs/ico_wd_xz.imageset/ico_wd_xz@2x.png -------------------------------------------------------------------------------- /YYMusic/Assets.xcassets/tabs/ico_wd_xz.imageset/ico_wd_xz@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/Assets.xcassets/tabs/ico_wd_xz.imageset/ico_wd_xz@3x.png -------------------------------------------------------------------------------- /YYMusic/Extension/StringExtention.swift: -------------------------------------------------------------------------------- 1 | // 2 | // StringExtention.swift 3 | // YYMusic 4 | // 5 | // Created by 王浩 on 2020/5/20. 6 | // Copyright © 2020 haoge. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | extension String { 12 | //获取时间格式 13 | func timeIntervalToMMSSFormat(interval: TimeInterval) -> String { 14 | let ti = Int(interval) 15 | let seconds: Int = ti%60 16 | let minutes: Int = (ti/60)%60 17 | return String(format: "%02ld:%02ld", arguments: [minutes, seconds]) 18 | } 19 | 20 | //字符串截取 21 | func textSubstring(startIndex: Int, length: Int) -> String { 22 | let startIndex = self.index(self.startIndex, offsetBy: startIndex) 23 | let endIndex = self.index(startIndex, offsetBy: length) 24 | let subvalues = self[startIndex.. String { 31 | return NSHomeDirectory().appending("/tmp").appending("/MusicTemp.mp3") 32 | } 33 | 34 | /** 35 | * 缓存文件夹路径 36 | */ 37 | static func cacheFolderPath() -> String { 38 | return NSHomeDirectory().appending("/Library").appending("/MusicCaches") 39 | } 40 | 41 | /** 42 | * 获取网址中的文件名 43 | */ 44 | static func fileName(with url: URL) -> String? { 45 | return url.path.components(separatedBy: "/").last 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /YYMusic/Extension/UIViewExtention.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewExtention.swift 3 | // YYMusic 4 | // 5 | // Created by 王浩 on 2020/5/20. 6 | // Copyright © 2020 haoge. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | extension UIView { 12 | func startTransitionAnimation() { 13 | let transition = CATransition() 14 | transition.duration = 1.0 15 | transition.timingFunction = CAMediaTimingFunction(name: .easeInEaseOut) 16 | transition.type = .fade 17 | self.layer.add(transition, forKey: nil) 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /YYMusic/Main/BaseViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BaseViewController.swift 3 | // YYMusic 4 | // 5 | // Created by 王浩 on 2020/5/21. 6 | // Copyright © 2020 haoge. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class BaseViewController: UIViewController { 12 | 13 | var statusBarStyle: UIStatusBarStyle = .default { 14 | didSet { 15 | self.setNeedsStatusBarAppearanceUpdate() 16 | } 17 | } 18 | 19 | override var preferredStatusBarStyle: UIStatusBarStyle { 20 | return statusBarStyle 21 | } 22 | 23 | override func viewDidLoad() { 24 | super.viewDidLoad() 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /YYMusic/Main/MainTabBarViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MainTabBarViewController.swift 3 | // YYMusic 4 | // 5 | // Created by 王浩 on 2020/5/29. 6 | // Copyright © 2020 haoge. All rights reserved. 7 | // 8 | import UIKit 9 | 10 | class MainTabBarViewController: UITabBarController { 11 | var playerBottomView = WHPlayerBottomView.shared 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | 16 | self.tabBar.backgroundColor = .white 17 | self.tabBar.backgroundImage = UIImage() 18 | 19 | //修改tabbar上线的颜色 20 | let line = UIView(frame: CGRect(x: 0, y: -0.5, width: screenWidth, height: 0.5)) 21 | line.backgroundColor = kLineColor 22 | self.tabBar.insertSubview(line, at: 0) 23 | 24 | self.view.addSubview(playerBottomView) 25 | playerBottomView.snp.makeConstraints { (make) in 26 | make.left.right.equalTo(self.view) 27 | make.height.equalTo(65) 28 | make.bottom.equalTo(self.tabBar.snp.top).offset(-0.5) 29 | } 30 | } 31 | 32 | // MARK: - UIApplication 33 | override var preferredStatusBarStyle : UIStatusBarStyle { 34 | return .lightContent 35 | } 36 | 37 | deinit { 38 | //释放播放器相关 39 | PlayerManager.shared.releasePlayer() 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /YYMusic/Model/CommonResult.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CommonResult.swift 3 | // YYMusic 4 | // 5 | // Created by 王浩 on 2020/5/13. 6 | // Copyright © 2020 haoge. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import ObjectMapper 11 | 12 | class ObjectNull: Mappable { 13 | required init?( map: Map){ 14 | 15 | } 16 | func mapping( map: Map) { 17 | } 18 | } 19 | 20 | class ObjectOption: Mappable { 21 | var id: Int? 22 | var name: String? 23 | var object: String? 24 | var fplx: String? 25 | init(id: Int, name: String, object: String = "") { 26 | self.id = id 27 | self.name = name 28 | self.object = object 29 | } 30 | 31 | init(id: Int, fplx: String, name: String) { 32 | self.id = id 33 | self.fplx = fplx 34 | self.name = name 35 | } 36 | 37 | required init?(map: Map){ 38 | 39 | } 40 | 41 | func mapping(map: Map) { 42 | id <- map["id"] 43 | name <- map["name"] 44 | name <- map["option_name"] 45 | object <- map["object"] 46 | fplx <- map["fplx"] 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /YYMusic/NetWork/AlamofireManager.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AlamofireManager.swift 3 | // FeeCloud 4 | // 5 | // Created by 王浩 on 2018/8/23. 6 | // Copyright © 2018年 haoge. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import Alamofire 11 | 12 | class AlamofireManager { 13 | static let sharedSessionManager: Session = { 14 | let configuration = URLSessionConfiguration.default 15 | configuration.timeoutIntervalForRequest = 30 16 | return Session(configuration: configuration, delegate: SessionDelegate(), serverTrustManager: nil) 17 | }() 18 | } 19 | -------------------------------------------------------------------------------- /YYMusic/NetWork/RequestHelper.swift: -------------------------------------------------------------------------------- 1 | import Alamofire 2 | 3 | enum RequestHelper { 4 | static let baseURL = "http://musicapi.qianqian.com" 5 | case getMusicList([String: Any]) 6 | case getCommonList([String: Any]) 7 | fileprivate func extend(_ params: [String: Any]) -> [String: Any] { 8 | var extendParams = params 9 | extendParams["from"] = "ios" 10 | extendParams["format"] = "json" 11 | extendParams["channel"] = "appstore" 12 | extendParams["version"] = "6.2.0" 13 | extendParams["cuid"] = "2c02f143b48e415e568cf806b7691a02e318beb6" 14 | return extendParams 15 | } 16 | 17 | func generate() -> (url:String, params:Dictionary?, headers: HTTPHeaders?) { 18 | var params = [String: Any]() 19 | var url = RequestHelper.baseURL 20 | switch self { 21 | case .getCommonList(let tmp): 22 | let param = tmp 23 | url += "/v1/restserver/ting" 24 | params = param 25 | 26 | case .getMusicList(let tmp): 27 | let page = tmp["pageId"] 28 | let size = tmp["pageSize"] 29 | url = "http://mobile.ximalaya.com" 30 | url += "/mobile/others/ca/album/track/5541/true/\(page ?? 1)/\(size ?? 15)" 31 | params = tmp 32 | } 33 | 34 | return (url, extend(params), nil) 35 | } 36 | } 37 | 38 | -------------------------------------------------------------------------------- /YYMusic/Tools/FileCache/URLExtention.swift: -------------------------------------------------------------------------------- 1 | // 2 | // URLExtention.swift 3 | // YYMusic 4 | // 5 | // Created by 王浩 on 2020/6/9. 6 | // Copyright © 2020 haoge. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | extension URL { 12 | 13 | /** 14 | * 自定义scheme 15 | */ 16 | func customSchemeURL() -> URL? { 17 | var components = URLComponents(url: self, resolvingAgainstBaseURL: false) 18 | components?.scheme = "streaming" 19 | return components?.url 20 | } 21 | 22 | /** 23 | * 还原scheme 24 | */ 25 | func originalSchemeURL() -> URL? { 26 | var components = URLComponents(url: self, resolvingAgainstBaseURL: false) 27 | components?.scheme = "http" 28 | return components?.url 29 | } 30 | } 31 | 32 | -------------------------------------------------------------------------------- /YYMusic/Tools/PageView/SelectConfigue.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SelectConfigue.swift 3 | // FeeCloud 4 | // 5 | // Created by 王浩 on 2020/2/12. 6 | // Copyright © 2020 haoge. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | struct SelectConfigue { 12 | //背景颜色 13 | var scrollViewColor: UIColor = .white 14 | //默认按钮字体颜色 15 | var defaultButtonColor: UIColor = UIColor.gray 16 | //默认按钮的字体大小 17 | var defaultButtonFont: UIFont = UIFont.systemFont(ofSize: 15) 18 | //选择按钮的颜色 19 | var selectButtonColor: UIColor = kThemeColor 20 | //线颜色 21 | var lineColor: UIColor = UIColor.orange 22 | //线额宽度 23 | var lineHeight: CGFloat = 4.0 24 | //线的圆角 25 | var lineRadius: CGFloat = 2.0 26 | } 27 | -------------------------------------------------------------------------------- /YYMusic/Tools/UserDefaultsManager.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UserDefaultsManager.swift 3 | // YYMusic 4 | // 5 | // Created by 王浩 on 2020/5/14. 6 | // Copyright © 2020 haoge. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | let TOTALTIME = "TOTALTIME" 12 | let CURRENTMUSIC = "CURRENTMUSIC" 13 | let CYCLE = "CYCLE" 14 | class UserDefaultsManager: NSObject { 15 | static let shared = UserDefaultsManager() 16 | fileprivate var userDefaults = UserDefaults.standard 17 | //存 18 | func userDefaultsSet(object: Any?, key: String) { 19 | userDefaults.set(object, forKey: key) 20 | userDefaults.synchronize() 21 | } 22 | 23 | //取 24 | func userDefaultsGet(key: String) -> Any? { 25 | return userDefaults.object(forKey: key) 26 | } 27 | 28 | //删除 29 | func userDefaultsDelete(key: String) { 30 | userDefaults.removeObject(forKey: key) 31 | } 32 | 33 | //归档存储 34 | func archiver(object: Any, key: String) { 35 | let d = NSKeyedArchiver.archivedData(withRootObject: object) 36 | self.userDefaultsSet(object: d, key: key) 37 | } 38 | //归档取 39 | func unarchive(key: String) -> Any? { 40 | if let d = userDefaultsGet(key: key) as? Data { 41 | let obj = NSKeyedUnarchiver.unarchiveObject(with: d) 42 | return obj 43 | } 44 | return nil 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /YYMusic/View/LrcLabel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LrcLabel.swift 3 | // YYMusic 4 | // 5 | // Created by 王浩 on 2020/5/27. 6 | // Copyright © 2020 haoge. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class LrcLabel: UILabel { 12 | 13 | var currentIndex: Int? 14 | var progress: CGFloat = 0 { 15 | didSet{ 16 | self.setNeedsDisplay() 17 | } 18 | } 19 | 20 | override func draw(_ rect: CGRect) { 21 | super.drawText(in: rect) 22 | let fillRext = CGRect(x: 0, y: 0, width: bounds.width*progress, height: bounds.height) 23 | UIColor(red: 38/255.0, green: 187/255, blue: 102/255.0, alpha: 1).set() 24 | UIRectFillUsingBlendMode(fillRext, .sourceIn) 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /YYMusic/View/ZFTableViewCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ZFTableViewCell.swift 3 | // YYMusic 4 | // 5 | // Created by 王浩 on 2020/5/26. 6 | // Copyright © 2020 haoge. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ZFTableViewCell: UITableViewCell { 12 | static let identifier = String(describing: ZFTableViewCell.self) 13 | override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { 14 | super.init(style: style, reuseIdentifier: reuseIdentifier) 15 | } 16 | 17 | required init?(coder: NSCoder) { 18 | fatalError("init(coder:) has not been implemented") 19 | } 20 | 21 | override func awakeFromNib() { 22 | super.awakeFromNib() 23 | // Initialization code 24 | } 25 | 26 | override func setSelected(_ selected: Bool, animated: Bool) { 27 | super.setSelected(selected, animated: animated) 28 | 29 | // Configure the view for the selected state 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /YYMusic/screenshot/Simulator Screen Shot - iPhone 8 - 2020-06-30 at 16.58.37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/screenshot/Simulator Screen Shot - iPhone 8 - 2020-06-30 at 16.58.37.png -------------------------------------------------------------------------------- /YYMusic/screenshot/Simulator Screen Shot - iPhone 8 - 2020-06-30 at 16.58.49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/screenshot/Simulator Screen Shot - iPhone 8 - 2020-06-30 at 16.58.49.png -------------------------------------------------------------------------------- /YYMusic/screenshot/Simulator Screen Shot - iPhone 8 - 2020-06-30 at 16.58.53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wh8817221/YYMusic/7812563827b0880abb91cc3e4746c7e793d7aed7/YYMusic/screenshot/Simulator Screen Shot - iPhone 8 - 2020-06-30 at 16.58.53.png -------------------------------------------------------------------------------- /YYMusicTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /YYMusicTests/YYMusicTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YYMusicTests.swift 3 | // YYMusicTests 4 | // 5 | // Created by 王浩 on 2020/5/13. 6 | // Copyright © 2020 haoge. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import YYMusic 11 | 12 | class YYMusicTests: XCTestCase { 13 | 14 | override func setUpWithError() throws { 15 | // Put setup code here. This method is called before the invocation of each test method in the class. 16 | } 17 | 18 | override func tearDownWithError() throws { 19 | // Put teardown code here. This method is called after the invocation of each test method in the class. 20 | } 21 | 22 | func testExample() throws { 23 | // This is an example of a functional test case. 24 | // Use XCTAssert and related functions to verify your tests produce the correct results. 25 | } 26 | 27 | func testPerformanceExample() throws { 28 | // This is an example of a performance test case. 29 | self.measure { 30 | // Put the code you want to measure the time of here. 31 | } 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /YYMusicUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /YYMusicUITests/YYMusicUITests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YYMusicUITests.swift 3 | // YYMusicUITests 4 | // 5 | // Created by 王浩 on 2020/5/13. 6 | // Copyright © 2020 haoge. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | 11 | class YYMusicUITests: XCTestCase { 12 | 13 | override func setUpWithError() throws { 14 | // Put setup code here. This method is called before the invocation of each test method in the class. 15 | 16 | // In UI tests it is usually best to stop immediately when a failure occurs. 17 | continueAfterFailure = false 18 | 19 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 20 | } 21 | 22 | override func tearDownWithError() throws { 23 | // Put teardown code here. This method is called after the invocation of each test method in the class. 24 | } 25 | 26 | func testExample() throws { 27 | // UI tests must launch the application that they test. 28 | let app = XCUIApplication() 29 | app.launch() 30 | 31 | // Use recording to get started writing UI tests. 32 | // Use XCTAssert and related functions to verify your tests produce the correct results. 33 | } 34 | 35 | func testLaunchPerformance() throws { 36 | if #available(macOS 10.15, iOS 13.0, tvOS 13.0, *) { 37 | // This measures how long it takes to launch your application. 38 | measure(metrics: [XCTOSSignpostMetric.applicationLaunch]) { 39 | XCUIApplication().launch() 40 | } 41 | } 42 | } 43 | } 44 | --------------------------------------------------------------------------------