├── Podfile.lock ├── Pods ├── AFNetworking │ ├── AFNetworking │ │ ├── AFCompatibilityMacros.h │ │ ├── AFHTTPSessionManager.h │ │ ├── AFHTTPSessionManager.m │ │ ├── AFNetworkReachabilityManager.h │ │ ├── AFNetworkReachabilityManager.m │ │ ├── AFNetworking.h │ │ ├── AFSecurityPolicy.h │ │ ├── AFSecurityPolicy.m │ │ ├── AFURLRequestSerialization.h │ │ ├── AFURLRequestSerialization.m │ │ ├── AFURLResponseSerialization.h │ │ ├── AFURLResponseSerialization.m │ │ ├── AFURLSessionManager.h │ │ └── AFURLSessionManager.m │ ├── LICENSE │ ├── README.md │ └── UIKit+AFNetworking │ │ ├── AFAutoPurgingImageCache.h │ │ ├── AFAutoPurgingImageCache.m │ │ ├── AFImageDownloader.h │ │ ├── AFImageDownloader.m │ │ ├── AFNetworkActivityIndicatorManager.h │ │ ├── AFNetworkActivityIndicatorManager.m │ │ ├── UIActivityIndicatorView+AFNetworking.h │ │ ├── UIActivityIndicatorView+AFNetworking.m │ │ ├── UIButton+AFNetworking.h │ │ ├── UIButton+AFNetworking.m │ │ ├── UIImage+AFNetworking.h │ │ ├── UIImageView+AFNetworking.h │ │ ├── UIImageView+AFNetworking.m │ │ ├── UIKit+AFNetworking.h │ │ ├── UIProgressView+AFNetworking.h │ │ ├── UIProgressView+AFNetworking.m │ │ ├── UIRefreshControl+AFNetworking.h │ │ ├── UIRefreshControl+AFNetworking.m │ │ ├── UIWebView+AFNetworking.h │ │ └── UIWebView+AFNetworking.m ├── EasyShowView │ ├── EasyShowView │ │ ├── EasyAlert │ │ │ ├── EasyAlertConfig.h │ │ │ ├── EasyAlertConfig.m │ │ │ ├── EasyAlertGlobalConfig.h │ │ │ ├── EasyAlertGlobalConfig.m │ │ │ ├── EasyAlertItem.h │ │ │ ├── EasyAlertItem.m │ │ │ ├── EasyAlertPart.h │ │ │ ├── EasyAlertPart.m │ │ │ ├── EasyAlertTypes.h │ │ │ ├── EasyAlertTypes.m │ │ │ ├── EasyAlertView.h │ │ │ └── EasyAlertView.m │ │ ├── EasyEmpty │ │ │ ├── EasyEmptyConfig.h │ │ │ ├── EasyEmptyConfig.m │ │ │ ├── EasyEmptyGlobalConfig.h │ │ │ ├── EasyEmptyGlobalConfig.m │ │ │ ├── EasyEmptyPart.h │ │ │ ├── EasyEmptyPart.m │ │ │ ├── EasyEmptyTypes.h │ │ │ ├── EasyEmptyTypes.m │ │ │ ├── EasyEmptyView.h │ │ │ └── EasyEmptyView.m │ │ ├── EasyLoading │ │ │ ├── EasyLoadingConfig.h │ │ │ ├── EasyLoadingConfig.m │ │ │ ├── EasyLoadingGlobalConfig.h │ │ │ ├── EasyLoadingGlobalConfig.m │ │ │ ├── EasyLoadingTypes.h │ │ │ ├── EasyLoadingTypes.m │ │ │ ├── EasyLoadingView.h │ │ │ └── EasyLoadingView.m │ │ ├── EasyShowUtils │ │ │ ├── EasyShowLabel.h │ │ │ ├── EasyShowLabel.m │ │ │ ├── EasyShowUtils.h │ │ │ ├── EasyShowUtils.m │ │ │ ├── UIView+EasyShowExt.h │ │ │ └── UIView+EasyShowExt.m │ │ ├── EasyShowView.h │ │ └── EasyText │ │ │ ├── EasyTextBgView.h │ │ │ ├── EasyTextBgView.m │ │ │ ├── EasyTextConfig.h │ │ │ ├── EasyTextConfig.m │ │ │ ├── EasyTextGlobalConfig.h │ │ │ ├── EasyTextGlobalConfig.m │ │ │ ├── EasyTextTypes.h │ │ │ ├── EasyTextTypes.m │ │ │ ├── EasyTextView.h │ │ │ └── EasyTextView.m │ ├── LICENSE │ └── README.md ├── IQKeyboardManager │ ├── IQKeyboardManager │ │ ├── Categories │ │ │ ├── IQNSArray+Sort.h │ │ │ ├── IQNSArray+Sort.m │ │ │ ├── IQUIScrollView+Additions.h │ │ │ ├── IQUIScrollView+Additions.m │ │ │ ├── IQUITextFieldView+Additions.h │ │ │ ├── IQUITextFieldView+Additions.m │ │ │ ├── IQUIView+Hierarchy.h │ │ │ ├── IQUIView+Hierarchy.m │ │ │ ├── IQUIViewController+Additions.h │ │ │ └── IQUIViewController+Additions.m │ │ ├── Constants │ │ │ ├── IQKeyboardManagerConstants.h │ │ │ └── IQKeyboardManagerConstantsInternal.h │ │ ├── IQKeyboardManager.h │ │ ├── IQKeyboardManager.m │ │ ├── IQKeyboardReturnKeyHandler.h │ │ ├── IQKeyboardReturnKeyHandler.m │ │ ├── IQTextView │ │ │ ├── IQTextView.h │ │ │ └── IQTextView.m │ │ ├── IQToolbar │ │ │ ├── IQBarButtonItem.h │ │ │ ├── IQBarButtonItem.m │ │ │ ├── IQPreviousNextView.h │ │ │ ├── IQPreviousNextView.m │ │ │ ├── IQTitleBarButtonItem.h │ │ │ ├── IQTitleBarButtonItem.m │ │ │ ├── IQToolbar.h │ │ │ ├── IQToolbar.m │ │ │ ├── IQUIView+IQKeyboardToolbar.h │ │ │ └── IQUIView+IQKeyboardToolbar.m │ │ └── Resources │ │ │ └── IQKeyboardManager.bundle │ │ │ ├── IQButtonBarArrowDown@2x.png │ │ │ ├── IQButtonBarArrowDown@3x.png │ │ │ ├── IQButtonBarArrowLeft@2x.png │ │ │ ├── IQButtonBarArrowLeft@3x.png │ │ │ ├── IQButtonBarArrowRight@2x.png │ │ │ ├── IQButtonBarArrowRight@3x.png │ │ │ ├── IQButtonBarArrowUp@2x.png │ │ │ └── IQButtonBarArrowUp@3x.png │ ├── LICENSE.md │ └── README.md ├── MBProgressHUD │ ├── LICENSE │ ├── MBProgressHUD.h │ ├── MBProgressHUD.m │ └── README.mdown ├── MJExtension │ ├── LICENSE │ ├── MJExtension │ │ ├── MJExtension.h │ │ ├── MJExtensionConst.h │ │ ├── MJExtensionConst.m │ │ ├── MJFoundation.h │ │ ├── MJFoundation.m │ │ ├── MJProperty.h │ │ ├── MJProperty.m │ │ ├── MJPropertyKey.h │ │ ├── MJPropertyKey.m │ │ ├── MJPropertyType.h │ │ ├── MJPropertyType.m │ │ ├── NSObject+MJClass.h │ │ ├── NSObject+MJClass.m │ │ ├── NSObject+MJCoding.h │ │ ├── NSObject+MJCoding.m │ │ ├── NSObject+MJKeyValue.h │ │ ├── NSObject+MJKeyValue.m │ │ ├── NSObject+MJProperty.h │ │ ├── NSObject+MJProperty.m │ │ ├── NSString+MJExtension.h │ │ └── NSString+MJExtension.m │ └── README.md ├── MJRefresh │ ├── LICENSE │ ├── MJRefresh │ │ ├── Base │ │ │ ├── MJRefreshAutoFooter.h │ │ │ ├── MJRefreshAutoFooter.m │ │ │ ├── MJRefreshBackFooter.h │ │ │ ├── MJRefreshBackFooter.m │ │ │ ├── MJRefreshComponent.h │ │ │ ├── MJRefreshComponent.m │ │ │ ├── MJRefreshFooter.h │ │ │ ├── MJRefreshFooter.m │ │ │ ├── MJRefreshHeader.h │ │ │ └── MJRefreshHeader.m │ │ ├── Custom │ │ │ ├── Footer │ │ │ │ ├── Auto │ │ │ │ │ ├── MJRefreshAutoGifFooter.h │ │ │ │ │ ├── MJRefreshAutoGifFooter.m │ │ │ │ │ ├── MJRefreshAutoNormalFooter.h │ │ │ │ │ ├── MJRefreshAutoNormalFooter.m │ │ │ │ │ ├── MJRefreshAutoStateFooter.h │ │ │ │ │ └── MJRefreshAutoStateFooter.m │ │ │ │ └── Back │ │ │ │ │ ├── MJRefreshBackGifFooter.h │ │ │ │ │ ├── MJRefreshBackGifFooter.m │ │ │ │ │ ├── MJRefreshBackNormalFooter.h │ │ │ │ │ ├── MJRefreshBackNormalFooter.m │ │ │ │ │ ├── MJRefreshBackStateFooter.h │ │ │ │ │ └── MJRefreshBackStateFooter.m │ │ │ └── Header │ │ │ │ ├── MJRefreshGifHeader.h │ │ │ │ ├── MJRefreshGifHeader.m │ │ │ │ ├── MJRefreshNormalHeader.h │ │ │ │ ├── MJRefreshNormalHeader.m │ │ │ │ ├── MJRefreshStateHeader.h │ │ │ │ └── MJRefreshStateHeader.m │ │ ├── MJRefresh.bundle │ │ │ ├── arrow@2x.png │ │ │ ├── en.lproj │ │ │ │ └── Localizable.strings │ │ │ ├── zh-Hans.lproj │ │ │ │ └── Localizable.strings │ │ │ └── zh-Hant.lproj │ │ │ │ └── Localizable.strings │ │ ├── MJRefresh.h │ │ ├── MJRefreshConst.h │ │ ├── MJRefreshConst.m │ │ ├── NSBundle+MJRefresh.h │ │ ├── NSBundle+MJRefresh.m │ │ ├── UIScrollView+MJExtension.h │ │ ├── UIScrollView+MJExtension.m │ │ ├── UIScrollView+MJRefresh.h │ │ ├── UIScrollView+MJRefresh.m │ │ ├── UIView+MJExtension.h │ │ └── UIView+MJExtension.m │ └── README.md ├── Manifest.lock ├── Masonry │ ├── LICENSE │ ├── Masonry │ │ ├── MASCompositeConstraint.h │ │ ├── MASCompositeConstraint.m │ │ ├── MASConstraint+Private.h │ │ ├── MASConstraint.h │ │ ├── MASConstraint.m │ │ ├── MASConstraintMaker.h │ │ ├── MASConstraintMaker.m │ │ ├── MASLayoutConstraint.h │ │ ├── MASLayoutConstraint.m │ │ ├── MASUtilities.h │ │ ├── MASViewAttribute.h │ │ ├── MASViewAttribute.m │ │ ├── MASViewConstraint.h │ │ ├── MASViewConstraint.m │ │ ├── Masonry.h │ │ ├── NSArray+MASAdditions.h │ │ ├── NSArray+MASAdditions.m │ │ ├── NSArray+MASShorthandAdditions.h │ │ ├── NSLayoutConstraint+MASDebugAdditions.h │ │ ├── NSLayoutConstraint+MASDebugAdditions.m │ │ ├── View+MASAdditions.h │ │ ├── View+MASAdditions.m │ │ ├── View+MASShorthandAdditions.h │ │ ├── ViewController+MASAdditions.h │ │ └── ViewController+MASAdditions.m │ └── README.md ├── PPNumberButton │ ├── LICENSE │ ├── PPNumberButton │ │ └── PPNumberButton │ │ │ ├── PPNumberButton.h │ │ │ └── PPNumberButton.m │ └── README.md ├── Pods.xcodeproj │ ├── project.pbxproj │ └── xcuserdata │ │ └── Huazhixi.xcuserdatad │ │ └── xcschemes │ │ ├── AFNetworking.xcscheme │ │ ├── EasyShowView.xcscheme │ │ ├── IQKeyboardManager.xcscheme │ │ ├── MBProgressHUD.xcscheme │ │ ├── MJExtension.xcscheme │ │ ├── MJRefresh.xcscheme │ │ ├── Masonry.xcscheme │ │ ├── PPNumberButton.xcscheme │ │ ├── Pods-ProductDetailProject.xcscheme │ │ ├── SDCycleScrollView.xcscheme │ │ ├── SDWebImage.xcscheme │ │ ├── SVProgressHUD.xcscheme │ │ ├── TYAlertController.xcscheme │ │ ├── TYPagerController.xcscheme │ │ ├── UITableView+FDTemplateLayoutCell.xcscheme │ │ ├── WRNavigationBar.xcscheme │ │ ├── YYText.xcscheme │ │ ├── xcschememanagement.plist │ │ └── zhPopupController.xcscheme ├── SDCycleScrollView │ ├── LICENSE │ ├── README.md │ └── SDCycleScrollView │ │ └── Lib │ │ └── SDCycleScrollView │ │ ├── PageControl │ │ ├── TAAbstractDotView.h │ │ ├── TAAbstractDotView.m │ │ ├── TAAnimatedDotView.h │ │ ├── TAAnimatedDotView.m │ │ ├── TADotView.h │ │ ├── TADotView.m │ │ ├── TAPageControl.h │ │ └── TAPageControl.m │ │ ├── SDCollectionViewCell.h │ │ ├── SDCollectionViewCell.m │ │ ├── SDCycleScrollView.h │ │ ├── SDCycleScrollView.m │ │ ├── UIView+SDExtension.h │ │ └── UIView+SDExtension.m ├── SDWebImage │ ├── LICENSE │ ├── README.md │ └── SDWebImage │ │ ├── NSButton+WebCache.h │ │ ├── NSButton+WebCache.m │ │ ├── NSData+ImageContentType.h │ │ ├── NSData+ImageContentType.m │ │ ├── NSImage+WebCache.h │ │ ├── NSImage+WebCache.m │ │ ├── SDAnimatedImageRep.h │ │ ├── SDAnimatedImageRep.m │ │ ├── SDImageCache.h │ │ ├── SDImageCache.m │ │ ├── SDImageCacheConfig.h │ │ ├── SDImageCacheConfig.m │ │ ├── SDWebImageCoder.h │ │ ├── SDWebImageCoder.m │ │ ├── SDWebImageCoderHelper.h │ │ ├── SDWebImageCoderHelper.m │ │ ├── SDWebImageCodersManager.h │ │ ├── SDWebImageCodersManager.m │ │ ├── SDWebImageCompat.h │ │ ├── SDWebImageCompat.m │ │ ├── SDWebImageDownloader.h │ │ ├── SDWebImageDownloader.m │ │ ├── SDWebImageDownloaderOperation.h │ │ ├── SDWebImageDownloaderOperation.m │ │ ├── SDWebImageFrame.h │ │ ├── SDWebImageFrame.m │ │ ├── SDWebImageGIFCoder.h │ │ ├── SDWebImageGIFCoder.m │ │ ├── SDWebImageImageIOCoder.h │ │ ├── SDWebImageImageIOCoder.m │ │ ├── SDWebImageManager.h │ │ ├── SDWebImageManager.m │ │ ├── SDWebImageOperation.h │ │ ├── SDWebImagePrefetcher.h │ │ ├── SDWebImagePrefetcher.m │ │ ├── SDWebImageTransition.h │ │ ├── SDWebImageTransition.m │ │ ├── UIButton+WebCache.h │ │ ├── UIButton+WebCache.m │ │ ├── UIImage+ForceDecode.h │ │ ├── UIImage+ForceDecode.m │ │ ├── UIImage+GIF.h │ │ ├── UIImage+GIF.m │ │ ├── UIImage+MultiFormat.h │ │ ├── UIImage+MultiFormat.m │ │ ├── UIImageView+HighlightedWebCache.h │ │ ├── UIImageView+HighlightedWebCache.m │ │ ├── UIImageView+WebCache.h │ │ ├── UIImageView+WebCache.m │ │ ├── UIView+WebCache.h │ │ ├── UIView+WebCache.m │ │ ├── UIView+WebCacheOperation.h │ │ └── UIView+WebCacheOperation.m ├── SVProgressHUD │ ├── LICENSE │ ├── README.md │ └── SVProgressHUD │ │ ├── SVIndefiniteAnimatedView.h │ │ ├── SVIndefiniteAnimatedView.m │ │ ├── SVProgressAnimatedView.h │ │ ├── SVProgressAnimatedView.m │ │ ├── SVProgressHUD.bundle │ │ ├── angle-mask.png │ │ ├── angle-mask@2x.png │ │ ├── angle-mask@3x.png │ │ ├── error.png │ │ ├── error@2x.png │ │ ├── error@3x.png │ │ ├── info.png │ │ ├── info@2x.png │ │ ├── info@3x.png │ │ ├── success.png │ │ ├── success@2x.png │ │ └── success@3x.png │ │ ├── SVProgressHUD.h │ │ ├── SVProgressHUD.m │ │ ├── SVRadialGradientLayer.h │ │ └── SVRadialGradientLayer.m ├── TYAlertController │ ├── LICENSE │ ├── README.md │ └── TYAlertControllerDemo │ │ └── TYAlertController │ │ ├── TYAlertController+TransitionAnimate.m │ │ ├── TYAlertController.h │ │ ├── TYAlertController.m │ │ ├── TYAlertDropDownAnimation.h │ │ ├── TYAlertDropDownAnimation.m │ │ ├── TYAlertFadeAnimation.h │ │ ├── TYAlertFadeAnimation.m │ │ ├── TYAlertScaleFadeAnimation.h │ │ ├── TYAlertScaleFadeAnimation.m │ │ ├── TYAlertView.h │ │ ├── TYAlertView.m │ │ ├── TYBaseAnimation.h │ │ ├── TYBaseAnimation.m │ │ ├── TYShowAlertView.h │ │ ├── TYShowAlertView.m │ │ ├── UIView+TYAlertView.h │ │ ├── UIView+TYAlertView.m │ │ ├── UIView+TYAutoLayout.h │ │ └── UIView+TYAutoLayout.m ├── TYPagerController │ ├── LICENSE │ ├── README.md │ └── TYPagerControllerDemo │ │ └── TYPagerController │ │ ├── TYPagerController.h │ │ ├── TYPagerController.m │ │ ├── TYPagerView.h │ │ ├── TYPagerView.m │ │ ├── TYPagerViewLayout.h │ │ ├── TYPagerViewLayout.m │ │ └── TabPager │ │ ├── TYTabPagerBar.h │ │ ├── TYTabPagerBar.m │ │ ├── TYTabPagerBarCell.h │ │ ├── TYTabPagerBarCell.m │ │ ├── TYTabPagerBarLayout.h │ │ ├── TYTabPagerBarLayout.m │ │ ├── TYTabPagerController.h │ │ ├── TYTabPagerController.m │ │ ├── TYTabPagerView.h │ │ └── TYTabPagerView.m ├── Target Support Files │ ├── AFNetworking │ │ ├── AFNetworking-dummy.m │ │ ├── AFNetworking-prefix.pch │ │ ├── AFNetworking-umbrella.h │ │ ├── AFNetworking.modulemap │ │ ├── AFNetworking.xcconfig │ │ └── Info.plist │ ├── EasyShowView │ │ ├── EasyShowView-dummy.m │ │ ├── EasyShowView-prefix.pch │ │ ├── EasyShowView-umbrella.h │ │ ├── EasyShowView.modulemap │ │ ├── EasyShowView.xcconfig │ │ └── Info.plist │ ├── IQKeyboardManager │ │ ├── IQKeyboardManager-dummy.m │ │ ├── IQKeyboardManager-prefix.pch │ │ ├── IQKeyboardManager-umbrella.h │ │ ├── IQKeyboardManager.modulemap │ │ ├── IQKeyboardManager.xcconfig │ │ └── Info.plist │ ├── MBProgressHUD │ │ ├── Info.plist │ │ ├── MBProgressHUD-dummy.m │ │ ├── MBProgressHUD-prefix.pch │ │ ├── MBProgressHUD-umbrella.h │ │ ├── MBProgressHUD.modulemap │ │ └── MBProgressHUD.xcconfig │ ├── MJExtension │ │ ├── Info.plist │ │ ├── MJExtension-dummy.m │ │ ├── MJExtension-prefix.pch │ │ ├── MJExtension-umbrella.h │ │ ├── MJExtension.modulemap │ │ └── MJExtension.xcconfig │ ├── MJRefresh │ │ ├── Info.plist │ │ ├── MJRefresh-dummy.m │ │ ├── MJRefresh-prefix.pch │ │ ├── MJRefresh-umbrella.h │ │ ├── MJRefresh.modulemap │ │ └── MJRefresh.xcconfig │ ├── Masonry │ │ ├── Info.plist │ │ ├── Masonry-dummy.m │ │ ├── Masonry-prefix.pch │ │ ├── Masonry-umbrella.h │ │ ├── Masonry.modulemap │ │ └── Masonry.xcconfig │ ├── PPNumberButton │ │ ├── Info.plist │ │ ├── PPNumberButton-dummy.m │ │ ├── PPNumberButton-prefix.pch │ │ ├── PPNumberButton-umbrella.h │ │ ├── PPNumberButton.modulemap │ │ └── PPNumberButton.xcconfig │ ├── Pods-ProductDetailProject │ │ ├── Info.plist │ │ ├── Pods-ProductDetailProject-acknowledgements.markdown │ │ ├── Pods-ProductDetailProject-acknowledgements.plist │ │ ├── Pods-ProductDetailProject-dummy.m │ │ ├── Pods-ProductDetailProject-frameworks.sh │ │ ├── Pods-ProductDetailProject-resources.sh │ │ ├── Pods-ProductDetailProject-umbrella.h │ │ ├── Pods-ProductDetailProject.debug.xcconfig │ │ ├── Pods-ProductDetailProject.modulemap │ │ └── Pods-ProductDetailProject.release.xcconfig │ ├── SDCycleScrollView │ │ ├── Info.plist │ │ ├── SDCycleScrollView-dummy.m │ │ ├── SDCycleScrollView-prefix.pch │ │ ├── SDCycleScrollView-umbrella.h │ │ ├── SDCycleScrollView.modulemap │ │ └── SDCycleScrollView.xcconfig │ ├── SDWebImage │ │ ├── Info.plist │ │ ├── SDWebImage-dummy.m │ │ ├── SDWebImage-prefix.pch │ │ ├── SDWebImage-umbrella.h │ │ ├── SDWebImage.modulemap │ │ └── SDWebImage.xcconfig │ ├── SVProgressHUD │ │ ├── Info.plist │ │ ├── SVProgressHUD-dummy.m │ │ ├── SVProgressHUD-prefix.pch │ │ ├── SVProgressHUD-umbrella.h │ │ ├── SVProgressHUD.modulemap │ │ └── SVProgressHUD.xcconfig │ ├── TYAlertController │ │ ├── Info.plist │ │ ├── TYAlertController-dummy.m │ │ ├── TYAlertController-prefix.pch │ │ ├── TYAlertController-umbrella.h │ │ ├── TYAlertController.modulemap │ │ └── TYAlertController.xcconfig │ ├── TYPagerController │ │ ├── Info.plist │ │ ├── TYPagerController-dummy.m │ │ ├── TYPagerController-prefix.pch │ │ ├── TYPagerController-umbrella.h │ │ ├── TYPagerController.modulemap │ │ └── TYPagerController.xcconfig │ ├── UITableView+FDTemplateLayoutCell │ │ ├── Info.plist │ │ ├── UITableView+FDTemplateLayoutCell-dummy.m │ │ ├── UITableView+FDTemplateLayoutCell-prefix.pch │ │ ├── UITableView+FDTemplateLayoutCell-umbrella.h │ │ ├── UITableView+FDTemplateLayoutCell.modulemap │ │ └── UITableView+FDTemplateLayoutCell.xcconfig │ ├── WRNavigationBar │ │ ├── Info.plist │ │ ├── WRNavigationBar-dummy.m │ │ ├── WRNavigationBar-prefix.pch │ │ ├── WRNavigationBar-umbrella.h │ │ ├── WRNavigationBar.modulemap │ │ └── WRNavigationBar.xcconfig │ ├── YYText │ │ ├── Info.plist │ │ ├── YYText-dummy.m │ │ ├── YYText-prefix.pch │ │ ├── YYText-umbrella.h │ │ ├── YYText.modulemap │ │ └── YYText.xcconfig │ └── zhPopupController │ │ ├── Info.plist │ │ ├── zhPopupController-dummy.m │ │ ├── zhPopupController-prefix.pch │ │ ├── zhPopupController-umbrella.h │ │ ├── zhPopupController.modulemap │ │ └── zhPopupController.xcconfig ├── UITableView+FDTemplateLayoutCell │ ├── Classes │ │ ├── UITableView+FDIndexPathHeightCache.h │ │ ├── UITableView+FDIndexPathHeightCache.m │ │ ├── UITableView+FDKeyedHeightCache.h │ │ ├── UITableView+FDKeyedHeightCache.m │ │ ├── UITableView+FDTemplateLayoutCell.h │ │ ├── UITableView+FDTemplateLayoutCell.m │ │ ├── UITableView+FDTemplateLayoutCellDebug.h │ │ └── UITableView+FDTemplateLayoutCellDebug.m │ ├── LICENSE │ └── README.md ├── WRNavigationBar │ ├── LICENSE │ ├── README.md │ └── WRNavigationBar │ │ ├── WRCustomNavigationBar.h │ │ ├── WRCustomNavigationBar.m │ │ ├── WRNavigationBar.h │ │ └── WRNavigationBar.m ├── YYText │ ├── LICENSE │ ├── README.md │ └── YYText │ │ ├── Component │ │ ├── YYTextContainerView.h │ │ ├── YYTextContainerView.m │ │ ├── YYTextDebugOption.h │ │ ├── YYTextDebugOption.m │ │ ├── YYTextEffectWindow.h │ │ ├── YYTextEffectWindow.m │ │ ├── YYTextInput.h │ │ ├── YYTextInput.m │ │ ├── YYTextKeyboardManager.h │ │ ├── YYTextKeyboardManager.m │ │ ├── YYTextLayout.h │ │ ├── YYTextLayout.m │ │ ├── YYTextLine.h │ │ ├── YYTextLine.m │ │ ├── YYTextMagnifier.h │ │ ├── YYTextMagnifier.m │ │ ├── YYTextSelectionView.h │ │ └── YYTextSelectionView.m │ │ ├── String │ │ ├── YYTextArchiver.h │ │ ├── YYTextArchiver.m │ │ ├── YYTextAttribute.h │ │ ├── YYTextAttribute.m │ │ ├── YYTextParser.h │ │ ├── YYTextParser.m │ │ ├── YYTextRubyAnnotation.h │ │ ├── YYTextRubyAnnotation.m │ │ ├── YYTextRunDelegate.h │ │ └── YYTextRunDelegate.m │ │ ├── Utility │ │ ├── NSAttributedString+YYText.h │ │ ├── NSAttributedString+YYText.m │ │ ├── NSParagraphStyle+YYText.h │ │ ├── NSParagraphStyle+YYText.m │ │ ├── UIPasteboard+YYText.h │ │ ├── UIPasteboard+YYText.m │ │ ├── UIView+YYText.h │ │ ├── UIView+YYText.m │ │ ├── YYTextAsyncLayer.h │ │ ├── YYTextAsyncLayer.m │ │ ├── YYTextTransaction.h │ │ ├── YYTextTransaction.m │ │ ├── YYTextUtilities.h │ │ ├── YYTextUtilities.m │ │ ├── YYTextWeakProxy.h │ │ └── YYTextWeakProxy.m │ │ ├── YYLabel.h │ │ ├── YYLabel.m │ │ ├── YYText.h │ │ ├── YYTextView.h │ │ └── YYTextView.m └── zhPopupController │ ├── LICENSE │ ├── README.md │ └── zhPopupController │ └── Classes │ ├── zhPopupController.h │ └── zhPopupController.m ├── ProductDetailProject.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist └── xcuserdata │ └── Huazhixi.xcuserdatad │ └── xcschemes │ └── xcschememanagement.plist ├── ProductDetailProject.xcworkspace ├── contents.xcworkspacedata ├── xcshareddata │ └── IDEWorkspaceChecks.plist └── xcuserdata │ └── Huazhixi.xcuserdatad │ └── xcdebugger │ └── Breakpoints_v2.xcbkptlist ├── ProductDetailProject ├── AppDelegate.h ├── AppDelegate.m ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ ├── Contents.json │ ├── bianji.imageset │ │ ├── Contents.json │ │ ├── bianji.png │ │ ├── bianji@2x.png │ │ └── bianji@3x.png │ ├── blackBackImg.imageset │ │ ├── Contents.json │ │ ├── blackBackImg.png │ │ ├── blackBackImg@2x.png │ │ └── blackBackImg@3x.png │ ├── blackRightArrow.imageset │ │ ├── Contents.json │ │ ├── you.png │ │ ├── you@2x.png │ │ └── you@3x.png │ ├── goodsBottomShopImg.imageset │ │ ├── Contents.json │ │ ├── goodsBottomShopImg.png │ │ ├── goodsBottomShopImg@2x.png │ │ └── goodsBottomShopImg@3x.png │ ├── goodsNotcollected.imageset │ │ ├── Contents.json │ │ ├── goodsNotcollected.png │ │ ├── goodsNotcollected@2x.png │ │ └── goodsNotcollected@3x.png │ ├── goodsPlaceHolderImage.imageset │ │ ├── Contents.json │ │ ├── goodsPlaceHolderImage@2x.png │ │ └── goodsPlaceHolderImage@3x.png │ ├── goodsShareimage.imageset │ │ ├── Contents.json │ │ ├── goodsShareimage.png │ │ ├── goodsShareimage@2x.png │ │ └── goodsShareimage@3x.png │ ├── gouwuche.imageset │ │ ├── Contents.json │ │ ├── gouwuche.png │ │ ├── gouwuche@2x.png │ │ └── gouwuche@3x.png │ ├── kefu.imageset │ │ ├── Contents.json │ │ ├── kefu.png │ │ ├── kefu@2x.png │ │ └── kefu@3x.png │ ├── littlecoupon.imageset │ │ ├── Contents.json │ │ ├── littlecoupon.png │ │ ├── littlecoupon@2x.png │ │ └── littlecoupon@3x.png │ ├── morendianpu.imageset │ │ ├── Contents.json │ │ ├── morendianpu@2x.png │ │ └── morendianpu@3x.png │ ├── self_buy_normal.imageset │ │ ├── Contents.json │ │ ├── self_buy_normal@2x.png │ │ └── self_buy_normal@3x.png │ └── tihuo_left.imageset │ │ ├── Contents.json │ │ ├── tihuo_left.png │ │ ├── tihuo_left@2x.png │ │ └── tihuo_left@3x.png ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard ├── BaseVC │ ├── BaseViewController.h │ ├── BaseViewController.m │ ├── HRBarItem.h │ ├── HRBarItem.m │ ├── HRBaseViewController.h │ ├── HRBaseViewController.m │ └── HRBaseViewControllerProtocol.h ├── ChooseAttr(选择商品属性) │ └── Controller │ │ ├── ORSKUDataFilter.h │ │ ├── ORSKUDataFilter.m │ │ ├── TCAttributeModel.h │ │ ├── TCAttributeModel.m │ │ ├── TCChooseGoodsAttributeViewController.h │ │ ├── TCChooseGoodsAttributeViewController.m │ │ └── View │ │ ├── TCCountFooterView.h │ │ ├── TCCountFooterView.m │ │ ├── TCPropertyCell.h │ │ ├── TCPropertyCell.m │ │ ├── TCPropertyFooter.h │ │ ├── TCPropertyFooter.m │ │ ├── TCPropertyHeader.h │ │ └── TCPropertyHeader.m ├── Common(通用) │ ├── 02 Macro.h │ └── 03 Constant.h ├── Info.plist ├── Model(商品详情) │ ├── TCCommentModel.h │ ├── TCCommentModel.m │ ├── TCGoodsAddressModel.h │ ├── TCGoodsAddressModel.m │ ├── TCGoodsModel.h │ ├── TCGoodsModel.m │ ├── TCHomeModel.h │ └── TCHomeModel.m ├── ProductDetail(宝贝详情) │ ├── Animation │ │ ├── PurchaseCarAnimationTool.h │ │ └── PurchaseCarAnimationTool.m │ ├── Controller │ │ ├── TCBabyDeailtyComentVC.h │ │ ├── TCBabyDeailtyComentVC.m │ │ ├── TCBabyDeailtyCommentListVC.h │ │ ├── TCBabyDeailtyCommentListVC.m │ │ ├── TCBabyDeailtyRootVC.h │ │ ├── TCBabyDeailtyRootVC.m │ │ ├── TCBabyDeailtyViewController.h │ │ ├── TCBabyDeailtyViewController.m │ │ ├── TCBabyDeailtyWebVC.h │ │ └── TCBabyDeailtyWebVC.m │ └── View │ │ ├── goods_comment │ │ ├── TCGoodsCommentListsCell.h │ │ ├── TCGoodsCommentListsCell.m │ │ └── TCGoodsCommentListsCell.xib │ │ └── goods_info │ │ ├── TCBabyDeailtyBottomToolsView.h │ │ ├── TCBabyDeailtyBottomToolsView.m │ │ ├── TCBabyDeailtyBottomToolsView.xib │ │ ├── TCBabyDeailtyCell.h │ │ ├── TCBabyDeailtyCell.m │ │ ├── TCBabyDeailtyCell.xib │ │ ├── TCBabyDeailtyShopBasicInfoTableViewCell.h │ │ ├── TCBabyDeailtyShopBasicInfoTableViewCell.m │ │ ├── TCBabyDeailtyShopBasicInfoTableViewCell.xib │ │ ├── TCBabyDetailFooterView.h │ │ ├── TCBabyDetailFooterView.m │ │ ├── TCBabyDetailFooterView.xib │ │ ├── TCBabyDetailJudgeCountTableViewCell.h │ │ ├── TCBabyDetailJudgeCountTableViewCell.m │ │ ├── TCBabyDetailJudgeCountTableViewCell.xib │ │ ├── TCBabyDetailMoreJudgeTableViewCell.h │ │ ├── TCBabyDetailMoreJudgeTableViewCell.m │ │ ├── TCBabyDetailMoreJudgeTableViewCell.xib │ │ ├── TCCycleScrollTableViewCell.h │ │ ├── TCCycleScrollTableViewCell.m │ │ ├── TCGoodsInfoTableViewCell.h │ │ ├── TCGoodsInfoTableViewCell.m │ │ ├── TCGoodsInfoTableViewCell.xib │ │ ├── TCGoodsParameterView.h │ │ ├── TCGoodsParameterView.m │ │ ├── TCGoodsParameterView.xib │ │ ├── TCRecommandTableViewCell.h │ │ ├── TCRecommandTableViewCell.m │ │ ├── TCRecommandTopTableViewCell.h │ │ ├── TCRecommandTopTableViewCell.m │ │ ├── TCRecommandTopTableViewCell.xib │ │ ├── TCSaleServiceCell.h │ │ ├── TCSaleServiceCell.m │ │ └── TCSaleServiceCell.xib ├── ProductListViewController.h ├── ProductListViewController.m ├── Resource(json数据) │ ├── moreProductDetail.json │ ├── productDetail.json │ ├── productSpec1.json │ ├── productSpec2.json │ └── productlist.json ├── TCGoodsCell.h ├── TCGoodsCell.m ├── Util(工具) │ └── Category │ │ ├── NSObject+HXExtension.h │ │ ├── NSObject+HXExtension.m │ │ ├── NSString+HXExtension.h │ │ ├── NSString+HXExtension.m │ │ ├── UIViewController+Utils.h │ │ └── UIViewController+Utils.m ├── Vender │ ├── SemiModal │ │ ├── UIViewController+XPSemiModal.h │ │ ├── UIViewController+XPSemiModal.m │ │ ├── XPSemiModalAnimatedTransitioning.h │ │ ├── XPSemiModalAnimatedTransitioning.m │ │ ├── XPSemiModalConfiguration.h │ │ ├── XPSemiModalConfiguration.m │ │ ├── XPSemiModalPresentationController.h │ │ ├── XPSemiModalPresentationController.m │ │ ├── XPSemiModalTransitioningDelegate.h │ │ └── XPSemiModalTransitioningDelegate.m │ └── 滑动标签 │ │ └── LLSegmentBar │ │ └── Classes │ │ ├── LLSegmentBar.h │ │ ├── LLSegmentBar.m │ │ ├── LLSegmentBarConfig.h │ │ ├── LLSegmentBarConfig.m │ │ ├── LLSegmentBarVC.h │ │ ├── LLSegmentBarVC.m │ │ ├── UIView+LLSegmentBar.h │ │ └── UIView+LLSegmentBar.m └── main.m ├── README.md └── podfile /Pods/AFNetworking/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011-2016 Alamofire Software Foundation (http://alamofire.org/) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Pods/EasyShowView/EasyShowView/EasyAlert/EasyAlertGlobalConfig.m: -------------------------------------------------------------------------------- 1 | // 2 | // EasyAlertGlobalConfig.m 3 | // EasyShowViewDemo 4 | // 5 | // Created by Mr_Chen on 2018/3/5. 6 | // Copyright © 2018年 chenliangloveyou. All rights reserved. 7 | // 8 | 9 | #import "EasyAlertGlobalConfig.h" 10 | 11 | @implementation EasyAlertGlobalConfig 12 | 13 | easyShowView_singleton_implementation(EasyAlertGlobalConfig) 14 | 15 | - (instancetype)init 16 | { 17 | if (self = [super init]) { 18 | 19 | _tintColor = [UIColor groupTableViewBackgroundColor]; 20 | _titleColor = [UIColor darkTextColor]; 21 | _subtitleColor = [UIColor lightGrayColor]; 22 | _twoItemHorizontal = NO ; 23 | _animationType = AlertAnimationTypeBounce ; 24 | _effectType = AlertBgEffectTypeWoolGlass ; 25 | _bgViewEvent = YES ; 26 | _alertViewMaxNum = 2 ; 27 | } 28 | return self ; 29 | } 30 | @end 31 | -------------------------------------------------------------------------------- /Pods/EasyShowView/EasyShowView/EasyAlert/EasyAlertItem.h: -------------------------------------------------------------------------------- 1 | // 2 | // EasyAlertItem.h 3 | // EasyShowViewDemo 4 | // 5 | // Created by nf on 2018/3/14. 6 | // Copyright © 2018年 chenliangloveyou. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "EasyAlertTypes.h" 11 | 12 | @interface EasyAlertItem : NSObject 13 | 14 | @property (nonatomic,strong)NSString *title ; //按钮的标题 15 | @property (nonatomic,assign)AlertItemType itemTpye ; //按钮的类型 16 | @property (nonatomic,strong)AlertCallback callback ;//点击按钮的回调 17 | 18 | 19 | + (instancetype)itemWithTitle:(NSString *)title type:(AlertItemType)type ; 20 | + (instancetype)itemWithTitle:(NSString *)title type:(AlertItemType)type callback:(AlertCallback)callback ; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /Pods/EasyShowView/EasyShowView/EasyAlert/EasyAlertItem.m: -------------------------------------------------------------------------------- 1 | // 2 | // EasyAlertItem.m 3 | // EasyShowViewDemo 4 | // 5 | // Created by nf on 2018/3/14. 6 | // Copyright © 2018年 chenliangloveyou. All rights reserved. 7 | // 8 | 9 | #import "EasyAlertItem.h" 10 | 11 | @implementation EasyAlertItem 12 | 13 | + (instancetype)itemWithTitle:(NSString *)title type:(AlertItemType)type 14 | { 15 | return [self itemWithTitle:title type:type callback:nil]; 16 | } 17 | + (instancetype)itemWithTitle:(NSString *)title type:(AlertItemType)type callback:(AlertCallback)callback 18 | { 19 | EasyAlertItem *item = [[EasyAlertItem alloc]init]; 20 | item.title = title ; 21 | item.itemTpye = type ; 22 | item.callback = callback ; 23 | return item ; 24 | } 25 | @end 26 | -------------------------------------------------------------------------------- /Pods/EasyShowView/EasyShowView/EasyAlert/EasyAlertPart.h: -------------------------------------------------------------------------------- 1 | // 2 | // EasyAlertPart.h 3 | // EasyShowViewDemo 4 | // 5 | // Created by nf on 2018/3/14. 6 | // Copyright © 2018年 chenliangloveyou. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "EasyAlertTypes.h" 11 | 12 | @interface EasyAlertPart : NSObject 13 | 14 | @property (nonatomic,strong)NSString *title ; //标题 15 | @property (nonatomic,strong)NSString *subtitle ; //副标题 16 | @property (nonatomic,assign)AlertViewType alertType ; //alert类型 分4种 17 | 18 | + (instancetype)shared ; 19 | 20 | - (EasyAlertPart *(^)(NSString *))setTitle ; 21 | - (EasyAlertPart *(^)(NSString *))setSubtitle ; 22 | - (EasyAlertPart *(^)(AlertViewType))setAlertType ; 23 | 24 | + (instancetype)alertPartWithTitle:(NSString *)title ; 25 | + (instancetype)alertPartWithTitle:(NSString *)title subtitle:(NSString *)subtitle ; 26 | + (instancetype)alertPartWithTitle:(NSString *)title subtitle:(NSString *)subtitle alertype:(AlertViewType)alerttype ; 27 | 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Pods/EasyShowView/EasyShowView/EasyAlert/EasyAlertTypes.m: -------------------------------------------------------------------------------- 1 | // 2 | // EasyAlertTypes.m 3 | // EasyShowViewDemo 4 | // 5 | // Created by Mr_Chen on 2018/3/13. 6 | // Copyright © 2018年 chenliangloveyou. All rights reserved. 7 | // 8 | 9 | #import "EasyAlertTypes.h" 10 | 11 | @implementation EasyAlertTypes 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Pods/EasyShowView/EasyShowView/EasyEmpty/EasyEmptyGlobalConfig.m: -------------------------------------------------------------------------------- 1 | // 2 | // EasyEmptyGlobalConfig.m 3 | // EasyShowViewDemo 4 | // 5 | // Created by Mr_Chen on 2018/3/5. 6 | // Copyright © 2018年 chenliangloveyou. All rights reserved. 7 | // 8 | 9 | #import "EasyEmptyGlobalConfig.h" 10 | 11 | @implementation EasyEmptyGlobalConfig 12 | 13 | easyShowView_singleton_implementation(EasyEmptyGlobalConfig) 14 | 15 | - (instancetype)init 16 | { 17 | if (self = [super init]) { 18 | 19 | _bgColor = [UIColor blackColor]; 20 | _tittleFont = [UIFont systemFontOfSize:17]; 21 | _titleColor = [UIColor blackColor]; 22 | _subtitleFont = [UIFont systemFontOfSize:15]; 23 | _subTitleColor = [UIColor lightGrayColor]; 24 | _buttonFont = [UIFont systemFontOfSize:13]; 25 | _buttonColor = [UIColor blueColor]; 26 | _buttonBgColor = [UIColor whiteColor]; 27 | _buttonEdgeInsets = UIEdgeInsetsMake(15, 20, 15, 20); 28 | _scrollVerticalEnable = YES ; 29 | } 30 | return self ; 31 | } 32 | @end 33 | -------------------------------------------------------------------------------- /Pods/EasyShowView/EasyShowView/EasyEmpty/EasyEmptyTypes.h: -------------------------------------------------------------------------------- 1 | // 2 | // EasyEmptyTypes.h 3 | // EasyShowViewDemo 4 | // 5 | // Created by nf on 2018/3/13. 6 | // Copyright © 2018年 chenliangloveyou. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | typedef NS_ENUM(NSInteger , callbackType) { 13 | callbackTypeBgView = 0, 14 | callbackTypeButton_1 = 1, 15 | callbackTypeButton_2 = 2, 16 | }; 17 | 18 | //typedef NS_ENUM(NSUInteger , emptyViewType) { 19 | // emptyViewTypeLoading , 20 | // emptyViewTypeNoData , 21 | // emptyViewTypeNetError , 22 | //// emptyViewTypeCustom , 23 | //}; 24 | 25 | @class EasyEmptyView ; 26 | 27 | typedef void (^emptyViewCallback)(EasyEmptyView *view , UIButton *button , callbackType callbackType); 28 | 29 | 30 | 31 | @interface EasyEmptyTypes : NSObject 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /Pods/EasyShowView/EasyShowView/EasyEmpty/EasyEmptyTypes.m: -------------------------------------------------------------------------------- 1 | // 2 | // EasyEmptyTypes.m 3 | // EasyShowViewDemo 4 | // 5 | // Created by nf on 2018/3/13. 6 | // Copyright © 2018年 chenliangloveyou. All rights reserved. 7 | // 8 | 9 | #import "EasyEmptyTypes.h" 10 | 11 | @implementation EasyEmptyTypes 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Pods/EasyShowView/EasyShowView/EasyEmpty/EasyEmptyView.h: -------------------------------------------------------------------------------- 1 | // 2 | // EasyEmptyView.h 3 | // EasyShowViewDemo 4 | // 5 | // Created by nf on 2018/1/16. 6 | // Copyright © 2018年 chenliangloveyou. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "EasyEmptyPart.h" 12 | #import "EasyEmptyConfig.h" 13 | #import "EasyEmptyTypes.h" 14 | 15 | @interface EasyEmptyView : UIScrollView 16 | 17 | + (EasyEmptyView *)showEmptyInView:(UIView *)superview 18 | part:(EasyEmptyPart *(^)(void))part ; 19 | 20 | + (EasyEmptyView *)showEmptyInView:(UIView *)superview 21 | part:(EasyEmptyPart *(^)(void))part 22 | config:(EasyEmptyConfig *(^)(void))config ; 23 | 24 | + (EasyEmptyView *)showEmptyInView:(UIView *)superview 25 | part:(EasyEmptyPart *(^)(void))part 26 | config:(EasyEmptyConfig *(^)(void))config 27 | callback:(emptyViewCallback)callback ; 28 | 29 | 30 | + (void)hiddenEmptyInView:(UIView *)superView ; 31 | + (void)hiddenEmptyView:(EasyEmptyView *)emptyView ; 32 | 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /Pods/EasyShowView/EasyShowView/EasyLoading/EasyLoadingGlobalConfig.m: -------------------------------------------------------------------------------- 1 | // 2 | // EasyLoadingGlobalConfig.m 3 | // EasyShowViewDemo 4 | // 5 | // Created by Mr_Chen on 2018/3/4. 6 | // Copyright © 2018年 chenliangloveyou. All rights reserved. 7 | // 8 | 9 | #import "EasyLoadingGlobalConfig.h" 10 | 11 | @implementation EasyLoadingGlobalConfig 12 | 13 | easyShowView_singleton_implementation(EasyLoadingGlobalConfig) 14 | 15 | - (instancetype)init 16 | { 17 | if (self = [super init]) { 18 | 19 | _LoadingType = LoadingShowTypeTurnAround ; 20 | _animationType = LoadingAnimationTypeBounce ; 21 | _textFont = [UIFont systemFontOfSize:15]; 22 | _tintColor = [UIColor blackColor]; 23 | _bgColor = [[UIColor lightGrayColor] colorWithAlphaComponent:0.05]; 24 | _superReceiveEvent = YES ; 25 | _showOnWindow = NO ; 26 | _cycleCornerWidth = 5 ; 27 | 28 | } 29 | return self ; 30 | } 31 | @end 32 | -------------------------------------------------------------------------------- /Pods/EasyShowView/EasyShowView/EasyLoading/EasyLoadingTypes.m: -------------------------------------------------------------------------------- 1 | // 2 | // EasyLoadingTypes.m 3 | // EasyShowViewDemo 4 | // 5 | // Created by nf on 2018/3/13. 6 | // Copyright © 2018年 chenliangloveyou. All rights reserved. 7 | // 8 | 9 | #import "EasyLoadingTypes.h" 10 | 11 | 12 | const CGFloat EasyShowLoadingMaxWidth = 200 ; //显示文字的最大宽度(高度已限制死) 13 | const CGFloat EasyShowLoadingImageEdge = 10 ; //加载框图片的边距 14 | const CGFloat EasyShowLoadingImageWH = 30 ; //加载框图片的大小 15 | const CGFloat EasyShowLoadingImageMaxWH = 60 ; //加载框图片的最大宽度 16 | 17 | @implementation EasyLoadingTypes 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /Pods/EasyShowView/EasyShowView/EasyShowUtils/EasyShowLabel.h: -------------------------------------------------------------------------------- 1 | // 2 | // EasyShowLabel.h 3 | // EasyShowViewDemo 4 | // 5 | // Created by nf on 2017/12/20. 6 | // Copyright © 2017年 chenliangloveyou. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface EasyShowLabel : UILabel 12 | 13 | - (instancetype)initWithContentInset:(UIEdgeInsets)contentInset ; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/EasyShowView/EasyShowView/EasyShowView.h: -------------------------------------------------------------------------------- 1 | // 2 | // EasyShowView.h 3 | // EasyShowViewDemo 4 | // 5 | // Created by Mr_Chen on 2017/11/30. 6 | // Copyright © 2017年 chenliangloveyou. All rights reserved. 7 | // 8 | 9 | #ifndef EasyShowView_h 10 | #define EasyShowView_h 11 | 12 | #import "EasyTextView.h" 13 | #import "EasyLoadingView.h" 14 | #import "EasyAlertView.h" 15 | #import "EasyEmptyView.h" 16 | 17 | 18 | 19 | 20 | #endif /* EasyShowView_h */ 21 | -------------------------------------------------------------------------------- /Pods/EasyShowView/EasyShowView/EasyText/EasyTextBgView.h: -------------------------------------------------------------------------------- 1 | // 2 | // EasyTextBgView.h 3 | // EFHealth 4 | // 5 | // Created by nf on 16/7/20. 6 | // Copyright © 2016年 ef. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "EasyTextConfig.h" 12 | 13 | @interface EasyTextBgView : UIView 14 | 15 | - (instancetype)initWithFrame:(CGRect)frame 16 | status:(ShowTextStatus)status 17 | text:(NSString *)text 18 | imageName:(NSString *)imageName 19 | config:(EasyTextConfig *)config ; 20 | 21 | - (void)showWindowYToPoint:(CGFloat)toPoint ; 22 | 23 | - (void)showStartAnimationWithDuration:(CGFloat)duration ; 24 | - (void)showEndAnimationWithDuration:(CGFloat)duration ; 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /Pods/EasyShowView/EasyShowView/EasyText/EasyTextGlobalConfig.m: -------------------------------------------------------------------------------- 1 | // 2 | // EasyTextGlobalConfig.m 3 | // EasyShowViewDemo 4 | // 5 | // Created by Mr_Chen on 2018/3/3. 6 | // Copyright © 2018年 chenliangloveyou. All rights reserved. 7 | // 8 | 9 | #import "EasyTextGlobalConfig.h" 10 | 11 | @implementation EasyTextGlobalConfig 12 | 13 | easyShowView_singleton_implementation(EasyTextGlobalConfig) 14 | 15 | - (instancetype)init 16 | { 17 | if (self = [super init]) { 18 | 19 | _showOnWindow = YES ; 20 | _superReceiveEvent = YES ; 21 | 22 | _animationType = TextAnimationTypeBounce ; 23 | _statusType = TextStatusTypeMidden ; 24 | 25 | _titleFont = [UIFont systemFontOfSize:15]; 26 | _titleColor = [[UIColor whiteColor]colorWithAlphaComponent:1.7]; 27 | _bgColor = [UIColor blackColor]; 28 | _shadowColor = [UIColor blueColor]; 29 | 30 | } 31 | return self ; 32 | } 33 | 34 | + (BOOL)isUseTextGlobalConfig 35 | { 36 | return _showInstance!=nil ? YES : NO ; 37 | } 38 | @end 39 | -------------------------------------------------------------------------------- /Pods/EasyShowView/EasyShowView/EasyText/EasyTextTypes.m: -------------------------------------------------------------------------------- 1 | // 2 | // EasyTextTypes.m 3 | // EasyShowViewDemo 4 | // 5 | // Created by nf on 2018/3/13. 6 | // Copyright © 2018年 chenliangloveyou. All rights reserved. 7 | // 8 | 9 | #import "EasyTextTypes.h" 10 | 11 | 12 | const CGFloat TextShowMaxTime = 8.0f;//最大的显示时长。显示的时长为字符串长度成比例。但是不会超过设置的此时间长度(默认为6秒) 13 | const CGFloat TextShowMaxWidth = 300;//文字显示的最大宽度 14 | 15 | 16 | const CGFloat EasyDrawImageWH = 30 ; //显示图片的宽高 17 | const CGFloat EasyDrawImageEdge = 15 ; //显示图片的边距 18 | const CGFloat EasyTextShowEdge = 40 ; //显示纯文字时,当设置top和bottom的时候,距离屏幕上下的距离 19 | const CGFloat EasyShowViewMinWidth = 50 ;//视图最小的宽度 20 | 21 | 22 | NSString *const EasyShowViewDidlDismissNotification = @"EasyShowViewDidlDismissNotification" ; //当EasyShowView消失的时候会发送此通知。 23 | 24 | 25 | @implementation EasyTextTypes 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Pods/EasyShowView/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 chenliangloveyou 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/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.bundle/IQButtonBarArrowDown@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.bundle/IQButtonBarArrowDown@2x.png -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.bundle/IQButtonBarArrowDown@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.bundle/IQButtonBarArrowDown@3x.png -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.bundle/IQButtonBarArrowLeft@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.bundle/IQButtonBarArrowLeft@2x.png -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.bundle/IQButtonBarArrowLeft@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.bundle/IQButtonBarArrowLeft@3x.png -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.bundle/IQButtonBarArrowRight@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.bundle/IQButtonBarArrowRight@2x.png -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.bundle/IQButtonBarArrowRight@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.bundle/IQButtonBarArrowRight@3x.png -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.bundle/IQButtonBarArrowUp@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.bundle/IQButtonBarArrowUp@2x.png -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.bundle/IQButtonBarArrowUp@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.bundle/IQButtonBarArrowUp@3x.png -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2013-2017 Iftekhar Qurashi 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/MBProgressHUD/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright © 2009-2016 Matej Bukovinski 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. -------------------------------------------------------------------------------- /Pods/MJExtension/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013-2015 MJExtension (https://github.com/CoderMJLee/MJExtension) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Pods/MJExtension/MJExtension/MJExtension.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJExtension.h 3 | // MJExtension 4 | // 5 | // Created by mj on 14-1-15. 6 | // Copyright (c) 2014年 小码哥. All rights reserved. 7 | // 代码地址:https://github.com/CoderMJLee/MJExtension 8 | // 代码地址:http://code4app.com/ios/%E5%AD%97%E5%85%B8-JSON-%E4%B8%8E%E6%A8%A1%E5%9E%8B%E7%9A%84%E8%BD%AC%E6%8D%A2/5339992a933bf062608b4c57 9 | 10 | #import "NSObject+MJCoding.h" 11 | #import "NSObject+MJProperty.h" 12 | #import "NSObject+MJClass.h" 13 | #import "NSObject+MJKeyValue.h" 14 | #import "NSString+MJExtension.h" 15 | #import "MJExtensionConst.h" -------------------------------------------------------------------------------- /Pods/MJExtension/MJExtension/MJExtensionConst.m: -------------------------------------------------------------------------------- 1 | #ifndef __MJExtensionConst__M__ 2 | #define __MJExtensionConst__M__ 3 | 4 | #import 5 | 6 | /** 7 | * 成员变量类型(属性类型) 8 | */ 9 | NSString *const MJPropertyTypeInt = @"i"; 10 | NSString *const MJPropertyTypeShort = @"s"; 11 | NSString *const MJPropertyTypeFloat = @"f"; 12 | NSString *const MJPropertyTypeDouble = @"d"; 13 | NSString *const MJPropertyTypeLong = @"l"; 14 | NSString *const MJPropertyTypeLongLong = @"q"; 15 | NSString *const MJPropertyTypeChar = @"c"; 16 | NSString *const MJPropertyTypeBOOL1 = @"c"; 17 | NSString *const MJPropertyTypeBOOL2 = @"b"; 18 | NSString *const MJPropertyTypePointer = @"*"; 19 | 20 | NSString *const MJPropertyTypeIvar = @"^{objc_ivar=}"; 21 | NSString *const MJPropertyTypeMethod = @"^{objc_method=}"; 22 | NSString *const MJPropertyTypeBlock = @"@?"; 23 | NSString *const MJPropertyTypeClass = @"#"; 24 | NSString *const MJPropertyTypeSEL = @":"; 25 | NSString *const MJPropertyTypeId = @"@"; 26 | 27 | #endif -------------------------------------------------------------------------------- /Pods/MJExtension/MJExtension/MJFoundation.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJFoundation.h 3 | // MJExtensionExample 4 | // 5 | // Created by MJ Lee on 14/7/16. 6 | // Copyright (c) 2014年 小码哥. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MJFoundation : NSObject 12 | + (BOOL)isClassFromFoundation:(Class)c; 13 | @end 14 | -------------------------------------------------------------------------------- /Pods/MJExtension/MJExtension/MJPropertyKey.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJPropertyKey.h 3 | // MJExtensionExample 4 | // 5 | // Created by MJ Lee on 15/8/11. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | typedef enum { 12 | MJPropertyKeyTypeDictionary = 0, // 字典的key 13 | MJPropertyKeyTypeArray // 数组的key 14 | } MJPropertyKeyType; 15 | 16 | /** 17 | * 属性的key 18 | */ 19 | @interface MJPropertyKey : NSObject 20 | /** key的名字 */ 21 | @property (copy, nonatomic) NSString *name; 22 | /** key的种类,可能是@"10",可能是@"age" */ 23 | @property (assign, nonatomic) MJPropertyKeyType type; 24 | 25 | /** 26 | * 根据当前的key,也就是name,从object(字典或者数组)中取值 27 | */ 28 | - (id)valueInObject:(id)object; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Pods/MJExtension/MJExtension/MJPropertyKey.m: -------------------------------------------------------------------------------- 1 | // 2 | // MJPropertyKey.m 3 | // MJExtensionExample 4 | // 5 | // Created by MJ Lee on 15/8/11. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJPropertyKey.h" 10 | 11 | @implementation MJPropertyKey 12 | 13 | - (id)valueInObject:(id)object 14 | { 15 | if ([object isKindOfClass:[NSDictionary class]] && self.type == MJPropertyKeyTypeDictionary) { 16 | return object[self.name]; 17 | } else if ([object isKindOfClass:[NSArray class]] && self.type == MJPropertyKeyTypeArray) { 18 | NSArray *array = object; 19 | NSUInteger index = self.name.intValue; 20 | if (index < array.count) return array[index]; 21 | return nil; 22 | } 23 | return nil; 24 | } 25 | @end 26 | -------------------------------------------------------------------------------- /Pods/MJExtension/MJExtension/MJPropertyType.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJPropertyType.h 3 | // MJExtension 4 | // 5 | // Created by mj on 14-1-15. 6 | // Copyright (c) 2014年 小码哥. All rights reserved. 7 | // 包装一种类型 8 | 9 | #import 10 | 11 | /** 12 | * 包装一种类型 13 | */ 14 | @interface MJPropertyType : NSObject 15 | /** 类型标识符 */ 16 | @property (nonatomic, copy) NSString *code; 17 | 18 | /** 是否为id类型 */ 19 | @property (nonatomic, readonly, getter=isIdType) BOOL idType; 20 | 21 | /** 是否为基本数字类型:int、float等 */ 22 | @property (nonatomic, readonly, getter=isNumberType) BOOL numberType; 23 | 24 | /** 是否为BOOL类型 */ 25 | @property (nonatomic, readonly, getter=isBoolType) BOOL boolType; 26 | 27 | /** 对象类型(如果是基本数据类型,此值为nil) */ 28 | @property (nonatomic, readonly) Class typeClass; 29 | 30 | /** 类型是否来自于Foundation框架,比如NSString、NSArray */ 31 | @property (nonatomic, readonly, getter = isFromFoundation) BOOL fromFoundation; 32 | /** 类型是否不支持KVC */ 33 | @property (nonatomic, readonly, getter = isKVCDisabled) BOOL KVCDisabled; 34 | 35 | /** 36 | * 获得缓存的类型对象 37 | */ 38 | + (instancetype)cachedTypeWithCode:(NSString *)code; 39 | @end -------------------------------------------------------------------------------- /Pods/MJExtension/MJExtension/NSObject+MJCoding.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSObject+MJCoding.h 3 | // MJExtension 4 | // 5 | // Created by mj on 14-1-15. 6 | // Copyright (c) 2014年 小码哥. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "MJExtensionConst.h" 11 | 12 | /** 13 | * Codeing协议 14 | */ 15 | @protocol MJCoding 16 | @optional 17 | /** 18 | * 这个数组中的属性名才会进行归档 19 | */ 20 | + (NSArray *)mj_allowedCodingPropertyNames; 21 | /** 22 | * 这个数组中的属性名将会被忽略:不进行归档 23 | */ 24 | + (NSArray *)mj_ignoredCodingPropertyNames; 25 | @end 26 | 27 | @interface NSObject (MJCoding) 28 | /** 29 | * 解码(从文件中解析对象) 30 | */ 31 | - (void)mj_decode:(NSCoder *)decoder; 32 | /** 33 | * 编码(将对象写入文件中) 34 | */ 35 | - (void)mj_encode:(NSCoder *)encoder; 36 | @end 37 | 38 | /** 39 | 归档的实现 40 | */ 41 | #define MJCodingImplementation \ 42 | - (id)initWithCoder:(NSCoder *)decoder \ 43 | { \ 44 | if (self = [super init]) { \ 45 | [self mj_decode:decoder]; \ 46 | } \ 47 | return self; \ 48 | } \ 49 | \ 50 | - (void)encodeWithCoder:(NSCoder *)encoder \ 51 | { \ 52 | [self mj_encode:encoder]; \ 53 | } 54 | 55 | #define MJExtensionCodingImplementation MJCodingImplementation -------------------------------------------------------------------------------- /Pods/MJRefresh/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013-2015 MJRefresh (https://github.com/CoderMJLee/MJRefresh) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Base/MJRefreshAutoFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshFooter.h" 10 | 11 | @interface MJRefreshAutoFooter : MJRefreshFooter 12 | /** 是否自动刷新(默认为YES) */ 13 | @property (assign, nonatomic, getter=isAutomaticallyRefresh) BOOL automaticallyRefresh; 14 | 15 | /** 当底部控件出现多少时就自动刷新(默认为1.0,也就是底部控件完全出现时,才会自动刷新) */ 16 | @property (assign, nonatomic) CGFloat appearencePercentTriggerAutoRefresh MJRefreshDeprecated("请使用triggerAutomaticallyRefreshPercent属性"); 17 | 18 | /** 当底部控件出现多少时就自动刷新(默认为1.0,也就是底部控件完全出现时,才会自动刷新) */ 19 | @property (assign, nonatomic) CGFloat triggerAutomaticallyRefreshPercent; 20 | 21 | /** 是否每一次拖拽只发一次请求 */ 22 | @property (assign, nonatomic, getter=isOnlyRefreshPerDrag) BOOL onlyRefreshPerDrag; 23 | @end 24 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Base/MJRefreshBackFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshFooter.h" 10 | 11 | @interface MJRefreshBackFooter : MJRefreshFooter 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Base/MJRefreshHeader.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // MJRefreshHeader.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 15/3/4. 7 | // Copyright (c) 2015年 小码哥. All rights reserved. 8 | // 下拉刷新控件:负责监控用户下拉的状态 9 | 10 | #import "MJRefreshComponent.h" 11 | 12 | @interface MJRefreshHeader : MJRefreshComponent 13 | /** 创建header */ 14 | + (instancetype)headerWithRefreshingBlock:(MJRefreshComponentRefreshingBlock)refreshingBlock; 15 | /** 创建header */ 16 | + (instancetype)headerWithRefreshingTarget:(id)target refreshingAction:(SEL)action; 17 | 18 | /** 这个key用来存储上一次下拉刷新成功的时间 */ 19 | @property (copy, nonatomic) NSString *lastUpdatedTimeKey; 20 | /** 上一次下拉刷新成功的时间 */ 21 | @property (strong, nonatomic, readonly) NSDate *lastUpdatedTime; 22 | 23 | /** 忽略多少scrollView的contentInset的top */ 24 | @property (assign, nonatomic) CGFloat ignoredScrollViewContentInsetTop; 25 | @end 26 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoGifFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshAutoStateFooter.h" 10 | 11 | @interface MJRefreshAutoGifFooter : MJRefreshAutoStateFooter 12 | @property (weak, nonatomic, readonly) UIImageView *gifView; 13 | 14 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 15 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 16 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 17 | @end 18 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoNormalFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshAutoStateFooter.h" 10 | 11 | @interface MJRefreshAutoNormalFooter : MJRefreshAutoStateFooter 12 | /** 菊花的样式 */ 13 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle; 14 | @end 15 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoStateFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/6/13. 6 | // Copyright © 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshAutoFooter.h" 10 | 11 | @interface MJRefreshAutoStateFooter : MJRefreshAutoFooter 12 | /** 文字距离圈圈、箭头的距离 */ 13 | @property (assign, nonatomic) CGFloat labelLeftInset; 14 | /** 显示刷新状态的label */ 15 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 16 | 17 | /** 设置state状态下的文字 */ 18 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 19 | 20 | /** 隐藏刷新状态的文字 */ 21 | @property (assign, nonatomic, getter=isRefreshingTitleHidden) BOOL refreshingTitleHidden; 22 | @end 23 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackGifFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshBackStateFooter.h" 10 | 11 | @interface MJRefreshBackGifFooter : MJRefreshBackStateFooter 12 | @property (weak, nonatomic, readonly) UIImageView *gifView; 13 | 14 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 15 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 16 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 17 | @end 18 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackNormalFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshBackStateFooter.h" 10 | 11 | @interface MJRefreshBackNormalFooter : MJRefreshBackStateFooter 12 | @property (weak, nonatomic, readonly) UIImageView *arrowView; 13 | /** 菊花的样式 */ 14 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle; 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackStateFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/6/13. 6 | // Copyright © 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshBackFooter.h" 10 | 11 | @interface MJRefreshBackStateFooter : MJRefreshBackFooter 12 | /** 文字距离圈圈、箭头的距离 */ 13 | @property (assign, nonatomic) CGFloat labelLeftInset; 14 | /** 显示刷新状态的label */ 15 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 16 | /** 设置state状态下的文字 */ 17 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 18 | 19 | /** 获取state状态下的title */ 20 | - (NSString *)titleForState:(MJRefreshState)state; 21 | @end 22 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshGifHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshGifHeader.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshStateHeader.h" 10 | 11 | @interface MJRefreshGifHeader : MJRefreshStateHeader 12 | @property (weak, nonatomic, readonly) UIImageView *gifView; 13 | 14 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 15 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 16 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 17 | @end 18 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshNormalHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshNormalHeader.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshStateHeader.h" 10 | 11 | @interface MJRefreshNormalHeader : MJRefreshStateHeader 12 | @property (weak, nonatomic, readonly) UIImageView *arrowView; 13 | /** 菊花的样式 */ 14 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle; 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshStateHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshStateHeader.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshHeader.h" 10 | 11 | @interface MJRefreshStateHeader : MJRefreshHeader 12 | #pragma mark - 刷新时间相关 13 | /** 利用这个block来决定显示的更新时间文字 */ 14 | @property (copy, nonatomic) NSString *(^lastUpdatedTimeText)(NSDate *lastUpdatedTime); 15 | /** 显示上一次刷新时间的label */ 16 | @property (weak, nonatomic, readonly) UILabel *lastUpdatedTimeLabel; 17 | 18 | #pragma mark - 状态相关 19 | /** 文字距离圈圈、箭头的距离 */ 20 | @property (assign, nonatomic) CGFloat labelLeftInset; 21 | /** 显示刷新状态的label */ 22 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 23 | /** 设置state状态下的文字 */ 24 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 25 | @end 26 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/arrow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/arrow@2x.png -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/en.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/en.lproj/Localizable.strings -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/zh-Hans.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/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/NSBundle+MJRefresh.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSBundle+MJRefresh.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 16/6/13. 6 | // Copyright © 2016年 小码哥. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface NSBundle (MJRefresh) 12 | + (instancetype)mj_refreshBundle; 13 | + (UIImage *)mj_arrowImage; 14 | + (NSString *)mj_localizedStringForKey:(NSString *)key value:(NSString *)value; 15 | + (NSString *)mj_localizedStringForKey:(NSString *)key; 16 | @end 17 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/UIScrollView+MJExtension.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // UIScrollView+Extension.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 14-5-28. 7 | // Copyright (c) 2014年 小码哥. All rights reserved. 8 | // 9 | 10 | #import 11 | 12 | @interface UIScrollView (MJExtension) 13 | @property (readonly, nonatomic) UIEdgeInsets mj_inset; 14 | 15 | @property (assign, nonatomic) CGFloat mj_insetT; 16 | @property (assign, nonatomic) CGFloat mj_insetB; 17 | @property (assign, nonatomic) CGFloat mj_insetL; 18 | @property (assign, nonatomic) CGFloat mj_insetR; 19 | 20 | @property (assign, nonatomic) CGFloat mj_offsetX; 21 | @property (assign, nonatomic) CGFloat mj_offsetY; 22 | 23 | @property (assign, nonatomic) CGFloat mj_contentW; 24 | @property (assign, nonatomic) CGFloat mj_contentH; 25 | @end 26 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/UIScrollView+MJRefresh.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // UIScrollView+MJRefresh.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 15/3/4. 7 | // Copyright (c) 2015年 小码哥. All rights reserved. 8 | // 给ScrollView增加下拉刷新、上拉刷新的功能 9 | 10 | #import 11 | #import "MJRefreshConst.h" 12 | 13 | @class MJRefreshHeader, MJRefreshFooter; 14 | 15 | @interface UIScrollView (MJRefresh) 16 | /** 下拉刷新控件 */ 17 | @property (strong, nonatomic) MJRefreshHeader *mj_header; 18 | @property (strong, nonatomic) MJRefreshHeader *header MJRefreshDeprecated("使用mj_header"); 19 | /** 上拉刷新控件 */ 20 | @property (strong, nonatomic) MJRefreshFooter *mj_footer; 21 | @property (strong, nonatomic) MJRefreshFooter *footer MJRefreshDeprecated("使用mj_footer"); 22 | 23 | #pragma mark - other 24 | - (NSInteger)mj_totalDataCount; 25 | @property (copy, nonatomic) void (^mj_reloadDataBlock)(NSInteger totalDataCount); 26 | @end 27 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/UIView+MJExtension.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // UIView+Extension.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 14-5-28. 7 | // Copyright (c) 2014年 小码哥. All rights reserved. 8 | // 9 | 10 | #import 11 | 12 | @interface UIView (MJExtension) 13 | @property (assign, nonatomic) CGFloat mj_x; 14 | @property (assign, nonatomic) CGFloat mj_y; 15 | @property (assign, nonatomic) CGFloat mj_w; 16 | @property (assign, nonatomic) CGFloat mj_h; 17 | @property (assign, nonatomic) CGSize mj_size; 18 | @property (assign, nonatomic) CGPoint mj_origin; 19 | @end 20 | -------------------------------------------------------------------------------- /Pods/Masonry/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011-2012 Masonry Team - https://github.com/Masonry 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/MASCompositeConstraint.h: -------------------------------------------------------------------------------- 1 | // 2 | // MASCompositeConstraint.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 21/07/13. 6 | // Copyright (c) 2013 cloudling. All rights reserved. 7 | // 8 | 9 | #import "MASConstraint.h" 10 | #import "MASUtilities.h" 11 | 12 | /** 13 | * A group of MASConstraint objects 14 | */ 15 | @interface MASCompositeConstraint : MASConstraint 16 | 17 | /** 18 | * Creates a composite with a predefined array of children 19 | * 20 | * @param children child MASConstraints 21 | * 22 | * @return a composite constraint 23 | */ 24 | - (id)initWithChildren:(NSArray *)children; 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/MASLayoutConstraint.h: -------------------------------------------------------------------------------- 1 | // 2 | // MASLayoutConstraint.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 3/08/13. 6 | // Copyright (c) 2013 Jonas Budelmann. All rights reserved. 7 | // 8 | 9 | #import "MASUtilities.h" 10 | 11 | /** 12 | * When you are debugging or printing the constraints attached to a view this subclass 13 | * makes it easier to identify which constraints have been created via Masonry 14 | */ 15 | @interface MASLayoutConstraint : NSLayoutConstraint 16 | 17 | /** 18 | * a key to associate with this constraint 19 | */ 20 | @property (nonatomic, strong) id mas_key; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/MASLayoutConstraint.m: -------------------------------------------------------------------------------- 1 | // 2 | // MASLayoutConstraint.m 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 3/08/13. 6 | // Copyright (c) 2013 Jonas Budelmann. All rights reserved. 7 | // 8 | 9 | #import "MASLayoutConstraint.h" 10 | 11 | @implementation MASLayoutConstraint 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/Masonry.h: -------------------------------------------------------------------------------- 1 | // 2 | // Masonry.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 20/07/13. 6 | // Copyright (c) 2013 cloudling. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for Masonry. 12 | FOUNDATION_EXPORT double MasonryVersionNumber; 13 | 14 | //! Project version string for Masonry. 15 | FOUNDATION_EXPORT const unsigned char MasonryVersionString[]; 16 | 17 | #import "MASUtilities.h" 18 | #import "View+MASAdditions.h" 19 | #import "View+MASShorthandAdditions.h" 20 | #import "ViewController+MASAdditions.h" 21 | #import "NSArray+MASAdditions.h" 22 | #import "NSArray+MASShorthandAdditions.h" 23 | #import "MASConstraint.h" 24 | #import "MASCompositeConstraint.h" 25 | #import "MASViewAttribute.h" 26 | #import "MASViewConstraint.h" 27 | #import "MASConstraintMaker.h" 28 | #import "MASLayoutConstraint.h" 29 | #import "NSLayoutConstraint+MASDebugAdditions.h" 30 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/NSLayoutConstraint+MASDebugAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSLayoutConstraint+MASDebugAdditions.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 3/08/13. 6 | // Copyright (c) 2013 Jonas Budelmann. All rights reserved. 7 | // 8 | 9 | #import "MASUtilities.h" 10 | 11 | /** 12 | * makes debug and log output of NSLayoutConstraints more readable 13 | */ 14 | @interface NSLayoutConstraint (MASDebugAdditions) 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/ViewController+MASAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+MASAdditions.h 3 | // Masonry 4 | // 5 | // Created by Craig Siemens on 2015-06-23. 6 | // 7 | // 8 | 9 | #import "MASUtilities.h" 10 | #import "MASConstraintMaker.h" 11 | #import "MASViewAttribute.h" 12 | 13 | #ifdef MAS_VIEW_CONTROLLER 14 | 15 | @interface MAS_VIEW_CONTROLLER (MASAdditions) 16 | 17 | /** 18 | * following properties return a new MASViewAttribute with appropriate UILayoutGuide and NSLayoutAttribute 19 | */ 20 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_topLayoutGuide; 21 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomLayoutGuide; 22 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_topLayoutGuideTop; 23 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_topLayoutGuideBottom; 24 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomLayoutGuideTop; 25 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomLayoutGuideBottom; 26 | 27 | 28 | @end 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /Pods/PPNumberButton/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 jkpang 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/SDCycleScrollView/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 GSD_iOS 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/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAAbstractDotView.h: -------------------------------------------------------------------------------- 1 | // 2 | // TAAbstractDotView.h 3 | // TAPageControl 4 | // 5 | // Created by Tanguy Aladenise on 2015-01-22. 6 | // Copyright (c) 2015 Tanguy Aladenise. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | @interface TAAbstractDotView : UIView 13 | 14 | 15 | /** 16 | * A method call let view know which state appearance it should take. Active meaning it's current page. Inactive not the current page. 17 | * 18 | * @param active BOOL to tell if view is active or not 19 | */ 20 | - (void)changeActivityState:(BOOL)active; 21 | 22 | 23 | @end 24 | 25 | -------------------------------------------------------------------------------- /Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAAbstractDotView.m: -------------------------------------------------------------------------------- 1 | // 2 | // TAAbstractDotView.m 3 | // TAPageControl 4 | // 5 | // Created by Tanguy Aladenise on 2015-01-22. 6 | // Copyright (c) 2015 Tanguy Aladenise. All rights reserved. 7 | // 8 | 9 | #import "TAAbstractDotView.h" 10 | 11 | 12 | @implementation TAAbstractDotView 13 | 14 | 15 | - (id)init 16 | { 17 | @throw [NSException exceptionWithName:NSInternalInconsistencyException 18 | reason:[NSString stringWithFormat:@"You must override %@ in %@", NSStringFromSelector(_cmd), self.class] 19 | userInfo:nil]; 20 | } 21 | 22 | 23 | - (void)changeActivityState:(BOOL)active 24 | { 25 | @throw [NSException exceptionWithName:NSInternalInconsistencyException 26 | reason:[NSString stringWithFormat:@"You must override %@ in %@", NSStringFromSelector(_cmd), self.class] 27 | userInfo:nil]; 28 | } 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAAnimatedDotView.h: -------------------------------------------------------------------------------- 1 | // 2 | // TAAnimatedDotView.h 3 | // TAPageControl 4 | // 5 | // Created by Tanguy Aladenise on 2015-01-22. 6 | // Copyright (c) 2015 Tanguy Aladenise. All rights reserved. 7 | // 8 | 9 | #import "TAAbstractDotView.h" 10 | 11 | @interface TAAnimatedDotView : TAAbstractDotView 12 | 13 | @property (nonatomic, strong) UIColor *dotColor; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TADotView.h: -------------------------------------------------------------------------------- 1 | // 2 | // TADotView.h 3 | // TAPageControl 4 | // 5 | // Created by Tanguy Aladenise on 2015-01-22. 6 | // Copyright (c) 2015 Tanguy Aladenise. All rights reserved. 7 | // 8 | 9 | #import "TAAbstractDotView.h" 10 | 11 | @interface TADotView : TAAbstractDotView 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Pods/SDWebImage/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2009-2017 Olivier Poitrey rs@dailymotion.com 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is furnished 8 | to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | 21 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/NSData+ImageContentType.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * (c) Fabrice Aneche 5 | * 6 | * For the full copyright and license information, please view the LICENSE 7 | * file that was distributed with this source code. 8 | */ 9 | 10 | #import 11 | #import "SDWebImageCompat.h" 12 | 13 | typedef NS_ENUM(NSInteger, SDImageFormat) { 14 | SDImageFormatUndefined = -1, 15 | SDImageFormatJPEG = 0, 16 | SDImageFormatPNG, 17 | SDImageFormatGIF, 18 | SDImageFormatTIFF, 19 | SDImageFormatWebP, 20 | SDImageFormatHEIC 21 | }; 22 | 23 | @interface NSData (ImageContentType) 24 | 25 | /** 26 | * Return image format 27 | * 28 | * @param data the input image data 29 | * 30 | * @return the image format as `SDImageFormat` (enum) 31 | */ 32 | + (SDImageFormat)sd_imageFormatForImageData:(nullable NSData *)data; 33 | 34 | /** 35 | Convert SDImageFormat to UTType 36 | 37 | @param format Format as SDImageFormat 38 | @return The UTType as CFStringRef 39 | */ 40 | + (nonnull CFStringRef)sd_UTTypeFromSDImageFormat:(SDImageFormat)format; 41 | 42 | @end 43 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/NSImage+WebCache.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import "SDWebImageCompat.h" 10 | 11 | #if SD_MAC 12 | 13 | #import 14 | 15 | @interface NSImage (WebCache) 16 | 17 | - (CGImageRef)CGImage; 18 | - (NSArray *)images; 19 | - (BOOL)isGIF; 20 | 21 | @end 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/SDAnimatedImageRep.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import "SDWebImageCompat.h" 10 | 11 | #if SD_MAC 12 | 13 | // A subclass of `NSBitmapImageRep` to fix that GIF loop count issue because `NSBitmapImageRep` will reset `NSImageCurrentFrameDuration` by using `kCGImagePropertyGIFDelayTime` but not `kCGImagePropertyGIFUnclampedDelayTime`. 14 | // Built in GIF coder use this instead of `NSBitmapImageRep` for better GIF rendering. If you do not want this, only enable `SDWebImageImageIOCoder`, which just call `NSImage` API and actually use `NSBitmapImageRep` for GIF image. 15 | 16 | @interface SDAnimatedImageRep : NSBitmapImageRep 17 | 18 | @end 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/SDImageCacheConfig.m: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import "SDImageCacheConfig.h" 10 | 11 | static const NSInteger kDefaultCacheMaxCacheAge = 60 * 60 * 24 * 7; // 1 week 12 | 13 | @implementation SDImageCacheConfig 14 | 15 | - (instancetype)init { 16 | if (self = [super init]) { 17 | _shouldDecompressImages = YES; 18 | _shouldDisableiCloud = YES; 19 | _shouldCacheImagesInMemory = YES; 20 | _diskCacheReadingOptions = 0; 21 | _diskCacheWritingOptions = NSDataWritingAtomic; 22 | _maxCacheAge = kDefaultCacheMaxCacheAge; 23 | _maxCacheSize = 0; 24 | } 25 | return self; 26 | } 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/SDWebImageCoder.m: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import "SDWebImageCoder.h" 10 | 11 | NSString * const SDWebImageCoderScaleDownLargeImagesKey = @"scaleDownLargeImages"; 12 | 13 | CGColorSpaceRef SDCGColorSpaceGetDeviceRGB(void) { 14 | static CGColorSpaceRef colorSpace; 15 | static dispatch_once_t onceToken; 16 | dispatch_once(&onceToken, ^{ 17 | colorSpace = CGColorSpaceCreateDeviceRGB(); 18 | }); 19 | return colorSpace; 20 | } 21 | 22 | BOOL SDCGImageRefContainsAlpha(CGImageRef imageRef) { 23 | if (!imageRef) { 24 | return NO; 25 | } 26 | CGImageAlphaInfo alphaInfo = CGImageGetAlphaInfo(imageRef); 27 | BOOL hasAlpha = !(alphaInfo == kCGImageAlphaNone || 28 | alphaInfo == kCGImageAlphaNoneSkipFirst || 29 | alphaInfo == kCGImageAlphaNoneSkipLast); 30 | return hasAlpha; 31 | } 32 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/SDWebImageFrame.m: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import "SDWebImageFrame.h" 10 | 11 | @interface SDWebImageFrame () 12 | 13 | @property (nonatomic, strong, readwrite, nonnull) UIImage *image; 14 | @property (nonatomic, readwrite, assign) NSTimeInterval duration; 15 | 16 | @end 17 | 18 | @implementation SDWebImageFrame 19 | 20 | + (instancetype)frameWithImage:(UIImage *)image duration:(NSTimeInterval)duration { 21 | SDWebImageFrame *frame = [[SDWebImageFrame alloc] init]; 22 | frame.image = image; 23 | frame.duration = duration; 24 | 25 | return frame; 26 | } 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/SDWebImageGIFCoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import 10 | #import "SDWebImageCoder.h" 11 | 12 | /** 13 | Built in coder using ImageIO that supports GIF encoding/decoding 14 | @note `SDWebImageIOCoder` supports GIF but only as static (will use the 1st frame). 15 | @note Use `SDWebImageGIFCoder` for fully animated GIFs - less performant than `FLAnimatedImage` 16 | @note If you decide to make all `UIImageView`(including `FLAnimatedImageView`) instance support GIF. You should add this coder to `SDWebImageCodersManager` and make sure that it has a higher priority than `SDWebImageIOCoder` 17 | @note The recommended approach for animated GIFs is using `FLAnimatedImage`. It's more performant than `UIImageView` for GIF displaying 18 | */ 19 | @interface SDWebImageGIFCoder : NSObject 20 | 21 | + (nonnull instancetype)sharedCoder; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/SDWebImageOperation.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import 10 | 11 | @protocol SDWebImageOperation 12 | 13 | - (void)cancel; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/UIImage+ForceDecode.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import "SDWebImageCompat.h" 10 | 11 | @interface UIImage (ForceDecode) 12 | 13 | + (nullable UIImage *)decodedImageWithImage:(nullable UIImage *)image; 14 | 15 | + (nullable UIImage *)decodedAndScaledDownImageWithImage:(nullable UIImage *)image; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/UIImage+ForceDecode.m: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import "UIImage+ForceDecode.h" 10 | #import "SDWebImageCodersManager.h" 11 | 12 | @implementation UIImage (ForceDecode) 13 | 14 | + (UIImage *)decodedImageWithImage:(UIImage *)image { 15 | if (!image) { 16 | return nil; 17 | } 18 | NSData *tempData; 19 | return [[SDWebImageCodersManager sharedInstance] decompressedImageWithImage:image data:&tempData options:@{SDWebImageCoderScaleDownLargeImagesKey: @(NO)}]; 20 | } 21 | 22 | + (UIImage *)decodedAndScaledDownImageWithImage:(UIImage *)image { 23 | if (!image) { 24 | return nil; 25 | } 26 | NSData *tempData; 27 | return [[SDWebImageCodersManager sharedInstance] decompressedImageWithImage:image data:&tempData options:@{SDWebImageCoderScaleDownLargeImagesKey: @(YES)}]; 28 | } 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/UIImage+GIF.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * (c) Laurin Brandner 5 | * 6 | * For the full copyright and license information, please view the LICENSE 7 | * file that was distributed with this source code. 8 | */ 9 | 10 | #import "SDWebImageCompat.h" 11 | 12 | @interface UIImage (GIF) 13 | 14 | /** 15 | * Creates an animated UIImage from an NSData. 16 | * For static GIF, will create an UIImage with `images` array set to nil. For animated GIF, will create an UIImage with valid `images` array. 17 | */ 18 | + (UIImage *)sd_animatedGIFWithData:(NSData *)data; 19 | 20 | /** 21 | * Checks if an UIImage instance is a GIF. Will use the `images` array. 22 | */ 23 | - (BOOL)isGIF; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/UIImage+GIF.m: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * (c) Laurin Brandner 5 | * 6 | * For the full copyright and license information, please view the LICENSE 7 | * file that was distributed with this source code. 8 | */ 9 | 10 | #import "UIImage+GIF.h" 11 | #import "SDWebImageGIFCoder.h" 12 | #import "NSImage+WebCache.h" 13 | 14 | @implementation UIImage (GIF) 15 | 16 | + (UIImage *)sd_animatedGIFWithData:(NSData *)data { 17 | if (!data) { 18 | return nil; 19 | } 20 | return [[SDWebImageGIFCoder sharedCoder] decodedImageWithData:data]; 21 | } 22 | 23 | - (BOOL)isGIF { 24 | return (self.images != nil); 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVIndefiniteAnimatedView.h: -------------------------------------------------------------------------------- 1 | // 2 | // SVIndefiniteAnimatedView.h 3 | // SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD 4 | // 5 | // Copyright (c) 2014-2018 Guillaume Campagna. All rights reserved. 6 | // 7 | 8 | #import 9 | 10 | @interface SVIndefiniteAnimatedView : UIView 11 | 12 | @property (nonatomic, assign) CGFloat strokeThickness; 13 | @property (nonatomic, assign) CGFloat radius; 14 | @property (nonatomic, strong) UIColor *strokeColor; 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressAnimatedView.h: -------------------------------------------------------------------------------- 1 | // 2 | // SVProgressAnimatedView.h 3 | // SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD 4 | // 5 | // Copyright (c) 2017-2018 Tobias Tiemerding. All rights reserved. 6 | // 7 | 8 | #import 9 | 10 | @interface SVProgressAnimatedView : UIView 11 | 12 | @property (nonatomic, assign) CGFloat radius; 13 | @property (nonatomic, assign) CGFloat strokeThickness; 14 | @property (nonatomic, strong) UIColor *strokeColor; 15 | @property (nonatomic, assign) CGFloat strokeEnd; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask@2x.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask@3x.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error@2x.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error@3x.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info@2x.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info@3x.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success@2x.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success@3x.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVRadialGradientLayer.h: -------------------------------------------------------------------------------- 1 | // 2 | // SVRadialGradientLayer.h 3 | // SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD 4 | // 5 | // Copyright (c) 2014-2018 Tobias Tiemerding. All rights reserved. 6 | // 7 | 8 | #import 9 | 10 | @interface SVRadialGradientLayer : CALayer 11 | 12 | @property (nonatomic) CGPoint gradientCenter; 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVRadialGradientLayer.m: -------------------------------------------------------------------------------- 1 | // 2 | // SVRadialGradientLayer.m 3 | // SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD 4 | // 5 | // Copyright (c) 2014-2018 Tobias Tiemerding. All rights reserved. 6 | // 7 | 8 | #import "SVRadialGradientLayer.h" 9 | 10 | @implementation SVRadialGradientLayer 11 | 12 | - (void)drawInContext:(CGContextRef)context { 13 | size_t locationsCount = 2; 14 | CGFloat locations[2] = {0.0f, 1.0f}; 15 | CGFloat colors[8] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.75f}; 16 | CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); 17 | CGGradientRef gradient = CGGradientCreateWithColorComponents(colorSpace, colors, locations, locationsCount); 18 | CGColorSpaceRelease(colorSpace); 19 | 20 | float radius = MIN(self.bounds.size.width , self.bounds.size.height); 21 | CGContextDrawRadialGradient (context, gradient, self.gradientCenter, 0, self.gradientCenter, radius, kCGGradientDrawsAfterEndLocation); 22 | CGGradientRelease(gradient); 23 | } 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /Pods/TYAlertController/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 tany 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/TYAlertController/TYAlertControllerDemo/TYAlertController/TYAlertDropDownAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // TYAlertDropDownAnimation.h 3 | // TYAlertControllerDemo 4 | // 5 | // Created by tanyang on 15/10/27. 6 | // Copyright © 2015年 tanyang. All rights reserved. 7 | // 8 | 9 | #import "TYBaseAnimation.h" 10 | 11 | @interface TYAlertDropDownAnimation : TYBaseAnimation 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Pods/TYAlertController/TYAlertControllerDemo/TYAlertController/TYAlertFadeAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // TYAlertDefaultAnimation.h 3 | // TYAlertControllerDemo 4 | // 5 | // Created by SunYong on 15/9/1. 6 | // Copyright (c) 2015年 tanyang. All rights reserved. 7 | // 8 | 9 | #import "TYBaseAnimation.h" 10 | 11 | @interface TYAlertFadeAnimation : TYBaseAnimation 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Pods/TYAlertController/TYAlertControllerDemo/TYAlertController/TYAlertScaleFadeAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // TYAlertScaleFadeAnimation.h 3 | // TYAlertControllerDemo 4 | // 5 | // Created by SunYong on 15/9/2. 6 | // Copyright (c) 2015年 tanyang. All rights reserved. 7 | // 8 | 9 | #import "TYBaseAnimation.h" 10 | 11 | @interface TYAlertScaleFadeAnimation : TYBaseAnimation 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Pods/TYPagerController/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 tany 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/TYPagerController/TYPagerControllerDemo/TYPagerController/TabPager/TYTabPagerBarCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // TYTabTitleViewCell.h 3 | // TYPagerControllerDemo 4 | // 5 | // Created by tany on 16/5/4. 6 | // Copyright © 2016年 tanyang. All rights reserved. 7 | // 8 | 9 | #import 10 | NS_ASSUME_NONNULL_BEGIN 11 | @protocol TYTabPagerBarCellProtocol 12 | 13 | /** 14 | font ,textColor will use TYTabPagerBarLayout's textFont,textColor 15 | */ 16 | @property (nonatomic, strong, readonly) UILabel *titleLabel; 17 | 18 | @end 19 | 20 | @interface TYTabPagerBarCell : UICollectionViewCell 21 | @property (nonatomic, weak,readonly) UILabel *titleLabel; 22 | 23 | + (NSString *)cellIdentifier; 24 | @end 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /Pods/Target Support Files/AFNetworking/AFNetworking-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_AFNetworking : NSObject 3 | @end 4 | @implementation PodsDummy_AFNetworking 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/AFNetworking/AFNetworking-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #ifndef TARGET_OS_IOS 14 | #define TARGET_OS_IOS TARGET_OS_IPHONE 15 | #endif 16 | 17 | #ifndef TARGET_OS_WATCH 18 | #define TARGET_OS_WATCH 0 19 | #endif 20 | 21 | #ifndef TARGET_OS_TV 22 | #define TARGET_OS_TV 0 23 | #endif 24 | -------------------------------------------------------------------------------- /Pods/Target Support Files/AFNetworking/AFNetworking-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 "AFNetworking.h" 14 | #import "AFHTTPSessionManager.h" 15 | #import "AFURLSessionManager.h" 16 | #import "AFCompatibilityMacros.h" 17 | #import "AFNetworkReachabilityManager.h" 18 | #import "AFSecurityPolicy.h" 19 | #import "AFURLRequestSerialization.h" 20 | #import "AFURLResponseSerialization.h" 21 | #import "AFAutoPurgingImageCache.h" 22 | #import "AFImageDownloader.h" 23 | #import "AFNetworkActivityIndicatorManager.h" 24 | #import "UIActivityIndicatorView+AFNetworking.h" 25 | #import "UIButton+AFNetworking.h" 26 | #import "UIImage+AFNetworking.h" 27 | #import "UIImageView+AFNetworking.h" 28 | #import "UIKit+AFNetworking.h" 29 | #import "UIProgressView+AFNetworking.h" 30 | #import "UIRefreshControl+AFNetworking.h" 31 | #import "UIWebView+AFNetworking.h" 32 | 33 | FOUNDATION_EXPORT double AFNetworkingVersionNumber; 34 | FOUNDATION_EXPORT const unsigned char AFNetworkingVersionString[]; 35 | 36 | -------------------------------------------------------------------------------- /Pods/Target Support Files/AFNetworking/AFNetworking.modulemap: -------------------------------------------------------------------------------- 1 | framework module AFNetworking { 2 | umbrella header "AFNetworking-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/AFNetworking/AFNetworking.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 4 | OTHER_LDFLAGS = -framework "CoreGraphics" -framework "MobileCoreServices" -framework "Security" -framework "SystemConfiguration" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/AFNetworking 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/AFNetworking/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/EasyShowView/EasyShowView-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_EasyShowView : NSObject 3 | @end 4 | @implementation PodsDummy_EasyShowView 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/EasyShowView/EasyShowView-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/EasyShowView/EasyShowView.modulemap: -------------------------------------------------------------------------------- 1 | framework module EasyShowView { 2 | umbrella header "EasyShowView-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/EasyShowView/EasyShowView.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/EasyShowView 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 4 | OTHER_LDFLAGS = -framework "Foundation" -framework "UIKit" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/EasyShowView 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/EasyShowView/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 | 2.1.2 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/IQKeyboardManager/IQKeyboardManager-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_IQKeyboardManager : NSObject 3 | @end 4 | @implementation PodsDummy_IQKeyboardManager 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/IQKeyboardManager/IQKeyboardManager-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/IQKeyboardManager/IQKeyboardManager-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 "IQKeyboardManager.h" 14 | #import "IQKeyboardReturnKeyHandler.h" 15 | #import "IQUIScrollView+Additions.h" 16 | #import "IQUITextFieldView+Additions.h" 17 | #import "IQUIView+Hierarchy.h" 18 | #import "IQUIViewController+Additions.h" 19 | #import "IQKeyboardManagerConstants.h" 20 | #import "IQTextView.h" 21 | #import "IQBarButtonItem.h" 22 | #import "IQPreviousNextView.h" 23 | #import "IQTitleBarButtonItem.h" 24 | #import "IQToolbar.h" 25 | #import "IQUIView+IQKeyboardToolbar.h" 26 | 27 | FOUNDATION_EXPORT double IQKeyboardManagerVersionNumber; 28 | FOUNDATION_EXPORT const unsigned char IQKeyboardManagerVersionString[]; 29 | 30 | -------------------------------------------------------------------------------- /Pods/Target Support Files/IQKeyboardManager/IQKeyboardManager.modulemap: -------------------------------------------------------------------------------- 1 | framework module IQKeyboardManager { 2 | umbrella header "IQKeyboardManager-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/IQKeyboardManager/IQKeyboardManager.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 4 | OTHER_LDFLAGS = -framework "CoreGraphics" -framework "Foundation" -framework "QuartzCore" -framework "UIKit" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/IQKeyboardManager 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/IQKeyboardManager/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 | 6.0.4 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MBProgressHUD/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.1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MBProgressHUD/MBProgressHUD-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_MBProgressHUD : NSObject 3 | @end 4 | @implementation PodsDummy_MBProgressHUD 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MBProgressHUD/MBProgressHUD-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/MBProgressHUD/MBProgressHUD-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 "MBProgressHUD.h" 14 | 15 | FOUNDATION_EXPORT double MBProgressHUDVersionNumber; 16 | FOUNDATION_EXPORT const unsigned char MBProgressHUDVersionString[]; 17 | 18 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MBProgressHUD/MBProgressHUD.modulemap: -------------------------------------------------------------------------------- 1 | framework module MBProgressHUD { 2 | umbrella header "MBProgressHUD-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MBProgressHUD/MBProgressHUD.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 4 | OTHER_LDFLAGS = -framework "CoreGraphics" -framework "QuartzCore" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/MBProgressHUD 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJExtension/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.0.15 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJExtension/MJExtension-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_MJExtension : NSObject 3 | @end 4 | @implementation PodsDummy_MJExtension 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJExtension/MJExtension-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #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/MJExtension/MJExtension-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 "MJExtension.h" 14 | #import "MJExtensionConst.h" 15 | #import "MJFoundation.h" 16 | #import "MJProperty.h" 17 | #import "MJPropertyKey.h" 18 | #import "MJPropertyType.h" 19 | #import "NSObject+MJClass.h" 20 | #import "NSObject+MJCoding.h" 21 | #import "NSObject+MJKeyValue.h" 22 | #import "NSObject+MJProperty.h" 23 | #import "NSString+MJExtension.h" 24 | 25 | FOUNDATION_EXPORT double MJExtensionVersionNumber; 26 | FOUNDATION_EXPORT const unsigned char MJExtensionVersionString[]; 27 | 28 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJExtension/MJExtension.modulemap: -------------------------------------------------------------------------------- 1 | framework module MJExtension { 2 | umbrella header "MJExtension-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJExtension/MJExtension.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MJExtension 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 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}/MJExtension 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/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.1.15 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 "MJRefreshConst.h" 29 | #import "NSBundle+MJRefresh.h" 30 | #import "UIScrollView+MJExtension.h" 31 | #import "UIScrollView+MJRefresh.h" 32 | #import "UIView+MJExtension.h" 33 | 34 | FOUNDATION_EXPORT double MJRefreshVersionNumber; 35 | FOUNDATION_EXPORT const unsigned char MJRefreshVersionString[]; 36 | 37 | -------------------------------------------------------------------------------- /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.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/MJRefresh 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Masonry/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.1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Masonry/Masonry-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Masonry : NSObject 3 | @end 4 | @implementation PodsDummy_Masonry 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Masonry/Masonry-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #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/Masonry/Masonry-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 "MASCompositeConstraint.h" 14 | #import "MASConstraint+Private.h" 15 | #import "MASConstraint.h" 16 | #import "MASConstraintMaker.h" 17 | #import "MASLayoutConstraint.h" 18 | #import "Masonry.h" 19 | #import "MASUtilities.h" 20 | #import "MASViewAttribute.h" 21 | #import "MASViewConstraint.h" 22 | #import "NSArray+MASAdditions.h" 23 | #import "NSArray+MASShorthandAdditions.h" 24 | #import "NSLayoutConstraint+MASDebugAdditions.h" 25 | #import "View+MASAdditions.h" 26 | #import "View+MASShorthandAdditions.h" 27 | #import "ViewController+MASAdditions.h" 28 | 29 | FOUNDATION_EXPORT double MasonryVersionNumber; 30 | FOUNDATION_EXPORT const unsigned char MasonryVersionString[]; 31 | 32 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Masonry/Masonry.modulemap: -------------------------------------------------------------------------------- 1 | framework module Masonry { 2 | umbrella header "Masonry-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Masonry/Masonry.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Masonry 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 4 | OTHER_LDFLAGS = -framework "Foundation" -framework "UIKit" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Masonry 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/PPNumberButton/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.8.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/PPNumberButton/PPNumberButton-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_PPNumberButton : NSObject 3 | @end 4 | @implementation PodsDummy_PPNumberButton 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/PPNumberButton/PPNumberButton-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/PPNumberButton/PPNumberButton-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 "PPNumberButton.h" 14 | 15 | FOUNDATION_EXPORT double PPNumberButtonVersionNumber; 16 | FOUNDATION_EXPORT const unsigned char PPNumberButtonVersionString[]; 17 | 18 | -------------------------------------------------------------------------------- /Pods/Target Support Files/PPNumberButton/PPNumberButton.modulemap: -------------------------------------------------------------------------------- 1 | framework module PPNumberButton { 2 | umbrella header "PPNumberButton-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/PPNumberButton/PPNumberButton.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/PPNumberButton 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 4 | OTHER_LDFLAGS = -framework "UIKit" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/PPNumberButton 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ProductDetailProject/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-ProductDetailProject/Pods-ProductDetailProject-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_ProductDetailProject : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_ProductDetailProject 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ProductDetailProject/Pods-ProductDetailProject-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_ProductDetailProjectVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_ProductDetailProjectVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ProductDetailProject/Pods-ProductDetailProject.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_ProductDetailProject { 2 | umbrella header "Pods-ProductDetailProject-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDCycleScrollView/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.75.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDCycleScrollView/SDCycleScrollView-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_SDCycleScrollView : NSObject 3 | @end 4 | @implementation PodsDummy_SDCycleScrollView 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDCycleScrollView/SDCycleScrollView-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/SDCycleScrollView/SDCycleScrollView-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 "TAAbstractDotView.h" 14 | #import "TAAnimatedDotView.h" 15 | #import "TADotView.h" 16 | #import "TAPageControl.h" 17 | #import "SDCollectionViewCell.h" 18 | #import "SDCycleScrollView.h" 19 | #import "UIView+SDExtension.h" 20 | 21 | FOUNDATION_EXPORT double SDCycleScrollViewVersionNumber; 22 | FOUNDATION_EXPORT const unsigned char SDCycleScrollViewVersionString[]; 23 | 24 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDCycleScrollView/SDCycleScrollView.modulemap: -------------------------------------------------------------------------------- 1 | framework module SDCycleScrollView { 2 | umbrella header "SDCycleScrollView-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDCycleScrollView/SDCycleScrollView.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 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}/SDCycleScrollView 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDWebImage/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 | 4.4.1 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDWebImage/SDWebImage-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_SDWebImage : NSObject 3 | @end 4 | @implementation PodsDummy_SDWebImage 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDWebImage/SDWebImage-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDWebImage/SDWebImage.modulemap: -------------------------------------------------------------------------------- 1 | framework module SDWebImage { 2 | umbrella header "SDWebImage-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDWebImage/SDWebImage.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 4 | OTHER_LDFLAGS = -framework "ImageIO" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/SDWebImage 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SVProgressHUD/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 | 2.2.5 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SVProgressHUD/SVProgressHUD-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_SVProgressHUD : NSObject 3 | @end 4 | @implementation PodsDummy_SVProgressHUD 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SVProgressHUD/SVProgressHUD-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #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/SVProgressHUD/SVProgressHUD-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 "SVIndefiniteAnimatedView.h" 14 | #import "SVProgressAnimatedView.h" 15 | #import "SVProgressHUD.h" 16 | #import "SVRadialGradientLayer.h" 17 | 18 | FOUNDATION_EXPORT double SVProgressHUDVersionNumber; 19 | FOUNDATION_EXPORT const unsigned char SVProgressHUDVersionString[]; 20 | 21 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SVProgressHUD/SVProgressHUD.modulemap: -------------------------------------------------------------------------------- 1 | framework module SVProgressHUD { 2 | umbrella header "SVProgressHUD-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SVProgressHUD/SVProgressHUD.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 4 | OTHER_LDFLAGS = -framework "QuartzCore" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/SVProgressHUD 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/TYAlertController/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.2.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/TYAlertController/TYAlertController-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_TYAlertController : NSObject 3 | @end 4 | @implementation PodsDummy_TYAlertController 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/TYAlertController/TYAlertController-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/TYAlertController/TYAlertController-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 "TYAlertController.h" 14 | #import "TYAlertDropDownAnimation.h" 15 | #import "TYAlertFadeAnimation.h" 16 | #import "TYAlertScaleFadeAnimation.h" 17 | #import "TYAlertView.h" 18 | #import "TYBaseAnimation.h" 19 | #import "TYShowAlertView.h" 20 | #import "UIView+TYAlertView.h" 21 | #import "UIView+TYAutoLayout.h" 22 | 23 | FOUNDATION_EXPORT double TYAlertControllerVersionNumber; 24 | FOUNDATION_EXPORT const unsigned char TYAlertControllerVersionString[]; 25 | 26 | -------------------------------------------------------------------------------- /Pods/Target Support Files/TYAlertController/TYAlertController.modulemap: -------------------------------------------------------------------------------- 1 | framework module TYAlertController { 2 | umbrella header "TYAlertController-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/TYAlertController/TYAlertController.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/TYAlertController 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 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}/TYAlertController 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/TYPagerController/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 | 2.1.2 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/TYPagerController/TYPagerController-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_TYPagerController : NSObject 3 | @end 4 | @implementation PodsDummy_TYPagerController 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/TYPagerController/TYPagerController-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/TYPagerController/TYPagerController-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 "TYTabPagerBar.h" 14 | #import "TYTabPagerBarCell.h" 15 | #import "TYTabPagerBarLayout.h" 16 | #import "TYTabPagerController.h" 17 | #import "TYTabPagerView.h" 18 | #import "TYPagerController.h" 19 | #import "TYPagerView.h" 20 | #import "TYPagerViewLayout.h" 21 | 22 | FOUNDATION_EXPORT double TYPagerControllerVersionNumber; 23 | FOUNDATION_EXPORT const unsigned char TYPagerControllerVersionString[]; 24 | 25 | -------------------------------------------------------------------------------- /Pods/Target Support Files/TYPagerController/TYPagerController.modulemap: -------------------------------------------------------------------------------- 1 | framework module TYPagerController { 2 | umbrella header "TYPagerController-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/TYPagerController/TYPagerController.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/TYPagerController 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 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}/TYPagerController 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/UITableView+FDTemplateLayoutCell/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.6.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/UITableView+FDTemplateLayoutCell/UITableView+FDTemplateLayoutCell-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_UITableView_FDTemplateLayoutCell : NSObject 3 | @end 4 | @implementation PodsDummy_UITableView_FDTemplateLayoutCell 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/UITableView+FDTemplateLayoutCell/UITableView+FDTemplateLayoutCell-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #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/UITableView+FDTemplateLayoutCell/UITableView+FDTemplateLayoutCell-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 "UITableView+FDIndexPathHeightCache.h" 14 | #import "UITableView+FDKeyedHeightCache.h" 15 | #import "UITableView+FDTemplateLayoutCell.h" 16 | #import "UITableView+FDTemplateLayoutCellDebug.h" 17 | 18 | FOUNDATION_EXPORT double UITableView_FDTemplateLayoutCellVersionNumber; 19 | FOUNDATION_EXPORT const unsigned char UITableView_FDTemplateLayoutCellVersionString[]; 20 | 21 | -------------------------------------------------------------------------------- /Pods/Target Support Files/UITableView+FDTemplateLayoutCell/UITableView+FDTemplateLayoutCell.modulemap: -------------------------------------------------------------------------------- 1 | framework module UITableView_FDTemplateLayoutCell { 2 | umbrella header "UITableView+FDTemplateLayoutCell-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/UITableView+FDTemplateLayoutCell/UITableView+FDTemplateLayoutCell.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UITableView+FDTemplateLayoutCell 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 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}/UITableView+FDTemplateLayoutCell 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/WRNavigationBar/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.2.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/WRNavigationBar/WRNavigationBar-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_WRNavigationBar : NSObject 3 | @end 4 | @implementation PodsDummy_WRNavigationBar 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/WRNavigationBar/WRNavigationBar-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/WRNavigationBar/WRNavigationBar-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 "WRCustomNavigationBar.h" 14 | #import "WRNavigationBar.h" 15 | 16 | FOUNDATION_EXPORT double WRNavigationBarVersionNumber; 17 | FOUNDATION_EXPORT const unsigned char WRNavigationBarVersionString[]; 18 | 19 | -------------------------------------------------------------------------------- /Pods/Target Support Files/WRNavigationBar/WRNavigationBar.modulemap: -------------------------------------------------------------------------------- 1 | framework module WRNavigationBar { 2 | umbrella header "WRNavigationBar-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/WRNavigationBar/WRNavigationBar.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/WRNavigationBar 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 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}/WRNavigationBar 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/YYText/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.7 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/YYText/YYText-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_YYText : NSObject 3 | @end 4 | @implementation PodsDummy_YYText 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/YYText/YYText-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/YYText/YYText.modulemap: -------------------------------------------------------------------------------- 1 | framework module YYText { 2 | umbrella header "YYText-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/YYText/YYText.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/YYText 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 4 | OTHER_LDFLAGS = -framework "Accelerate" -framework "CoreFoundation" -framework "CoreText" -framework "MobileCoreServices" -framework "QuartzCore" -framework "UIKit" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/YYText 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/zhPopupController/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.3 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/zhPopupController/zhPopupController-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_zhPopupController : NSObject 3 | @end 4 | @implementation PodsDummy_zhPopupController 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/zhPopupController/zhPopupController-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/zhPopupController/zhPopupController-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 "zhPopupController.h" 14 | 15 | FOUNDATION_EXPORT double zhPopupControllerVersionNumber; 16 | FOUNDATION_EXPORT const unsigned char zhPopupControllerVersionString[]; 17 | 18 | -------------------------------------------------------------------------------- /Pods/Target Support Files/zhPopupController/zhPopupController.modulemap: -------------------------------------------------------------------------------- 1 | framework module zhPopupController { 2 | umbrella header "zhPopupController-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/zhPopupController/zhPopupController.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/zhPopupController 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 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}/zhPopupController 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/UITableView+FDTemplateLayoutCell/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /Pods/WRNavigationBar/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 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/YYText/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 ibireme 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/YYText/YYText/String/YYTextArchiver.h: -------------------------------------------------------------------------------- 1 | // 2 | // YYTextArchiver.h 3 | // YYText 4 | // 5 | // Created by ibireme on 15/3/16. 6 | // Copyright (c) 2015 ibireme. 7 | // 8 | // This source code is licensed under the MIT-style license found in the 9 | // LICENSE file in the root directory of this source tree. 10 | // 11 | 12 | #import 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | /** 17 | A subclass of `NSKeyedArchiver` which implement `NSKeyedArchiverDelegate` protocol. 18 | 19 | The archiver can encode the object which contains 20 | CGColor/CGImage/CTRunDelegateRef/.. (such as NSAttributedString). 21 | */ 22 | @interface YYTextArchiver : NSKeyedArchiver 23 | @end 24 | 25 | /** 26 | A subclass of `NSKeyedUnarchiver` which implement `NSKeyedUnarchiverDelegate` 27 | protocol. The unarchiver can decode the data which is encoded by 28 | `YYTextArchiver` or `NSKeyedArchiver`. 29 | */ 30 | @interface YYTextUnarchiver : NSKeyedUnarchiver 31 | @end 32 | 33 | NS_ASSUME_NONNULL_END 34 | -------------------------------------------------------------------------------- /Pods/YYText/YYText/Utility/NSParagraphStyle+YYText.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSParagraphStyle+YYText.h 3 | // YYText 4 | // 5 | // Created by ibireme on 14/10/7. 6 | // Copyright (c) 2015 ibireme. 7 | // 8 | // This source code is licensed under the MIT-style license found in the 9 | // LICENSE file in the root directory of this source tree. 10 | // 11 | 12 | #import 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | /** 17 | Provides extensions for `NSParagraphStyle` to work with CoreText. 18 | */ 19 | @interface NSParagraphStyle (YYText) 20 | 21 | /** 22 | Creates a new NSParagraphStyle object from the CoreText Style. 23 | 24 | @param CTStyle CoreText Paragraph Style. 25 | 26 | @return a new NSParagraphStyle 27 | */ 28 | + (nullable NSParagraphStyle *)yy_styleWithCTStyle:(CTParagraphStyleRef)CTStyle; 29 | 30 | /** 31 | Creates and returns a CoreText Paragraph Style. (need call CFRelease() after used) 32 | */ 33 | - (nullable CTParagraphStyleRef)yy_CTStyle CF_RETURNS_RETAINED; 34 | 35 | @end 36 | 37 | NS_ASSUME_NONNULL_END 38 | -------------------------------------------------------------------------------- /Pods/zhPopupController/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016 snail-z 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 | -------------------------------------------------------------------------------- /ProductDetailProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ProductDetailProject.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ProductDetailProject.xcodeproj/xcuserdata/Huazhixi.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | ProductDetailProject.xcscheme 8 | 9 | orderHint 10 | 18 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /ProductDetailProject.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ProductDetailProject.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ProductDetailProject.xcworkspace/xcuserdata/Huazhixi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /ProductDetailProject/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // ProductDetailProject 4 | // 5 | // Created by Huazhixi on 2018/7/11. 6 | // Copyright © 2018年 HuaxiGroup. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/bianji.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "bianji.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "bianji@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "bianji@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/bianji.imageset/bianji.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/bianji.imageset/bianji.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/bianji.imageset/bianji@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/bianji.imageset/bianji@2x.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/bianji.imageset/bianji@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/bianji.imageset/bianji@3x.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/blackBackImg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "blackBackImg.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "blackBackImg@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "blackBackImg@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/blackBackImg.imageset/blackBackImg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/blackBackImg.imageset/blackBackImg.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/blackBackImg.imageset/blackBackImg@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/blackBackImg.imageset/blackBackImg@2x.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/blackBackImg.imageset/blackBackImg@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/blackBackImg.imageset/blackBackImg@3x.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/blackRightArrow.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "you.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "you@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "you@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/blackRightArrow.imageset/you.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/blackRightArrow.imageset/you.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/blackRightArrow.imageset/you@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/blackRightArrow.imageset/you@2x.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/blackRightArrow.imageset/you@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/blackRightArrow.imageset/you@3x.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/goodsBottomShopImg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "goodsBottomShopImg.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "goodsBottomShopImg@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "goodsBottomShopImg@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/goodsBottomShopImg.imageset/goodsBottomShopImg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/goodsBottomShopImg.imageset/goodsBottomShopImg.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/goodsBottomShopImg.imageset/goodsBottomShopImg@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/goodsBottomShopImg.imageset/goodsBottomShopImg@2x.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/goodsBottomShopImg.imageset/goodsBottomShopImg@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/goodsBottomShopImg.imageset/goodsBottomShopImg@3x.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/goodsNotcollected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "goodsNotcollected.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "goodsNotcollected@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "goodsNotcollected@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/goodsNotcollected.imageset/goodsNotcollected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/goodsNotcollected.imageset/goodsNotcollected.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/goodsNotcollected.imageset/goodsNotcollected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/goodsNotcollected.imageset/goodsNotcollected@2x.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/goodsNotcollected.imageset/goodsNotcollected@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/goodsNotcollected.imageset/goodsNotcollected@3x.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/goodsPlaceHolderImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "goodsPlaceHolderImage@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "goodsPlaceHolderImage@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/goodsPlaceHolderImage.imageset/goodsPlaceHolderImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/goodsPlaceHolderImage.imageset/goodsPlaceHolderImage@2x.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/goodsPlaceHolderImage.imageset/goodsPlaceHolderImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/goodsPlaceHolderImage.imageset/goodsPlaceHolderImage@3x.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/goodsShareimage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "goodsShareimage.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "goodsShareimage@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "goodsShareimage@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/goodsShareimage.imageset/goodsShareimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/goodsShareimage.imageset/goodsShareimage.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/goodsShareimage.imageset/goodsShareimage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/goodsShareimage.imageset/goodsShareimage@2x.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/goodsShareimage.imageset/goodsShareimage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/goodsShareimage.imageset/goodsShareimage@3x.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/gouwuche.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "gouwuche.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "gouwuche@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "gouwuche@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/gouwuche.imageset/gouwuche.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/gouwuche.imageset/gouwuche.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/gouwuche.imageset/gouwuche@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/gouwuche.imageset/gouwuche@2x.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/gouwuche.imageset/gouwuche@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/gouwuche.imageset/gouwuche@3x.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/kefu.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "kefu.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "kefu@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "kefu@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/kefu.imageset/kefu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/kefu.imageset/kefu.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/kefu.imageset/kefu@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/kefu.imageset/kefu@2x.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/kefu.imageset/kefu@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/kefu.imageset/kefu@3x.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/littlecoupon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "littlecoupon.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "littlecoupon@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "littlecoupon@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/littlecoupon.imageset/littlecoupon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/littlecoupon.imageset/littlecoupon.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/littlecoupon.imageset/littlecoupon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/littlecoupon.imageset/littlecoupon@2x.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/littlecoupon.imageset/littlecoupon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/littlecoupon.imageset/littlecoupon@3x.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/morendianpu.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "morendianpu@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "morendianpu@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/morendianpu.imageset/morendianpu@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/morendianpu.imageset/morendianpu@2x.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/morendianpu.imageset/morendianpu@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/morendianpu.imageset/morendianpu@3x.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/self_buy_normal.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "self_buy_normal@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "self_buy_normal@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/self_buy_normal.imageset/self_buy_normal@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/self_buy_normal.imageset/self_buy_normal@2x.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/self_buy_normal.imageset/self_buy_normal@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/self_buy_normal.imageset/self_buy_normal@3x.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/tihuo_left.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "tihuo_left.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "tihuo_left@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "tihuo_left@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/tihuo_left.imageset/tihuo_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/tihuo_left.imageset/tihuo_left.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/tihuo_left.imageset/tihuo_left@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/tihuo_left.imageset/tihuo_left@2x.png -------------------------------------------------------------------------------- /ProductDetailProject/Assets.xcassets/tihuo_left.imageset/tihuo_left@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huazhixi/ProductDetailProject/134c0e4738d00e28b7174ac4a22632c879a1fcd4/ProductDetailProject/Assets.xcassets/tihuo_left.imageset/tihuo_left@3x.png -------------------------------------------------------------------------------- /ProductDetailProject/BaseVC/BaseViewController.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | #import "HRBaseViewController.h" 4 | 5 | @interface BaseViewController : HRBaseViewController 6 | 7 | @end 8 | -------------------------------------------------------------------------------- /ProductDetailProject/BaseVC/HRBarItem.h: -------------------------------------------------------------------------------- 1 | 2 | /*~! 3 | | @FUNC 导航左右item专用类 4 | | @AUTH Nobility 5 | | @DATE 2016-10-17 6 | | @BRIF <#brif#> 7 | */ 8 | 9 | #import 10 | 11 | @interface HRBarItem : UIButton 12 | 13 | /*! 14 | * @author Nobility, 16-09-06 11:09:36 15 | * 16 | * @brief frame 17 | * 18 | * @since 1.0.0 19 | */ 20 | - (HRBarItem *(^)(CGRect))setupFrame; 21 | /*! 22 | * @author Nobility, 16-09-06 10:09:54 23 | * 24 | * @brief 标题 25 | * 26 | * @since 1.0.0 27 | */ 28 | - (HRBarItem *(^)(NSString *))setupTitle; 29 | 30 | /*! 31 | * @author Nobility, 16-09-06 10:09:02 32 | * 33 | * @brief 标题颜色 34 | * 35 | * @since 1.0.0 36 | */ 37 | - (HRBarItem *(^)(UIColor *))setupTitleColor; 38 | 39 | /*! 40 | * @author Nobility, 16-09-06 10:09:10 41 | * 42 | * @brief 字体 43 | * 44 | * @since 1.0.0 45 | */ 46 | - (HRBarItem *(^)(UIFont *))setupFont; 47 | 48 | /*! 49 | * @author Nobility, 16-09-06 10:09:16 50 | * 51 | * @brief 边距(需要重置frame) 52 | * 53 | * @since 1.0.0 54 | */ 55 | - (HRBarItem *(^)(UIEdgeInsets))setupTitleEdgeInserts; 56 | 57 | 58 | 59 | @end 60 | -------------------------------------------------------------------------------- /ProductDetailProject/BaseVC/HRBarItem.m: -------------------------------------------------------------------------------- 1 | 2 | 3 | #import "HRBarItem.h" 4 | 5 | @implementation HRBarItem 6 | 7 | #pragma mark - ---------- Public Methods ---------- 8 | 9 | - (HRBarItem *(^)(CGRect))setupFrame { 10 | return ^(CGRect rect) { 11 | self.frame = rect; 12 | return self; 13 | }; 14 | } 15 | - (HRBarItem *(^)(NSString *))setupTitle { 16 | return ^(NSString *title){ 17 | [self setTitle:title forState:UIControlStateNormal]; 18 | return self; 19 | }; 20 | } 21 | - (HRBarItem *(^)(UIColor *))setupTitleColor { 22 | return ^(UIColor *color) { 23 | [self setTitleColor:color forState:UIControlStateNormal]; 24 | return self; 25 | }; 26 | } 27 | - (HRBarItem *(^)(UIFont *))setupFont { 28 | return ^(UIFont *font) { 29 | [self.titleLabel setFont:font]; 30 | return self; 31 | }; 32 | } 33 | - (HRBarItem *(^)(UIEdgeInsets))setupTitleEdgeInserts { 34 | return ^(UIEdgeInsets edge) { 35 | [self setTitleEdgeInsets:edge]; 36 | [self sizeToFit]; 37 | return self; 38 | }; 39 | } 40 | 41 | 42 | 43 | @end 44 | -------------------------------------------------------------------------------- /ProductDetailProject/BaseVC/HRBaseViewControllerProtocol.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | #import 4 | 5 | @protocol HRBaseViewControllerProtocol 6 | 7 | @optional 8 | 9 | #pragma mark 布局UI 10 | //2.1 布局Title 11 | - (void)configTitle; 12 | //2.2 布局leftItems 13 | - (void)configLeftItems; 14 | //2.3 布局rightItems 15 | - (void)configRightItems; 16 | 17 | #pragma mark 网络请求 18 | //3.1 网络请求 19 | - (void)networkRequest; 20 | //3.2 刷新网络请求 21 | - (void)refreshRequest; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /ProductDetailProject/ChooseAttr(选择商品属性)/Controller/TCAttributeModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // TCAttributeModel.m 3 | // TCMall 4 | // 5 | // Created by Huazhixi on 2018/4/14. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import "TCAttributeModel.h" 10 | 11 | @implementation AttributeInfo 12 | 13 | @end 14 | 15 | @implementation Attribute 16 | 17 | + (NSDictionary *)mj_objectClassInArray 18 | { 19 | return @{@"info": @"AttributeInfo" 20 | }; 21 | } 22 | @end 23 | 24 | @implementation AttributeCategery 25 | 26 | @end 27 | 28 | @implementation TCAttributeModel 29 | 30 | + (NSDictionary *)mj_objectClassInArray 31 | { 32 | return @{@"spec": @"AttributeCategery", 33 | @"list": @"Attribute", 34 | }; 35 | } 36 | @end 37 | -------------------------------------------------------------------------------- /ProductDetailProject/ChooseAttr(选择商品属性)/Controller/TCChooseGoodsAttributeViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // TCChooseGoodsAttributeViewController.h 3 | // TCMall 4 | // 5 | // Created by Huazhixi on 2018/3/14. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import 10 | //#import "TCConfirmOrderModel.h" 11 | #import "TCGoodsModel.h" 12 | 13 | @interface TCChooseGoodsAttributeViewController : UIViewController 14 | /** */ 15 | @property (nonatomic, copy) NSString *goods_id; 16 | /** 是否从购物车弹出 */ 17 | @property (nonatomic, assign) BOOL isFromBuyCart; 18 | 19 | @property (nonatomic,strong)UIViewController *fatherVC; 20 | /** */ 21 | @property (strong, nonatomic) TCGoodsModel *goodsModel; 22 | /** */ 23 | @property (nonatomic, copy) NSString *goods_img; 24 | /** */ 25 | @property (nonatomic, assign) NSInteger store_id; 26 | 27 | @property (nonatomic, assign) BOOL fromBuyNowBtn; 28 | @end 29 | -------------------------------------------------------------------------------- /ProductDetailProject/ChooseAttr(选择商品属性)/Controller/View/TCCountFooterView.h: -------------------------------------------------------------------------------- 1 | // 2 | // TCCountFooterView.h 3 | // TCMall 4 | // 5 | // Created by Huazhixi on 2018/4/13. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "PPNumberButton.h" 11 | 12 | @interface TCCountFooterView : UICollectionReusableView 13 | /** */ 14 | @property(nonatomic, retain)UILabel *countLbl; 15 | /** */ 16 | @property (strong, nonatomic) PPNumberButton *numberButton; 17 | /** */ 18 | @property (nonatomic, copy) void (^changeNumCellBlock)(CGFloat number); 19 | /** */ 20 | @property (nonatomic, assign) NSInteger maxValue; 21 | @end 22 | -------------------------------------------------------------------------------- /ProductDetailProject/ChooseAttr(选择商品属性)/Controller/View/TCPropertyCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // TCPropertyCell.h 3 | // TCMall 4 | // 5 | // Created by Huazhixi on 2018/4/13. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface TCPropertyCell : UICollectionViewCell 12 | /** */ 13 | @property (strong, nonatomic) UILabel *propertyL; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /ProductDetailProject/ChooseAttr(选择商品属性)/Controller/View/TCPropertyFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // TCPropertyFooter.h 3 | // TCMall 4 | // 5 | // Created by Huazhixi on 2018/4/13. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface TCPropertyFooter : UICollectionReusableView 12 | /** */ 13 | @property (strong, nonatomic) UIView *line; 14 | @end 15 | -------------------------------------------------------------------------------- /ProductDetailProject/ChooseAttr(选择商品属性)/Controller/View/TCPropertyFooter.m: -------------------------------------------------------------------------------- 1 | // 2 | // TCPropertyFooter.m 3 | // TCMall 4 | // 5 | // Created by Huazhixi on 2018/4/13. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import "TCPropertyFooter.h" 10 | #import "Masonry.h" 11 | 12 | @implementation TCPropertyFooter 13 | 14 | - (instancetype)initWithFrame:(CGRect)frame { 15 | if (self) { 16 | self = [super initWithFrame:frame]; 17 | self.backgroundColor = [UIColor whiteColor]; 18 | 19 | [self setupViewCell]; 20 | } 21 | return self; 22 | } 23 | 24 | - (void)setupViewCell { 25 | _line = [UIView new]; 26 | _line.backgroundColor = [UIColor lightTextColor]; 27 | [self addSubview:_line]; 28 | 29 | [_line mas_makeConstraints:^(MASConstraintMaker *make){ 30 | make.left.bottom.right.equalTo(self).offset(0); 31 | make.height.offset(1); 32 | }]; 33 | } 34 | @end 35 | -------------------------------------------------------------------------------- /ProductDetailProject/ChooseAttr(选择商品属性)/Controller/View/TCPropertyHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // TCPropertyHeader.h 3 | // TCMall 4 | // 5 | // Created by Huazhixi on 2018/4/13. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface TCPropertyHeader : UICollectionReusableView 12 | /** */ 13 | @property (strong, nonatomic) UILabel *headernameL; 14 | @end 15 | -------------------------------------------------------------------------------- /ProductDetailProject/ChooseAttr(选择商品属性)/Controller/View/TCPropertyHeader.m: -------------------------------------------------------------------------------- 1 | 2 | // 3 | // TCPropertyHeader.m 4 | // TCMall 5 | // 6 | // Created by Huazhixi on 2018/4/13. 7 | // Copyright © 2018年 HJB. All rights reserved. 8 | // 9 | 10 | #import "TCPropertyHeader.h" 11 | #import "Masonry.h" 12 | 13 | @implementation TCPropertyHeader 14 | 15 | - (instancetype)initWithFrame:(CGRect)frame { 16 | if (self) { 17 | self = [super initWithFrame:frame]; 18 | self.backgroundColor = [UIColor whiteColor]; 19 | 20 | [self setupViewCell]; 21 | } 22 | return self; 23 | } 24 | 25 | - (void)setupViewCell { 26 | _headernameL = [UILabel new]; 27 | _headernameL.textColor = [UIColor blackColor]; 28 | _headernameL.font = [UIFont systemFontOfSize:14]; 29 | _headernameL.numberOfLines = 0; 30 | _headernameL.text = @"属性名字"; 31 | [self addSubview:_headernameL]; 32 | 33 | [_headernameL mas_makeConstraints:^(MASConstraintMaker *make){ 34 | make.centerY.equalTo(self); 35 | make.left.equalTo(self).offset(10); 36 | }]; 37 | } 38 | @end 39 | -------------------------------------------------------------------------------- /ProductDetailProject/Model(商品详情)/TCCommentModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // TCCommentModel.h 3 | // TCMall 4 | // 5 | // Created by Huazhixi on 2018/4/8. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "TCGoodsModel.h" 11 | 12 | @interface TCCommentModel : NSObject 13 | @property (nonatomic , assign) NSInteger current_page; 14 | @property (nonatomic , assign) NSInteger last_page; 15 | @property (nonatomic , assign) NSInteger per_page; 16 | @property (nonatomic , copy) NSArray * data; 17 | @property (nonatomic , assign) NSInteger total; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /ProductDetailProject/Model(商品详情)/TCCommentModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // TCCommentModel.m 3 | // TCMall 4 | // 5 | // Created by Huazhixi on 2018/4/8. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import "TCCommentModel.h" 10 | 11 | @implementation TCCommentModel 12 | 13 | + (NSDictionary *)mj_objectClassInArray 14 | { 15 | return @{@"data": @"Comment" 16 | }; 17 | } 18 | @end 19 | -------------------------------------------------------------------------------- /ProductDetailProject/Model(商品详情)/TCGoodsAddressModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // TCGoodsAddressModel.h 3 | // TCMall 4 | // 5 | // Created by Huazhixi on 2018/6/26. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface TCGoodsCityList : NSObject 12 | 13 | @property (nonatomic , copy) NSString * name; 14 | @property (nonatomic , copy) NSString * code; 15 | @end 16 | 17 | @interface TCGoodsAddressModel : NSObject 18 | @property (nonatomic , copy) NSArray * citylist; 19 | @property (nonatomic , copy) NSString * name; 20 | @property (nonatomic , copy) NSString * code; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /ProductDetailProject/Model(商品详情)/TCGoodsAddressModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // TCGoodsAddressModel.m 3 | // TCMall 4 | // 5 | // Created by Huazhixi on 2018/6/26. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import "TCGoodsAddressModel.h" 10 | 11 | @implementation TCGoodsCityList 12 | 13 | + (NSDictionary *)mj_replacedKeyFromPropertyName { 14 | return @{ 15 | @"name": @"cityName" 16 | }; 17 | } 18 | @end 19 | 20 | @implementation TCGoodsAddressModel 21 | 22 | + (NSDictionary *)mj_replacedKeyFromPropertyName { 23 | return @{ 24 | @"name": @"provinceName", 25 | @"citylist": @"cityList" 26 | }; 27 | } 28 | 29 | + (NSDictionary *)mj_objectClassInArray 30 | { 31 | return @{@"citylist": @"TCGoodsCityList" 32 | }; 33 | } 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /ProductDetailProject/Model(商品详情)/TCGoodsModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // TCGoodsModel.m 3 | // TCMall 4 | // 5 | // Created by Huazhixi on 2018/4/6. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import "TCGoodsModel.h" 10 | 11 | @implementation GoodsInfo 12 | 13 | @end 14 | 15 | @implementation StoreInfo 16 | 17 | @end 18 | 19 | @implementation Comment 20 | 21 | @end 22 | 23 | @implementation Parameter 24 | 25 | @end 26 | 27 | @implementation Position 28 | 29 | @end 30 | 31 | @implementation TCGoodsModel 32 | 33 | + (NSDictionary *)mj_replacedKeyFromPropertyName { 34 | return @{ 35 | @"descHtml": @"description" 36 | }; 37 | } 38 | 39 | + (NSDictionary *)mj_objectClassInArray 40 | { 41 | return @{@"comment": @"Comment", 42 | @"recommend": @"RecommendProduct", 43 | @"parameter": @"Parameter", 44 | }; 45 | } 46 | @end 47 | -------------------------------------------------------------------------------- /ProductDetailProject/Model(商品详情)/TCHomeModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // TCHomeModel.m 3 | // TCMall 4 | // 5 | // Created by Huazhixi on 2018/4/9. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import "TCHomeModel.h" 10 | 11 | @implementation Banner 12 | 13 | @end 14 | 15 | @implementation SellHot 16 | 17 | @end 18 | 19 | @implementation RecommendProduct 20 | 21 | @end 22 | 23 | @implementation PreferredStore 24 | 25 | @end 26 | 27 | @implementation SelfSupport 28 | 29 | @end 30 | 31 | @implementation List 32 | 33 | @end 34 | 35 | @implementation MallRecommend 36 | 37 | + (NSDictionary *)mj_objectClassInArray 38 | { 39 | return @{@"list": @"List", 40 | }; 41 | } 42 | @end 43 | 44 | @implementation HomeModel 45 | 46 | + (NSDictionary *)mj_objectClassInArray 47 | { 48 | return @{@"banner": @"Banner", 49 | @"sellHot": @"SellHot", 50 | @"todayRecommed": @"RecommendProduct", 51 | @"recommendProduct": @"RecommendProduct", 52 | @"preferredStore": @"PreferredStore", 53 | @"selfSupport": @"SelfSupport", 54 | @"mallRecommend": @"MallRecommend", 55 | }; 56 | } 57 | @end 58 | -------------------------------------------------------------------------------- /ProductDetailProject/ProductDetail(宝贝详情)/Controller/TCBabyDeailtyComentVC.h: -------------------------------------------------------------------------------- 1 | // 2 | // TCBabyDeailtyComentVC.h 3 | // TCMall 4 | // 5 | // Created by 栗子 on 2018/1/29. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import "BaseViewController.h" 10 | //#import "BaseNatigationViewController.h" 11 | #import "02 Macro.h" 12 | #import "03 Constant.h" 13 | #import "LLSegmentBar.h" 14 | #import "LLSegmentBarVC.h" 15 | #import "TCGoodsModel.h" 16 | 17 | @interface TCBabyDeailtyComentVC : BaseViewController 18 | 19 | @property (nonatomic,strong)LLSegmentBar *segmentBar; 20 | 21 | //@property (nonatomic,strong)BaseNatigationViewController *baseNavController; 22 | 23 | @property (nonatomic,strong)UIViewController *fatherVC; 24 | /** */ 25 | @property (nonatomic, copy) NSString *goodsID; 26 | /** */ 27 | @property (strong, nonatomic) TCGoodsModel *goodsModel; 28 | @end 29 | -------------------------------------------------------------------------------- /ProductDetailProject/ProductDetail(宝贝详情)/Controller/TCBabyDeailtyCommentListVC.h: -------------------------------------------------------------------------------- 1 | // 2 | // TCBabyDeailtyCommentListVC.h 3 | // TCMall 4 | // 5 | // Created by 栗子 on 2018/2/1. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import "BaseViewController.h" 10 | #import "TCGoodsCommentListsCell.h" 11 | #import "TCCommentModel.h" 12 | 13 | static NSString *const TCGoodsCommentListsCellID = @"TCGoodsCommentListsCell"; 14 | 15 | @interface TCBabyDeailtyCommentListVC : BaseViewController 16 | 17 | @property (nonatomic,strong)UITableView *commentListView; 18 | /** */ 19 | @property (strong, nonatomic) NSMutableArray *commentArray; 20 | /** */ 21 | @property (nonatomic, copy) NSString *type; 22 | /** */ 23 | @property (nonatomic, copy) NSString *goodsID; 24 | @end 25 | -------------------------------------------------------------------------------- /ProductDetailProject/ProductDetail(宝贝详情)/Controller/TCBabyDeailtyRootVC.h: -------------------------------------------------------------------------------- 1 | /* 2 | 宝贝详情跟视图 3 | */ 4 | #import "BaseViewController.h" 5 | #import "TCGoodsModel.h" 6 | 7 | @interface TCBabyDeailtyRootVC : BaseViewController 8 | /** */ 9 | @property (nonatomic, copy) NSString *goodsID; 10 | /** */ 11 | @property (nonatomic, copy) NSString *goods_img; 12 | /** */ 13 | @property (strong, nonatomic) TCGoodsModel *goodsModel; 14 | @end 15 | -------------------------------------------------------------------------------- /ProductDetailProject/ProductDetail(宝贝详情)/Controller/TCBabyDeailtyViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | 宝贝详情 3 | */ 4 | #import "BaseViewController.h" 5 | #import "LLSegmentBar.h" 6 | //#import "BaseNatigationViewController.h" 7 | #import "TCGoodsModel.h" 8 | 9 | @class TCBabyDeailtyViewController; 10 | @protocol TCBabyDeailtyViewControllerDelegate 11 | @optional 12 | - (void)TCBabyDeailtyViewControllerOffsetY:(float)offsetY hiddenNavBar:(BOOL)hiddenNavBar; 13 | @end 14 | 15 | @interface TCBabyDeailtyViewController : BaseViewController 16 | 17 | @property (nonatomic,strong)LLSegmentBar *segmentBar; 18 | 19 | //@property (nonatomic,strong)BaseNatigationViewController *baseNavController; 20 | /** */ 21 | @property (strong, nonatomic) UILabel *titileLbl; 22 | 23 | @property (nonatomic,strong)UIViewController *fatherVC; 24 | 25 | @property (weak, nonatomic) iddelegate; 26 | /** */ 27 | @property (strong, nonatomic) TCGoodsModel *goodsModel; 28 | /** */ 29 | @property (nonatomic, copy) NSString *goods_img; 30 | /** */ 31 | @property (nonatomic, copy) NSString *goods_id; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /ProductDetailProject/ProductDetail(宝贝详情)/Controller/TCBabyDeailtyWebVC.h: -------------------------------------------------------------------------------- 1 | // 2 | // TCBabyDeailtyWebVC.h 3 | // TCMall 4 | // 5 | // Created by 栗子 on 2018/1/29. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import "BaseViewController.h" 10 | #import "LLSegmentBar.h" 11 | //#import "BaseNatigationViewController.h" 12 | 13 | @interface TCBabyDeailtyWebVC : BaseViewController 14 | 15 | @property (nonatomic,strong)LLSegmentBar *segmentBar; 16 | 17 | //@property (nonatomic,strong)BaseNatigationViewController *baseNavController; 18 | 19 | @property (nonatomic,strong)UIViewController *fatherVC; 20 | /** */ 21 | @property (nonatomic, copy) NSString *htmlStr; 22 | @end 23 | -------------------------------------------------------------------------------- /ProductDetailProject/ProductDetail(宝贝详情)/View/goods_comment/TCGoodsCommentListsCell.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | 商品评价列表 4 | */ 5 | #import 6 | #import "TCGoodsModel.h" 7 | 8 | @interface TCGoodsCommentListsCell : UITableViewCell 9 | /** 购物详情评论模型 */ 10 | @property (strong, nonatomic) Comment *commentModel; 11 | @end 12 | -------------------------------------------------------------------------------- /ProductDetailProject/ProductDetail(宝贝详情)/View/goods_info/TCBabyDeailtyBottomToolsView.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | #import 4 | 5 | 6 | typedef void(^addGoodsCartCallBack)(); 7 | 8 | typedef void(^buyGoodsCallBack)(); 9 | 10 | typedef void(^callBackBottomAction)(NSInteger tag); 11 | 12 | @interface TCBabyDeailtyBottomToolsView : UIView 13 | 14 | @property (nonatomic,copy)addGoodsCartCallBack cartAddBackAction; 15 | @property (nonatomic,copy)buyGoodsCallBack buyGoods; 16 | @property (nonatomic,copy)callBackBottomAction backAction; 17 | 18 | @property (weak, nonatomic) IBOutlet UIView *storeBtnView; 19 | @property (weak, nonatomic) IBOutlet UIView *shoppingCartBtnView; 20 | @property (weak, nonatomic) IBOutlet UIView *threeBtnView; 21 | /** */ 22 | @property (nonatomic, assign) NSInteger store_id; 23 | @end 24 | -------------------------------------------------------------------------------- /ProductDetailProject/ProductDetail(宝贝详情)/View/goods_info/TCBabyDeailtyCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // TCBabyDeailtyCell.h 3 | // TCMall 4 | // 5 | // Created by 栗子 on 2018/1/29. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface TCBabyDeailtyCell : UITableViewCell 12 | 13 | @property (nonatomic, copy) void (^babyDealtyCellGuiGeBlock)(); 14 | @property (nonatomic, copy) void (^babyDealtyCellGoodsParamBlock)(); 15 | @property (nonatomic, copy) void (^babyDealtyCellYouhuiBlock)(); 16 | @end 17 | -------------------------------------------------------------------------------- /ProductDetailProject/ProductDetail(宝贝详情)/View/goods_info/TCBabyDeailtyCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // TCBabyDeailtyCell.m 3 | // TCMall 4 | // 5 | // Created by 栗子 on 2018/1/29. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import "TCBabyDeailtyCell.h" 10 | 11 | @implementation TCBabyDeailtyCell 12 | 13 | - (void)awakeFromNib { 14 | [super awakeFromNib]; 15 | // Initialization code 16 | } 17 | - (IBAction)chooseGuigeBtnClick { 18 | if (_babyDealtyCellGuiGeBlock) { 19 | _babyDealtyCellGuiGeBlock(); 20 | } 21 | } 22 | - (IBAction)goodsParamBtnClick { 23 | if (_babyDealtyCellGoodsParamBlock) { 24 | _babyDealtyCellGoodsParamBlock(); 25 | } 26 | } 27 | - (IBAction)youhuijuanBtnClick { 28 | if (_babyDealtyCellYouhuiBlock) { 29 | _babyDealtyCellYouhuiBlock(); 30 | } 31 | } 32 | 33 | 34 | - (void)setSelected:(BOOL)selected animated:(BOOL)animated { 35 | [super setSelected:selected animated:animated]; 36 | 37 | // Configure the view for the selected state 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /ProductDetailProject/ProductDetail(宝贝详情)/View/goods_info/TCBabyDeailtyShopBasicInfoTableViewCell.h: -------------------------------------------------------------------------------- 1 | 2 | #import 3 | #import "TCGoodsModel.h" 4 | 5 | extern NSString *const kMerchandiseShopBasicInfoTableViewCellIdentifier; 6 | 7 | @interface TCBabyDeailtyShopBasicInfoTableViewCell : UITableViewCell 8 | 9 | @property (nonatomic, copy) void (^shopInfoCellBlock)(NSInteger index); 10 | /** */ 11 | @property (strong, nonatomic) StoreInfo *shopModel; 12 | @end 13 | -------------------------------------------------------------------------------- /ProductDetailProject/ProductDetail(宝贝详情)/View/goods_info/TCBabyDetailFooterView.h: -------------------------------------------------------------------------------- 1 | // 2 | // TCBabyDetailFooterView.h 3 | // TCMall 4 | // 5 | // Created by Huazhixi on 2018/3/8. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface TCBabyDetailFooterView : UIView 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /ProductDetailProject/ProductDetail(宝贝详情)/View/goods_info/TCBabyDetailFooterView.m: -------------------------------------------------------------------------------- 1 | // 2 | // TCBabyDetailFooterView.m 3 | // TCMall 4 | // 5 | // Created by Huazhixi on 2018/3/8. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import "TCBabyDetailFooterView.h" 10 | 11 | @implementation TCBabyDetailFooterView 12 | 13 | /* 14 | // Only override drawRect: if you perform custom drawing. 15 | // An empty implementation adversely affects performance during animation. 16 | - (void)drawRect:(CGRect)rect { 17 | // Drawing code 18 | } 19 | */ 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /ProductDetailProject/ProductDetail(宝贝详情)/View/goods_info/TCBabyDetailJudgeCountTableViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // TCBabyDetailJudgeCountTableViewCell.h 3 | // TCMall 4 | // 5 | // Created by Huazhixi on 2018/3/7. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface TCBabyDetailJudgeCountTableViewCell : UITableViewCell 12 | @property (weak, nonatomic) IBOutlet UILabel *totalCountLbl; 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /ProductDetailProject/ProductDetail(宝贝详情)/View/goods_info/TCBabyDetailJudgeCountTableViewCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // TCBabyDetailJudgeCountTableViewCell.m 3 | // TCMall 4 | // 5 | // Created by Huazhixi on 2018/3/7. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import "TCBabyDetailJudgeCountTableViewCell.h" 10 | 11 | @implementation TCBabyDetailJudgeCountTableViewCell 12 | 13 | - (void)awakeFromNib { 14 | [super awakeFromNib]; 15 | // Initialization code 16 | } 17 | 18 | - (void)setSelected:(BOOL)selected animated:(BOOL)animated { 19 | [super setSelected:selected animated:animated]; 20 | 21 | // Configure the view for the selected state 22 | } 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /ProductDetailProject/ProductDetail(宝贝详情)/View/goods_info/TCBabyDetailMoreJudgeTableViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // TCBabyDetailMoreJudgeTableViewCell.h 3 | // TCMall 4 | // 5 | // Created by Huazhixi on 2018/3/7. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface TCBabyDetailMoreJudgeTableViewCell : UITableViewCell 12 | @property (nonatomic, copy) void (^moreJudgeCellBlock)(); 13 | @end 14 | -------------------------------------------------------------------------------- /ProductDetailProject/ProductDetail(宝贝详情)/View/goods_info/TCBabyDetailMoreJudgeTableViewCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // TCBabyDetailMoreJudgeTableViewCell.m 3 | // TCMall 4 | // 5 | // Created by Huazhixi on 2018/3/7. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import "TCBabyDetailMoreJudgeTableViewCell.h" 10 | #import "03 Constant.h" 11 | 12 | @interface TCBabyDetailMoreJudgeTableViewCell () 13 | 14 | @property (weak, nonatomic) IBOutlet UIButton *seeAllJudgeButton; 15 | 16 | @end 17 | 18 | @implementation TCBabyDetailMoreJudgeTableViewCell 19 | 20 | - (void)awakeFromNib { 21 | [super awakeFromNib]; 22 | 23 | self.seeAllJudgeButton.layer.borderColor = RGB0X(0xF1081B).CGColor; 24 | } 25 | - (IBAction)moreBtnClick { 26 | if (_moreJudgeCellBlock) { 27 | _moreJudgeCellBlock(); 28 | } 29 | } 30 | 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /ProductDetailProject/ProductDetail(宝贝详情)/View/goods_info/TCCycleScrollTableViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // TCCycleScrollTableViewCell.h 3 | // TCMall 4 | // 5 | // Created by Huazhixi on 2018/4/6. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | #import "TCHomeModel.h" 12 | 13 | @interface TCCycleScrollTableViewCell : UITableViewCell 14 | 15 | @property (nonatomic,strong) SDCycleScrollView *cycleScrollView; 16 | /**网络图片数组*/ 17 | @property (nonatomic,strong) NSArray *imageGroupUrls; 18 | /**本地图片数组*/ 19 | @property (nonatomic,strong) NSArray *localImageGroupUrls; 20 | /**图片描述文字数组*/ 21 | @property (nonatomic,strong) NSArray *imageTextValueArr; 22 | /** */ 23 | @property (strong, nonatomic) NSArray *bannerArray; 24 | /** */ 25 | @property (strong, nonatomic) NSMutableArray *bannerShowUrlArray; 26 | @end 27 | -------------------------------------------------------------------------------- /ProductDetailProject/ProductDetail(宝贝详情)/View/goods_info/TCGoodsInfoTableViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // TCGoodsInfoTableViewCell.h 3 | // TCMall 4 | // 5 | // Created by Huazhixi on 2018/4/6. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "TCGoodsModel.h" 11 | @class TCGoodsInfoTableViewCell; 12 | @protocol TCGoodsInfoTableViewCellDelegate 13 | @optional 14 | - (void)goodsInfoCellChooseAddressWithIndex:(NSIndexPath *)indexPath; 15 | 16 | - (void)goodsInfoTableViewCellCollect:(UIButton *)button; 17 | @end 18 | @interface TCGoodsInfoTableViewCell : UITableViewCell 19 | /** */ 20 | @property (strong, nonatomic) TCGoodsModel *goodsModel; 21 | /** */ 22 | @property (strong, nonatomic) Position *position; 23 | /** */ 24 | @property (nonatomic, copy) NSString *chooseAddress; 25 | 26 | @property (nonatomic, assign) NSIndexPath *indexPath; 27 | 28 | @property (weak, nonatomic) iddelegate; 29 | @end 30 | -------------------------------------------------------------------------------- /ProductDetailProject/ProductDetail(宝贝详情)/View/goods_info/TCGoodsParameterView.h: -------------------------------------------------------------------------------- 1 | // 2 | // TCGoodsParameterView.h 3 | // TCMall 4 | // 5 | // Created by Huazhixi on 2018/3/14. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "TCGoodsModel.h" 11 | 12 | @interface TCGoodsParameterView : UIView 13 | @property (weak, nonatomic) IBOutlet UITableView *tableView; 14 | @property (weak, nonatomic) IBOutlet NSLayoutConstraint *sureBtnConstrain; 15 | 16 | @property (nonatomic, copy) void (^goodsParamViewBlock)(); 17 | /** */ 18 | @property (strong, nonatomic) NSArray *paramsArray; 19 | @end 20 | -------------------------------------------------------------------------------- /ProductDetailProject/ProductDetail(宝贝详情)/View/goods_info/TCRecommandTableViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // TCRecommandTableViewCell.h 3 | // TCMall 4 | // 5 | // Created by Huazhixi on 2018/3/7. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "TCGoodsModel.h" 11 | 12 | @interface TCRecommandTableViewCell : UITableViewCell 13 | /** */ 14 | @property (strong, nonatomic) NSArray *recommendArray; 15 | /** */ 16 | @property (nonatomic, assign) BOOL isDiancang; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /ProductDetailProject/ProductDetail(宝贝详情)/View/goods_info/TCRecommandTopTableViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // TCRecommandTopTableViewCell.h 3 | // TCMall 4 | // 5 | // Created by Huazhixi on 2018/3/7. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface TCRecommandTopTableViewCell : UITableViewCell 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /ProductDetailProject/ProductDetail(宝贝详情)/View/goods_info/TCRecommandTopTableViewCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // TCRecommandTopTableViewCell.m 3 | // TCMall 4 | // 5 | // Created by Huazhixi on 2018/3/7. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import "TCRecommandTopTableViewCell.h" 10 | 11 | @implementation TCRecommandTopTableViewCell 12 | 13 | - (void)awakeFromNib { 14 | [super awakeFromNib]; 15 | // Initialization code 16 | } 17 | 18 | - (void)setSelected:(BOOL)selected animated:(BOOL)animated { 19 | [super setSelected:selected animated:animated]; 20 | 21 | // Configure the view for the selected state 22 | } 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /ProductDetailProject/ProductDetail(宝贝详情)/View/goods_info/TCSaleServiceCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // TCSaleServiceCell.h 3 | // TCMall 4 | // 5 | // Created by Huazhixi on 2018/7/10. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface TCSaleServiceCell : UITableViewCell 12 | 13 | @property (weak, nonatomic) IBOutlet UILabel *saleServiceLbl; 14 | @end 15 | -------------------------------------------------------------------------------- /ProductDetailProject/ProductDetail(宝贝详情)/View/goods_info/TCSaleServiceCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // TCSaleServiceCell.m 3 | // TCMall 4 | // 5 | // Created by Huazhixi on 2018/7/10. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import "TCSaleServiceCell.h" 10 | 11 | @implementation TCSaleServiceCell 12 | 13 | - (void)awakeFromNib { 14 | [super awakeFromNib]; 15 | // Initialization code 16 | } 17 | 18 | - (void)setSelected:(BOOL)selected animated:(BOOL)animated { 19 | [super setSelected:selected animated:animated]; 20 | 21 | // Configure the view for the selected state 22 | } 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /ProductDetailProject/ProductListViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ProductListViewController.h 3 | // ProductDetailProject 4 | // 5 | // Created by Huazhixi on 2018/7/11. 6 | // Copyright © 2018年 HuaxiGroup. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ProductListViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /ProductDetailProject/TCGoodsCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // TCGoodsCell.h 3 | // TCMall 4 | // 5 | // Created by Huazhixi on 2018/4/3. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "TCHomeModel.h" 11 | 12 | @interface TCGoodsCell : UICollectionViewCell 13 | /** */ 14 | @property (strong, nonatomic) RecommendProduct *goodsModel; 15 | /** */ 16 | @property (nonatomic, assign) BOOL isDiancang; 17 | @end 18 | -------------------------------------------------------------------------------- /ProductDetailProject/Util(工具)/Category/NSObject+HXExtension.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSObject+HXExtension.h 3 | // TCMall 4 | // 5 | // Created by Huazhixi on 2018/4/14. 6 | // Copyright © 2018年 HJB. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface NSObject (HXExtension) 12 | /** 13 | * 转换成JSON串字符串(没有可读性) 14 | * 15 | * @return JSON字符串 16 | */ 17 | - (NSString *)toJSONString; 18 | 19 | /** 20 | * 转换成JSON串字符串(有可读性) 21 | * 22 | * @return JSON字符串 23 | */ 24 | - (NSString *)toReadableJSONString; 25 | 26 | /** 27 | * 转换成JSON数据 28 | * 29 | * @return JSON数据 30 | */ 31 | - (NSData *)toJSONData; 32 | @end 33 | -------------------------------------------------------------------------------- /ProductDetailProject/Util(工具)/Category/UIViewController+Utils.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+Utils.h 3 | // JiaBoWang 4 | // 5 | // Created by Huazhixi on 2017/4/13. 6 | // Copyright © 2017年 HandTV. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #define CurrentViewController [UIViewController currentViewController] 12 | 13 | @interface UIViewController (Utils) 14 | 15 | @property(nonatomic,strong,readonly)UINavigationController *myNavigationController; 16 | 17 | + (UIViewController *) currentViewController; 18 | @end 19 | -------------------------------------------------------------------------------- /ProductDetailProject/Vender/SemiModal/XPSemiModalAnimatedTransitioning.h: -------------------------------------------------------------------------------- 1 | // 2 | // SemiModalAnimatedTransitioning.h 3 | // https://github.com/xiaopin/SemiModal.git 4 | // 5 | // Created by nhope on 2018/1/10. 6 | // Copyright © 2018年 xiaopin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface XPSemiModalAnimatedTransitioning : NSObject 12 | 13 | @property (nonatomic, assign, getter=isPresentation) BOOL presentation; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /ProductDetailProject/Vender/SemiModal/XPSemiModalConfiguration.m: -------------------------------------------------------------------------------- 1 | // 2 | // XPSemiModalConfiguration.m 3 | // Example 4 | // 5 | // Created by nhope on 2018/1/12. 6 | // Copyright © 2018年 xiaopin. All rights reserved. 7 | // 8 | 9 | #import "XPSemiModalConfiguration.h" 10 | 11 | @implementation XPSemiModalConfiguration 12 | 13 | + (instancetype)defaultConfiguration { 14 | return [[XPSemiModalConfiguration alloc] init]; 15 | } 16 | 17 | - (instancetype)init { 18 | if (self = [super init]) { 19 | _shouldDismissModal = YES; 20 | 21 | _enableShadow = YES; 22 | _shadowRadius = 5.0; 23 | _shadowOpacity = 0.8; 24 | 25 | _enableBackgroundAnimation = YES; 26 | _backgroundColor = [UIColor blackColor]; 27 | _backgroundOpacity = 0.3; 28 | } 29 | return self; 30 | } 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /ProductDetailProject/Vender/SemiModal/XPSemiModalPresentationController.h: -------------------------------------------------------------------------------- 1 | // 2 | // XPSemiModalPresentationController.h 3 | // https://github.com/xiaopin/SemiModal.git 4 | // 5 | // Created by nhope on 2018/1/10. 6 | // Copyright © 2018年 xiaopin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class XPSemiModalConfiguration; 12 | 13 | @interface XPSemiModalPresentationController : UIPresentationController 14 | 15 | @property (nonatomic, strong) XPSemiModalConfiguration *configuration; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /ProductDetailProject/Vender/SemiModal/XPSemiModalTransitioningDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // XPSemiModalTransitioningDelegate.h 3 | // https://github.com/xiaopin/SemiModal.git 4 | // 5 | // Created by nhope on 2018/1/10. 6 | // Copyright © 2018年 xiaopin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface XPSemiModalTransitioningDelegate : NSObject 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /ProductDetailProject/Vender/滑动标签/LLSegmentBar/Classes/LLSegmentBarVC.h: -------------------------------------------------------------------------------- 1 | // 2 | // LLSegmentBarVC.h 3 | // LLSegmentBar 4 | // 5 | // Created by liushaohua on 2017/6/3. 6 | // Copyright © 2017年 416997919@qq.com. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "LLSegmentBar.h" 11 | 12 | @interface LLSegmentBarVC : UIViewController 13 | 14 | @property (nonatomic,weak) LLSegmentBar * segmentBar; 15 | 16 | @property (nonatomic,weak) UIScrollView * contentView; 17 | 18 | - (void)setUpWithItems: (NSArray *)items childVCs: (NSArray *)childVCs; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /ProductDetailProject/Vender/滑动标签/LLSegmentBar/Classes/UIView+LLSegmentBar.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+LLSegmentBar.h 3 | // LLSegmentBar 4 | // 5 | // Created by liushaohua on 2017/6/3. 6 | // Copyright © 2017年 416997919@qq.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIView (LLSegmentBar) 12 | 13 | @property (nonatomic, assign) CGFloat x; 14 | 15 | @property (nonatomic, assign) CGFloat y; 16 | 17 | @property (nonatomic, assign) CGFloat width; 18 | 19 | @property (nonatomic, assign) CGFloat height; 20 | 21 | @property (nonatomic, assign) CGFloat centerX; 22 | 23 | @property (nonatomic, assign) CGFloat centerY; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /ProductDetailProject/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // ProductDetailProject 4 | // 5 | // Created by Huazhixi on 2018/7/11. 6 | // Copyright © 2018年 HuaxiGroup. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ProductDetailProject 2 | 商品详情页面,商品属性选择功能(SKU) 3 | 4 | 向上滑动到详情页面时,导航栏的上下滚动 5 | 6 | #### 主要用的库 7 | 8 | - [LLSegmentBar](https://github.com/liuniuliuniu/LLSegmentBar) 顶部三下滑块 9 | - [SemiModal](https://github.com/xiaopin/SemiModal) 选择属性时弹出动画 10 | - [PPNumberButton](https://github.com/jkpang/PPNumberButton) 高度可定制性商品计数按钮 11 | - [ORSKUDataFilter](https://github.com/SunriseOYR/SKUDataFilter) **SKU 商品属性组合算法**(核心) 12 | 13 | #### 效果展示 14 | ![商品详情](http://upload-images.jianshu.io/upload_images/1319216-f1654bebe0a61dcb.gif?imageMogr2/auto-orient/strip) 15 | 16 | #### 注: 17 | - 项目中所有数据均为本地json数据(Resource(json数据)),结合自己项目,让后台根据本地文件返回数据格式即可。 18 | - 感谢以上开源库的作者 19 | - 有任何问题欢迎加Q沟通,1563716117 20 | --------------------------------------------------------------------------------