├── Show
├── pay.png
├── detail.png
├── order.png
├── screen.png
├── zhuye.png
└── shopcart.png
├── LYFStoreDemo
├── Assets.xcassets
│ ├── Contents.json
│ ├── material(素材)
│ │ ├── Contents.json
│ │ ├── Main
│ │ │ ├── Contents.json
│ │ │ ├── good.imageset
│ │ │ │ ├── good@2x.png
│ │ │ │ ├── good@3x.png
│ │ │ │ └── Contents.json
│ │ │ ├── omit.imageset
│ │ │ │ ├── omit@2x.png
│ │ │ │ └── Contents.json
│ │ │ ├── post.imageset
│ │ │ │ ├── post@2x.png
│ │ │ │ ├── post@3x.png
│ │ │ │ └── Contents.json
│ │ │ ├── sale.imageset
│ │ │ │ ├── sale@2x.png
│ │ │ │ ├── sale@3x.png
│ │ │ │ └── Contents.json
│ │ │ ├── carry.imageset
│ │ │ │ ├── carry@2x.png
│ │ │ │ ├── carry@3x.png
│ │ │ │ └── Contents.json
│ │ │ ├── address.imageset
│ │ │ │ ├── address@2x.png
│ │ │ │ └── Contents.json
│ │ │ ├── custom.imageset
│ │ │ │ ├── custom@2x.png
│ │ │ │ └── Contents.json
│ │ │ ├── more_ad.imageset
│ │ │ │ ├── more_ad@2x.png
│ │ │ │ └── Contents.json
│ │ │ ├── notice.imageset
│ │ │ │ ├── notice@3x.png
│ │ │ │ └── Contents.json
│ │ │ ├── redAdd.imageset
│ │ │ │ ├── redAdd@2x.png
│ │ │ │ └── Contents.json
│ │ │ ├── comments.imageset
│ │ │ │ ├── comments@2x.png
│ │ │ │ ├── comments@3x.png
│ │ │ │ └── Contents.json
│ │ │ ├── mainHead.imageset
│ │ │ │ ├── mainHead@2x.png
│ │ │ │ └── Contents.json
│ │ │ ├── shareview.imageset
│ │ │ │ ├── shareview@2x.png
│ │ │ │ └── Contents.json
│ │ │ ├── collection.imageset
│ │ │ │ ├── collection@2x.png
│ │ │ │ └── Contents.json
│ │ │ ├── collection_N.imageset
│ │ │ │ ├── collection_N@2x.png
│ │ │ │ ├── collection_N@3x.png
│ │ │ │ └── Contents.json
│ │ │ ├── collection_S.imageset
│ │ │ │ ├── collection_S@2x.png
│ │ │ │ ├── collection_S@3x.png
│ │ │ │ └── Contents.json
│ │ │ ├── comments on.imageset
│ │ │ │ ├── comments on@2x.png
│ │ │ │ ├── comments on@3x.png
│ │ │ │ └── Contents.json
│ │ │ ├── buyDismiss.imageset
│ │ │ │ ├── 逆购网app产品说明选择颜色尺寸弹窗.png
│ │ │ │ └── Contents.json
│ │ │ ├── collection on.imageset
│ │ │ │ ├── collection on@2x.png
│ │ │ │ └── Contents.json
│ │ │ ├── collectionview.imageset
│ │ │ │ ├── collectionview@2x.png
│ │ │ │ └── Contents.json
│ │ │ ├── pageControlDot.imageset
│ │ │ │ ├── pageControlDot@2x.png
│ │ │ │ ├── pageControlDot@3x.png
│ │ │ │ └── Contents.json
│ │ │ ├── add shopping on.imageset
│ │ │ │ ├── add shopping on@2x.png
│ │ │ │ ├── add shopping on@3x.png
│ │ │ │ └── Contents.json
│ │ │ ├── orderShopUnderLine.imageset
│ │ │ │ ├── orderShopUnderLine@2x.png
│ │ │ │ └── Contents.json
│ │ │ └── pageControlCurrentDot.imageset
│ │ │ │ ├── pageControlCurrentDot@2x.png
│ │ │ │ ├── pageControlCurrentDot@3x.png
│ │ │ │ └── Contents.json
│ │ ├── Nav
│ │ │ ├── Contents.json
│ │ │ ├── back.imageset
│ │ │ │ ├── back@2x.png
│ │ │ │ ├── back@3x.png
│ │ │ │ └── Contents.json
│ │ │ ├── navigationButtonReturnClick.imageset
│ │ │ │ ├── navigationButtonReturnClick.png
│ │ │ │ ├── navigationButtonReturnClick@2x.png
│ │ │ │ ├── navigationButtonReturnClick@3x.png
│ │ │ │ └── Contents.json
│ │ │ └── navigationbarBackgroundWhite.imageset
│ │ │ │ ├── navigationbarBackgroundWhite.png
│ │ │ │ └── Contents.json
│ │ ├── Pay
│ │ │ ├── Contents.json
│ │ │ ├── wx_.imageset
│ │ │ │ ├── wx_@2x.png
│ │ │ │ └── Contents.json
│ │ │ ├── yl_.imageset
│ │ │ │ ├── yl_@2x.png
│ │ │ │ └── Contents.json
│ │ │ ├── zfb_.imageset
│ │ │ │ ├── zfb_@2x.png
│ │ │ │ └── Contents.json
│ │ │ ├── payWay.imageset
│ │ │ │ ├── payWay@2x.png
│ │ │ │ └── Contents.json
│ │ │ └── payWay_S.imageset
│ │ │ │ ├── payWay_S@2x.png
│ │ │ │ └── Contents.json
│ │ ├── Share
│ │ │ ├── Contents.json
│ │ │ ├── wechat.imageset
│ │ │ │ ├── wechat@2x.png
│ │ │ │ ├── wechat@3x.png
│ │ │ │ └── Contents.json
│ │ │ ├── tencent.imageset
│ │ │ │ ├── tencent@2x.png
│ │ │ │ ├── tencent@3x.png
│ │ │ │ └── Contents.json
│ │ │ ├── wechat friend.imageset
│ │ │ │ ├── wechat friend@2x.png
│ │ │ │ ├── wechat friend@3x.png
│ │ │ │ └── Contents.json
│ │ │ └── wechat collection.imageset
│ │ │ │ ├── wechat collection@2x.png
│ │ │ │ ├── wechat collection@3x.png
│ │ │ │ └── Contents.json
│ │ ├── Shop
│ │ │ ├── Contents.json
│ │ │ ├── shopImage01.imageset
│ │ │ │ ├── shopImage01.jpg
│ │ │ │ └── Contents.json
│ │ │ ├── shopImage02.imageset
│ │ │ │ ├── shopImage02.jpg
│ │ │ │ └── Contents.json
│ │ │ └── shopImage03.imageset
│ │ │ │ ├── shopImage03.jpg
│ │ │ │ └── Contents.json
│ │ ├── Tab
│ │ │ ├── Contents.json
│ │ │ ├── home_home_tab.imageset
│ │ │ │ ├── home_home_tab~iphone.png
│ │ │ │ ├── home_home_tab@2x~iphone.png
│ │ │ │ ├── home_home_tab@3x~iphone.png
│ │ │ │ └── Contents.json
│ │ │ └── home_home_tab_s.imageset
│ │ │ │ ├── home_home_tab_s~iphone.png
│ │ │ │ ├── home_home_tab_s@2x~iphone.png
│ │ │ │ ├── home_home_tab_s@3x~iphone.png
│ │ │ │ └── Contents.json
│ │ └── xiaomi6.imageset
│ │ │ ├── xiaomi6.png
│ │ │ └── Contents.json
│ └── AppIcon.appiconset
│ │ └── Contents.json
├── Frameworks
│ ├── XWTransition
│ │ ├── Resoures
│ │ │ ├── line.png
│ │ │ ├── mask.jpg
│ │ │ └── restrictedshine.tiff
│ │ ├── Category
│ │ │ ├── UIView+Snapshot.h
│ │ │ ├── UINavigationController+XWTransition.h
│ │ │ └── UIView+Snapshot.m
│ │ ├── XWFilterAnimator
│ │ │ ├── XWFilterAnimator+XWMask.h
│ │ │ ├── XWFilterAnimator+XWFlash.h
│ │ │ ├── XWFilterAnimator+XWRipple.h
│ │ │ ├── XWFilterAnimator+XWBoxBlur.h
│ │ │ ├── XWFilterAnimator+XWMod.h
│ │ │ ├── XWFilterAnimator+XWSwipe.h
│ │ │ ├── XWFilterAnimator+XWPageCurl.h
│ │ │ ├── XWFilterAnimator+XWBarSwipe.h
│ │ │ ├── XWFilterAnimator+XWCopyMachine.h
│ │ │ ├── XWFilterTransitionView.h
│ │ │ ├── XWFilterAnimator+XWBoxBlur.m
│ │ │ ├── XWFilterAnimator+XWBarSwipe.m
│ │ │ ├── XWFilterAnimator+XWPageCurl.m
│ │ │ ├── XWFilterAnimator+XWRipple.m
│ │ │ ├── XWFilterAnimator+XWSwipe.m
│ │ │ ├── XWFilterAnimator+XWFlash.m
│ │ │ ├── XWFilterAnimator+XWCopyMachine.m
│ │ │ ├── XWFilterAnimator+XWMod.m
│ │ │ ├── XWFilterAnimator+XWMask.m
│ │ │ └── XWFilterAnimator.h
│ │ ├── XWCoolAnimator
│ │ │ ├── XWCoolAnimator+XWExplode.h
│ │ │ ├── XWCoolAnimator+XWPageFlip.h
│ │ │ ├── XWCoolAnimator+XWPortal.h
│ │ │ ├── XWCoolAnimator+XWFold.h
│ │ │ ├── XWCoolAnimator+XWLines.h
│ │ │ ├── XWCoolAnimator+XWScanning.h
│ │ │ └── XWCoolAnimator+XWMiddlePageFlip.h
│ │ ├── XWCircleSpreadAnimator
│ │ │ └── XWCircleSpreadAnimator.h
│ │ ├── XWMagicMoveAnimator
│ │ │ └── XWMagicMoveAnimator.h
│ │ ├── Main
│ │ │ └── XWTransitionAnimator.h
│ │ └── XWDrawerAnimator
│ │ │ └── XWDrawerAnimator.h
│ ├── MJRefresh
│ │ ├── MJRefresh
│ │ │ ├── MJRefresh.bundle
│ │ │ │ ├── arrow@2x.png
│ │ │ │ ├── en.lproj
│ │ │ │ │ └── Localizable.strings
│ │ │ │ ├── zh-Hans.lproj
│ │ │ │ │ └── Localizable.strings
│ │ │ │ └── zh-Hant.lproj
│ │ │ │ │ └── Localizable.strings
│ │ │ ├── Base
│ │ │ │ ├── MJRefreshBackFooter.h
│ │ │ │ ├── MJRefreshAutoFooter.h
│ │ │ │ ├── MJRefreshHeader.h
│ │ │ │ └── MJRefreshFooter.h
│ │ │ ├── Custom
│ │ │ │ ├── Footer
│ │ │ │ │ ├── Auto
│ │ │ │ │ │ ├── MJRefreshAutoNormalFooter.h
│ │ │ │ │ │ ├── MJRefreshAutoGifFooter.h
│ │ │ │ │ │ └── MJRefreshAutoStateFooter.h
│ │ │ │ │ └── Back
│ │ │ │ │ │ ├── MJRefreshBackNormalFooter.h
│ │ │ │ │ │ ├── MJRefreshBackGifFooter.h
│ │ │ │ │ │ └── MJRefreshBackStateFooter.h
│ │ │ │ └── Header
│ │ │ │ │ ├── MJRefreshNormalHeader.h
│ │ │ │ │ ├── MJRefreshGifHeader.h
│ │ │ │ │ └── MJRefreshStateHeader.h
│ │ │ ├── NSBundle+MJRefresh.h
│ │ │ ├── MJRefresh.h
│ │ │ ├── UIView+MJExtension.h
│ │ │ ├── UIScrollView+MJExtension.h
│ │ │ ├── UIScrollView+MJRefresh.h
│ │ │ └── UIView+MJExtension.m
│ │ └── LICENSE
│ ├── SVProgressHUD
│ │ ├── SVProgressHUD
│ │ │ ├── SVProgressHUD.bundle
│ │ │ │ ├── error.png
│ │ │ │ ├── info.png
│ │ │ │ ├── error@2x.png
│ │ │ │ ├── error@3x.png
│ │ │ │ ├── info@2x.png
│ │ │ │ ├── info@3x.png
│ │ │ │ ├── success.png
│ │ │ │ ├── angle-mask.png
│ │ │ │ ├── success@2x.png
│ │ │ │ ├── success@3x.png
│ │ │ │ ├── angle-mask@2x.png
│ │ │ │ └── angle-mask@3x.png
│ │ │ ├── SVRadialGradientLayer.h
│ │ │ ├── SVIndefiniteAnimatedView.h
│ │ │ ├── SVProgressAnimatedView.h
│ │ │ └── SVRadialGradientLayer.m
│ │ └── LICENSE.txt
│ ├── Masonry
│ │ ├── Masonry
│ │ │ ├── MASLayoutConstraint.m
│ │ │ ├── NSLayoutConstraint+MASDebugAdditions.h
│ │ │ ├── MASLayoutConstraint.h
│ │ │ ├── MASCompositeConstraint.h
│ │ │ ├── Masonry.h
│ │ │ ├── ViewController+MASAdditions.h
│ │ │ ├── NSArray+MASShorthandAdditions.h
│ │ │ ├── MASViewAttribute.m
│ │ │ ├── MASViewAttribute.h
│ │ │ ├── ViewController+MASAdditions.m
│ │ │ └── MASViewConstraint.h
│ │ └── LICENSE
│ ├── MJExtension
│ │ ├── MJExtension
│ │ │ ├── MJFoundation.h
│ │ │ ├── MJExtension.h
│ │ │ ├── MJPropertyKey.h
│ │ │ ├── MJPropertyKey.m
│ │ │ ├── MJExtensionConst.m
│ │ │ ├── MJPropertyType.h
│ │ │ ├── NSObject+MJCoding.h
│ │ │ ├── NSString+MJExtension.h
│ │ │ ├── MJProperty.h
│ │ │ └── MJFoundation.m
│ │ └── LICENSE
│ ├── SDCycleScrollView
│ │ ├── SDCycleScrollView
│ │ │ └── Lib
│ │ │ │ └── SDCycleScrollView
│ │ │ │ ├── PageControl
│ │ │ │ ├── TADotView.h
│ │ │ │ ├── TAAnimatedDotView.h
│ │ │ │ ├── TAAbstractDotView.h
│ │ │ │ ├── TAAbstractDotView.m
│ │ │ │ └── TADotView.m
│ │ │ │ ├── UIView+SDExtension.h
│ │ │ │ └── SDCollectionViewCell.h
│ │ └── LICENSE
│ ├── SDWebImage
│ │ ├── SDWebImage
│ │ │ ├── UIImage+MultiFormat.h
│ │ │ ├── SDWebImageOperation.h
│ │ │ ├── UIImage+GIF.h
│ │ │ ├── SDWebImageDecoder.h
│ │ │ ├── NSData+ImageContentType.h
│ │ │ ├── UIView+WebCacheOperation.h
│ │ │ ├── NSData+ImageContentType.m
│ │ │ └── SDWebImageCompat.m
│ │ └── LICENSE
│ └── TXScrollLabelView
│ │ ├── TXScrollLabelView
│ │ └── UIView+TXFrame.h
│ │ └── LICENSE
├── MainVC
│ ├── M
│ │ ├── DCBaseItem.m
│ │ ├── DCStore_attr.m
│ │ ├── DCStore_list.m
│ │ ├── DCStore_attr.h
│ │ ├── DCStore_list.h
│ │ ├── DCBaseItem.h
│ │ ├── DCStoreAttribute.h
│ │ ├── DCStoreAttribute.m
│ │ ├── ProductModel.h
│ │ └── ProductModel.m
│ ├── C
│ │ ├── ProductDetailVC
│ │ │ ├── Pay
│ │ │ │ ├── DCPayWayCell.h
│ │ │ │ ├── DCUserPayViewController.h
│ │ │ │ ├── DCSureOrderViewController.h
│ │ │ │ └── DCPayWayCell.m
│ │ │ ├── DCBaseViewController.h
│ │ │ ├── DCShareViewController.h
│ │ │ ├── DCStoreCommentViewController.h
│ │ │ ├── DCStoreIntroduceViewController.h
│ │ │ ├── DCStoreCommentViewController.m
│ │ │ ├── DCStoreIntroduceViewController.m
│ │ │ ├── DCStoreItemSelectViewController.h
│ │ │ ├── ProductDetailVC.h
│ │ │ └── DCStoreMainViewController.h
│ │ ├── HomeVC
│ │ │ ├── ViewController.h
│ │ │ └── DCWebViewController.h
│ │ └── ScreenVC
│ │ │ └── ScreenVC.h
│ └── V
│ │ ├── HomeView
│ │ ├── DCStoreItemCell.h
│ │ └── DCStoreItemCell.m
│ │ └── ProductDetailView
│ │ ├── DCBaseServiceCell.h
│ │ ├── DCAdExCell.h
│ │ ├── DCIntroduceSelectCell.h
│ │ ├── DCAdExCell.m
│ │ ├── DCIntroduceSelectCell.m
│ │ ├── DCStoreHeadPriceCell.m
│ │ ├── DCStoreHeadPriceCell.h
│ │ ├── DCBaseServiceCell.m
│ │ └── DCNavigationTabBar.h
├── Tools
│ ├── DCCustomButton.h
│ ├── DCStoreButton.h
│ ├── DCConsts.m
│ ├── AlertViewManager
│ │ └── UIPlaceHolderTextView
│ │ │ └── UIPlaceHolderTextView.h
│ ├── UIBarButtonItem+DCBarButtonItem.h
│ ├── DCSpeedy.h
│ ├── UIView+DCExtension.h
│ ├── DCConsts.h
│ ├── DCShopItemView.h
│ ├── DCStoreButton.m
│ ├── DCCustomButton.m
│ └── DCSpeedy.m
├── MainSet
│ ├── MainNavSet.h
│ ├── MainTabSet.h
│ └── AppDelegate.h
├── LYFStoreDemo.xcdatamodeld
│ ├── .xccurrentversion
│ └── LYFStoreDemo.xcdatamodel
│ │ └── contents
├── main.m
├── Plist
│ ├── StoreBase.plist
│ ├── ShopItemA.plist
│ ├── ShopItemB.plist
│ └── MallShops.plist
├── Info.plist
└── Base.lproj
│ ├── Main.storyboard
│ └── LaunchScreen.storyboard
├── LYFStoreDemo.xcodeproj
├── xcuserdata
│ └── Lyf.xcuserdatad
│ │ ├── xcdebugger
│ │ └── Breakpoints_v2.xcbkptlist
│ │ └── xcschemes
│ │ └── xcschememanagement.plist
└── project.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcuserdata
│ └── Lyf.xcuserdatad
│ └── UserInterfaceState.xcuserstate
├── README.md
├── LYFStoreDemoTests
├── Info.plist
└── LYFStoreDemoTests.m
└── LYFStoreDemoUITests
├── Info.plist
└── LYFStoreDemoUITests.m
/Show/pay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/Show/pay.png
--------------------------------------------------------------------------------
/Show/detail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/Show/detail.png
--------------------------------------------------------------------------------
/Show/order.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/Show/order.png
--------------------------------------------------------------------------------
/Show/screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/Show/screen.png
--------------------------------------------------------------------------------
/Show/zhuye.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/Show/zhuye.png
--------------------------------------------------------------------------------
/Show/shopcart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/Show/shopcart.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Nav/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Pay/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Share/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Shop/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Tab/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/Resoures/line.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Frameworks/XWTransition/Resoures/line.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/Resoures/mask.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Frameworks/XWTransition/Resoures/mask.jpg
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/Resoures/restrictedshine.tiff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Frameworks/XWTransition/Resoures/restrictedshine.tiff
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Pay/wx_.imageset/wx_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Pay/wx_.imageset/wx_@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Pay/yl_.imageset/yl_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Pay/yl_.imageset/yl_@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/xiaomi6.imageset/xiaomi6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/xiaomi6.imageset/xiaomi6.png
--------------------------------------------------------------------------------
/LYFStoreDemo.xcodeproj/xcuserdata/Lyf.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/good.imageset/good@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/good.imageset/good@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/good.imageset/good@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/good.imageset/good@3x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/omit.imageset/omit@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/omit.imageset/omit@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/post.imageset/post@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/post.imageset/post@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/post.imageset/post@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/post.imageset/post@3x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/sale.imageset/sale@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/sale.imageset/sale@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/sale.imageset/sale@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/sale.imageset/sale@3x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Nav/back.imageset/back@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Nav/back.imageset/back@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Nav/back.imageset/back@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Nav/back.imageset/back@3x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Pay/zfb_.imageset/zfb_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Pay/zfb_.imageset/zfb_@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/MJRefresh/MJRefresh/MJRefresh.bundle/arrow@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Frameworks/MJRefresh/MJRefresh/MJRefresh.bundle/arrow@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/carry.imageset/carry@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/carry.imageset/carry@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/carry.imageset/carry@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/carry.imageset/carry@3x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Pay/payWay.imageset/payWay@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Pay/payWay.imageset/payWay@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/address.imageset/address@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/address.imageset/address@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/custom.imageset/custom@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/custom.imageset/custom@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/more_ad.imageset/more_ad@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/more_ad.imageset/more_ad@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/notice.imageset/notice@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/notice.imageset/notice@3x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/redAdd.imageset/redAdd@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/redAdd.imageset/redAdd@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Share/wechat.imageset/wechat@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Share/wechat.imageset/wechat@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Share/wechat.imageset/wechat@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Share/wechat.imageset/wechat@3x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/comments.imageset/comments@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/comments.imageset/comments@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/comments.imageset/comments@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/comments.imageset/comments@3x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/mainHead.imageset/mainHead@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/mainHead.imageset/mainHead@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Pay/payWay_S.imageset/payWay_S@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Pay/payWay_S.imageset/payWay_S@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Share/tencent.imageset/tencent@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Share/tencent.imageset/tencent@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Share/tencent.imageset/tencent@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Share/tencent.imageset/tencent@3x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/shareview.imageset/shareview@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/shareview.imageset/shareview@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Shop/shopImage01.imageset/shopImage01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Shop/shopImage01.imageset/shopImage01.jpg
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Shop/shopImage02.imageset/shopImage02.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Shop/shopImage02.imageset/shopImage02.jpg
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Shop/shopImage03.imageset/shopImage03.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Shop/shopImage03.imageset/shopImage03.jpg
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Frameworks/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Frameworks/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/collection.imageset/collection@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/collection.imageset/collection@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Frameworks/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Frameworks/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error@3x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Frameworks/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Frameworks/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info@3x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Frameworks/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/collection_N.imageset/collection_N@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/collection_N.imageset/collection_N@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/collection_N.imageset/collection_N@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/collection_N.imageset/collection_N@3x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/collection_S.imageset/collection_S@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/collection_S.imageset/collection_S@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/collection_S.imageset/collection_S@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/collection_S.imageset/collection_S@3x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/comments on.imageset/comments on@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/comments on.imageset/comments on@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/comments on.imageset/comments on@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/comments on.imageset/comments on@3x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Frameworks/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Frameworks/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Frameworks/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success@3x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/buyDismiss.imageset/逆购网app产品说明选择颜色尺寸弹窗.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/buyDismiss.imageset/逆购网app产品说明选择颜色尺寸弹窗.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/collection on.imageset/collection on@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/collection on.imageset/collection on@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/MJRefresh/MJRefresh/MJRefresh.bundle/en.lproj/Localizable.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Frameworks/MJRefresh/MJRefresh/MJRefresh.bundle/en.lproj/Localizable.strings
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Frameworks/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Frameworks/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask@3x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/collectionview.imageset/collectionview@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/collectionview.imageset/collectionview@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/pageControlDot.imageset/pageControlDot@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/pageControlDot.imageset/pageControlDot@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/pageControlDot.imageset/pageControlDot@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/pageControlDot.imageset/pageControlDot@3x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Share/wechat friend.imageset/wechat friend@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Share/wechat friend.imageset/wechat friend@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Share/wechat friend.imageset/wechat friend@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Share/wechat friend.imageset/wechat friend@3x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Tab/home_home_tab.imageset/home_home_tab~iphone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Tab/home_home_tab.imageset/home_home_tab~iphone.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/add shopping on.imageset/add shopping on@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/add shopping on.imageset/add shopping on@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/add shopping on.imageset/add shopping on@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/add shopping on.imageset/add shopping on@3x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/MJRefresh/MJRefresh/MJRefresh.bundle/zh-Hans.lproj/Localizable.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Frameworks/MJRefresh/MJRefresh/MJRefresh.bundle/zh-Hans.lproj/Localizable.strings
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Tab/home_home_tab.imageset/home_home_tab@2x~iphone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Tab/home_home_tab.imageset/home_home_tab@2x~iphone.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Tab/home_home_tab.imageset/home_home_tab@3x~iphone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Tab/home_home_tab.imageset/home_home_tab@3x~iphone.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Tab/home_home_tab_s.imageset/home_home_tab_s~iphone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Tab/home_home_tab_s.imageset/home_home_tab_s~iphone.png
--------------------------------------------------------------------------------
/LYFStoreDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/LYFStoreDemo.xcodeproj/project.xcworkspace/xcuserdata/Lyf.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo.xcodeproj/project.xcworkspace/xcuserdata/Lyf.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/orderShopUnderLine.imageset/orderShopUnderLine@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/orderShopUnderLine.imageset/orderShopUnderLine@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Share/wechat collection.imageset/wechat collection@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Share/wechat collection.imageset/wechat collection@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Share/wechat collection.imageset/wechat collection@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Share/wechat collection.imageset/wechat collection@3x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Tab/home_home_tab_s.imageset/home_home_tab_s@2x~iphone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Tab/home_home_tab_s.imageset/home_home_tab_s@2x~iphone.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Tab/home_home_tab_s.imageset/home_home_tab_s@3x~iphone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Tab/home_home_tab_s.imageset/home_home_tab_s@3x~iphone.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/pageControlCurrentDot.imageset/pageControlCurrentDot@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/pageControlCurrentDot.imageset/pageControlCurrentDot@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/pageControlCurrentDot.imageset/pageControlCurrentDot@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Main/pageControlCurrentDot.imageset/pageControlCurrentDot@3x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Nav/navigationButtonReturnClick.imageset/navigationButtonReturnClick.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Nav/navigationButtonReturnClick.imageset/navigationButtonReturnClick.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Nav/navigationButtonReturnClick.imageset/navigationButtonReturnClick@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Nav/navigationButtonReturnClick.imageset/navigationButtonReturnClick@2x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Nav/navigationButtonReturnClick.imageset/navigationButtonReturnClick@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Nav/navigationButtonReturnClick.imageset/navigationButtonReturnClick@3x.png
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Nav/navigationbarBackgroundWhite.imageset/navigationbarBackgroundWhite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sadrose/LYFStore/HEAD/LYFStoreDemo/Assets.xcassets/material(素材)/Nav/navigationbarBackgroundWhite.imageset/navigationbarBackgroundWhite.png
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/M/DCBaseItem.m:
--------------------------------------------------------------------------------
1 | //
2 | // DCBaseItem.m
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/22.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import "DCBaseItem.h"
10 |
11 | @implementation DCBaseItem
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/M/DCStore_attr.m:
--------------------------------------------------------------------------------
1 | //
2 | // DCStore_attr.m
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/20.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import "DCStore_attr.h"
10 |
11 | @implementation DCStore_attr
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/M/DCStore_list.m:
--------------------------------------------------------------------------------
1 | //
2 | // DCStore_list.m
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/20.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import "DCStore_list.h"
10 |
11 | @implementation DCStore_list
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Tools/DCCustomButton.h:
--------------------------------------------------------------------------------
1 | //
2 | // DCCustomButton.h
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/20.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface DCCustomButton : UIButton
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Tools/DCStoreButton.h:
--------------------------------------------------------------------------------
1 | //
2 | // DCStoreButton.h
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/22.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface DCStoreButton : UIButton
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainSet/MainNavSet.h:
--------------------------------------------------------------------------------
1 | //
2 | // MainNavSet.h
3 | // LYFStoreDemo
4 | //
5 | // Created by Lyf on 17/4/19.
6 | // Copyright © 2017年 com.FLY.lyf. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MainNavSet : UINavigationController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainSet/MainTabSet.h:
--------------------------------------------------------------------------------
1 | //
2 | // MainTabSet.h
3 | // LYFStoreDemo
4 | //
5 | // Created by Lyf on 17/4/19.
6 | // Copyright © 2017年 com.FLY.lyf. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MainTabSet : UITabBarController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/C/ProductDetailVC/Pay/DCPayWayCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // DCPayWayCell.h
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/4/9.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface DCPayWayCell : UITableViewCell
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/C/HomeVC/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // LYFStoreDemo
4 | //
5 | // Created by Lyf on 17/4/19.
6 | // Copyright © 2017年 com.FLY.lyf. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/C/ProductDetailVC/DCBaseViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // DCBaseViewController.h
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/22.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface DCBaseViewController : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/LYFStoreDemo/LYFStoreDemo.xcdatamodeld/.xccurrentversion:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | _XCCurrentVersionName
6 | LYFStoreDemo.xcdatamodel
7 |
8 |
9 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/C/ProductDetailVC/DCShareViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // DCShareViewController.h
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/4/14.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface DCShareViewController : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/C/ProductDetailVC/DCStoreCommentViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // DCStoreCommentViewController.h
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/21.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface DCStoreCommentViewController : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/C/ProductDetailVC/DCStoreIntroduceViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // DCStoreIntroduceViewController.h
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/21.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface DCStoreIntroduceViewController : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/LYFStoreDemo.xcdatamodeld/LYFStoreDemo.xcdatamodel/contents:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/M/DCStore_attr.h:
--------------------------------------------------------------------------------
1 | //
2 | // DCStore_attr.h
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/20.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface DCStore_attr : NSObject
12 |
13 | /** 名字 */
14 | @property (nonatomic, copy) NSString *attrname;
15 |
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/SDWebImage/SDWebImage/UIImage+MultiFormat.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+MultiFormat.h
3 | // SDWebImage
4 | //
5 | // Created by Olivier Poitrey on 07/06/13.
6 | // Copyright (c) 2013 Dailymotion. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIImage (MultiFormat)
12 |
13 | + (UIImage *)sd_imageWithData:(NSData *)data;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/C/HomeVC/DCWebViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // DCWebViewController.h
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/20.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface DCWebViewController : UIViewController
12 |
13 |
14 | /* 链接地址 */
15 | @property (strong , nonatomic)NSString *url;
16 |
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/LYFStoreDemo/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // LYFStoreDemo
4 | //
5 | // Created by Lyf on 17/4/19.
6 | // Copyright © 2017年 com.FLY.lyf. 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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/C/ProductDetailVC/Pay/DCUserPayViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // DCUserPayViewController.h
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/4/9.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface DCUserPayViewController : UIViewController
12 |
13 | /* 最后付款金额 */
14 | @property (assign ,nonatomic) float lastPayMoney;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/V/HomeView/DCStoreItemCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // DCStoreItemCell.h
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/20.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @class ProductModel;
12 |
13 | @interface DCStoreItemCell : UITableViewCell
14 |
15 | /* 商品属性 */
16 | @property (strong , nonatomic)ProductModel *storeItem;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/SVProgressHUD/SVProgressHUD/SVRadialGradientLayer.h:
--------------------------------------------------------------------------------
1 | //
2 | // SVRadialGradientLayer.h
3 | // SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD
4 | //
5 | // Copyright (c) 2014-2016 Tobias Tiemerding. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | @interface SVRadialGradientLayer : CALayer
11 |
12 | @property (nonatomic) CGPoint gradientCenter;
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/V/ProductDetailView/DCBaseServiceCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // DCBaseServiceCell.h
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/22.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @class DCBaseItem;
12 |
13 | @interface DCBaseServiceCell : UITableViewCell
14 |
15 | /* 基础服务cell */
16 | @property (strong , nonatomic)DCBaseItem *baseItem;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/Category/UIView+Snapshot.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+Snapshot.h
3 | // XWTransitionDemo
4 | //
5 | // Created by 肖文 on 2016/12/16.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIView (Snapshot)
12 |
13 | @property (nonatomic, readonly) UIImage *snapshotImage;
14 | @property (nonatomic, strong) UIImage *contentImage;
15 |
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/M/DCStore_list.h:
--------------------------------------------------------------------------------
1 | //
2 | // DCStore_list.h
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/20.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface DCStore_list : NSObject
12 |
13 | /** 类型 */
14 | @property (nonatomic, copy) NSString *infoname;
15 | /** 额外价格 */
16 | @property (nonatomic, copy) NSString *plusprice;
17 |
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Pay/wx_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "wx_@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Pay/yl_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "yl_@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Pay/zfb_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "zfb_@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/xiaomi6.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "xiaomi6.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/custom.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "custom@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/notice.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "notice@3x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/omit.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "omit@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/redAdd.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "redAdd@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Pay/payWay.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "payWay@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/address.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "address@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/mainHead.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "mainHead@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/more_ad.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "more_ad@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Pay/payWay_S.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "payWay_S@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Tools/DCConsts.m:
--------------------------------------------------------------------------------
1 | //
2 | // DCConsts.m
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/20.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import "DCConsts.h"
10 |
11 | @implementation DCConsts
12 |
13 | /** 常量 */
14 | CGFloat const DCMargin = 10;
15 |
16 | /** 立即购买点击退出当前界面通知 */
17 | NSString * const DCBuyButtonDidDismissClickNotificationCenter = @"DCBuyButtonDidDismissClickNotificationCenter";
18 |
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/collection.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "collection@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/shareview.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "shareview@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Shop/shopImage01.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "shopImage01.jpg",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Shop/shopImage02.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "shopImage02.jpg",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Shop/shopImage03.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "shopImage03.jpg",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/buyDismiss.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "逆购网app产品说明选择颜色尺寸弹窗.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/collection on.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "collection on@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/collectionview.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "collectionview@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/orderShopUnderLine.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "orderShopUnderLine@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/M/DCBaseItem.h:
--------------------------------------------------------------------------------
1 | //
2 | // DCBaseItem.h
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/22.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface DCBaseItem : NSObject
12 |
13 | /** 头像 */
14 | @property (nonatomic, copy) NSString *imgs;
15 | /** 标题 */
16 | @property (nonatomic, copy) NSString *title;
17 | /** 内容 */
18 | @property (nonatomic, copy) NSString *content;
19 |
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # LYFStore
2 | 商城APPdemo
3 |
4 | 
5 | 
6 |
7 | 
8 | 
9 |
10 | 
11 | 
12 |
13 |
14 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/good.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "good@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "good@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/post.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "post@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "post@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/sale.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "sale@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "sale@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Nav/back.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "back@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "back@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/carry.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "carry@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "carry@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Nav/navigationbarBackgroundWhite.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "navigationbarBackgroundWhite.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/M/DCStoreAttribute.h:
--------------------------------------------------------------------------------
1 | //
2 | // DCStoreAttribute.h
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/20.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @class DCStore_attr,DCStore_list;
12 |
13 | @interface DCStoreAttribute : NSObject
14 |
15 | /* 名字 */
16 | @property (strong , nonatomic)DCStore_attr *attr;
17 | /* 数组 */
18 | @property (strong , nonatomic)NSArray *list;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/V/ProductDetailView/DCAdExCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // DCAdExCell.h
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/22.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface DCAdExCell : UITableViewCell
12 |
13 | @property (weak, nonatomic) IBOutlet UILabel *expressageLabel;
14 | @property (weak, nonatomic) IBOutlet UILabel *saleCountLabel;
15 | @property (weak, nonatomic) IBOutlet UILabel *siteLabel;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Share/tencent.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "tencent@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "tencent@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Share/wechat.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "wechat@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "wechat@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/comments.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "comments@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "comments@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/M/DCStoreAttribute.m:
--------------------------------------------------------------------------------
1 | //
2 | // DCStoreAttribute.m
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/20.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import "DCStoreAttribute.h"
10 | #import "DCStore_list.h"
11 |
12 | #import "MJExtension.h"
13 |
14 |
15 | @implementation DCStoreAttribute
16 |
17 | +(NSDictionary *)mj_objectClassInArray
18 | {
19 | return @{
20 | @"list" : @"DCStore_list"
21 | };
22 | }
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/SDWebImage/SDWebImage/UIImage+GIF.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+GIF.h
3 | // LBGIFImage
4 | //
5 | // Created by Laurin Brandner on 06.01.12.
6 | // Copyright (c) 2012 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIImage (GIF)
12 |
13 | + (UIImage *)sd_animatedGIFNamed:(NSString *)name;
14 |
15 | + (UIImage *)sd_animatedGIFWithData:(NSData *)data;
16 |
17 | - (UIImage *)sd_animatedImageByScalingAndCroppingToSize:(CGSize)size;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/collection_N.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "collection_N@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "collection_N@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/collection_S.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "collection_S@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "collection_S@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/comments on.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "comments on@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "comments on@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/pageControlDot.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "pageControlDot@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "pageControlDot@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Share/wechat friend.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "wechat friend@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "wechat friend@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/XWFilterAnimator/XWFilterAnimator+XWMask.h:
--------------------------------------------------------------------------------
1 | //
2 | // XWFilterAnimator+XWMask.h
3 | // XWTransitionDemo
4 | //
5 | // Created by wazrx on 16/6/17.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | //
8 |
9 | #import "XWFilterAnimator.h"
10 |
11 | @interface XWFilterAnimator (XWMask)
12 |
13 | - (void)xw_maskAnimationFor:(XWFilterTransitionView *)filterView transitionContext:(id)transitionContext duration:(NSTimeInterval)duration;
14 | @end
15 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainSet/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // LYFStoreDemo
4 | //
5 | // Created by Lyf on 17/4/19.
6 | // Copyright © 2017年 com.FLY.lyf. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @interface AppDelegate : UIResponder
13 |
14 | @property (strong, nonatomic) UIWindow *window;
15 |
16 | @property (readonly, strong) NSPersistentContainer *persistentContainer;
17 |
18 | - (void)saveContext;
19 |
20 |
21 | @end
22 |
23 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/add shopping on.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "add shopping on@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "add shopping on@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/XWFilterAnimator/XWFilterAnimator+XWFlash.h:
--------------------------------------------------------------------------------
1 | //
2 | // XWFilterAnimator+XWFlash.h
3 | // XWTransitionDemo
4 | //
5 | // Created by wazrx on 16/6/19.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | //
8 |
9 | #import "XWFilterAnimator.h"
10 |
11 | @interface XWFilterAnimator (XWFlash)
12 |
13 | - (void)xw_flashAnimationFor:(XWFilterTransitionView *)filterView transitionContext:(id)transitionContext duration:(NSTimeInterval)duration;
14 | @end
15 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/XWFilterAnimator/XWFilterAnimator+XWRipple.h:
--------------------------------------------------------------------------------
1 | //
2 | // XWFilterAnimator+XWRipple.h
3 | // XWTransitionDemo
4 | //
5 | // Created by wazrx on 16/6/19.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | //
8 |
9 | #import "XWFilterAnimator.h"
10 |
11 | @interface XWFilterAnimator (XWRipple)
12 |
13 | - (void)xw_rippleAnimationFor:(XWFilterTransitionView *)filterView transitionContext:(id)transitionContext duration:(NSTimeInterval)duration;
14 | @end
15 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Share/wechat collection.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "wechat collection@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "wechat collection@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/XWFilterAnimator/XWFilterAnimator+XWBoxBlur.h:
--------------------------------------------------------------------------------
1 | //
2 | // XWFilterAnimator+XWBoxBlur.h
3 | // XWTransitionDemo
4 | //
5 | // Created by wazrx on 16/6/17.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | //
8 |
9 | #import "XWFilterAnimator.h"
10 |
11 | @interface XWFilterAnimator (XWBoxBlur)
12 | - (void)xw_boxBlurAnimationFor:(XWFilterTransitionView *)filterView transitionContext:(id)transitionContext duration:(NSTimeInterval)duration;
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/V/ProductDetailView/DCIntroduceSelectCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // DCIntroduceSelectCell.h
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/22.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface DCIntroduceSelectCell : UITableViewCell
12 |
13 | @property (weak, nonatomic) IBOutlet UIButton *markButton;
14 | @property (weak, nonatomic) IBOutlet UILabel *contentLabel;
15 | @property (weak, nonatomic) IBOutlet UIButton *canClickButton;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/XWFilterAnimator/XWFilterAnimator+XWMod.h:
--------------------------------------------------------------------------------
1 | //
2 | // XWFilterAnimator+XWMod.h
3 | // XWTransitionDemo
4 | //
5 | // Created by wazrx on 16/6/19.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | //
8 |
9 | #import "XWFilterAnimator.h"
10 |
11 | @interface XWFilterAnimator (XWMod)
12 |
13 | - (void)xw_modAnimationFor:(XWFilterTransitionView *)filterView transitionContext:(id)transitionContext duration:(NSTimeInterval)duration toFlag:(BOOL)flag;
14 | @end
15 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Tools/AlertViewManager/UIPlaceHolderTextView/UIPlaceHolderTextView.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIPlaceHolderTextView.h
3 | // MobileProject 带有提示输入的TextView
4 | //
5 | // Created by wujunyang on 16/1/14.
6 | // Copyright © 2016年 wujunyang. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIPlaceHolderTextView : UITextView
12 | @property (nonatomic, strong) NSString *placeholder;
13 | @property (nonatomic, strong) UIColor *placeholderColor;
14 |
15 | -(void)textChanged:(NSNotification*)notification;
16 | @end
17 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/XWCoolAnimator/XWCoolAnimator+XWExplode.h:
--------------------------------------------------------------------------------
1 | //
2 | // XWCoolAnimator+XWExplode.h
3 | // XWTransitionDemo
4 | //
5 | // Created by wazrx on 16/6/14.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | //
8 |
9 | #import "XWCoolAnimator.h"
10 |
11 | @interface XWCoolAnimator (XWExplode)
12 |
13 | - (void)xw_setExplodeToAnimation:(id)transitionContext;
14 |
15 | - (void)xw_setExplodeBackAnimation:(id)transitionContext;
16 | @end
17 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/XWCoolAnimator/XWCoolAnimator+XWPageFlip.h:
--------------------------------------------------------------------------------
1 | //
2 | // XWCoolAnimator+XWPageFlip.h
3 | // XWTransitionDemo
4 | //
5 | // Created by wazrx on 16/6/13.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | //
8 |
9 | #import "XWCoolAnimator.h"
10 |
11 | @interface XWCoolAnimator (XWPageFlip)
12 | - (void)xw_setPageFlipToAnimation:(id)transitionContext;
13 |
14 | - (void)xw_setPageFlipBackAnimation:(id)transitionContext;
15 | @end
16 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/XWCoolAnimator/XWCoolAnimator+XWPortal.h:
--------------------------------------------------------------------------------
1 | //
2 | // XWCoolAnimator+XWPortal.h
3 | // XWTransitionDemo
4 | //
5 | // Created by wazrx on 16/6/16.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | //
8 |
9 | #import "XWCoolAnimator.h"
10 |
11 | @interface XWCoolAnimator (XWPortal)
12 |
13 | - (void)xw_setPortalToAnimation:(id)transitionContext;
14 |
15 | - (void)xw_setPortalBackAnimation:(id)transitionContext;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/XWFilterAnimator/XWFilterAnimator+XWSwipe.h:
--------------------------------------------------------------------------------
1 | //
2 | // XWFilterAnimator+XWSwipe.h
3 | // XWTransitionDemo
4 | //
5 | // Created by wazrx on 16/6/17.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | //
8 |
9 | #import "XWFilterAnimator.h"
10 |
11 | @interface XWFilterAnimator (XWSwipe)
12 |
13 | - (void)xw_swipeAnimationFor:(XWFilterTransitionView *)filterView transitionContext:(id)transitionContext duration:(NSTimeInterval)duration toFlag:(BOOL)flag;
14 | @end
15 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Main/pageControlCurrentDot.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "pageControlCurrentDot@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "pageControlCurrentDot@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/SVProgressHUD/SVProgressHUD/SVIndefiniteAnimatedView.h:
--------------------------------------------------------------------------------
1 | //
2 | // SVIndefiniteAnimatedView.h
3 | // SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD
4 | //
5 | // Copyright (c) 2014-2016 Guillaume Campagna. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | @interface SVIndefiniteAnimatedView : UIView
11 |
12 | @property (nonatomic, assign) CGFloat strokeThickness;
13 | @property (nonatomic, assign) CGFloat radius;
14 | @property (nonatomic, strong) UIColor *strokeColor;
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/XWFilterAnimator/XWFilterAnimator+XWPageCurl.h:
--------------------------------------------------------------------------------
1 | //
2 | // XWFilterAnimator+XWPageCurl.h
3 | // XWTransitionDemo
4 | //
5 | // Created by wazrx on 16/6/19.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | //
8 |
9 | #import "XWFilterAnimator.h"
10 | @interface XWFilterAnimator (XWPageCurl)
11 |
12 | - (void)xw_pageCurlAnimationFor:(XWFilterTransitionView *)filterView transitionContext:(id)transitionContext duration:(NSTimeInterval)duration toFlag:(BOOL)flag;
13 | @end
14 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/XWFilterAnimator/XWFilterAnimator+XWBarSwipe.h:
--------------------------------------------------------------------------------
1 | //
2 | // XWFilterAnimator+XWBarSwipe.h
3 | // XWTransitionDemo
4 | //
5 | // Created by wazrx on 16/6/19.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | //
8 |
9 | #import "XWFilterAnimator.h"
10 |
11 | @interface XWFilterAnimator (XWBarSwipe)
12 |
13 | - (void)xw_barSwipeAnimationFor:(XWFilterTransitionView *)filterView transitionContext:(id)transitionContext duration:(NSTimeInterval)duration toFlag:(BOOL)flag;
14 | @end
15 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/XWFilterAnimator/XWFilterAnimator+XWCopyMachine.h:
--------------------------------------------------------------------------------
1 | //
2 | // XWFilterAnimator+XWCopyMachine.h
3 | // XWTransitionDemo
4 | //
5 | // Created by wazrx on 16/6/19.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | //
8 |
9 | #import "XWFilterAnimator.h"
10 |
11 | @interface XWFilterAnimator (XWCopyMachine)
12 | - (void)xw_copyMachineAnimationFor:(XWFilterTransitionView *)filterView transitionContext:(id)transitionContext duration:(NSTimeInterval)duration toFlag:(BOOL)flag;
13 | @end
14 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/C/ProductDetailVC/DCStoreCommentViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // DCStoreCommentViewController.m
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/21.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import "DCStoreCommentViewController.h"
10 |
11 | @interface DCStoreCommentViewController ()
12 |
13 | @end
14 |
15 | @implementation DCStoreCommentViewController
16 |
17 | - (void)viewDidLoad {
18 | [super viewDidLoad];
19 | self.view.backgroundColor = [UIColor whiteColor];
20 | }
21 |
22 |
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/XWCoolAnimator/XWCoolAnimator+XWFold.h:
--------------------------------------------------------------------------------
1 | //
2 | // XWCoolAnimator+XWFold.h
3 | // XWTransitionDemo
4 | //
5 | // Created by wazrx on 16/6/13.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | //
8 |
9 | #import "XWCoolAnimator.h"
10 |
11 | @interface XWCoolAnimator (XWFold)
12 |
13 | - (void)xw_setFoldToAnimation:(id)transitionContext leftFlag:(BOOL)left;
14 |
15 | - (void)xw_setFoldBackAnimation:(id)transitionContext leftFlag:(BOOL)left;
16 | @end
17 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/C/ProductDetailVC/DCStoreIntroduceViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // DCStoreIntroduceViewController.m
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/21.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import "DCStoreIntroduceViewController.h"
10 |
11 | @interface DCStoreIntroduceViewController ()
12 |
13 | @end
14 |
15 | @implementation DCStoreIntroduceViewController
16 |
17 | - (void)viewDidLoad {
18 | [super viewDidLoad];
19 | self.view.backgroundColor = [UIColor whiteColor];
20 | }
21 |
22 |
23 | @end
24 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/SVProgressHUD/SVProgressHUD/SVProgressAnimatedView.h:
--------------------------------------------------------------------------------
1 | //
2 | // SVProgressAnimatedView.h
3 | // SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD
4 | //
5 | // Copyright (c) 2016 Tobias Tiemerding. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | @interface SVProgressAnimatedView : UIView
11 |
12 | @property (nonatomic, assign) CGFloat radius;
13 | @property (nonatomic, assign) CGFloat strokeThickness;
14 | @property (nonatomic, strong) UIColor *strokeColor;
15 | @property (nonatomic, assign) CGFloat strokeEnd;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/V/ProductDetailView/DCAdExCell.m:
--------------------------------------------------------------------------------
1 | //
2 | // DCAdExCell.m
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/22.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import "DCAdExCell.h"
10 |
11 | @implementation DCAdExCell
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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/SDWebImage/SDWebImage/SDWebImageDecoder.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the SDWebImage package.
3 | * (c) Olivier Poitrey
4 | *
5 | * Created by james on 9/28/11.
6 | *
7 | * For the full copyright and license information, please view the LICENSE
8 | * file that was distributed with this source code.
9 | */
10 |
11 | #import
12 | #import "SDWebImageCompat.h"
13 |
14 | @interface UIImage (ForceDecode)
15 |
16 | + (UIImage *)decodedImageWithImage:(UIImage *)image;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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"
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/XWCoolAnimator/XWCoolAnimator+XWLines.h:
--------------------------------------------------------------------------------
1 | //
2 | // XWCoolAnimator+XWVerticalLines.h
3 | // XWTransitionDemo
4 | //
5 | // Created by wazrx on 16/6/14.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | //
8 |
9 | #import "XWCoolAnimator.h"
10 |
11 | @interface XWCoolAnimator (XWLines)
12 |
13 |
14 | - (void)xw_setLinesToAnimation:(id)transitionContext vertical:(BOOL)vertical;
15 |
16 | - (void)xw_setLinesBackAnimation:(id)transitionContext vertical:(BOOL)vertical;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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"
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/XWCoolAnimator/XWCoolAnimator+XWScanning.h:
--------------------------------------------------------------------------------
1 | //
2 | // XWCoolAnimator+XWScanning.h
3 | // XWTransitionDemo
4 | //
5 | // Created by wazrx on 16/6/14.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | //
8 |
9 | #import "XWCoolAnimator.h"
10 |
11 | @interface XWCoolAnimator (XWScanning)
12 |
13 |
14 | - (void)xw_setScanningToAnimation:(id)transitionContext direction:(NSUInteger)direction;
15 |
16 | - (void)xw_setScanningBackAnimation:(id)transitionContext direction:(NSUInteger)direction;
17 | @end
18 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/V/ProductDetailView/DCIntroduceSelectCell.m:
--------------------------------------------------------------------------------
1 | //
2 | // DCIntroduceSelectCell.m
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/22.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import "DCIntroduceSelectCell.h"
10 |
11 | @implementation DCIntroduceSelectCell
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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/C/ScreenVC/ScreenVC.h:
--------------------------------------------------------------------------------
1 | //
2 | // ScreenVC.h
3 | // LYFStoreDemo
4 | //
5 | // Created by Lyf on 17/4/19.
6 | // Copyright © 2017年 com.FLY.lyf. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ScreenVC : UIViewController
12 |
13 | //属性视图
14 | /* 品牌字段 */
15 | @property (assign ,nonatomic) NSString *attributeViewBrandString;
16 |
17 | /* 排序字段 */
18 | @property (assign ,nonatomic) NSString *attributeViewSortString;
19 |
20 | /** 点击回调 */
21 | @property (nonatomic, copy) void(^sureButtonClickBlock)(NSString *attributeViewBrandString,NSString *attributeViewSortString);
22 |
23 | @end
24 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/XWCircleSpreadAnimator/XWCircleSpreadAnimator.h:
--------------------------------------------------------------------------------
1 | //
2 | // XWCircleSpreadAnimator.h
3 | // XWTADemo
4 | //
5 | // Created by wazrx on 16/6/7.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | //
8 |
9 | #import "XWTransitionAnimator.h"
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface XWCircleSpreadAnimator : XWTransitionAnimator
14 |
15 | /**
16 | * 返回一个小圆点扩散转场效果器
17 | *
18 | * @param point 扩散开始中心
19 | * @param radius 扩散开始的半径
20 | *
21 | * @return 小圆点扩散转场效果器
22 | */
23 | + (instancetype)xw_animatorWithStartCenter:(CGPoint)point radius:(CGFloat)radius;
24 |
25 | @end
26 |
27 | NS_ASSUME_NONNULL_END
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/V/ProductDetailView/DCStoreHeadPriceCell.m:
--------------------------------------------------------------------------------
1 | //
2 | // DCStoreHeadPriceCell.m
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/26.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import "DCStoreHeadPriceCell.h"
10 |
11 | @implementation DCStoreHeadPriceCell
12 |
13 | - (void)awakeFromNib {
14 | [super awakeFromNib];
15 |
16 | _icoImageView.contentMode = UIViewContentModeScaleAspectFill;
17 | _icoImageView.clipsToBounds = YES;
18 |
19 | }
20 |
21 | - (IBAction)dismissButtonClick:(id)sender {
22 |
23 | !_dismissButtonClickBlock ? : _dismissButtonClickBlock();
24 | }
25 | @end
26 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Tab/home_home_tab.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "filename" : "home_home_tab~iphone.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "filename" : "home_home_tab@2x~iphone.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "filename" : "home_home_tab@3x~iphone.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | },
23 | "properties" : {
24 | "template-rendering-intent" : "original"
25 | }
26 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/Category/UINavigationController+XWTransition.h:
--------------------------------------------------------------------------------
1 | //
2 | // UINavigationController+XWTransition.h
3 | // XWTADemo
4 | //
5 | // Created by wazrx on 16/6/7.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | //
8 |
9 | #import
10 | @class XWTransitionAnimator;
11 |
12 | @interface UINavigationController (XWTransition)
13 |
14 | /**
15 | * 通过指定的转场animator来push控制器,达到不同的转场效果
16 | *
17 | * @param viewController 被push的控制器
18 | * @param animator 转场Animator
19 | */
20 | - (void)xw_pushViewController:(UIViewController *)viewController withAnimator:(XWTransitionAnimator *)animator;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Tab/home_home_tab_s.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "filename" : "home_home_tab_s~iphone.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "filename" : "home_home_tab_s@2x~iphone.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "filename" : "home_home_tab_s@3x~iphone.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | },
23 | "properties" : {
24 | "template-rendering-intent" : "original"
25 | }
26 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/V/ProductDetailView/DCStoreHeadPriceCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // DCStoreHeadPriceCell.h
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/26.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface DCStoreHeadPriceCell : UITableViewCell
12 |
13 | @property (weak, nonatomic) IBOutlet UIImageView *icoImageView;
14 | @property (weak, nonatomic) IBOutlet UILabel *priceLabel;
15 | @property (weak, nonatomic) IBOutlet UILabel *repertoryLabel;
16 | @property (weak, nonatomic) IBOutlet UILabel *attributeLabel;
17 |
18 |
19 | /* 点击回调 */
20 | @property (nonatomic, copy) void(^dismissButtonClickBlock)();
21 |
22 |
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/material(素材)/Nav/navigationButtonReturnClick.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "navigationButtonReturnClick.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "navigationButtonReturnClick@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "navigationButtonReturnClick@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | },
23 | "properties" : {
24 | "template-rendering-intent" : "original"
25 | }
26 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/C/ProductDetailVC/DCStoreItemSelectViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // DCStoreItemSelectViewController.h
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/22.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface DCStoreItemSelectViewController : UIViewController
12 |
13 | /** 购买数量 */
14 | @property (nonatomic, assign) NSInteger buyNum;
15 | /** 库存 */
16 | @property (nonatomic, strong) NSString *stock;
17 | /** 商品价格 */
18 | @property (nonatomic, strong) NSString *money;
19 | /** 商品ID */
20 | @property (nonatomic, strong) NSString *goodsid;
21 | /** 商品头像 */
22 | @property (nonatomic, strong) NSString *iconImage;
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/SDWebImage/SDWebImage/NSData+ImageContentType.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Fabrice Aneche on 06/01/14.
3 | // Copyright (c) 2014 Dailymotion. All rights reserved.
4 | //
5 |
6 | #import
7 |
8 | @interface NSData (ImageContentType)
9 |
10 | /**
11 | * Compute the content type for an image data
12 | *
13 | * @param data the input data
14 | *
15 | * @return the content type as string (i.e. image/jpeg, image/gif)
16 | */
17 | + (NSString *)sd_contentTypeForImageData:(NSData *)data;
18 |
19 | @end
20 |
21 |
22 | @interface NSData (ImageContentTypeDeprecated)
23 |
24 | + (NSString *)contentTypeForImageData:(NSData *)data __deprecated_msg("Use `sd_contentTypeForImageData:`");
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/C/ProductDetailVC/Pay/DCSureOrderViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // DCSureOrderViewController.h
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/4/9.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface DCSureOrderViewController : UIViewController
12 |
13 | /* 商品 */
14 | @property (weak ,nonatomic) NSString *showShopStr;
15 | /* 商品价格 */
16 | @property (assign ,nonatomic) float showPriceStr;
17 | /* 商品快递费 */
18 | @property (weak, nonatomic) NSString *expressagePriceStr;
19 | /** 购买数量 */
20 | @property (nonatomic, assign) NSInteger buyNum;
21 | /** 规格 */
22 | @property (nonatomic, strong) NSString *standard;
23 | /* 头像 */
24 | @property (weak ,nonatomic) NSString *iconimage;
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/MJRefresh/MJRefresh/Base/MJRefreshAutoFooter.h:
--------------------------------------------------------------------------------
1 | //
2 | // MJRefreshAutoFooter.h
3 | // MJRefreshExample
4 | //
5 | // Created by MJ Lee on 15/4/24.
6 | // Copyright (c) 2015年 小码哥. All rights reserved.
7 | //
8 |
9 | #import "MJRefreshFooter.h"
10 |
11 | @interface MJRefreshAutoFooter : MJRefreshFooter
12 | /** 是否自动刷新(默认为YES) */
13 | @property (assign, nonatomic, getter=isAutomaticallyRefresh) BOOL automaticallyRefresh;
14 |
15 | /** 当底部控件出现多少时就自动刷新(默认为1.0,也就是底部控件完全出现时,才会自动刷新) */
16 | @property (assign, nonatomic) CGFloat appearencePercentTriggerAutoRefresh MJRefreshDeprecated("请使用triggerAutomaticallyRefreshPercent属性");
17 |
18 | /** 当底部控件出现多少时就自动刷新(默认为1.0,也就是底部控件完全出现时,才会自动刷新) */
19 | @property (assign, nonatomic) CGFloat triggerAutomaticallyRefreshPercent;
20 | @end
21 |
--------------------------------------------------------------------------------
/LYFStoreDemoTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/LYFStoreDemoUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Tools/UIBarButtonItem+DCBarButtonItem.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIBarButtonItem+DCBarButtonItem.h
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/19.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIBarButtonItem (DCBarButtonItem)
12 |
13 | +(UIBarButtonItem *)ItemWithImage:(UIImage *)image WithHighlighted:(UIImage *)HighlightedImage Target:(id)target action:(SEL)action;
14 |
15 |
16 | +(UIBarButtonItem *)ItemWithImage:(UIImage *)image WithSelected:(UIImage *)SelectedImage Target:(id)target action:(SEL)action;
17 |
18 |
19 |
20 | /**
21 | 返回
22 | */
23 | +(UIBarButtonItem *)backItemWithImage:(UIImage *)image WithHighlightedImage:(UIImage *)HighlightedImage Target:(id)target action:(SEL)action title:(NSString *)title;
24 |
25 | @end
26 |
--------------------------------------------------------------------------------
/LYFStoreDemo.xcodeproj/xcuserdata/Lyf.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | LYFStoreDemo.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 | SuppressBuildableAutocreation
14 |
15 | 1C51BE7D1EA701230095660E
16 |
17 | primary
18 |
19 |
20 | 1C51BE991EA701240095660E
21 |
22 | primary
23 |
24 |
25 | 1C51BEA41EA701240095660E
26 |
27 | primary
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/C/ProductDetailVC/ProductDetailVC.h:
--------------------------------------------------------------------------------
1 | //
2 | // ProductDetailVC.h
3 | // LYFStoreDemo
4 | //
5 | // Created by Lyf on 17/4/24.
6 | // Copyright © 2017年 com.FLY.lyf. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ProductDetailVC : UIPageViewController
12 |
13 | /* 商品头像 */
14 | @property (strong , nonatomic)NSString *goodspics;
15 | /* 商品库存*/
16 | @property (weak, nonatomic) NSString *stockStr;
17 | /* 商品价格 */
18 | @property (weak ,nonatomic) NSString *shopPrice;
19 | /* 商品介绍 */
20 | @property (weak ,nonatomic) NSString *introduce;
21 | /* 商品标题 */
22 | @property (weak ,nonatomic) NSString *goods_title;
23 |
24 | /* 商品快递费 */
25 | @property (weak, nonatomic) NSString *expressage;
26 | /* 商品已售出量 */
27 | @property (weak, nonatomic) NSString *saleCount;
28 | /* 商品地点 */
29 | @property (weak, nonatomic) NSString *site;
30 |
31 |
32 | @end
33 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/Category/UIView+Snapshot.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+Snapshot.m
3 | // XWTransitionDemo
4 | //
5 | // Created by 肖文 on 2016/12/16.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | //
8 |
9 | #import "UIView+Snapshot.h"
10 |
11 | @implementation UIView (Snapshot)
12 |
13 | - (UIImage *)snapshotImage {
14 | UIGraphicsBeginImageContextWithOptions(self.bounds.size, self.opaque, 0);
15 | [self.layer renderInContext:UIGraphicsGetCurrentContext()];
16 | UIImage *snap = UIGraphicsGetImageFromCurrentImageContext();
17 | UIGraphicsEndImageContext();
18 | return snap;
19 | }
20 |
21 | - (UIImage *)contentImage{
22 | return [UIImage imageWithCGImage:(__bridge CGImageRef)self.layer.contents];
23 | }
24 |
25 | - (void)setContentImage:(UIImage *)contentImage{
26 | self.layer.contents = (__bridge id)contentImage.CGImage;;
27 | }
28 |
29 | @end
30 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/V/ProductDetailView/DCBaseServiceCell.m:
--------------------------------------------------------------------------------
1 | //
2 | // DCBaseServiceCell.m
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/22.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import "DCBaseServiceCell.h"
10 |
11 | #import "DCBaseItem.h"
12 |
13 | @interface DCBaseServiceCell()
14 |
15 | @property (weak, nonatomic) IBOutlet UIImageView *iconImageView;
16 | @property (weak, nonatomic) IBOutlet UILabel *titleLabel;
17 | @property (weak, nonatomic) IBOutlet UILabel *contentLabel;
18 |
19 | @end
20 |
21 | @implementation DCBaseServiceCell
22 |
23 | - (void)setBaseItem:(DCBaseItem *)baseItem
24 | {
25 | _baseItem = baseItem;
26 |
27 | self.iconImageView.image = [UIImage imageNamed:baseItem.imgs];
28 |
29 | self.titleLabel.text = baseItem.title;
30 | self.contentLabel.text = baseItem.content;
31 | }
32 |
33 |
34 | @end
35 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/XWCoolAnimator/XWCoolAnimator+XWMiddlePageFlip.h:
--------------------------------------------------------------------------------
1 | //
2 | // XWCoolAnimator+XWMiddlePageFlip.h
3 | // XWTransitionDemo
4 | //
5 | // Created by wazrx on 16/6/13.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | //
8 |
9 | #import "XWCoolAnimator.h"
10 |
11 | typedef NS_ENUM(NSUInteger, XWMiddlePageFlipDirection) {
12 | XWMiddlePageFlipDirectionLeft,
13 | XWMiddlePageFlipDirectionRight,
14 | XWMiddlePageFlipDirectionTop,
15 | XWMiddlePageFlipDirectionBottom
16 | };
17 |
18 | @interface XWCoolAnimator (XWMiddlePageFlip)
19 |
20 |
21 | - (void)xw_setMiddlePageFlipToAnimation:(id)transitionContext direction:(XWMiddlePageFlipDirection)direction;
22 |
23 | - (void)xw_setMiddlePageFlipBackAnimation:(id)transitionContext direction:(XWMiddlePageFlipDirection)direction;
24 | @end
25 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/XWFilterAnimator/XWFilterTransitionView.h:
--------------------------------------------------------------------------------
1 | //
2 | // XWBlurView.h
3 | // XWTransitionDemo
4 | //
5 | // Created by wazrx on 16/6/17.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface XWFilterTransitionView : GLKView
14 |
15 | @property (nonatomic, assign) BOOL blurType;
16 | @property (nonatomic, strong) CIFilter *filter;
17 |
18 | - (instancetype)initWithFrame:(CGRect)frame
19 | fromImage:(UIImage *)fromImage
20 | toImage:(UIImage *)toImage;
21 |
22 | - (CAAnimation *)xw_getInnerAnimation;
23 |
24 | - (CIVector *)xw_getInnerVector;
25 |
26 | + (void)xw_animationWith:(XWFilterTransitionView *)filterView duration:(NSTimeInterval)duration completion:(void (^ __nullable)(BOOL finished))completion;
27 |
28 | @end
29 |
30 | NS_ASSUME_NONNULL_END
--------------------------------------------------------------------------------
/LYFStoreDemo/Tools/DCSpeedy.h:
--------------------------------------------------------------------------------
1 | //
2 | // DCSpeedy.h
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/24.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @interface DCSpeedy : NSObject
13 |
14 | /**
15 | 设置按钮的圆角
16 |
17 | @param anyControl 控件
18 | @param radius 圆角度
19 | @param width 边宽度
20 | @param borderColor 边线颜色
21 | @param can 是否裁剪
22 | @return 控件
23 | */
24 | +(id)chageControlCircularWith:(id)anyControl AndSetCornerRadius:(NSInteger)radius SetBorderWidth:(NSInteger)width SetBorderColor:(UIColor *)borderColor canMasksToBounds:(BOOL)can;
25 |
26 |
27 | /**
28 | 选取部分数据变色(label)
29 |
30 | @param label label
31 | @param arrray 变色数组
32 | @param color 变色颜色
33 | @return label
34 | */
35 | +(id)setSomeOneChangeColor:(UILabel *)label SetSelectArray:(NSArray *)arrray SetChangeColor:(UIColor *)color;
36 |
37 |
38 | @end
39 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Tools/UIView+DCExtension.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+DCExtension.h
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/18.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIView (DCExtension)
12 |
13 |
14 | @property (nonatomic , assign) CGFloat dc_width;
15 | @property (nonatomic , assign) CGFloat dc_height;
16 | @property (nonatomic , assign) CGSize dc_size;
17 | @property (nonatomic , assign) CGFloat dc_x;
18 | @property (nonatomic , assign) CGFloat dc_y;
19 | @property (nonatomic , assign) CGPoint dc_origin;
20 | @property (nonatomic , assign) CGFloat dc_centerX;
21 | @property (nonatomic , assign) CGFloat dc_centerY;
22 | @property (nonatomic , assign) CGFloat dc_right;
23 | @property (nonatomic , assign) CGFloat dc_bottom;
24 |
25 | - (BOOL)intersectWithView:(UIView *)view;
26 |
27 | + (instancetype)dc_viewFromXib;
28 | - (BOOL)isShowingOnKeyWindow;
29 |
30 | @end
31 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/MJRefresh/MJRefresh/UIScrollView+MJExtension.h:
--------------------------------------------------------------------------------
1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh
2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000
3 | // UIScrollView+Extension.h
4 | // MJRefreshExample
5 | //
6 | // Created by MJ Lee on 14-5-28.
7 | // Copyright (c) 2014年 小码哥. All rights reserved.
8 | //
9 |
10 | #import
11 |
12 | @interface UIScrollView (MJExtension)
13 | @property (assign, nonatomic) CGFloat mj_insetT;
14 | @property (assign, nonatomic) CGFloat mj_insetB;
15 | @property (assign, nonatomic) CGFloat mj_insetL;
16 | @property (assign, nonatomic) CGFloat mj_insetR;
17 |
18 | @property (assign, nonatomic) CGFloat mj_offsetX;
19 | @property (assign, nonatomic) CGFloat mj_offsetY;
20 |
21 | @property (assign, nonatomic) CGFloat mj_contentW;
22 | @property (assign, nonatomic) CGFloat mj_contentH;
23 | @end
24 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/C/ProductDetailVC/DCStoreMainViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // DCStoreMainViewController.h
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/21.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface DCStoreMainViewController : UIViewController
12 |
13 | /* 商品 id*/
14 | @property (strong , nonatomic)NSString *goodsid;
15 | /* 商品图片*/
16 | @property (strong , nonatomic)NSString *goodspics;
17 | /* 商品库存*/
18 | @property (weak, nonatomic) NSString *stockStr;
19 | /* 商品价格 */
20 | @property (weak ,nonatomic) NSString *shopPrice;
21 | /* 商品介绍 */
22 | @property (weak ,nonatomic) NSString *introduce;
23 | /* 商品标题 */
24 | @property (weak ,nonatomic) NSString *goods_title;
25 | /* 商品快递费 */
26 | @property (weak, nonatomic) NSString *expressage;
27 | /* 商品已售出量 */
28 | @property (weak, nonatomic) NSString *saleCount;
29 | /* 商品地点 */
30 | @property (weak, nonatomic) NSString *site;
31 |
32 | @end
33 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/XWFilterAnimator/XWFilterAnimator+XWBoxBlur.m:
--------------------------------------------------------------------------------
1 | //
2 | // XWFilterAnimator+XWBoxBlur.m
3 | // XWTransitionDemo
4 | //
5 | // Created by wazrx on 16/6/17.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | //
8 |
9 | #import "XWFilterAnimator+XWBoxBlur.h"
10 |
11 | @implementation XWFilterAnimator (XWBoxBlur)
12 |
13 | - (void)xw_boxBlurAnimationFor:(XWFilterTransitionView *)filterView transitionContext:(id)transitionContext duration:(NSTimeInterval)duration {
14 | CIFilter *filter = [CIFilter filterWithName: @"CIBoxBlur"];
15 | filterView.filter = filter;
16 | filterView.blurType = YES;
17 | [XWFilterTransitionView xw_animationWith:filterView duration:duration completion:^(BOOL finished) {
18 | [filterView removeFromSuperview];
19 | [transitionContext completeTransition:![transitionContext transitionWasCancelled]];
20 |
21 | }];
22 | }
23 | @end
24 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "20x20",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "20x20",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "29x29",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "29x29",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "40x40",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "40x40",
31 | "scale" : "3x"
32 | },
33 | {
34 | "idiom" : "iphone",
35 | "size" : "60x60",
36 | "scale" : "2x"
37 | },
38 | {
39 | "idiom" : "iphone",
40 | "size" : "60x60",
41 | "scale" : "3x"
42 | }
43 | ],
44 | "info" : {
45 | "version" : 1,
46 | "author" : "xcode"
47 | }
48 | }
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/M/ProductModel.h:
--------------------------------------------------------------------------------
1 | //
2 | // ProductModel.h
3 | // LYFStoreDemo
4 | //
5 | // Created by Lyf on 17/4/19.
6 | // Copyright © 2017年 com.FLY.lyf. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @interface ProductModel : NSObject
13 | /** 商品价格 */
14 | @property (nonatomic, copy) NSString *price;
15 | /** 商品存货 */
16 | @property (nonatomic, copy) NSString *stock;
17 | /** 已售出 */
18 | @property (nonatomic, copy) NSString *sales;
19 | /** 二级标题 */
20 | @property (nonatomic, copy) NSString *secondtitle;
21 | /** 商品头像 */
22 | @property (nonatomic, copy) NSString *goodspics;
23 | /** 商品标题 */
24 | @property (nonatomic, copy) NSString *goods_title;
25 |
26 |
27 | /* 商品快递费 */
28 | @property (copy, nonatomic) NSString *expressage;
29 | /* 商品已售出量 */
30 | @property (copy, nonatomic) NSString *sale_count;
31 | /* 商品地点 */
32 | @property (copy, nonatomic) NSString *goods_address;
33 |
34 | /** cell行高 */
35 | @property (nonatomic , assign) CGFloat cellHeight;
36 |
37 | @end
38 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/V/ProductDetailView/DCNavigationTabBar.h:
--------------------------------------------------------------------------------
1 | //
2 | // DCNavigationTabBar.h
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/21.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | /**
12 | 声明一个Block的变量类型
13 |
14 | @param buttonIndex 页面的索引
15 | */
16 | typedef void(^TabBarDidClickAtIndex)(NSInteger buttonIndex);
17 |
18 | @interface DCNavigationTabBar : UIView
19 |
20 | /**
21 | 点击传递索引
22 | */
23 | @property(nonatomic,copy)TabBarDidClickAtIndex didClickAtIndex;
24 |
25 |
26 | /**
27 | 标题
28 | */
29 | -(instancetype)initWithTitles:(NSArray *)titles;
30 |
31 | /**
32 | 滑动至索引
33 | */
34 | -(void)scrollToIndex:(NSInteger)index;
35 |
36 | /**
37 | 背景颜色
38 | */
39 | @property(nonatomic,strong)UIColor *sliderBackgroundColor;
40 |
41 | /**
42 | button标题颜色(正常)
43 | */
44 | @property(nonatomic,strong)UIColor *buttonNormalTitleColor;
45 |
46 | /**
47 | button标题颜色(选中)
48 | */
49 | @property(nonatomic,strong)UIColor *buttonSelectedTileColor;
50 |
51 |
52 |
53 | @end
54 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/SVProgressHUD/SVProgressHUD/SVRadialGradientLayer.m:
--------------------------------------------------------------------------------
1 | //
2 | // SVRadialGradientLayer.m
3 | // SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD
4 | //
5 | // Copyright (c) 2014-2016 Tobias Tiemerding. All rights reserved.
6 | //
7 |
8 | #import "SVRadialGradientLayer.h"
9 |
10 | @implementation SVRadialGradientLayer
11 |
12 | - (void)drawInContext:(CGContextRef)context {
13 | size_t locationsCount = 2;
14 | CGFloat locations[2] = {0.0f, 1.0f};
15 | CGFloat colors[8] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.75f};
16 | CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
17 | CGGradientRef gradient = CGGradientCreateWithColorComponents(colorSpace, colors, locations, locationsCount);
18 | CGColorSpaceRelease(colorSpace);
19 |
20 | float radius = MIN(self.bounds.size.width , self.bounds.size.height);
21 | CGContextDrawRadialGradient (context, gradient, self.gradientCenter, 0, self.gradientCenter, radius, kCGGradientDrawsAfterEndLocation);
22 | CGGradientRelease(gradient);
23 | }
24 |
25 | @end
26 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/TXScrollLabelView/TXScrollLabelView/UIView+TXFrame.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+TXFrame.h
3 | // TXSwipeTableViewTest
4 | //
5 | // Created by tingxins on 9/1/16.
6 | // Copyright © 2016 tingxins. All rights reserved.
7 | // Welcome to my blog: https://tingxins.com
8 | //
9 |
10 | #import
11 |
12 | @interface UIView (TXFrame)
13 | /** 设置x值 */
14 | @property (assign, nonatomic) CGFloat tx_x;
15 | /** 设置y值 */
16 | @property (assign, nonatomic) CGFloat tx_y;
17 | /** 设置width */
18 | @property (assign, nonatomic) CGFloat tx_width;
19 | /** 设置height */
20 | @property (assign, nonatomic) CGFloat tx_height;
21 | /** 设置size */
22 | @property (assign, nonatomic) CGSize tx_size;
23 | /** 设置origin */
24 | @property (assign, nonatomic) CGPoint tx_origin;
25 | /** 设置center */
26 | @property (assign, nonatomic) CGPoint tx_center;
27 | /** 设置center.x */
28 | @property (assign, nonatomic) CGFloat tx_centerX;
29 | /** 设置center.y */
30 | @property (assign, nonatomic) CGFloat tx_centerY;
31 | /** 设置bottom */
32 | @property (assign, nonatomic) CGFloat tx_bottom;
33 | @end
34 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/XWMagicMoveAnimator/XWMagicMoveAnimator.h:
--------------------------------------------------------------------------------
1 | //
2 | // XWMagicMoveAnimator.h
3 | // XWTADemo
4 | //
5 | // Created by wazrx on 16/6/8.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | // 神奇移动效果请配合UIViewController+XWTransition中的相关API使用,如果神奇移动的终止视图为cell,需要参考一下demo中的九宫格例子
8 |
9 | #import "XWTransitionAnimator.h"
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface UIView (XWTransition)
14 |
15 | //神奇移动的时候,如果对设置view的该属性为YES,则移动视图不会按照截图的方式生成,而且尝试直接取得其image(暂时支持imageView、button等),解决神奇移动从下到大会产生模糊的情况
16 | @property (nonatomic, assign) BOOL magicMoveImageMode;
17 |
18 | @end
19 |
20 |
21 | @interface XWMagicMoveAnimator : XWTransitionAnimator
22 |
23 | //是否开启弹簧效果
24 | @property (nonatomic, assign) BOOL dampingEnable;
25 | //设为YES后,对于做神奇移动数组中的所有View会直接取其图片而不会截图,可解决神奇移动从小变得较大的时候,截图不清晰的问题,如果想要对单个view最该设置,请参考上面的UIView分类的magicMoveImageMode属性
26 | @property (nonatomic, assign) BOOL imageMode;
27 |
28 | @end
29 |
30 | UIKIT_EXTERN NSString *const kXWMagicMoveAnimatorStartViewVCKey;
31 | UIKIT_EXTERN NSString *const kXWMagicMoveAnimatorEndViewVCKey;
32 |
33 | NS_ASSUME_NONNULL_END
--------------------------------------------------------------------------------
/LYFStoreDemo/Tools/DCConsts.h:
--------------------------------------------------------------------------------
1 | //
2 | // DCConsts.h
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/20.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import
12 |
13 | @interface DCConsts : NSObject
14 |
15 |
16 | /** 常量 */
17 | UIKIT_EXTERN CGFloat const DCMargin;
18 |
19 |
20 | /** 立即购买点击退出当前界面通知 */
21 | UIKIT_EXTERN NSString * const DCBuyButtonDidDismissClickNotificationCenter;
22 |
23 |
24 |
25 | /** 屏幕高度 */
26 | #define ScreenH [UIScreen mainScreen].bounds.size.height
27 | /** 屏幕宽度 */
28 | #define ScreenW [UIScreen mainScreen].bounds.size.width
29 |
30 | /** RGB */
31 | #define DCRGBColor(r, g, b) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:1.0]
32 |
33 | /** 没有导航栏的屏幕高度 */
34 | #define ScreenHNoNavi ([UIScreen mainScreen].bounds.size.height - 64 - 49)
35 |
36 | /***************** 屏幕适配 ******************/
37 | #define iphone6p (ScreenH == 763)
38 | #define iphone6 (ScreenH == 667)
39 | #define iphone5 (ScreenH == 568)
40 | #define iphone4 (ScreenH == 480)
41 |
42 |
43 | @end
44 |
--------------------------------------------------------------------------------
/LYFStoreDemoTests/LYFStoreDemoTests.m:
--------------------------------------------------------------------------------
1 | //
2 | // LYFStoreDemoTests.m
3 | // LYFStoreDemoTests
4 | //
5 | // Created by Lyf on 17/4/19.
6 | // Copyright © 2017年 com.FLY.lyf. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface LYFStoreDemoTests : XCTestCase
12 |
13 | @end
14 |
15 | @implementation LYFStoreDemoTests
16 |
17 | - (void)setUp {
18 | [super setUp];
19 | // Put setup code here. This method is called before the invocation of each test method in the class.
20 | }
21 |
22 | - (void)tearDown {
23 | // Put teardown code here. This method is called after the invocation of each test method in the class.
24 | [super tearDown];
25 | }
26 |
27 | - (void)testExample {
28 | // This is an example of a functional test case.
29 | // Use XCTAssert and related functions to verify your tests produce the correct results.
30 | }
31 |
32 | - (void)testPerformanceExample {
33 | // This is an example of a performance test case.
34 | [self measureBlock:^{
35 | // Put the code you want to measure the time of here.
36 | }];
37 | }
38 |
39 | @end
40 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Tools/DCShopItemView.h:
--------------------------------------------------------------------------------
1 | //
2 | // DCShopItemView.h
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/18.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @class DCShopItemView;
12 |
13 | @protocol ShopItemViewDelegate
14 |
15 | @optional
16 | -(void)ShopItem_View:(DCShopItemView *)view didClickBtn:(UIButton *)btn;
17 | @end
18 |
19 | @interface DCShopItemView : UIView
20 |
21 | @property(nonatomic,assign)id ShopItem_delegate;
22 |
23 | /**
24 | * 返回一个创建好的属性视图,并且带有标题.创建好之后必须设置视图的Y值.
25 | *
26 | * @param texts 属性数组
27 | *
28 | * @return attributeView
29 | */
30 | + (DCShopItemView *)attributeViewWithTitle:(NSString *)title titleFont:(UIFont *)font titleColor:(UIColor *)titleColor WithBtnBgColor:(UIColor *)bgColor titleNormalColor:(UIColor *)normalColor titleSelectColor:(UIColor *)selectColor WithButtonCornerRadius:(NSInteger)radius attributeTexts:(NSArray *)texts viewWidth:(CGFloat)viewWidth;
31 |
32 |
33 | /**
34 | 自定义按钮
35 | */
36 | @property (nonatomic ,weak) UIButton *btn;
37 |
38 |
39 | @end
40 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Tools/DCStoreButton.m:
--------------------------------------------------------------------------------
1 | //
2 | // DCStoreButton.m
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/22.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import "DCStoreButton.h"
10 |
11 | #import "UIView+DCExtension.h"
12 |
13 | @implementation DCStoreButton
14 |
15 | -(void)setUp
16 | {
17 | self.titleLabel.textAlignment = NSTextAlignmentCenter;
18 | }
19 |
20 | - (instancetype)initWithFrame:(CGRect)frame
21 | {
22 | if (self = [super initWithFrame:frame]) {
23 | [self setUp];
24 | }
25 | return self;
26 | }
27 | - (void)awakeFromNib
28 | {
29 | [super awakeFromNib];
30 | [self setUp];
31 | }
32 |
33 | -(void)layoutSubviews
34 | {
35 | [super layoutSubviews];
36 | //设置图片位置
37 | self.imageView.dc_centerY = self.dc_centerY - 5;
38 | self.imageView.dc_centerX = self.dc_width * 0.5;
39 |
40 | //自己计算文字的宽
41 | [self.titleLabel sizeToFit];
42 | //设置lable
43 | self.titleLabel.dc_centerX = self.dc_width * 0.5;
44 | self.titleLabel.dc_y = self.imageView.dc_bottom + 5;
45 |
46 |
47 | }
48 |
49 | @end
50 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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
--------------------------------------------------------------------------------
/LYFStoreDemo/Plist/StoreBase.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | imgs
7 | carry
8 | title
9 | 标题1
10 | content
11 | 门店自提,门店自提,门店自提,门店自提,门店自提,
12 |
13 |
14 | imgs
15 | good
16 | title
17 | 标题2
18 | content
19 | 品质保障,品质保障,品质保障,品质保障,品质保障
20 |
21 |
22 | imgs
23 | sale
24 | title
25 | 标题2
26 | content
27 | 售后保障,售后保障,售后保障,售后保障,售后保障,售后保障,售后保障,售后保障,售后保障,售后保障,售后保障,售后保障,售后保障,售后保障
28 |
29 |
30 | imgs
31 | post
32 | title
33 | 标题4
34 | content
35 | 急速发货,急速发货,急速发货,急速发货,急速发货,急速发货,急速发货,急速发货,急速发货,急速发货,急速发货,急速发货,急速发货,急速发货,急速发货,急速发货
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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.
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/SDWebImage/SDWebImage/UIView+WebCacheOperation.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the SDWebImage package.
3 | * (c) Olivier Poitrey
4 | *
5 | * For the full copyright and license information, please view the LICENSE
6 | * file that was distributed with this source code.
7 | */
8 |
9 | #import
10 | #import "SDWebImageManager.h"
11 |
12 | @interface UIView (WebCacheOperation)
13 |
14 | /**
15 | * Set the image load operation (storage in a UIView based dictionary)
16 | *
17 | * @param operation the operation
18 | * @param key key for storing the operation
19 | */
20 | - (void)sd_setImageLoadOperation:(id)operation forKey:(NSString *)key;
21 |
22 | /**
23 | * Cancel all operations for the current UIView and key
24 | *
25 | * @param key key for identifying the operations
26 | */
27 | - (void)sd_cancelImageLoadOperationWithKey:(NSString *)key;
28 |
29 | /**
30 | * Just remove the operations corresponding to the current UIView and key without cancelling them
31 | *
32 | * @param key key for identifying the operations
33 | */
34 | - (void)sd_removeImageLoadOperationWithKey:(NSString *)key;
35 |
36 | @end
37 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/TXScrollLabelView/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2016 tingxins
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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/SDWebImage/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2016 Olivier Poitrey rs@dailymotion.com
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is furnished
8 | to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in all
11 | copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
21 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/XWFilterAnimator/XWFilterAnimator+XWBarSwipe.m:
--------------------------------------------------------------------------------
1 | //
2 | // XWFilterAnimator+XWBarSwipe.m
3 | // XWTransitionDemo
4 | //
5 | // Created by wazrx on 16/6/19.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | //
8 |
9 | #import "XWFilterAnimator+XWBarSwipe.h"
10 |
11 | @implementation XWFilterAnimator (XWBarSwipe)
12 |
13 | - (void)xw_barSwipeAnimationFor:(XWFilterTransitionView *)filterView transitionContext:(id)transitionContext duration:(NSTimeInterval)duration toFlag:(BOOL)flag {
14 | CGFloat angle = self.revers && !flag ? self.startAngle + M_PI : self.startAngle;
15 | CIFilter *filter = [CIFilter filterWithName:@"CIBarsSwipeTransition"
16 | keysAndValues:
17 | kCIInputAngleKey, @(angle),
18 | nil];
19 | filterView.filter = filter;
20 | [XWFilterTransitionView xw_animationWith:filterView duration:duration completion:^(BOOL finished) {
21 | [filterView removeFromSuperview];
22 | [transitionContext completeTransition:![transitionContext transitionWasCancelled]];
23 | }];
24 | }
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/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
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/XWFilterAnimator/XWFilterAnimator+XWPageCurl.m:
--------------------------------------------------------------------------------
1 |
2 | //
3 | // XWFilterAnimator+XWPageCurl.m
4 | // XWTransitionDemo
5 | //
6 | // Created by wazrx on 16/6/19.
7 | // Copyright © 2016年 wazrx. All rights reserved.
8 | //
9 |
10 | #import "XWFilterAnimator+XWPageCurl.h"
11 |
12 | @implementation XWFilterAnimator (XWPageCurl)
13 |
14 | - (void)xw_pageCurlAnimationFor:(XWFilterTransitionView *)filterView transitionContext:(id)transitionContext duration:(NSTimeInterval)duration toFlag:(BOOL)flag{
15 | CGFloat angle = self.revers && !flag ? self.startAngle + M_PI : self.startAngle;
16 | CIFilter *filter = [CIFilter filterWithName: @"CIPageCurlWithShadowTransition"
17 | keysAndValues:
18 | kCIInputAngleKey, @(angle),
19 | nil];
20 | filterView.filter = filter;
21 | [XWFilterTransitionView xw_animationWith:filterView duration:duration completion:^(BOOL finished) {
22 | [filterView removeFromSuperview];
23 | [transitionContext completeTransition:![transitionContext transitionWasCancelled]];
24 | }];
25 | }
26 |
27 | @end
28 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/Main/XWTransitionAnimator.h:
--------------------------------------------------------------------------------
1 | //
2 | // XWTransitionAnimator.h
3 | // XWTADemo
4 | //
5 | // Created by wazrx on 16/6/7.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | // 所有转场效果器的基类,若要自定义请继承与该基类
8 |
9 | #import
10 | #import "XWInteractiveTransition.h"
11 |
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | @interface XWTransitionAnimator : NSObject
15 |
16 | //to转场时间 默认0.5
17 | @property (nonatomic, assign) NSTimeInterval toDuration;
18 | //back转场时间 默认0.5
19 | @property (nonatomic, assign) NSTimeInterval backDuration;
20 | //是否需要开启手势timer,某些转场如果在转成过程中所开手指,不会有动画过渡,显得很生硬,开启timer后,松开手指,会用timer不断的刷新转场百分比,消除生硬的缺点
21 | @property (nonatomic, assign) BOOL needInteractiveTimer;
22 |
23 | /**
24 | * 配置To过程动画(push, present),自定义转场动画应该复写该方法
25 | */
26 | - (void)xw_setToAnimation:(id)transitionContext;
27 | /**
28 | * 配置back过程动画(pop, dismiss),自定义转场动画应该复写该方法
29 | */
30 | - (void)xw_setBackAnimation:(id)transitionContext;
31 |
32 | @end
33 |
34 | NS_ASSUME_NONNULL_END
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/M/ProductModel.m:
--------------------------------------------------------------------------------
1 | //
2 | // ProductModel.m
3 | // LYFStoreDemo
4 | //
5 | // Created by Lyf on 17/4/19.
6 | // Copyright © 2017年 com.FLY.lyf. All rights reserved.
7 | //
8 |
9 | #import "ProductModel.h"
10 | #import "DCConsts.h"
11 |
12 | @implementation ProductModel
13 |
14 | - (CGFloat)cellHeight
15 | {
16 | if (_cellHeight) return _cellHeight;
17 | CGSize titleSize = [self calculateTextSizeWithText:_goods_title WithTextFont:14 WithMaxW:ScreenW - 103];
18 | CGSize secondttSize = [self calculateTextSizeWithText:_secondtitle WithTextFont:12 WithMaxW:ScreenW - 103];
19 | _cellHeight = 62 + titleSize.height + secondttSize.height;
20 |
21 | return _cellHeight;
22 | }
23 |
24 |
25 | #pragma mark - 根据传入字体大小计算字体宽高
26 | - (CGSize)calculateTextSizeWithText : (NSString *)text WithTextFont: (NSInteger)textFont WithMaxW : (CGFloat)maxW {
27 |
28 | CGFloat textMaxW = maxW;
29 | CGSize textMaxSize = CGSizeMake(textMaxW, MAXFLOAT);
30 |
31 | CGSize textSize = [text boundingRectWithSize:textMaxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:textFont]} context:nil].size;
32 |
33 | return textSize;
34 | }
35 |
36 |
37 | @end
38 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/MJRefresh/MJRefresh/Base/MJRefreshFooter.h:
--------------------------------------------------------------------------------
1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh
2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000
3 | // MJRefreshFooter.h
4 | // MJRefreshExample
5 | //
6 | // Created by MJ Lee on 15/3/5.
7 | // Copyright (c) 2015年 小码哥. All rights reserved.
8 | // 上拉刷新控件
9 |
10 | #import "MJRefreshComponent.h"
11 |
12 | @interface MJRefreshFooter : MJRefreshComponent
13 | /** 创建footer */
14 | + (instancetype)footerWithRefreshingBlock:(MJRefreshComponentRefreshingBlock)refreshingBlock;
15 | /** 创建footer */
16 | + (instancetype)footerWithRefreshingTarget:(id)target refreshingAction:(SEL)action;
17 |
18 | /** 提示没有更多的数据 */
19 | - (void)endRefreshingWithNoMoreData;
20 | - (void)noticeNoMoreData MJRefreshDeprecated("使用endRefreshingWithNoMoreData");
21 |
22 | /** 重置没有更多的数据(消除没有更多数据的状态) */
23 | - (void)resetNoMoreData;
24 |
25 | /** 忽略多少scrollView的contentInset的bottom */
26 | @property (assign, nonatomic) CGFloat ignoredScrollViewContentInsetBottom;
27 |
28 | /** 自动根据有无数据来显示和隐藏(有数据就显示,没有数据隐藏。默认是NO) */
29 | @property (assign, nonatomic, getter=isAutomaticallyHidden) BOOL automaticallyHidden;
30 | @end
31 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/Masonry/Masonry/NSArray+MASShorthandAdditions.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSArray+MASShorthandAdditions.h
3 | // Masonry
4 | //
5 | // Created by Jonas Budelmann on 22/07/13.
6 | // Copyright (c) 2013 Jonas Budelmann. All rights reserved.
7 | //
8 |
9 | #import "NSArray+MASAdditions.h"
10 |
11 | #ifdef MAS_SHORTHAND
12 |
13 | /**
14 | * Shorthand array additions without the 'mas_' prefixes,
15 | * only enabled if MAS_SHORTHAND is defined
16 | */
17 | @interface NSArray (MASShorthandAdditions)
18 |
19 | - (NSArray *)makeConstraints:(void(^)(MASConstraintMaker *make))block;
20 | - (NSArray *)updateConstraints:(void(^)(MASConstraintMaker *make))block;
21 | - (NSArray *)remakeConstraints:(void(^)(MASConstraintMaker *make))block;
22 |
23 | @end
24 |
25 | @implementation NSArray (MASShorthandAdditions)
26 |
27 | - (NSArray *)makeConstraints:(void(^)(MASConstraintMaker *))block {
28 | return [self mas_makeConstraints:block];
29 | }
30 |
31 | - (NSArray *)updateConstraints:(void(^)(MASConstraintMaker *))block {
32 | return [self mas_updateConstraints:block];
33 | }
34 |
35 | - (NSArray *)remakeConstraints:(void(^)(MASConstraintMaker *))block {
36 | return [self mas_remakeConstraints:block];
37 | }
38 |
39 | @end
40 |
41 | #endif
42 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/V/HomeView/DCStoreItemCell.m:
--------------------------------------------------------------------------------
1 | //
2 | // DCStoreItemCell.m
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/20.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import "DCStoreItemCell.h"
10 |
11 | #import "ProductModel.h"
12 |
13 | @interface DCStoreItemCell()
14 |
15 | @property (weak, nonatomic) IBOutlet UIImageView *iconImageView;
16 | @property (weak, nonatomic) IBOutlet UILabel *goodstitleLabel;
17 | @property (weak, nonatomic) IBOutlet UILabel *salesLabel;
18 | @property (weak, nonatomic) IBOutlet UILabel *priceLabel;
19 | @property (weak, nonatomic) IBOutlet UILabel *introduceLabel;
20 |
21 | @end
22 |
23 | @implementation DCStoreItemCell
24 |
25 | - (void)setStoreItem:(ProductModel *)storeItem
26 | {
27 | storeItem = storeItem;
28 |
29 | self.iconImageView.image = [UIImage imageNamed:storeItem.goodspics];
30 |
31 | self.goodstitleLabel.text = storeItem.goods_title;
32 |
33 | self.salesLabel.text = [NSString stringWithFormat:@"销售 %@笔",storeItem.sales];
34 |
35 | self.priceLabel.text = [NSString stringWithFormat:@"¥ %0.2f",[storeItem.price floatValue]];
36 |
37 | self.introduceLabel.text = storeItem.secondtitle;
38 |
39 | }
40 |
41 | @end
42 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Tools/DCCustomButton.m:
--------------------------------------------------------------------------------
1 | //
2 | // DCCustomButton.m
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/20.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import "DCCustomButton.h"
10 |
11 | #import "DCConsts.h"
12 |
13 | #import "UIView+DCExtension.h"
14 |
15 | @implementation DCCustomButton
16 | - (instancetype)initWithFrame:(CGRect)frame
17 | {
18 | if (self = [super initWithFrame:frame]) {
19 |
20 | self.backgroundColor = [UIColor whiteColor];
21 | [self setTitleColor:[UIColor darkGrayColor] forState:UIControlStateNormal];
22 | self.titleLabel.font = [UIFont systemFontOfSize:14];
23 | }
24 | return self;
25 | }
26 |
27 | - (void)setTitle:(NSString *)title forState:(UIControlState)state
28 | {
29 | [super setTitle:title forState:state];
30 |
31 | // [self sizeToFit];
32 | //sizeToFit算完后加三倍的间距
33 | self.dc_width += DCMargin;
34 | }
35 |
36 | - (void)layoutSubviews
37 | {
38 | [super layoutSubviews];
39 |
40 | self.titleLabel.dc_centerY = self.dc_centerY;
41 | self.titleLabel.dc_x = DCMargin;
42 | self.imageView.dc_centerY = self.dc_centerY;
43 | self.imageView.dc_x = CGRectGetMaxX(self.titleLabel.frame) + 1/3 * DCMargin;
44 | }
45 |
46 | @end
47 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/MJExtension/MJExtension/NSString+MJExtension.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+MJExtension.h
3 | // MJExtensionExample
4 | //
5 | // Created by MJ Lee on 15/6/7.
6 | // Copyright (c) 2015年 小码哥. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "MJExtensionConst.h"
11 |
12 | @interface NSString (MJExtension)
13 | /**
14 | * 驼峰转下划线(loveYou -> love_you)
15 | */
16 | - (NSString *)mj_underlineFromCamel;
17 | /**
18 | * 下划线转驼峰(love_you -> loveYou)
19 | */
20 | - (NSString *)mj_camelFromUnderline;
21 | /**
22 | * 首字母变大写
23 | */
24 | - (NSString *)mj_firstCharUpper;
25 | /**
26 | * 首字母变小写
27 | */
28 | - (NSString *)mj_firstCharLower;
29 |
30 | - (BOOL)mj_isPureInt;
31 |
32 | - (NSURL *)mj_url;
33 | @end
34 |
35 | @interface NSString (MJExtensionDeprecated_v_2_5_16)
36 | - (NSString *)underlineFromCamel MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
37 | - (NSString *)camelFromUnderline MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
38 | - (NSString *)firstCharUpper MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
39 | - (NSString *)firstCharLower MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
40 | - (BOOL)isPureInt MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
41 | - (NSURL *)url MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
42 | @end
43 |
--------------------------------------------------------------------------------
/LYFStoreDemo/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 | APPL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 | LSRequiresIPhoneOS
22 |
23 | UILaunchStoryboardName
24 | LaunchScreen
25 | UIMainStoryboardFile
26 | Main
27 | UIRequiredDeviceCapabilities
28 |
29 | armv7
30 |
31 | UISupportedInterfaceOrientations
32 |
33 | UIInterfaceOrientationPortrait
34 | UIInterfaceOrientationLandscapeLeft
35 | UIInterfaceOrientationLandscapeRight
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Plist/ShopItemA.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | attr
7 |
8 | attrname
9 | 机身颜色
10 |
11 | list
12 |
13 |
14 | infoname
15 | 金色
16 | plusprice
17 | 50
18 |
19 |
20 | plusprice
21 | 10
22 | infoname
23 | 银色
24 |
25 |
26 |
27 |
28 | attr
29 |
30 | attrname
31 | 容量大小
32 |
33 | list
34 |
35 |
36 | infoname
37 | 16G
38 | plusprice
39 | 10
40 |
41 |
42 | infoname
43 | 64G
44 | plusprice
45 | 200
46 |
47 |
48 | infoname
49 | 128G
50 | plusprice
51 | 600
52 |
53 |
54 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Tools/DCSpeedy.m:
--------------------------------------------------------------------------------
1 | //
2 | // DCSpeedy.m
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/3/24.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import "DCSpeedy.h"
10 |
11 | @implementation DCSpeedy
12 |
13 | +(id)chageControlCircularWith:(id)anyControl AndSetCornerRadius:(NSInteger)radius SetBorderWidth:(NSInteger)width SetBorderColor:(UIColor *)borderColor canMasksToBounds:(BOOL)can
14 | {
15 | CALayer *icon_layer=[anyControl layer];
16 | [icon_layer setCornerRadius:radius];
17 | [icon_layer setBorderWidth:width];
18 | [icon_layer setBorderColor:[borderColor CGColor]];
19 | [icon_layer setMasksToBounds:can];
20 |
21 | return anyControl;
22 | }
23 |
24 | +(id)setSomeOneChangeColor:(UILabel *)label SetSelectArray:(NSArray *)arrray SetChangeColor:(UIColor *)color
25 | {
26 | int i;
27 | NSMutableAttributedString *attributeString = [[NSMutableAttributedString alloc]initWithString:label.text];
28 | for (i = 0; i < label.text.length; i ++) {
29 | NSString *a = [label.text substringWithRange:NSMakeRange(i, 1)];
30 | NSArray *number = arrray;
31 | if ([number containsObject:a]) {
32 | [attributeString setAttributes:@{NSForegroundColorAttributeName:color} range:NSMakeRange(i, 1)];
33 | }
34 | }
35 | label.attributedText = attributeString;
36 | return label;
37 | }
38 |
39 | @end
40 |
--------------------------------------------------------------------------------
/LYFStoreDemoUITests/LYFStoreDemoUITests.m:
--------------------------------------------------------------------------------
1 | //
2 | // LYFStoreDemoUITests.m
3 | // LYFStoreDemoUITests
4 | //
5 | // Created by Lyf on 17/4/19.
6 | // Copyright © 2017年 com.FLY.lyf. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface LYFStoreDemoUITests : XCTestCase
12 |
13 | @end
14 |
15 | @implementation LYFStoreDemoUITests
16 |
17 | - (void)setUp {
18 | [super setUp];
19 |
20 | // Put setup code here. This method is called before the invocation of each test method in the class.
21 |
22 | // In UI tests it is usually best to stop immediately when a failure occurs.
23 | self.continueAfterFailure = NO;
24 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method.
25 | [[[XCUIApplication alloc] init] launch];
26 |
27 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this.
28 | }
29 |
30 | - (void)tearDown {
31 | // Put teardown code here. This method is called after the invocation of each test method in the class.
32 | [super tearDown];
33 | }
34 |
35 | - (void)testExample {
36 | // Use recording to get started writing UI tests.
37 | // Use XCTAssert and related functions to verify your tests produce the correct results.
38 | }
39 |
40 | @end
41 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/SVProgressHUD/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2011-2016 Sam Vermette, Tobias Tiemerding and contributors.
2 |
3 | Permission is hereby granted, free of charge, to any person
4 | obtaining a copy of this software and associated documentation
5 | files (the "Software"), to deal in the Software without
6 | restriction, including without limitation the rights to use,
7 | copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | copies of the Software, and to permit persons to whom the
9 | Software is furnished to do so, subject to the following
10 | conditions:
11 |
12 | The above copyright notice and this permission notice shall be
13 | included in all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22 | OTHER DEALINGS IN THE SOFTWARE.
23 |
24 | A different license may apply to other resources included in this package,
25 | including Freepik Icons. Please consult their
26 | respective headers for the terms of their individual licenses.
27 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/Masonry/Masonry/MASViewAttribute.m:
--------------------------------------------------------------------------------
1 | //
2 | // MASAttribute.m
3 | // Masonry
4 | //
5 | // Created by Jonas Budelmann on 21/07/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import "MASViewAttribute.h"
10 |
11 | @implementation MASViewAttribute
12 |
13 | - (id)initWithView:(MAS_VIEW *)view layoutAttribute:(NSLayoutAttribute)layoutAttribute {
14 | self = [self initWithView:view item:view layoutAttribute:layoutAttribute];
15 | return self;
16 | }
17 |
18 | - (id)initWithView:(MAS_VIEW *)view item:(id)item layoutAttribute:(NSLayoutAttribute)layoutAttribute {
19 | self = [super init];
20 | if (!self) return nil;
21 |
22 | _view = view;
23 | _item = item;
24 | _layoutAttribute = layoutAttribute;
25 |
26 | return self;
27 | }
28 |
29 | - (BOOL)isSizeAttribute {
30 | return self.layoutAttribute == NSLayoutAttributeWidth
31 | || self.layoutAttribute == NSLayoutAttributeHeight;
32 | }
33 |
34 | - (BOOL)isEqual:(MASViewAttribute *)viewAttribute {
35 | if ([viewAttribute isKindOfClass:self.class]) {
36 | return self.view == viewAttribute.view
37 | && self.layoutAttribute == viewAttribute.layoutAttribute;
38 | }
39 | return [super isEqual:viewAttribute];
40 | }
41 |
42 | - (NSUInteger)hash {
43 | return MAS_NSUINTROTATE([self.view hash], MAS_NSUINT_BIT / 2) ^ self.layoutAttribute;
44 | }
45 |
46 | @end
47 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/XWFilterAnimator/XWFilterAnimator+XWRipple.m:
--------------------------------------------------------------------------------
1 | //
2 | // XWFilterAnimator+XWRipple.m
3 | // XWTransitionDemo
4 | //
5 | // Created by wazrx on 16/6/19.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | //
8 |
9 | #import "XWFilterAnimator+XWRipple.h"
10 |
11 | @implementation XWFilterAnimator (XWRipple)
12 |
13 | - (void)xw_rippleAnimationFor:(XWFilterTransitionView *)filterView transitionContext:(id)transitionContext duration:(NSTimeInterval)duration{
14 | CIImage *img = [CIImage imageWithCGImage:[UIImage imageNamed:@"restrictedshine.tiff"].CGImage];
15 | CIVector *vector = [filterView xw_getInnerVector];
16 | CIFilter *filter = [CIFilter filterWithName: @"CIRippleTransition"
17 | keysAndValues:
18 | kCIInputShadingImageKey, img,
19 | kCIInputCenterKey, [CIVector vectorWithX:0.5 * vector.CGRectValue.size.width
20 | Y:0.5 * vector.CGRectValue.size.height],
21 | nil];
22 | filterView.filter = filter;
23 | [XWFilterTransitionView xw_animationWith:filterView duration:duration completion:^(BOOL finished) {
24 | [filterView removeFromSuperview];
25 | [transitionContext completeTransition:![transitionContext transitionWasCancelled]];
26 | }];
27 | }
28 |
29 | @end
30 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/UIView+SDExtension.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+SDExtension.h
3 | // SDRefreshView
4 | //
5 | // Created by aier on 15-2-23.
6 | // Copyright (c) 2015年 GSD. All rights reserved.
7 | //
8 |
9 | /*
10 |
11 | *********************************************************************************
12 | *
13 | * 🌟🌟🌟 新建SDCycleScrollView交流QQ群:185534916 🌟🌟🌟
14 | *
15 | * 在您使用此自动轮播库的过程中如果出现bug请及时以以下任意一种方式联系我们,我们会及时修复bug并
16 | * 帮您解决问题。
17 | * 新浪微博:GSD_iOS
18 | * Email : gsdios@126.com
19 | * GitHub: https://github.com/gsdios
20 | *
21 | * 另(我的自动布局库SDAutoLayout):
22 | * 一行代码搞定自动布局!支持Cell和Tableview高度自适应,Label和ScrollView内容自适应,致力于
23 | * 做最简单易用的AutoLayout库。
24 | * 视频教程:http://www.letv.com/ptv/vplay/24038772.html
25 | * 用法示例:https://github.com/gsdios/SDAutoLayout/blob/master/README.md
26 | * GitHub:https://github.com/gsdios/SDAutoLayout
27 | *********************************************************************************
28 |
29 | */
30 |
31 | #import
32 |
33 | #define SDColorCreater(r, g, b, a) [UIColor colorWithRed:(r / 255.0) green:(g / 255.0) blue:(b / 255.0) alpha:a]
34 |
35 |
36 | @interface UIView (SDExtension)
37 |
38 | @property (nonatomic, assign) CGFloat sd_height;
39 | @property (nonatomic, assign) CGFloat sd_width;
40 |
41 | @property (nonatomic, assign) CGFloat sd_y;
42 | @property (nonatomic, assign) CGFloat sd_x;
43 |
44 | @end
45 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/SDWebImage/SDWebImage/NSData+ImageContentType.m:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Fabrice Aneche on 06/01/14.
3 | // Copyright (c) 2014 Dailymotion. All rights reserved.
4 | //
5 |
6 | #import "NSData+ImageContentType.h"
7 |
8 |
9 | @implementation NSData (ImageContentType)
10 |
11 | + (NSString *)sd_contentTypeForImageData:(NSData *)data {
12 | uint8_t c;
13 | [data getBytes:&c length:1];
14 | switch (c) {
15 | case 0xFF:
16 | return @"image/jpeg";
17 | case 0x89:
18 | return @"image/png";
19 | case 0x47:
20 | return @"image/gif";
21 | case 0x49:
22 | case 0x4D:
23 | return @"image/tiff";
24 | case 0x52:
25 | // R as RIFF for WEBP
26 | if ([data length] < 12) {
27 | return nil;
28 | }
29 |
30 | NSString *testString = [[NSString alloc] initWithData:[data subdataWithRange:NSMakeRange(0, 12)] encoding:NSASCIIStringEncoding];
31 | if ([testString hasPrefix:@"RIFF"] && [testString hasSuffix:@"WEBP"]) {
32 | return @"image/webp";
33 | }
34 |
35 | return nil;
36 | }
37 | return nil;
38 | }
39 |
40 | @end
41 |
42 |
43 | @implementation NSData (ImageContentTypeDeprecated)
44 |
45 | + (NSString *)contentTypeForImageData:(NSData *)data {
46 | return [self sd_contentTypeForImageData:data];
47 | }
48 |
49 | @end
50 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TADotView.m:
--------------------------------------------------------------------------------
1 | //
2 | // TADotView.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 "TADotView.h"
10 |
11 | @implementation TADotView
12 |
13 |
14 | - (instancetype)init
15 | {
16 | self = [super init];
17 | if (self) {
18 | [self initialization];
19 | }
20 |
21 | return self;
22 | }
23 |
24 |
25 | - (id)initWithFrame:(CGRect)frame
26 | {
27 | self = [super initWithFrame:frame];
28 | if (self) {
29 | [self initialization];
30 | }
31 | return self;
32 | }
33 |
34 |
35 | - (id)initWithCoder:(NSCoder *)aDecoder
36 | {
37 | self = [super initWithCoder:aDecoder];
38 | if (self) {
39 | [self initialization];
40 | }
41 |
42 | return self;
43 | }
44 |
45 | - (void)initialization
46 | {
47 | self.backgroundColor = [UIColor clearColor];
48 | self.layer.cornerRadius = CGRectGetWidth(self.frame) / 2;
49 | self.layer.borderColor = [UIColor whiteColor].CGColor;
50 | self.layer.borderWidth = 2;
51 | }
52 |
53 |
54 | - (void)changeActivityState:(BOOL)active
55 | {
56 | if (active) {
57 | self.backgroundColor = [UIColor whiteColor];
58 | } else {
59 | self.backgroundColor = [UIColor clearColor];
60 | }
61 | }
62 |
63 | @end
64 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/XWDrawerAnimator/XWDrawerAnimator.h:
--------------------------------------------------------------------------------
1 | //
2 | // XWDrawerAnimator.h
3 | // XWTransitionDemo
4 | //
5 | // Created by wazrx on 16/6/15.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | //
8 |
9 | #import "XWTransitionAnimator.h"
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | typedef NS_ENUM(NSUInteger, XWDrawerAnimatorDirection) {
14 | XWDrawerAnimatorDirectionLeft,
15 | XWDrawerAnimatorDirectionRight,
16 | XWDrawerAnimatorDirectionTop,
17 | XWDrawerAnimatorDirectionBottom
18 | };
19 |
20 | @interface XWDrawerAnimator : XWTransitionAnimator
21 |
22 | /**fromVC的缩放比例, 如果Flip效果,比例默认为0.8, 否者为1.0不缩放*/
23 | @property (nonatomic, assign) CGFloat scaleRatio;
24 | /**视差效果,类似于QQ的设置界面弹出效果, 和flipEnable只能选择其一,如果都设置为YES,后设置的生效*/
25 | @property (nonatomic, assign) BOOL parallaxEnable;
26 | /**翻转效果,类似于淘宝选择规格时,后面视图的动画效果*/
27 | @property (nonatomic, assign) BOOL flipEnable;
28 |
29 | /**
30 | * 初始化一个转场抽屉效果器
31 | *
32 | * @param direction 抽屉效果触发方向
33 | * @param distance 显示在屏幕中的宽度或者高度,如果传0,默认就是当前屏幕的高度或者宽度
34 | *
35 | * @return animator
36 | */
37 | + (instancetype)xw_animatorWithDirection:(XWDrawerAnimatorDirection)direction moveDistance:(CGFloat)distance;
38 |
39 | /**
40 | * 开启边缘(就是屏幕除开toView所占用的部分)back手势和边缘点击返回效果,类似于QQ设置界面的返回效果
41 | *
42 | * @param backConfig 返回操作,您的dismiss或者pop操作
43 | */
44 | - (void)xw_enableEdgeGestureAndBackTapWithConfig:(dispatch_block_t)backConfig;
45 |
46 | @end
47 |
48 | NS_ASSUME_NONNULL_END
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/Masonry/Masonry/MASViewAttribute.h:
--------------------------------------------------------------------------------
1 | //
2 | // MASAttribute.h
3 | // Masonry
4 | //
5 | // Created by Jonas Budelmann on 21/07/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import "MASUtilities.h"
10 |
11 | /**
12 | * An immutable tuple which stores the view and the related NSLayoutAttribute.
13 | * Describes part of either the left or right hand side of a constraint equation
14 | */
15 | @interface MASViewAttribute : NSObject
16 |
17 | /**
18 | * The view which the reciever relates to. Can be nil if item is not a view.
19 | */
20 | @property (nonatomic, weak, readonly) MAS_VIEW *view;
21 |
22 | /**
23 | * The item which the reciever relates to.
24 | */
25 | @property (nonatomic, weak, readonly) id item;
26 |
27 | /**
28 | * The attribute which the reciever relates to
29 | */
30 | @property (nonatomic, assign, readonly) NSLayoutAttribute layoutAttribute;
31 |
32 | /**
33 | * Convenience initializer.
34 | */
35 | - (id)initWithView:(MAS_VIEW *)view layoutAttribute:(NSLayoutAttribute)layoutAttribute;
36 |
37 | /**
38 | * The designated initializer.
39 | */
40 | - (id)initWithView:(MAS_VIEW *)view item:(id)item layoutAttribute:(NSLayoutAttribute)layoutAttribute;
41 |
42 | /**
43 | * Determine whether the layoutAttribute is a size attribute
44 | *
45 | * @return YES if layoutAttribute is equal to NSLayoutAttributeWidth or NSLayoutAttributeHeight
46 | */
47 | - (BOOL)isSizeAttribute;
48 |
49 | @end
50 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/XWFilterAnimator/XWFilterAnimator+XWSwipe.m:
--------------------------------------------------------------------------------
1 | //
2 | // XWFilterAnimator+XWSwipe.m
3 | // XWTransitionDemo
4 | //
5 | // Created by wazrx on 16/6/17.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | //
8 |
9 | #import "XWFilterAnimator+XWSwipe.h"
10 |
11 | @implementation XWFilterAnimator (XWSwipe)
12 |
13 | - (void)xw_swipeAnimationFor:(XWFilterTransitionView *)filterView transitionContext:(id)transitionContext duration:(NSTimeInterval)duration toFlag:(BOOL)flag {
14 | CGFloat angle = self.revers && !flag ? self.startAngle + M_PI : self.startAngle;
15 | CIVector *vector = [filterView xw_getInnerVector];
16 | CIFilter *filter = [CIFilter filterWithName:@"CISwipeTransition"
17 | keysAndValues:
18 | kCIInputExtentKey, vector,
19 | kCIInputColorKey, [CIColor colorWithRed:0 green:0 blue:0 alpha:0],
20 | kCIInputAngleKey, @(angle),
21 | kCIInputWidthKey, @80.0,
22 | @"inputOpacity", @0.0,
23 | nil];
24 | filterView.filter = filter;
25 | [XWFilterTransitionView xw_animationWith:filterView duration:duration completion:^(BOOL finished) {
26 | [filterView removeFromSuperview];
27 | [transitionContext completeTransition:![transitionContext transitionWasCancelled]];
28 | }];
29 | }
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/XWFilterAnimator/XWFilterAnimator+XWFlash.m:
--------------------------------------------------------------------------------
1 | //
2 | // XWFilterAnimator+XWFlash.m
3 | // XWTransitionDemo
4 | //
5 | // Created by wazrx on 16/6/19.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | //
8 |
9 | #import "XWFilterAnimator+XWFlash.h"
10 |
11 | @implementation XWFilterAnimator (XWFlash)
12 |
13 | - (void)xw_flashAnimationFor:(XWFilterTransitionView *)filterView transitionContext:(id)transitionContext duration:(NSTimeInterval)duration{
14 | CGSize size = filterView.frame.size;
15 | CIFilter *filter = [CIFilter filterWithName:@"CIFlashTransition"
16 | keysAndValues:
17 | kCIInputCenterKey, [CIVector vectorWithCGPoint:CGPointMake(size.width, size.height)],
18 | kCIInputColorKey, [CIColor colorWithRed:1.0 green:0.8 blue:0.6 alpha:1],
19 | @"inputMaxStriationRadius", @2.5,
20 | @"inputStriationStrength", @0.5,
21 | @"inputStriationContrast", @1.37,
22 | @"inputFadeThreshold", @0.5,
23 | nil];
24 | filterView.filter = filter;
25 | [XWFilterTransitionView xw_animationWith:filterView duration:duration completion:^(BOOL finished) {
26 | [filterView removeFromSuperview];
27 | [transitionContext completeTransition:![transitionContext transitionWasCancelled]];
28 | }];
29 | }
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/XWFilterAnimator/XWFilterAnimator+XWCopyMachine.m:
--------------------------------------------------------------------------------
1 | //
2 | // XWFilterAnimator+XWCopyMachine.m
3 | // XWTransitionDemo
4 | //
5 | // Created by wazrx on 16/6/19.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | //
8 |
9 | #import "XWFilterAnimator+XWCopyMachine.h"
10 |
11 | @implementation XWFilterAnimator (XWCopyMachine)
12 |
13 | - (void)xw_copyMachineAnimationFor:(XWFilterTransitionView *)filterView transitionContext:(id)transitionContext duration:(NSTimeInterval)duration toFlag:(BOOL)flag{
14 | CGFloat angle = self.revers && !flag ? self.startAngle + M_PI : self.startAngle;
15 | CIVector *vector = [filterView xw_getInnerVector];
16 | CIFilter *filter = [CIFilter filterWithName:@"CICopyMachineTransition"
17 | keysAndValues:
18 | kCIInputExtentKey, vector,
19 | kCIInputColorKey, [CIColor colorWithRed:.6 green:1 blue:.8 alpha:1],
20 | kCIInputAngleKey, @(angle),
21 | kCIInputWidthKey, @50.0,
22 | @"inputOpacity", @1.0,
23 | nil];
24 | filterView.filter = filter;
25 | [XWFilterTransitionView xw_animationWith:filterView duration:duration completion:^(BOOL finished) {
26 | [filterView removeFromSuperview];
27 | [transitionContext completeTransition:![transitionContext transitionWasCancelled]];
28 | }];
29 | }
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/Masonry/Masonry/ViewController+MASAdditions.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIViewController+MASAdditions.m
3 | // Masonry
4 | //
5 | // Created by Craig Siemens on 2015-06-23.
6 | //
7 | //
8 |
9 | #import "ViewController+MASAdditions.h"
10 |
11 | #ifdef MAS_VIEW_CONTROLLER
12 |
13 | @implementation MAS_VIEW_CONTROLLER (MASAdditions)
14 |
15 | - (MASViewAttribute *)mas_topLayoutGuide {
16 | return [[MASViewAttribute alloc] initWithView:self.view item:self.topLayoutGuide layoutAttribute:NSLayoutAttributeBottom];
17 | }
18 | - (MASViewAttribute *)mas_topLayoutGuideTop {
19 | return [[MASViewAttribute alloc] initWithView:self.view item:self.topLayoutGuide layoutAttribute:NSLayoutAttributeTop];
20 | }
21 | - (MASViewAttribute *)mas_topLayoutGuideBottom {
22 | return [[MASViewAttribute alloc] initWithView:self.view item:self.topLayoutGuide layoutAttribute:NSLayoutAttributeBottom];
23 | }
24 |
25 | - (MASViewAttribute *)mas_bottomLayoutGuide {
26 | return [[MASViewAttribute alloc] initWithView:self.view item:self.bottomLayoutGuide layoutAttribute:NSLayoutAttributeTop];
27 | }
28 | - (MASViewAttribute *)mas_bottomLayoutGuideTop {
29 | return [[MASViewAttribute alloc] initWithView:self.view item:self.bottomLayoutGuide layoutAttribute:NSLayoutAttributeTop];
30 | }
31 | - (MASViewAttribute *)mas_bottomLayoutGuideBottom {
32 | return [[MASViewAttribute alloc] initWithView:self.view item:self.bottomLayoutGuide layoutAttribute:NSLayoutAttributeBottom];
33 | }
34 |
35 |
36 |
37 | @end
38 |
39 | #endif
40 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/Masonry/Masonry/MASViewConstraint.h:
--------------------------------------------------------------------------------
1 | //
2 | // MASConstraint.h
3 | // Masonry
4 | //
5 | // Created by Jonas Budelmann on 20/07/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import "MASViewAttribute.h"
10 | #import "MASConstraint.h"
11 | #import "MASLayoutConstraint.h"
12 | #import "MASUtilities.h"
13 |
14 | /**
15 | * A single constraint.
16 | * Contains the attributes neccessary for creating a NSLayoutConstraint and adding it to the appropriate view
17 | */
18 | @interface MASViewConstraint : MASConstraint
19 |
20 | /**
21 | * First item/view and first attribute of the NSLayoutConstraint
22 | */
23 | @property (nonatomic, strong, readonly) MASViewAttribute *firstViewAttribute;
24 |
25 | /**
26 | * Second item/view and second attribute of the NSLayoutConstraint
27 | */
28 | @property (nonatomic, strong, readonly) MASViewAttribute *secondViewAttribute;
29 |
30 | /**
31 | * initialises the MASViewConstraint with the first part of the equation
32 | *
33 | * @param firstViewAttribute view.mas_left, view.mas_width etc.
34 | *
35 | * @return a new view constraint
36 | */
37 | - (id)initWithFirstViewAttribute:(MASViewAttribute *)firstViewAttribute;
38 |
39 | /**
40 | * Returns all MASViewConstraints installed with this view as a first item.
41 | *
42 | * @param view A view to retrieve constraints for.
43 | *
44 | * @return An array of MASViewConstraints.
45 | */
46 | + (NSArray *)installedConstraintsForView:(MAS_VIEW *)view;
47 |
48 | @end
49 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/MJExtension/MJExtension/MJProperty.h:
--------------------------------------------------------------------------------
1 | //
2 | // MJProperty.h
3 | // MJExtensionExample
4 | //
5 | // Created by MJ Lee on 15/4/17.
6 | // Copyright (c) 2015年 小码哥. All rights reserved.
7 | // 包装一个成员属性
8 |
9 | #import
10 | #import
11 | #import "MJPropertyType.h"
12 | #import "MJPropertyKey.h"
13 |
14 | /**
15 | * 包装一个成员
16 | */
17 | @interface MJProperty : NSObject
18 | /** 成员属性 */
19 | @property (nonatomic, assign) objc_property_t property;
20 | /** 成员属性的名字 */
21 | @property (nonatomic, readonly) NSString *name;
22 |
23 | /** 成员属性的类型 */
24 | @property (nonatomic, readonly) MJPropertyType *type;
25 | /** 成员属性来源于哪个类(可能是父类) */
26 | @property (nonatomic, assign) Class srcClass;
27 |
28 | /**** 同一个成员属性 - 父类和子类的行为可能不一致(originKey、propertyKeys、objectClassInArray) ****/
29 | /** 设置最原始的key */
30 | - (void)setOriginKey:(id)originKey forClass:(Class)c;
31 | /** 对应着字典中的多级key(里面存放的数组,数组里面都是MJPropertyKey对象) */
32 | - (NSArray *)propertyKeysForClass:(Class)c;
33 |
34 | /** 模型数组中的模型类型 */
35 | - (void)setObjectClassInArray:(Class)objectClass forClass:(Class)c;
36 | - (Class)objectClassInArrayForClass:(Class)c;
37 | /**** 同一个成员变量 - 父类和子类的行为可能不一致(key、keys、objectClassInArray) ****/
38 |
39 | /**
40 | * 设置object的成员变量值
41 | */
42 | - (void)setValue:(id)value forObject:(id)object;
43 | /**
44 | * 得到object的成员属性值
45 | */
46 | - (id)valueForObject:(id)object;
47 |
48 | /**
49 | * 初始化
50 | */
51 | + (instancetype)cachedPropertyWithProperty:(objc_property_t)property;
52 |
53 | @end
54 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/XWFilterAnimator/XWFilterAnimator+XWMod.m:
--------------------------------------------------------------------------------
1 | //
2 | // XWFilterAnimator+XWMod.m
3 | // XWTransitionDemo
4 | //
5 | // Created by wazrx on 16/6/19.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | //
8 |
9 | #import "XWFilterAnimator+XWMod.h"
10 |
11 | @implementation XWFilterAnimator (XWMod)
12 |
13 | - (void)xw_modAnimationFor:(XWFilterTransitionView *)filterView transitionContext:(id)transitionContext duration:(NSTimeInterval)duration toFlag:(BOOL)flag{
14 | CGFloat angle = self.revers && !flag ? self.startAngle + M_PI : self.startAngle;
15 | CIVector *vector = [filterView xw_getInnerVector];
16 | CIFilter *filter = [CIFilter filterWithName: @"CIModTransition"
17 | keysAndValues:
18 | kCIInputCenterKey,[CIVector vectorWithX:0.5 * vector.CGRectValue.size.width
19 | Y:0.5 * vector.CGRectValue.size.height],
20 | kCIInputAngleKey, @(angle),
21 | kCIInputRadiusKey, @30.0,
22 | @"inputCompression", @10.0,
23 | nil];
24 | filterView.filter = filter;
25 | [XWFilterTransitionView xw_animationWith:filterView duration:duration completion:^(BOOL finished) {
26 | [filterView removeFromSuperview];
27 | [transitionContext completeTransition:![transitionContext transitionWasCancelled]];
28 | }];
29 | }
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/XWFilterAnimator/XWFilterAnimator+XWMask.m:
--------------------------------------------------------------------------------
1 | //
2 | // XWFilterAnimator+XWMask.m
3 | // XWTransitionDemo
4 | //
5 | // Created by wazrx on 16/6/17.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | //
8 |
9 | #import "XWFilterAnimator+XWMask.h"
10 |
11 | @implementation XWFilterAnimator (XWMask)
12 |
13 | - (void)xw_maskAnimationFor:(XWFilterTransitionView *)filterView transitionContext:(id)transitionContext duration:(NSTimeInterval)duration {
14 | CGFloat height = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey].view.frame.size.height;
15 | CIImage *maskImg = self.maskImg ? [CIImage imageWithCGImage:self.maskImg.CGImage] : [CIImage imageWithCGImage:[UIImage imageNamed:@"mask.jpg"].CGImage];
16 | CIFilter *filter = [CIFilter filterWithName: @"CIDisintegrateWithMaskTransition"
17 | keysAndValues:
18 | kCIInputMaskImageKey, maskImg,
19 | @"inputShadowRadius", @10.0,
20 | @"inputShadowDensity", @0.7,
21 | @"inputShadowOffset", [CIVector vectorWithX:0.0 Y:-0.05 * height],
22 | nil];
23 | filterView.filter = filter;
24 | [XWFilterTransitionView xw_animationWith:filterView duration:duration completion:^(BOOL finished) {
25 | [filterView removeFromSuperview];
26 | [transitionContext completeTransition:![transitionContext transitionWasCancelled]];
27 | }];
28 | }
29 |
30 | @end
31 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/MJExtension/MJExtension/MJFoundation.m:
--------------------------------------------------------------------------------
1 | //
2 | // MJFoundation.m
3 | // MJExtensionExample
4 | //
5 | // Created by MJ Lee on 14/7/16.
6 | // Copyright (c) 2014年 小码哥. All rights reserved.
7 | //
8 |
9 | #import "MJFoundation.h"
10 | #import "MJExtensionConst.h"
11 | #import
12 |
13 | static NSSet *foundationClasses_;
14 |
15 | @implementation MJFoundation
16 |
17 | + (NSSet *)foundationClasses
18 | {
19 | if (foundationClasses_ == nil) {
20 | // 集合中没有NSObject,因为几乎所有的类都是继承自NSObject,具体是不是NSObject需要特殊判断
21 | foundationClasses_ = [NSSet setWithObjects:
22 | [NSURL class],
23 | [NSDate class],
24 | [NSValue class],
25 | [NSData class],
26 | [NSError class],
27 | [NSArray class],
28 | [NSDictionary class],
29 | [NSString class],
30 | [NSAttributedString class], nil];
31 | }
32 | return foundationClasses_;
33 | }
34 |
35 | + (BOOL)isClassFromFoundation:(Class)c
36 | {
37 | if (c == [NSObject class] || c == [NSManagedObject class]) return YES;
38 |
39 | __block BOOL result = NO;
40 | [[self foundationClasses] enumerateObjectsUsingBlock:^(Class foundationClass, BOOL *stop) {
41 | if ([c isSubclassOfClass:foundationClass]) {
42 | result = YES;
43 | *stop = YES;
44 | }
45 | }];
46 | return result;
47 | }
48 | @end
49 |
--------------------------------------------------------------------------------
/LYFStoreDemo/MainVC/C/ProductDetailVC/Pay/DCPayWayCell.m:
--------------------------------------------------------------------------------
1 | //
2 | // DCPayWayCell.m
3 | // CDDStoreDemo
4 | //
5 | // Created by apple on 2017/4/9.
6 | // Copyright © 2017年 apple. All rights reserved.
7 | //
8 |
9 | #import "DCPayWayCell.h"
10 |
11 | #import "DCConsts.h"
12 |
13 | @interface DCPayWayCell()
14 |
15 | @property (nonatomic,strong) UIImageView *accessoryImageView;
16 |
17 | @end
18 |
19 | @implementation DCPayWayCell
20 |
21 | - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
22 | {
23 | self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
24 | if (self) {
25 | [self setSelectionStyle:UITableViewCellSelectionStyleNone];
26 | [self.contentView addSubview:self.accessoryImageView];
27 | self.textLabel.font = [UIFont systemFontOfSize:16];
28 | self.detailTextLabel.font = [UIFont systemFontOfSize:14];
29 | }
30 | return self;
31 | }
32 |
33 | - (UIImageView *)accessoryImageView{
34 | if (!_accessoryImageView) {
35 | _accessoryImageView=[[UIImageView alloc]initWithFrame:CGRectMake(ScreenW - 35.0, 30.0, 20.0, 20.0)];
36 | [_accessoryImageView setImage:[UIImage imageNamed:@"payWay"]];
37 | }
38 | return _accessoryImageView;
39 | }
40 |
41 |
42 | - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
43 | [super setSelected:selected animated:animated];
44 | if (selected) {
45 | [self.accessoryImageView setImage:[UIImage imageNamed:@"payWay_S"]];
46 | }else{
47 | [self.accessoryImageView setImage:[UIImage imageNamed:@"payWay"]];
48 | }
49 | }
50 |
51 |
52 | @end
53 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/SDCollectionViewCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // SDCollectionViewCell.h
3 | // SDCycleScrollView
4 | //
5 | // Created by aier on 15-3-22.
6 | // Copyright (c) 2015年 GSD. All rights reserved.
7 | //
8 |
9 | /*
10 |
11 | *********************************************************************************
12 | *
13 | * 🌟🌟🌟 新建SDCycleScrollView交流QQ群:185534916 🌟🌟🌟
14 | *
15 | * 在您使用此自动轮播库的过程中如果出现bug请及时以以下任意一种方式联系我们,我们会及时修复bug并
16 | * 帮您解决问题。
17 | * 新浪微博:GSD_iOS
18 | * Email : gsdios@126.com
19 | * GitHub: https://github.com/gsdios
20 | *
21 | * 另(我的自动布局库SDAutoLayout):
22 | * 一行代码搞定自动布局!支持Cell和Tableview高度自适应,Label和ScrollView内容自适应,致力于
23 | * 做最简单易用的AutoLayout库。
24 | * 视频教程:http://www.letv.com/ptv/vplay/24038772.html
25 | * 用法示例:https://github.com/gsdios/SDAutoLayout/blob/master/README.md
26 | * GitHub:https://github.com/gsdios/SDAutoLayout
27 | *********************************************************************************
28 |
29 | */
30 |
31 |
32 |
33 | #import
34 |
35 | @interface SDCollectionViewCell : UICollectionViewCell
36 |
37 | @property (weak, nonatomic) UIImageView *imageView;
38 | @property (copy, nonatomic) NSString *title;
39 |
40 | @property (nonatomic, strong) UIColor *titleLabelTextColor;
41 | @property (nonatomic, strong) UIFont *titleLabelTextFont;
42 | @property (nonatomic, strong) UIColor *titleLabelBackgroundColor;
43 | @property (nonatomic, assign) CGFloat titleLabelHeight;
44 |
45 | @property (nonatomic, assign) BOOL hasConfigured;
46 |
47 | /** 只展示文字轮播 */
48 | @property (nonatomic, assign) BOOL onlyDisplayText;
49 |
50 | @end
51 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/XWTransition/XWFilterAnimator/XWFilterAnimator.h:
--------------------------------------------------------------------------------
1 | //
2 | // XWFilterAnimator.h
3 | // XWTransitionDemo
4 | //
5 | // Created by wazrx on 16/6/17.
6 | // Copyright © 2016年 wazrx. All rights reserved.
7 | // XWFilterAnimator 全都是基于不同的CIFilter产生的一些滤镜效果,貌似在模拟器无法运行这些效果,请在真机上测试
8 |
9 | #import "XWTransitionAnimator.h"
10 | #import "XWFilterTransitionView.h"
11 |
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | typedef NS_ENUM(NSUInteger, XWFilterAnimatorType) {
15 | XWFilterAnimatorTypeBoxBlur,//模糊转场,对应CIBoxBlur
16 | XWFilterAnimatorTypeSwipe,//滑动过渡转场,对应CISwipeTranstion
17 | XWFilterAnimatorTypeBarSwipe,//对应CIBarSwipeTranstion
18 | XWFilterAnimatorTypeMask,//按指定遮罩图片转场,对应CIDisintegrateWithMaskTransition
19 | XWFilterAnimatorTypeFlash,//闪烁转场,对应CIFlashTransition
20 | XWFilterAnimatorTypeMod,//条纹转场 对应CIModTransition
21 | XWFilterAnimatorTypePageCurl,//翻页转场 对应CIPageCurlWithShadowTransition
22 | XWFilterAnimatorTypeRipple,//波纹转场,对应CIRippleTransition
23 | XWFilterAnimatorTypeCopyMachine, //效果和XWCoolAnimator中的Scanning效果类似,对应CICopyMachineTransition
24 | };
25 |
26 | @interface XWFilterAnimator : XWTransitionAnimator
27 |
28 | /**for XWFilterAnimatorTypeMask,如果为空,则为默认的maskImg*/
29 | @property (nonatomic, strong) UIImage *maskImg;
30 | /**是否翻转,对于有转场有方向之分的此属性可用,如果为YES,如果to转场为左,那么back转场为右,默认为YES*/
31 | @property (nonatomic, assign) BOOL revers;
32 | /**开始角度,对于有转场方向的转场此属性可用,0为左,M_PI_2 为下 M_PI 为右 M_PI_2 * 3为上,也可指定任意开始角度*/
33 | @property (nonatomic, assign) CGFloat startAngle;
34 |
35 | /**
36 | * 初始化一个filter转场效果器
37 | *
38 | * @param type 效果枚举值
39 | *
40 | * @return 效果器
41 | */
42 | + (instancetype)xw_animatorWithType:(XWFilterAnimatorType)type;
43 |
44 | @end
45 |
46 | NS_ASSUME_NONNULL_END
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/SDWebImage/SDWebImage/SDWebImageCompat.m:
--------------------------------------------------------------------------------
1 | //
2 | // SDWebImageCompat.m
3 | // SDWebImage
4 | //
5 | // Created by Olivier Poitrey on 11/12/12.
6 | // Copyright (c) 2012 Dailymotion. All rights reserved.
7 | //
8 |
9 | #import "SDWebImageCompat.h"
10 |
11 | #if !__has_feature(objc_arc)
12 | #error SDWebImage is ARC only. Either turn on ARC for the project or use -fobjc-arc flag
13 | #endif
14 |
15 | inline UIImage *SDScaledImageForKey(NSString *key, UIImage *image) {
16 | if (!image) {
17 | return nil;
18 | }
19 |
20 | if ([image.images count] > 0) {
21 | NSMutableArray *scaledImages = [NSMutableArray array];
22 |
23 | for (UIImage *tempImage in image.images) {
24 | [scaledImages addObject:SDScaledImageForKey(key, tempImage)];
25 | }
26 |
27 | return [UIImage animatedImageWithImages:scaledImages duration:image.duration];
28 | }
29 | else {
30 | if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) {
31 | CGFloat scale = 1;
32 | if (key.length >= 8) {
33 | NSRange range = [key rangeOfString:@"@2x."];
34 | if (range.location != NSNotFound) {
35 | scale = 2.0;
36 | }
37 |
38 | range = [key rangeOfString:@"@3x."];
39 | if (range.location != NSNotFound) {
40 | scale = 3.0;
41 | }
42 | }
43 |
44 | UIImage *scaledImage = [[UIImage alloc] initWithCGImage:image.CGImage scale:scale orientation:image.imageOrientation];
45 | image = scaledImage;
46 | }
47 | return image;
48 | }
49 | }
50 |
51 | NSString *const SDWebImageErrorDomain = @"SDWebImageErrorDomain";
52 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Base.lproj/Main.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Plist/ShopItemB.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | attr
7 |
8 | attrname
9 | 机身颜色
10 |
11 | list
12 |
13 |
14 | infoname
15 | 金色
16 | plusprice
17 | 0
18 |
19 |
20 | infoname
21 | 银色
22 | plusprice
23 | 0
24 |
25 |
26 |
27 |
28 | attr
29 |
30 | attrname
31 | 网络类型
32 |
33 | list
34 |
35 |
36 | infoname
37 | 4G全网通
38 | plusprice
39 | 0
40 |
41 |
42 | infoname
43 | 3G联通
44 | plusprice
45 | 0
46 |
47 |
48 | infoname
49 | 3G移动
50 | plusprice
51 | 0
52 |
53 |
54 |
55 |
56 | attr
57 |
58 | attrname
59 | 容量大小
60 |
61 | list
62 |
63 |
64 | infoname
65 | 64G
66 | plusprice
67 | 0
68 |
69 |
70 | infoname
71 | 16G
72 | plusprice
73 | 100
74 |
75 |
76 |
77 |
78 |
79 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Base.lproj/LaunchScreen.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Frameworks/MJRefresh/MJRefresh/UIView+MJExtension.m:
--------------------------------------------------------------------------------
1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh
2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000
3 | // UIView+Extension.m
4 | // MJRefreshExample
5 | //
6 | // Created by MJ Lee on 14-5-28.
7 | // Copyright (c) 2014年 小码哥. All rights reserved.
8 | //
9 |
10 | #import "UIView+MJExtension.h"
11 |
12 | @implementation UIView (MJExtension)
13 | - (void)setMj_x:(CGFloat)mj_x
14 | {
15 | CGRect frame = self.frame;
16 | frame.origin.x = mj_x;
17 | self.frame = frame;
18 | }
19 |
20 | - (CGFloat)mj_x
21 | {
22 | return self.frame.origin.x;
23 | }
24 |
25 | - (void)setMj_y:(CGFloat)mj_y
26 | {
27 | CGRect frame = self.frame;
28 | frame.origin.y = mj_y;
29 | self.frame = frame;
30 | }
31 |
32 | - (CGFloat)mj_y
33 | {
34 | return self.frame.origin.y;
35 | }
36 |
37 | - (void)setMj_w:(CGFloat)mj_w
38 | {
39 | CGRect frame = self.frame;
40 | frame.size.width = mj_w;
41 | self.frame = frame;
42 | }
43 |
44 | - (CGFloat)mj_w
45 | {
46 | return self.frame.size.width;
47 | }
48 |
49 | - (void)setMj_h:(CGFloat)mj_h
50 | {
51 | CGRect frame = self.frame;
52 | frame.size.height = mj_h;
53 | self.frame = frame;
54 | }
55 |
56 | - (CGFloat)mj_h
57 | {
58 | return self.frame.size.height;
59 | }
60 |
61 | - (void)setMj_size:(CGSize)mj_size
62 | {
63 | CGRect frame = self.frame;
64 | frame.size = mj_size;
65 | self.frame = frame;
66 | }
67 |
68 | - (CGSize)mj_size
69 | {
70 | return self.frame.size;
71 | }
72 |
73 | - (void)setMj_origin:(CGPoint)mj_origin
74 | {
75 | CGRect frame = self.frame;
76 | frame.origin = mj_origin;
77 | self.frame = frame;
78 | }
79 |
80 | - (CGPoint)mj_origin
81 | {
82 | return self.frame.origin;
83 | }
84 | @end
85 |
--------------------------------------------------------------------------------
/LYFStoreDemo/Plist/MallShops.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | goods_address
7 | 江苏 南京
8 | sale_count
9 | 222
10 | expressage
11 | 12
12 | goods_title
13 | Apple 苹果 iPhone7Plus 全网4G 5.5寸双摄像头
14 | goodspics
15 | shopImage03
16 | price
17 | 4999
18 | sales
19 | 293
20 | secondtitle
21 | 采用iOS 10系统,配置A10芯片。图像防抖功能
22 | stock
23 | 12
24 |
25 |
26 | goods_address
27 | 江苏 苏州
28 | expressage
29 | 30
30 | sale_count
31 | 123
32 | goods_title
33 | Apple 苹果 iPhone6s 全网4G 4.7寸 3D touch 1200万像素 热销机型
34 | goodspics
35 | shopImage02
36 | price
37 | 4999
38 | sales
39 | 199
40 | secondtitle
41 | 1200万像素,4.7英寸屏幕,采用64位处理器
42 | stock
43 | 20
44 |
45 |
46 | goods_address
47 | 江苏 盐城
48 | expressage
49 | 10
50 | sale_count
51 | 366
52 | goods_title
53 | Apple 苹果 iPhone7 全网4G 4.7寸 最新款
54 | goodspics
55 | shopImage01
56 | price
57 | 4999
58 | sales
59 | 427
60 | secondtitle
61 | 128G容量畅销首选!
62 | stock
63 | 600
64 |
65 |
66 |
67 |
--------------------------------------------------------------------------------