├── Podfile ├── Podfile.lock ├── Pods ├── FMDB │ ├── LICENSE.txt │ ├── README.markdown │ └── src │ │ └── fmdb │ │ ├── FMDB.h │ │ ├── FMDatabase.h │ │ ├── FMDatabase.m │ │ ├── FMDatabaseAdditions.h │ │ ├── FMDatabaseAdditions.m │ │ ├── FMDatabasePool.h │ │ ├── FMDatabasePool.m │ │ ├── FMDatabaseQueue.h │ │ ├── FMDatabaseQueue.m │ │ ├── FMResultSet.h │ │ └── FMResultSet.m ├── Headers │ ├── Private │ │ ├── FMDB │ │ │ ├── FMDB.h │ │ │ ├── FMDatabase.h │ │ │ ├── FMDatabaseAdditions.h │ │ │ ├── FMDatabasePool.h │ │ │ ├── FMDatabaseQueue.h │ │ │ └── FMResultSet.h │ │ ├── MBProgressHUD │ │ │ └── MBProgressHUD.h │ │ ├── MJExtension │ │ │ ├── MJConst.h │ │ │ ├── MJExtension.h │ │ │ ├── MJFoundation.h │ │ │ ├── MJProperty.h │ │ │ ├── MJType.h │ │ │ ├── NSObject+MJCoding.h │ │ │ ├── NSObject+MJKeyValue.h │ │ │ ├── NSObject+MJProperty.h │ │ │ └── NSString+MJExtension.h │ │ ├── MJRefresh │ │ │ ├── MJRefresh.h │ │ │ ├── MJRefreshAutoFooter.h │ │ │ ├── MJRefreshAutoGifFooter.h │ │ │ ├── MJRefreshAutoNormalFooter.h │ │ │ ├── MJRefreshAutoStateFooter.h │ │ │ ├── MJRefreshBackFooter.h │ │ │ ├── MJRefreshBackGifFooter.h │ │ │ ├── MJRefreshBackNormalFooter.h │ │ │ ├── MJRefreshBackStateFooter.h │ │ │ ├── MJRefreshComponent.h │ │ │ ├── MJRefreshConst.h │ │ │ ├── MJRefreshFooter.h │ │ │ ├── MJRefreshGifHeader.h │ │ │ ├── MJRefreshHeader.h │ │ │ ├── MJRefreshNormalHeader.h │ │ │ ├── MJRefreshStateHeader.h │ │ │ ├── UIScrollView+MJExtension.h │ │ │ ├── UIScrollView+MJRefresh.h │ │ │ └── UIView+MJExtension.h │ │ ├── Reachability │ │ │ └── Reachability.h │ │ ├── SDWebImage │ │ │ ├── NSData+ImageContentType.h │ │ │ ├── SDImageCache.h │ │ │ ├── SDWebImageCompat.h │ │ │ ├── SDWebImageDecoder.h │ │ │ ├── SDWebImageDownloader.h │ │ │ ├── SDWebImageDownloaderOperation.h │ │ │ ├── SDWebImageManager.h │ │ │ ├── SDWebImageOperation.h │ │ │ ├── SDWebImagePrefetcher.h │ │ │ ├── UIButton+WebCache.h │ │ │ ├── UIImage+GIF.h │ │ │ ├── UIImage+MultiFormat.h │ │ │ ├── UIImageView+HighlightedWebCache.h │ │ │ ├── UIImageView+WebCache.h │ │ │ └── UIView+WebCacheOperation.h │ │ └── UMengAnalytics-NO-IDFA │ │ │ └── MobClick.h │ └── Public │ │ ├── FMDB │ │ ├── FMDB.h │ │ ├── FMDatabase.h │ │ ├── FMDatabaseAdditions.h │ │ ├── FMDatabasePool.h │ │ ├── FMDatabaseQueue.h │ │ └── FMResultSet.h │ │ ├── MBProgressHUD │ │ └── MBProgressHUD.h │ │ ├── MJExtension │ │ ├── MJConst.h │ │ ├── MJExtension.h │ │ ├── MJFoundation.h │ │ ├── MJProperty.h │ │ ├── MJType.h │ │ ├── NSObject+MJCoding.h │ │ ├── NSObject+MJKeyValue.h │ │ ├── NSObject+MJProperty.h │ │ └── NSString+MJExtension.h │ │ ├── MJRefresh │ │ ├── MJRefresh.h │ │ ├── MJRefreshAutoFooter.h │ │ ├── MJRefreshAutoGifFooter.h │ │ ├── MJRefreshAutoNormalFooter.h │ │ ├── MJRefreshAutoStateFooter.h │ │ ├── MJRefreshBackFooter.h │ │ ├── MJRefreshBackGifFooter.h │ │ ├── MJRefreshBackNormalFooter.h │ │ ├── MJRefreshBackStateFooter.h │ │ ├── MJRefreshComponent.h │ │ ├── MJRefreshConst.h │ │ ├── MJRefreshFooter.h │ │ ├── MJRefreshGifHeader.h │ │ ├── MJRefreshHeader.h │ │ ├── MJRefreshNormalHeader.h │ │ ├── MJRefreshStateHeader.h │ │ ├── UIScrollView+MJExtension.h │ │ ├── UIScrollView+MJRefresh.h │ │ └── UIView+MJExtension.h │ │ ├── Reachability │ │ └── Reachability.h │ │ ├── SDWebImage │ │ ├── NSData+ImageContentType.h │ │ ├── SDImageCache.h │ │ ├── SDWebImageCompat.h │ │ ├── SDWebImageDecoder.h │ │ ├── SDWebImageDownloader.h │ │ ├── SDWebImageDownloaderOperation.h │ │ ├── SDWebImageManager.h │ │ ├── SDWebImageOperation.h │ │ ├── SDWebImagePrefetcher.h │ │ ├── UIButton+WebCache.h │ │ ├── UIImage+GIF.h │ │ ├── UIImage+MultiFormat.h │ │ ├── UIImageView+HighlightedWebCache.h │ │ ├── UIImageView+WebCache.h │ │ └── UIView+WebCacheOperation.h │ │ └── UMengAnalytics-NO-IDFA │ │ └── MobClick.h ├── MBProgressHUD │ ├── LICENSE │ ├── MBProgressHUD.h │ ├── MBProgressHUD.m │ └── README.mdown ├── MJExtension │ ├── LICENSE │ ├── MJExtension │ │ ├── MJConst.h │ │ ├── MJConst.m │ │ ├── MJExtension.h │ │ ├── MJFoundation.h │ │ ├── MJFoundation.m │ │ ├── MJProperty.h │ │ ├── MJProperty.m │ │ ├── MJType.h │ │ ├── MJType.m │ │ ├── NSObject+MJCoding.h │ │ ├── NSObject+MJCoding.m │ │ ├── NSObject+MJKeyValue.h │ │ ├── NSObject+MJKeyValue.m │ │ ├── NSObject+MJProperty.h │ │ ├── NSObject+MJProperty.m │ │ ├── NSString+MJExtension.h │ │ └── NSString+MJExtension.m │ └── README.md ├── MJRefresh │ ├── LICENSE │ ├── MJRefresh │ │ ├── Base │ │ │ ├── MJRefreshAutoFooter.h │ │ │ ├── MJRefreshAutoFooter.m │ │ │ ├── MJRefreshBackFooter.h │ │ │ ├── MJRefreshBackFooter.m │ │ │ ├── MJRefreshComponent.h │ │ │ ├── MJRefreshComponent.m │ │ │ ├── MJRefreshFooter.h │ │ │ ├── MJRefreshFooter.m │ │ │ ├── MJRefreshHeader.h │ │ │ └── MJRefreshHeader.m │ │ ├── Custom │ │ │ ├── Footer │ │ │ │ ├── Auto │ │ │ │ │ ├── MJRefreshAutoGifFooter.h │ │ │ │ │ ├── MJRefreshAutoGifFooter.m │ │ │ │ │ ├── MJRefreshAutoNormalFooter.h │ │ │ │ │ ├── MJRefreshAutoNormalFooter.m │ │ │ │ │ ├── MJRefreshAutoStateFooter.h │ │ │ │ │ └── MJRefreshAutoStateFooter.m │ │ │ │ └── Back │ │ │ │ │ ├── MJRefreshBackGifFooter.h │ │ │ │ │ ├── MJRefreshBackGifFooter.m │ │ │ │ │ ├── MJRefreshBackNormalFooter.h │ │ │ │ │ ├── MJRefreshBackNormalFooter.m │ │ │ │ │ ├── MJRefreshBackStateFooter.h │ │ │ │ │ └── MJRefreshBackStateFooter.m │ │ │ └── Header │ │ │ │ ├── MJRefreshGifHeader.h │ │ │ │ ├── MJRefreshGifHeader.m │ │ │ │ ├── MJRefreshNormalHeader.h │ │ │ │ ├── MJRefreshNormalHeader.m │ │ │ │ ├── MJRefreshStateHeader.h │ │ │ │ └── MJRefreshStateHeader.m │ │ ├── MJRefresh.bundle │ │ │ └── arrow@2x.png │ │ ├── MJRefresh.h │ │ ├── MJRefreshConst.h │ │ ├── MJRefreshConst.m │ │ ├── UIScrollView+MJExtension.h │ │ ├── UIScrollView+MJExtension.m │ │ ├── UIScrollView+MJRefresh.h │ │ ├── UIScrollView+MJRefresh.m │ │ ├── UIView+MJExtension.h │ │ └── UIView+MJExtension.m │ └── README.md ├── Manifest.lock ├── Pods.xcodeproj │ ├── project.pbxproj │ └── xcuserdata │ │ └── zhangfengyang.xcuserdatad │ │ └── xcschemes │ │ ├── FMDB.xcscheme │ │ ├── MBProgressHUD.xcscheme │ │ ├── MJExtension.xcscheme │ │ ├── MJRefresh.xcscheme │ │ ├── Pods.xcscheme │ │ ├── Reachability.xcscheme │ │ ├── SDWebImage.xcscheme │ │ └── xcschememanagement.plist ├── Reachability │ ├── LICENCE.txt │ ├── README.md │ ├── Reachability.h │ └── Reachability.m ├── SDWebImage │ ├── LICENSE │ ├── README.md │ └── SDWebImage │ │ ├── NSData+ImageContentType.h │ │ ├── NSData+ImageContentType.m │ │ ├── SDImageCache.h │ │ ├── SDImageCache.m │ │ ├── SDWebImageCompat.h │ │ ├── SDWebImageCompat.m │ │ ├── SDWebImageDecoder.h │ │ ├── SDWebImageDecoder.m │ │ ├── SDWebImageDownloader.h │ │ ├── SDWebImageDownloader.m │ │ ├── SDWebImageDownloaderOperation.h │ │ ├── SDWebImageDownloaderOperation.m │ │ ├── SDWebImageManager.h │ │ ├── SDWebImageManager.m │ │ ├── SDWebImageOperation.h │ │ ├── SDWebImagePrefetcher.h │ │ ├── SDWebImagePrefetcher.m │ │ ├── UIButton+WebCache.h │ │ ├── UIButton+WebCache.m │ │ ├── UIImage+GIF.h │ │ ├── UIImage+GIF.m │ │ ├── UIImage+MultiFormat.h │ │ ├── UIImage+MultiFormat.m │ │ ├── UIImageView+HighlightedWebCache.h │ │ ├── UIImageView+HighlightedWebCache.m │ │ ├── UIImageView+WebCache.h │ │ ├── UIImageView+WebCache.m │ │ ├── UIView+WebCacheOperation.h │ │ └── UIView+WebCacheOperation.m ├── Target Support Files │ ├── FMDB │ │ ├── FMDB-dummy.m │ │ ├── FMDB-prefix.pch │ │ └── FMDB.xcconfig │ ├── MBProgressHUD │ │ ├── MBProgressHUD-dummy.m │ │ ├── MBProgressHUD-prefix.pch │ │ └── MBProgressHUD.xcconfig │ ├── MJExtension │ │ ├── MJExtension-dummy.m │ │ ├── MJExtension-prefix.pch │ │ └── MJExtension.xcconfig │ ├── MJRefresh │ │ ├── MJRefresh-dummy.m │ │ ├── MJRefresh-prefix.pch │ │ └── MJRefresh.xcconfig │ ├── Pods │ │ ├── Pods-acknowledgements.markdown │ │ ├── Pods-acknowledgements.plist │ │ ├── Pods-dummy.m │ │ ├── Pods-frameworks.sh │ │ ├── Pods-resources.sh │ │ ├── Pods.debug.xcconfig │ │ └── Pods.release.xcconfig │ ├── Reachability │ │ ├── Reachability-dummy.m │ │ ├── Reachability-prefix.pch │ │ └── Reachability.xcconfig │ └── SDWebImage │ │ ├── SDWebImage-dummy.m │ │ ├── SDWebImage-prefix.pch │ │ └── SDWebImage.xcconfig └── UMengAnalytics-NO-IDFA │ └── umsdk_IOS_analytics_no-idfa_v3.5.9 │ └── UMAnalytics_Sdk_3.5.9 │ ├── MobClick.h │ └── libMobClickLibrary.a ├── README.md ├── cookbook.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcuserdata │ │ └── zhangfengyang.xcuserdatad │ │ └── UserInterfaceState.xcuserstate └── xcuserdata │ └── zhangfengyang.xcuserdatad │ ├── xcdebugger │ └── Breakpoints_v2.xcbkptlist │ └── xcschemes │ ├── cookbook.xcscheme │ └── xcschememanagement.plist ├── cookbook.xcworkspace ├── contents.xcworkspacedata └── xcuserdata │ └── zhangfengyang.xcuserdatad │ ├── UserInterfaceState.xcuserstate │ └── xcdebugger │ └── Breakpoints_v2.xcbkptlist ├── cookbook ├── AllVC.h ├── AllVC.m ├── AppDelegate.h ├── AppDelegate.m ├── Base.lproj │ └── LaunchScreen.xib ├── BurTableViewCell.h ├── BurTableViewCell.m ├── BurTableViewCell.xib ├── Cache.xcdatamodeld │ └── Cache.xcdatamodel │ │ └── contents ├── CalendarVC.h ├── CalendarVC.m ├── Comm.h ├── Comm.m ├── ConfigVC.h ├── ConfigVC.m ├── ConstFile.h ├── ConstFile.m ├── DetailTableViewController.h ├── DetailTableViewController.m ├── ImageAndTextTableViewCell.h ├── ImageAndTextTableViewCell.m ├── ImageAndTextTableViewCell.xib ├── Images.xcassets │ ├── 10001-1.imageset │ │ ├── 10001.png │ │ ├── 10001@2x.png │ │ └── Contents.json │ ├── 10001.imageset │ │ ├── 10001.png │ │ ├── 10001@2x.png │ │ └── Contents.json │ ├── 10002.imageset │ │ ├── 10002.png │ │ ├── 10002@2x.png │ │ └── Contents.json │ ├── 10003.imageset │ │ ├── 10003.png │ │ ├── 10003@2x.png │ │ └── Contents.json │ ├── 10004.imageset │ │ ├── 10004.png │ │ ├── 10004@2x.png │ │ └── Contents.json │ ├── 10005.imageset │ │ ├── 10005.png │ │ ├── 10005@2x.png │ │ └── Contents.json │ ├── 10006.imageset │ │ ├── 10006.png │ │ ├── 10006@2x.png │ │ └── Contents.json │ ├── 10007.imageset │ │ ├── 10007.png │ │ ├── 10007@2x.png │ │ └── Contents.json │ ├── 10008.imageset │ │ ├── 10008.png │ │ ├── 10008@2x.png │ │ └── Contents.json │ ├── 10009.imageset │ │ ├── 10009.png │ │ ├── 10009@2x.png │ │ └── Contents.json │ ├── 10010.imageset │ │ ├── 10010.png │ │ ├── 10010@2x.png │ │ └── Contents.json │ ├── 10011.imageset │ │ ├── 10011.png │ │ ├── 10011@2x.png │ │ └── Contents.json │ ├── 10012.imageset │ │ ├── 10012.png │ │ ├── 10012@2x.png │ │ └── Contents.json │ ├── 10013.imageset │ │ ├── 10013.png │ │ ├── 10013@2x.png │ │ └── Contents.json │ ├── 10014.imageset │ │ ├── 10014.png │ │ ├── 10014@2x.png │ │ └── Contents.json │ ├── 10015.imageset │ │ ├── 10015.png │ │ ├── 10015@2x.png │ │ └── Contents.json │ ├── 10016.imageset │ │ ├── 10016.png │ │ ├── 10016@2x.png │ │ └── Contents.json │ ├── 10017.imageset │ │ ├── 10017.png │ │ ├── 10017@2x.png │ │ └── Contents.json │ ├── 10018.imageset │ │ ├── 10018.png │ │ ├── 10018@2x.png │ │ └── Contents.json │ ├── 10019.imageset │ │ ├── 10019.png │ │ ├── 10019@2x.png │ │ └── Contents.json │ ├── 10020.imageset │ │ ├── 10020.png │ │ ├── 10020@2x.png │ │ └── Contents.json │ ├── 10021.imageset │ │ ├── 10021.png │ │ ├── 10021@2x.png │ │ └── Contents.json │ ├── 10022.imageset │ │ ├── 10022.png │ │ ├── 10022@2x.png │ │ └── Contents.json │ ├── 10023.imageset │ │ ├── 10023.png │ │ ├── 10023@2x.png │ │ └── Contents.json │ ├── 10024.imageset │ │ ├── 10024.png │ │ ├── 10024@2x.png │ │ └── Contents.json │ ├── 10025.imageset │ │ ├── 10025.png │ │ ├── 10025@2x.png │ │ └── Contents.json │ ├── 10026.imageset │ │ ├── 10026.png │ │ ├── 10026@2x.png │ │ └── Contents.json │ ├── 10027.imageset │ │ ├── 10027.png │ │ ├── 10027@2x.png │ │ └── Contents.json │ ├── 10028.imageset │ │ ├── 10028.png │ │ ├── 10028@2x.png │ │ └── Contents.json │ ├── AppIcon.appiconset │ │ ├── Contents.json │ │ ├── Icon-60@2x.png │ │ ├── Icon-Small-40@2x.png │ │ └── Icon-Small@2x.png │ ├── LaunchImage.launchimage │ │ ├── 640x1136.png │ │ ├── 640x960.png │ │ └── Contents.json │ ├── calendar.imageset │ │ ├── Contents.json │ │ ├── calendar.png │ │ └── calendar@2x.png │ ├── config.imageset │ │ ├── Contents.json │ │ ├── config.png │ │ └── config@2x.png │ ├── del.imageset │ │ ├── Contents.json │ │ ├── del.png │ │ └── del@2x.png │ ├── flower.imageset │ │ ├── Contents.json │ │ ├── flower.png │ │ └── flower@2x.png │ ├── home.imageset │ │ ├── Contents.json │ │ ├── home.png │ │ └── home@2x.png │ ├── light.imageset │ │ ├── Contents.json │ │ ├── light.png │ │ └── light@2x.png │ ├── tran.imageset │ │ ├── Contents.json │ │ ├── tran.png │ │ ├── tran@2x.png │ │ └── tran@3x.png │ └── xin.imageset │ │ ├── Contents.json │ │ ├── xin.png │ │ └── xin@2x.png ├── Info.plist ├── InfoCollectionViewCell.h ├── InfoCollectionViewCell.m ├── InfoCollectionViewCell.xib ├── InfoCollectionViewController.h ├── InfoCollectionViewController.m ├── JuheApisSDK │ ├── JuheApisSDK.a │ └── include │ │ └── JuheApisSDK │ │ ├── JHAPISDK.h │ │ └── JHOpenidSupplier.h ├── Main.storyboard ├── MarkVC.h ├── MarkVC.m ├── Model │ ├── InfoModel.h │ ├── InfoModel.m │ ├── TagModel.h │ └── TagModel.m ├── SearchVC.h ├── SearchVC.m ├── StepTableViewCell.h ├── StepTableViewCell.m ├── StepTableViewCell.xib ├── TagList.plist ├── ViewController.h ├── ViewController.m └── main.m └── cookbookTests ├── Info.plist └── cookbookTests.m /Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '7.0' 2 | pod "MJExtension", "~> 2.5.2" 3 | pod "SDWebImage", "~> 3.7.3" 4 | pod "MJRefresh", "~> 2.3.1" 5 | pod "MBProgressHUD", "~> 0.9.1" 6 | pod 'Reachability', '~> 3.2' 7 | pod 'FMDB', '~> 2.5' 8 | pod 'UMengAnalytics-NO-IDFA' 9 | -------------------------------------------------------------------------------- /Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - FMDB (2.5): 3 | - FMDB/standard (= 2.5) 4 | - FMDB/common (2.5) 5 | - FMDB/standard (2.5): 6 | - FMDB/common 7 | - MBProgressHUD (0.9.1) 8 | - MJExtension (2.5.2) 9 | - MJRefresh (2.3.1) 10 | - Reachability (3.2) 11 | - SDWebImage (3.7.3): 12 | - SDWebImage/Core (= 3.7.3) 13 | - SDWebImage/Core (3.7.3) 14 | - UMengAnalytics-NO-IDFA (3.5.9) 15 | 16 | DEPENDENCIES: 17 | - FMDB (~> 2.5) 18 | - MBProgressHUD (~> 0.9.1) 19 | - MJExtension (~> 2.5.2) 20 | - MJRefresh (~> 2.3.1) 21 | - Reachability (~> 3.2) 22 | - SDWebImage (~> 3.7.3) 23 | - UMengAnalytics-NO-IDFA 24 | 25 | SPEC CHECKSUMS: 26 | FMDB: 96e8f1bcc1329e269330f99770ad4285d9003e52 27 | MBProgressHUD: c47f2c166c126cf2ce36498d80f33e754d4e93ad 28 | MJExtension: 73e812aca0846e4a7b4d7aca34cfacf48d1f3310 29 | MJRefresh: fa22d5d753aaceb4e76232ce264cb2dca90b323f 30 | Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96 31 | SDWebImage: 1d2b1a1efda1ade1b00b6f8498865f8ddedc8a84 32 | UMengAnalytics-NO-IDFA: c5302a2246061c356641bb3056e89dfbdeb37424 33 | 34 | COCOAPODS: 0.39.0 35 | -------------------------------------------------------------------------------- /Pods/FMDB/LICENSE.txt: -------------------------------------------------------------------------------- 1 | If you are using FMDB in your project, I'd love to hear about it. Let Gus know 2 | by sending an email to gus@flyingmeat.com. 3 | 4 | And if you happen to come across either Gus Mueller or Rob Ryan in a bar, you 5 | might consider purchasing a drink of their choosing if FMDB has been useful to 6 | you. 7 | 8 | Finally, and shortly, this is the MIT License. 9 | 10 | Copyright (c) 2008-2014 Flying Meat Inc. 11 | 12 | Permission is hereby granted, free of charge, to any person obtaining a copy 13 | of this software and associated documentation files (the "Software"), to deal 14 | in the Software without restriction, including without limitation the rights 15 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 16 | copies of the Software, and to permit persons to whom the Software is 17 | furnished to do so, subject to the following conditions: 18 | 19 | The above copyright notice and this permission notice shall be included in 20 | all copies or substantial portions of the Software. 21 | 22 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 23 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 24 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 25 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 26 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 27 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 28 | THE SOFTWARE. -------------------------------------------------------------------------------- /Pods/FMDB/src/fmdb/FMDB.h: -------------------------------------------------------------------------------- 1 | #import "FMDatabase.h" 2 | #import "FMResultSet.h" 3 | #import "FMDatabaseAdditions.h" 4 | #import "FMDatabaseQueue.h" 5 | #import "FMDatabasePool.h" 6 | -------------------------------------------------------------------------------- /Pods/Headers/Private/FMDB/FMDB.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMDB.h -------------------------------------------------------------------------------- /Pods/Headers/Private/FMDB/FMDatabase.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMDatabase.h -------------------------------------------------------------------------------- /Pods/Headers/Private/FMDB/FMDatabaseAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMDatabaseAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Private/FMDB/FMDatabasePool.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMDatabasePool.h -------------------------------------------------------------------------------- /Pods/Headers/Private/FMDB/FMDatabaseQueue.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMDatabaseQueue.h -------------------------------------------------------------------------------- /Pods/Headers/Private/FMDB/FMResultSet.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMResultSet.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MBProgressHUD/MBProgressHUD.h: -------------------------------------------------------------------------------- 1 | ../../../MBProgressHUD/MBProgressHUD.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJExtension/MJConst.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/MJConst.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJExtension/MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/MJExtension.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJExtension/MJFoundation.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/MJFoundation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJExtension/MJProperty.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/MJProperty.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJExtension/MJType.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/MJType.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJExtension/NSObject+MJCoding.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/NSObject+MJCoding.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJExtension/NSObject+MJKeyValue.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/NSObject+MJKeyValue.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJExtension/NSObject+MJProperty.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/NSObject+MJProperty.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJExtension/NSString+MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/NSString+MJExtension.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/MJRefresh.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshAutoFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshAutoFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshAutoGifFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshAutoNormalFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshAutoStateFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshBackFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshBackFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshBackGifFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshBackNormalFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshBackStateFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshComponent.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshComponent.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshConst.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/MJRefreshConst.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshGifHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshGifHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshNormalHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshNormalHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshStateHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshStateHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/UIScrollView+MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIScrollView+MJExtension.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/UIScrollView+MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIScrollView+MJRefresh.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/UIView+MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIView+MJExtension.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Reachability/Reachability.h: -------------------------------------------------------------------------------- 1 | ../../../Reachability/Reachability.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/NSData+ImageContentType.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/NSData+ImageContentType.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDImageCache.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDImageCache.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDWebImageCompat.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageCompat.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDWebImageDecoder.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageDecoder.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDWebImageDownloader.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageDownloader.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDWebImageDownloaderOperation.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageDownloaderOperation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDWebImageManager.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageManager.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDWebImageOperation.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageOperation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDWebImagePrefetcher.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImagePrefetcher.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/UIButton+WebCache.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIButton+WebCache.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/UIImage+GIF.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIImage+GIF.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/UIImage+MultiFormat.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIImage+MultiFormat.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/UIImageView+HighlightedWebCache.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIImageView+HighlightedWebCache.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/UIImageView+WebCache.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIImageView+WebCache.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/UIView+WebCacheOperation.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIView+WebCacheOperation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/UMengAnalytics-NO-IDFA/MobClick.h: -------------------------------------------------------------------------------- 1 | ../../../UMengAnalytics-NO-IDFA/umsdk_IOS_analytics_no-idfa_v3.5.9/UMAnalytics_Sdk_3.5.9/MobClick.h -------------------------------------------------------------------------------- /Pods/Headers/Public/FMDB/FMDB.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMDB.h -------------------------------------------------------------------------------- /Pods/Headers/Public/FMDB/FMDatabase.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMDatabase.h -------------------------------------------------------------------------------- /Pods/Headers/Public/FMDB/FMDatabaseAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMDatabaseAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Public/FMDB/FMDatabasePool.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMDatabasePool.h -------------------------------------------------------------------------------- /Pods/Headers/Public/FMDB/FMDatabaseQueue.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMDatabaseQueue.h -------------------------------------------------------------------------------- /Pods/Headers/Public/FMDB/FMResultSet.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMResultSet.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MBProgressHUD/MBProgressHUD.h: -------------------------------------------------------------------------------- 1 | ../../../MBProgressHUD/MBProgressHUD.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJExtension/MJConst.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/MJConst.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJExtension/MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/MJExtension.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJExtension/MJFoundation.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/MJFoundation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJExtension/MJProperty.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/MJProperty.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJExtension/MJType.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/MJType.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJExtension/NSObject+MJCoding.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/NSObject+MJCoding.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJExtension/NSObject+MJKeyValue.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/NSObject+MJKeyValue.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJExtension/NSObject+MJProperty.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/NSObject+MJProperty.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJExtension/NSString+MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJExtension/MJExtension/NSString+MJExtension.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/MJRefresh.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshAutoFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshAutoFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshAutoGifFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshAutoNormalFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshAutoStateFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshBackFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshBackFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshBackGifFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshBackNormalFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshBackStateFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshComponent.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshComponent.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshConst.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/MJRefreshConst.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshGifHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshGifHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshNormalHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshNormalHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshStateHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshStateHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/UIScrollView+MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIScrollView+MJExtension.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/UIScrollView+MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIScrollView+MJRefresh.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/UIView+MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIView+MJExtension.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Reachability/Reachability.h: -------------------------------------------------------------------------------- 1 | ../../../Reachability/Reachability.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/NSData+ImageContentType.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/NSData+ImageContentType.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDImageCache.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDImageCache.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDWebImageCompat.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageCompat.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDWebImageDecoder.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageDecoder.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDWebImageDownloader.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageDownloader.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDWebImageDownloaderOperation.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageDownloaderOperation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDWebImageManager.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageManager.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDWebImageOperation.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageOperation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDWebImagePrefetcher.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImagePrefetcher.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/UIButton+WebCache.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIButton+WebCache.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/UIImage+GIF.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIImage+GIF.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/UIImage+MultiFormat.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIImage+MultiFormat.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/UIImageView+HighlightedWebCache.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIImageView+HighlightedWebCache.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/UIImageView+WebCache.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIImageView+WebCache.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/UIView+WebCacheOperation.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIView+WebCacheOperation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/UMengAnalytics-NO-IDFA/MobClick.h: -------------------------------------------------------------------------------- 1 | ../../../UMengAnalytics-NO-IDFA/umsdk_IOS_analytics_no-idfa_v3.5.9/UMAnalytics_Sdk_3.5.9/MobClick.h -------------------------------------------------------------------------------- /Pods/MBProgressHUD/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2009-2015 Matej Bukovinski 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. -------------------------------------------------------------------------------- /Pods/MJExtension/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013-2014 MJExtension (https://github.com/CoderMJLee/MJExtension) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Pods/MJExtension/MJExtension/MJConst.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef __MJConst__H__ 3 | #define __MJConst__H__ 4 | 5 | #import 6 | 7 | // 过期 8 | #define MJDeprecated(instead) NS_DEPRECATED(2_0, 2_0, 2_0, 2_0, instead) 9 | 10 | #ifdef DEBUG // 调试状态 11 | // 打开LOG功能 12 | #define MJLog(...) NSLog(__VA_ARGS__) 13 | #else // 发布状态 14 | // 关闭LOG功能 15 | #define MJLog(...) 16 | #endif 17 | 18 | // 构建错误 19 | #define MJBuildError(error, msg) \ 20 | if (error) *error = [NSError errorWithDomain:msg code:250 userInfo:nil]; 21 | 22 | /** 23 | * 断言 24 | * @param condition 条件 25 | * @param returnValue 返回值 26 | */ 27 | #define MJAssertError(condition, returnValue, error, msg) \ 28 | if ((condition) == NO) { \ 29 | MJBuildError(error, msg); \ 30 | return returnValue;\ 31 | } 32 | 33 | #define MJAssert2(condition, returnValue) \ 34 | if ((condition) == NO) return returnValue; 35 | 36 | /** 37 | * 断言 38 | * @param condition 条件 39 | */ 40 | #define MJAssert(condition) MJAssert2(condition, ) 41 | 42 | /** 43 | * 断言 44 | * @param param 参数 45 | * @param returnValue 返回值 46 | */ 47 | #define MJAssertParamNotNil2(param, returnValue) \ 48 | MJAssert2((param) != nil, returnValue) 49 | 50 | /** 51 | * 断言 52 | * @param param 参数 53 | */ 54 | #define MJAssertParamNotNil(param) MJAssertParamNotNil2(param, ) 55 | 56 | /** 57 | * 打印所有的属性 58 | */ 59 | #define MJLogAllIvars \ 60 | -(NSString *)description \ 61 | { \ 62 | return [self keyValues].description; \ 63 | } 64 | 65 | /** 66 | * 类型(属性类型) 67 | */ 68 | extern NSString *const MJTypeInt; 69 | extern NSString *const MJTypeShort; 70 | extern NSString *const MJTypeFloat; 71 | extern NSString *const MJTypeDouble; 72 | extern NSString *const MJTypeLong; 73 | extern NSString *const MJTypeLongLong; 74 | extern NSString *const MJTypeChar; 75 | extern NSString *const MJTypeBOOL1; 76 | extern NSString *const MJTypeBOOL2; 77 | extern NSString *const MJTypePointer; 78 | 79 | extern NSString *const MJTypeIvar; 80 | extern NSString *const MJTypeMethod; 81 | extern NSString *const MJTypeBlock; 82 | extern NSString *const MJTypeClass; 83 | extern NSString *const MJTypeSEL; 84 | extern NSString *const MJTypeId; 85 | 86 | #endif -------------------------------------------------------------------------------- /Pods/MJExtension/MJExtension/MJConst.m: -------------------------------------------------------------------------------- 1 | #ifndef __MJConst__M__ 2 | #define __MJConst__M__ 3 | 4 | #import 5 | 6 | /** 7 | * 成员变量类型(属性类型) 8 | */ 9 | NSString *const MJTypeInt = @"i"; 10 | NSString *const MJTypeShort = @"s"; 11 | NSString *const MJTypeFloat = @"f"; 12 | NSString *const MJTypeDouble = @"d"; 13 | NSString *const MJTypeLong = @"q"; 14 | NSString *const MJTypeChar = @"c"; 15 | NSString *const MJTypeBOOL1 = @"c"; 16 | NSString *const MJTypeBOOL2 = @"b"; 17 | NSString *const MJTypePointer = @"*"; 18 | 19 | NSString *const MJTypeIvar = @"^{objc_ivar=}"; 20 | NSString *const MJTypeMethod = @"^{objc_method=}"; 21 | NSString *const MJTypeBlock = @"@?"; 22 | NSString *const MJTypeClass = @"#"; 23 | NSString *const MJTypeSEL = @":"; 24 | NSString *const MJTypeId = @"@"; 25 | 26 | #endif -------------------------------------------------------------------------------- /Pods/MJExtension/MJExtension/MJExtension.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJExtension.h 3 | // MJExtension 4 | // 5 | // Created by mj on 14-1-15. 6 | // Copyright (c) 2014年 小码哥. All rights reserved. 7 | // 代码地址:https://github.com/CoderMJLee/MJExtension 8 | // 代码地址:http://code4app.com/ios/%E5%AD%97%E5%85%B8-JSON-%E4%B8%8E%E6%A8%A1%E5%9E%8B%E7%9A%84%E8%BD%AC%E6%8D%A2/5339992a933bf062608b4c57 9 | 10 | #import "NSObject+MJCoding.h" 11 | #import "NSObject+MJProperty.h" 12 | #import "NSObject+MJKeyValue.h" 13 | #import "NSString+MJExtension.h" 14 | -------------------------------------------------------------------------------- /Pods/MJExtension/MJExtension/MJFoundation.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJFoundation.h 3 | // MJExtensionExample 4 | // 5 | // Created by MJ Lee on 14/7/16. 6 | // Copyright (c) 2014年 小码哥. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MJFoundation : NSObject 12 | + (BOOL)isClassFromFoundation:(Class)c; 13 | @end 14 | -------------------------------------------------------------------------------- /Pods/MJExtension/MJExtension/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 "MJConst.h" 11 | #import 12 | 13 | static NSSet *_foundationClasses; 14 | 15 | @implementation MJFoundation 16 | 17 | + (NSSet *)foundatonClasses 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 | [NSArray class], 27 | [NSDictionary class], 28 | [NSString class], nil]; 29 | } 30 | return _foundationClasses; 31 | } 32 | 33 | + (BOOL)isClassFromFoundation:(Class)c 34 | { 35 | if (c == [NSObject class] || c == [NSManagedObject class]) return YES; 36 | 37 | __block BOOL result = NO; 38 | [[self foundatonClasses] enumerateObjectsUsingBlock:^(Class foundationClass, BOOL *stop) { 39 | if (c == foundationClass || [c isSubclassOfClass:foundationClass]) { 40 | result = YES; 41 | *stop = YES; 42 | } 43 | }]; 44 | return result; 45 | } 46 | @end 47 | -------------------------------------------------------------------------------- /Pods/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 "MJType.h" 12 | 13 | typedef enum { 14 | MJPropertyKeyTypeDictionary = 0, // 字典的key 15 | MJPropertyKeyTypeArray // 数组的key 16 | } MJPropertyKeyType; 17 | 18 | 19 | /** 20 | * 属性的key 21 | */ 22 | @interface MJPropertyKey : NSObject 23 | 24 | @property (copy, nonatomic) NSString *name; 25 | @property (assign, nonatomic) MJPropertyKeyType type; 26 | 27 | /** 28 | * 根据当前的key,也就是name,从object(字典或者数组)中取值 29 | */ 30 | - (id)valueInObject:(id)object; 31 | 32 | @end 33 | 34 | 35 | /** 36 | * 包装一个成员 37 | */ 38 | @interface MJProperty : NSObject 39 | 40 | /** 成员属性 */ 41 | @property (nonatomic, assign) objc_property_t property; 42 | /** 成员属性名 */ 43 | @property (nonatomic, readonly) NSString *name; 44 | 45 | /** 成员变量的类型 */ 46 | @property (nonatomic, readonly) MJType *type; 47 | /** 成员来源于哪个类(可能是父类) */ 48 | @property (nonatomic, assign) Class srcClass; 49 | 50 | 51 | /**** 同一个成员变量 - 父类和子类的行为可能不一致(key、keys、objectClassInArray) ****/ 52 | /** 对应着字典中的key */ 53 | - (void)setKey:(NSString *)key forClass:(Class)c; 54 | /** 对应着字典中的多级key */ 55 | - (NSArray *)propertyKeysFromClass:(Class)c; 56 | 57 | /** 模型数组中的模型类型 */ 58 | - (void)setObjectClassInArray:(Class)objectClass forClass:(Class)c; 59 | - (Class)objectClassInArrayFromClass:(Class)c; 60 | /**** 同一个成员变量 - 父类和子类的行为可能不一致(key、keys、objectClassInArray) ****/ 61 | 62 | /** 63 | * 设置成员变量的值 64 | */ 65 | - (void)setValue:(id)value forObject:(id)object; 66 | /** 67 | * 得到成员变量的值 68 | */ 69 | - (id)valueForObject:(id)object; 70 | 71 | /** 72 | * 初始化 73 | */ 74 | + (instancetype)cachedPropertyWithProperty:(objc_property_t)property; 75 | 76 | @end 77 | -------------------------------------------------------------------------------- /Pods/MJExtension/MJExtension/MJType.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJType.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 | @interface MJType : NSObject 14 | /** 类型标识符 */ 15 | @property (nonatomic, copy) NSString *code; 16 | 17 | /** 是否为id类型 */ 18 | @property (nonatomic, readonly, getter=isIdType) BOOL idType; 19 | 20 | /** 是否为基本数字类型:int、float等 */ 21 | @property (nonatomic, readonly, getter=isNumberType) BOOL numberType; 22 | 23 | /** 是否为BOOL类型 */ 24 | @property (nonatomic, readonly, getter=isBoolType) BOOL boolType; 25 | 26 | /** 对象类型(如果是基本数据类型,此值为nil) */ 27 | @property (nonatomic, readonly) Class typeClass; 28 | 29 | /** 类型是否来自于Foundation框架,比如NSString、NSArray */ 30 | @property (nonatomic, readonly, getter = isFromFoundation) BOOL fromFoundation; 31 | /** 类型是否不支持KVC */ 32 | @property (nonatomic, readonly, getter = isKVCDisabled) BOOL KVCDisabled; 33 | 34 | /** 35 | * 获得缓存的类型对象 36 | */ 37 | + (instancetype)cachedTypeWithCode:(NSString *)code; 38 | @end -------------------------------------------------------------------------------- /Pods/MJExtension/MJExtension/MJType.m: -------------------------------------------------------------------------------- 1 | // 2 | // MJType.m 3 | // MJExtension 4 | // 5 | // Created by mj on 14-1-15. 6 | // Copyright (c) 2014年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJType.h" 10 | #import "MJExtension.h" 11 | #import "MJFoundation.h" 12 | #import "MJConst.h" 13 | 14 | @implementation MJType 15 | 16 | static NSMutableDictionary *_cachedTypes; 17 | + (void)load 18 | { 19 | _cachedTypes = [NSMutableDictionary dictionary]; 20 | } 21 | 22 | + (instancetype)cachedTypeWithCode:(NSString *)code 23 | { 24 | MJAssertParamNotNil2(code, nil); 25 | 26 | MJType *type = _cachedTypes[code]; 27 | if (type == nil) { 28 | type = [[self alloc] init]; 29 | type.code = code; 30 | _cachedTypes[code] = type; 31 | } 32 | return type; 33 | } 34 | 35 | - (void)setCode:(NSString *)code 36 | { 37 | _code = code; 38 | 39 | MJAssertParamNotNil(code); 40 | 41 | if ([code isEqualToString:MJTypeId]) { 42 | _idType = YES; 43 | } else if (code.length == 0) { 44 | _KVCDisabled = YES; 45 | } else if (code.length > 3 && [code hasPrefix:@"@\""]) { 46 | // 去掉@"和",截取中间的类型名称 47 | _code = [code substringWithRange:NSMakeRange(2, code.length - 3)]; 48 | _typeClass = NSClassFromString(_code); 49 | _fromFoundation = [MJFoundation isClassFromFoundation:_typeClass]; 50 | _numberType = (_typeClass == [NSNumber class] || [_typeClass isSubclassOfClass:[NSNumber class]]); 51 | } else if ([code isEqualToString:MJTypeSEL] || 52 | [code isEqualToString:MJTypeIvar] || 53 | [code isEqualToString:MJTypeMethod]) { 54 | _KVCDisabled = YES; 55 | } 56 | 57 | // 是否为数字类型 58 | NSString *lowerCode = _code.lowercaseString; 59 | NSArray *numberTypes = @[MJTypeInt, MJTypeShort, MJTypeBOOL1, MJTypeBOOL2, MJTypeFloat, MJTypeDouble, MJTypeLong, MJTypeChar]; 60 | if ([numberTypes containsObject:lowerCode]) { 61 | _numberType = YES; 62 | 63 | if ([lowerCode isEqualToString:MJTypeBOOL1] 64 | || [lowerCode isEqualToString:MJTypeBOOL2]) { 65 | _boolType = YES; 66 | } 67 | } 68 | } 69 | @end 70 | -------------------------------------------------------------------------------- /Pods/MJExtension/MJExtension/NSObject+MJCoding.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSObject+MJCoding.h 3 | // MJExtension 4 | // 5 | // Created by mj on 14-1-15. 6 | // Copyright (c) 2014年 小码哥. All rights reserved. 7 | // 8 | 9 | #import 10 | /** 11 | * Codeing协议 12 | */ 13 | @protocol MJCoding 14 | @optional 15 | /** 16 | * 这个数组中的属性名才会进行归档 17 | */ 18 | + (NSArray *)allowedCodingPropertyNames; 19 | /** 20 | * 这个数组中的属性名将会被忽略:不进行归档 21 | */ 22 | + (NSArray *)ignoredCodingPropertyNames; 23 | @end 24 | 25 | @interface NSObject (MJCoding) 26 | /** 27 | * 解码(从文件中解析对象) 28 | */ 29 | - (void)decode:(NSCoder *)decoder; 30 | /** 31 | * 编码(将对象写入文件中) 32 | */ 33 | - (void)encode:(NSCoder *)encoder; 34 | @end 35 | 36 | /** 37 | 归档的实现 38 | */ 39 | #define MJCodingImplementation \ 40 | - (id)initWithCoder:(NSCoder *)decoder \ 41 | { \ 42 | if (self = [super init]) { \ 43 | [self decode:decoder]; \ 44 | } \ 45 | return self; \ 46 | } \ 47 | \ 48 | - (void)encodeWithCoder:(NSCoder *)encoder \ 49 | { \ 50 | [self encode:encoder]; \ 51 | } -------------------------------------------------------------------------------- /Pods/MJExtension/MJExtension/NSObject+MJCoding.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSObject+MJCoding.m 3 | // MJExtension 4 | // 5 | // Created by mj on 14-1-15. 6 | // Copyright (c) 2014年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "NSObject+MJCoding.h" 10 | #import "NSObject+MJProperty.h" 11 | #import "MJProperty.h" 12 | 13 | @implementation NSObject (MJCoding) 14 | 15 | - (void)encode:(NSCoder *)encoder 16 | { 17 | Class aClass = [self class]; 18 | 19 | NSArray *allowedCodingPropertyNames = [aClass totalAllowedCodingPropertyNames]; 20 | NSArray *ignoredCodingPropertyNames = [aClass totalIgnoredCodingPropertyNames]; 21 | 22 | [aClass enumerateProperties:^(MJProperty *property, BOOL *stop) { 23 | if (allowedCodingPropertyNames.count && ![allowedCodingPropertyNames containsObject:property.name]) return; 24 | // 检测是否被忽略 25 | if ([ignoredCodingPropertyNames containsObject:property.name]) return; 26 | 27 | id value = [property valueForObject:self]; 28 | if (value == nil) return; 29 | [encoder encodeObject:value forKey:property.name]; 30 | }]; 31 | } 32 | 33 | - (void)decode:(NSCoder *)decoder 34 | { 35 | Class aClass = [self class]; 36 | 37 | NSArray *allowedCodingPropertyNames = [aClass totalAllowedCodingPropertyNames]; 38 | NSArray *ignoredCodingPropertyNames = [aClass totalIgnoredCodingPropertyNames]; 39 | 40 | [aClass enumerateProperties:^(MJProperty *property, BOOL *stop) { 41 | if (allowedCodingPropertyNames.count && ![allowedCodingPropertyNames containsObject:property.name]) return; 42 | // 检测是否被忽略 43 | if ([ignoredCodingPropertyNames containsObject:property.name]) return; 44 | 45 | id value = [decoder decodeObjectForKey:property.name]; 46 | if (value == nil) return; 47 | [property setValue:value forObject:self]; 48 | }]; 49 | } 50 | @end 51 | -------------------------------------------------------------------------------- /Pods/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 | 11 | @interface NSString (MJExtension) 12 | /** 13 | * 驼峰转下划线(loveYou -> love_you) 14 | */ 15 | - (NSString *)underlineFromCamel; 16 | /** 17 | * 下划线转驼峰(love_you -> loveYou) 18 | */ 19 | - (NSString *)camelFromUnderline; 20 | /** 21 | * 首字母变大写 22 | */ 23 | - (NSString *)firstCharUpper; 24 | /** 25 | * 首字母变小写 26 | */ 27 | - (NSString *)firstCharLower; 28 | 29 | - (BOOL)isPureInt; 30 | @end 31 | -------------------------------------------------------------------------------- /Pods/MJExtension/MJExtension/NSString+MJExtension.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSString+MJExtension.m 3 | // MJExtensionExample 4 | // 5 | // Created by MJ Lee on 15/6/7. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "NSString+MJExtension.h" 10 | 11 | @implementation NSString (MJExtension) 12 | - (NSString *)underlineFromCamel 13 | { 14 | if (self.length == 0) return self; 15 | NSMutableString *string = [NSMutableString string]; 16 | for (NSUInteger i = 0; i= 2) [string appendString:[cmp substringFromIndex:1]]; 40 | } else { 41 | [string appendString:cmp]; 42 | } 43 | } 44 | return string; 45 | } 46 | 47 | - (NSString *)firstCharLower 48 | { 49 | if (self.length == 0) return self; 50 | NSMutableString *string = [NSMutableString string]; 51 | [string appendString:[NSString stringWithFormat:@"%c", [self characterAtIndex:0]].lowercaseString]; 52 | if (self.length >= 2) [string appendString:[self substringFromIndex:1]]; 53 | return string; 54 | } 55 | 56 | - (NSString *)firstCharUpper 57 | { 58 | if (self.length == 0) return self; 59 | NSMutableString *string = [NSMutableString string]; 60 | [string appendString:[NSString stringWithFormat:@"%c", [self characterAtIndex:0]].uppercaseString]; 61 | if (self.length >= 2) [string appendString:[self substringFromIndex:1]]; 62 | return string; 63 | } 64 | 65 | - (BOOL)isPureInt 66 | { 67 | NSScanner *scan = [NSScanner scannerWithString:self]; 68 | int val; 69 | return [scan scanInt:&val] && [scan isAtEnd]; 70 | } 71 | @end 72 | -------------------------------------------------------------------------------- /Pods/MJRefresh/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013-2015 MJRefresh (https://github.com/CoderMJLee/MJRefresh) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Base/MJRefreshAutoFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshFooter.h" 10 | 11 | @interface MJRefreshAutoFooter : MJRefreshFooter 12 | /** 是否自动刷新(默认为YES) */ 13 | @property (assign, nonatomic, getter=isAutomaticallyRefresh) BOOL automaticallyRefresh; 14 | 15 | /** 当底部控件出现多少时就自动刷新(默认为1.0,也就是底部控件完全出现时,才会自动刷新) */ 16 | @property (assign, nonatomic) CGFloat appearencePercentTriggerAutoRefresh; 17 | @end 18 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Base/MJRefreshBackFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshFooter.h" 10 | 11 | @interface MJRefreshBackFooter : MJRefreshFooter 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Base/MJRefreshComponent.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 | // MJRefreshComponent.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 15/3/4. 7 | // Copyright (c) 2015年 小码哥. All rights reserved. 8 | // 刷新控件的基类 9 | 10 | #import 11 | #import "MJRefreshConst.h" 12 | #import "UIView+MJExtension.h" 13 | #import "UIScrollView+MJExtension.h" 14 | 15 | /** 刷新控件的状态 */ 16 | typedef enum { 17 | /** 普通闲置状态 */ 18 | MJRefreshStateIdle = 1, 19 | /** 松开就可以进行刷新的状态 */ 20 | MJRefreshStatePulling, 21 | /** 正在刷新中的状态 */ 22 | MJRefreshStateRefreshing, 23 | /** 即将刷新的状态 */ 24 | MJRefreshStateWillRefresh, 25 | /** 所有数据加载完毕,没有更多的数据了 */ 26 | MJRefreshStateNoMoreData 27 | } MJRefreshState; 28 | 29 | /** 进入刷新状态的回调 */ 30 | typedef void (^MJRefreshComponentRefreshingBlock)(); 31 | 32 | /** 刷新控件的基类 */ 33 | @interface MJRefreshComponent : UIView 34 | { 35 | /** 记录scrollView刚开始的inset */ 36 | UIEdgeInsets _scrollViewOriginalInset; 37 | /** 父控件 */ 38 | __weak UIScrollView *_scrollView; 39 | } 40 | #pragma mark - 刷新回调 41 | /** 正在刷新的回调 */ 42 | @property (copy, nonatomic) MJRefreshComponentRefreshingBlock refreshingBlock; 43 | /** 设置回调对象和回调方法 */ 44 | - (void)setRefreshingTarget:(id)target refreshingAction:(SEL)action; 45 | /** 回调对象 */ 46 | @property (weak, nonatomic) id refreshingTarget; 47 | /** 回调方法 */ 48 | @property (assign, nonatomic) SEL refreshingAction; 49 | /** 触发回调(交给子类去调用) */ 50 | - (void)executeRefreshingCallback; 51 | 52 | #pragma mark - 刷新状态控制 53 | /** 进入刷新状态 */ 54 | - (void)beginRefreshing; 55 | /** 结束刷新状态 */ 56 | - (void)endRefreshing; 57 | /** 是否正在刷新 */ 58 | - (BOOL)isRefreshing; 59 | /** 刷新状态 一般交给子类内部实现 */ 60 | @property (assign, nonatomic) MJRefreshState state; 61 | 62 | #pragma mark - 交给子类去访问 63 | /** 记录scrollView刚开始的inset */ 64 | @property (assign, nonatomic, readonly) UIEdgeInsets scrollViewOriginalInset; 65 | /** 父控件 */ 66 | @property (weak, nonatomic, readonly) UIScrollView *scrollView; 67 | 68 | #pragma mark - 交给子类们去实现 69 | /** 初始化 */ 70 | - (void)prepare; 71 | /** 摆放子控件frame */ 72 | - (void)placeSubviews; 73 | /** 当scrollView的contentOffset发生改变的时候调用 */ 74 | - (void)scrollViewContentOffsetDidChange:(NSDictionary *)change; 75 | /** 当scrollView的contentSize发生改变的时候调用 */ 76 | - (void)scrollViewContentSizeDidChange:(NSDictionary *)change; 77 | /** 当scrollView的contentInset发生改变的时候调用 */ 78 | - (void)scrollViewContentInsetDidChange:(NSDictionary *)change; 79 | /** 当scrollView的拖拽状态发生改变的时候调用 */ 80 | - (void)scrollViewPanStateDidChange:(NSDictionary *)change; 81 | 82 | #pragma mark - 其他 83 | /** 拉拽的百分比(交给子类重写) */ 84 | @property (assign, nonatomic) CGFloat pullingPercent; 85 | /** 根据拖拽比例自动切换透明度 */ 86 | @property (assign, nonatomic, getter=isAutoChangeAlpha) BOOL autoChangeAlpha; 87 | @end 88 | 89 | @interface UILabel(MJRefresh) 90 | + (instancetype)label; 91 | @end 92 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Base/MJRefreshFooter.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // MJRefreshFooter.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 15/3/5. 7 | // Copyright (c) 2015年 小码哥. All rights reserved. 8 | // 上拉刷新控件 9 | 10 | #import "MJRefreshComponent.h" 11 | 12 | @interface MJRefreshFooter : MJRefreshComponent 13 | /** 创建footer */ 14 | + (instancetype)footerWithRefreshingBlock:(MJRefreshComponentRefreshingBlock)refreshingBlock; 15 | /** 创建footer */ 16 | + (instancetype)footerWithRefreshingTarget:(id)target refreshingAction:(SEL)action; 17 | 18 | /** 提示没有更多的数据 */ 19 | - (void)noticeNoMoreData; 20 | /** 重置没有更多的数据(消除没有更多数据的状态) */ 21 | - (void)resetNoMoreData; 22 | 23 | /** 忽略多少scrollView的contentInset的bottom */ 24 | @property (assign, nonatomic) CGFloat ignoredScrollViewContentInsetTop; 25 | @end 26 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Base/MJRefreshFooter.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 | // MJRefreshFooter.m 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 15/3/5. 7 | // Copyright (c) 2015年 小码哥. All rights reserved. 8 | // 9 | 10 | #import "MJRefreshFooter.h" 11 | 12 | @interface MJRefreshFooter() 13 | 14 | @end 15 | 16 | @implementation MJRefreshFooter 17 | #pragma mark - 构造方法 18 | + (instancetype)footerWithRefreshingBlock:(MJRefreshComponentRefreshingBlock)refreshingBlock 19 | { 20 | MJRefreshFooter *cmp = [[self alloc] init]; 21 | cmp.refreshingBlock = refreshingBlock; 22 | return cmp; 23 | } 24 | + (instancetype)footerWithRefreshingTarget:(id)target refreshingAction:(SEL)action 25 | { 26 | MJRefreshFooter *cmp = [[self alloc] init]; 27 | [cmp setRefreshingTarget:target refreshingAction:action]; 28 | return cmp; 29 | } 30 | 31 | #pragma mark - 重写父类的方法 32 | - (void)prepare 33 | { 34 | [super prepare]; 35 | 36 | // 设置自己的高度 37 | self.mj_h = MJRefreshFooterHeight; 38 | } 39 | 40 | #pragma mark - 公共方法 41 | - (void)noticeNoMoreData 42 | { 43 | self.state = MJRefreshStateNoMoreData; 44 | } 45 | 46 | - (void)resetNoMoreData 47 | { 48 | self.state = MJRefreshStateIdle; 49 | } 50 | @end 51 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Base/MJRefreshHeader.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // MJRefreshHeader.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 15/3/4. 7 | // Copyright (c) 2015年 小码哥. All rights reserved. 8 | // 下拉刷新控件:负责监控用户下拉的状态 9 | 10 | #import "MJRefreshComponent.h" 11 | 12 | @interface MJRefreshHeader : MJRefreshComponent 13 | /** 创建header */ 14 | + (instancetype)headerWithRefreshingBlock:(MJRefreshComponentRefreshingBlock)refreshingBlock; 15 | /** 创建header */ 16 | + (instancetype)headerWithRefreshingTarget:(id)target refreshingAction:(SEL)action; 17 | 18 | /** 这个key用来存储上一次下拉刷新成功的时间 */ 19 | @property (copy, nonatomic) NSString *lastUpdatedTimeKey; 20 | /** 上一次下拉刷新成功的时间 */ 21 | @property (strong, nonatomic, readonly) NSDate *lastUpdatedTime; 22 | 23 | /** 忽略多少scrollView的contentInset的top */ 24 | @property (assign, nonatomic) CGFloat ignoredScrollViewContentInsetTop; 25 | @end 26 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoGifFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshAutoStateFooter.h" 10 | 11 | @interface MJRefreshAutoGifFooter : MJRefreshAutoStateFooter 12 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 13 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 14 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoNormalFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshAutoStateFooter.h" 10 | 11 | @interface MJRefreshAutoNormalFooter : MJRefreshAutoStateFooter 12 | /** 菊花的样式 */ 13 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle; 14 | @end 15 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.m: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoNormalFooter.m 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshAutoNormalFooter.h" 10 | 11 | @interface MJRefreshAutoNormalFooter() 12 | @property (weak, nonatomic) UIActivityIndicatorView *loadingView; 13 | @end 14 | 15 | @implementation MJRefreshAutoNormalFooter 16 | #pragma mark - 懒加载子控件 17 | - (UIActivityIndicatorView *)loadingView 18 | { 19 | if (!_loadingView) { 20 | UIActivityIndicatorView *loadingView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:self.activityIndicatorViewStyle]; 21 | loadingView.hidesWhenStopped = YES; 22 | [self addSubview:_loadingView = loadingView]; 23 | } 24 | return _loadingView; 25 | } 26 | 27 | - (void)setActivityIndicatorViewStyle:(UIActivityIndicatorViewStyle)activityIndicatorViewStyle 28 | { 29 | _activityIndicatorViewStyle = activityIndicatorViewStyle; 30 | 31 | self.loadingView = nil; 32 | [self setNeedsLayout]; 33 | } 34 | #pragma makr - 重写父类的方法 35 | - (void)prepare 36 | { 37 | [super prepare]; 38 | 39 | self.activityIndicatorViewStyle = UIActivityIndicatorViewStyleGray; 40 | } 41 | 42 | - (void)placeSubviews 43 | { 44 | [super placeSubviews]; 45 | 46 | // 圈圈 47 | CGFloat arrowCenterX = self.mj_w * 0.5; 48 | if (!self.isRefreshingTitleHidden) { 49 | arrowCenterX -= 100; 50 | } 51 | CGFloat arrowCenterY = self.mj_h * 0.5; 52 | self.loadingView.center = CGPointMake(arrowCenterX, arrowCenterY); 53 | } 54 | 55 | - (void)setState:(MJRefreshState)state 56 | { 57 | MJRefreshCheckState 58 | 59 | // 根据状态做事情 60 | if (state == MJRefreshStateNoMoreData || state == MJRefreshStateIdle) { 61 | [self.loadingView stopAnimating]; 62 | } else if (state == MJRefreshStateRefreshing) { 63 | [self.loadingView startAnimating]; 64 | } 65 | } 66 | 67 | @end 68 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoStateFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/6/13. 6 | // Copyright © 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshAutoFooter.h" 10 | 11 | @interface MJRefreshAutoStateFooter : MJRefreshAutoFooter 12 | /** 显示刷新状态的label */ 13 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 14 | 15 | /** 设置state状态下的文字 */ 16 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 17 | 18 | /** 隐藏刷新状态的文字 */ 19 | @property (assign, nonatomic, getter=isRefreshingTitleHidden) BOOL refreshingTitleHidden; 20 | @end 21 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.m: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoStateFooter.m 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/6/13. 6 | // Copyright © 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshAutoStateFooter.h" 10 | 11 | @interface MJRefreshAutoStateFooter() 12 | { 13 | /** 显示刷新状态的label */ 14 | __weak UILabel *_stateLabel; 15 | } 16 | /** 所有状态对应的文字 */ 17 | @property (strong, nonatomic) NSMutableDictionary *stateTitles; 18 | @end 19 | 20 | @implementation MJRefreshAutoStateFooter 21 | #pragma mark - 懒加载 22 | - (NSMutableDictionary *)stateTitles 23 | { 24 | if (!_stateTitles) { 25 | self.stateTitles = [NSMutableDictionary dictionary]; 26 | } 27 | return _stateTitles; 28 | } 29 | 30 | - (UILabel *)stateLabel 31 | { 32 | if (!_stateLabel) { 33 | [self addSubview:_stateLabel = [UILabel label]]; 34 | } 35 | return _stateLabel; 36 | } 37 | 38 | #pragma mark - 公共方法 39 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state 40 | { 41 | if (title == nil) return; 42 | self.stateTitles[@(state)] = title; 43 | self.stateLabel.text = self.stateTitles[@(self.state)]; 44 | } 45 | 46 | #pragma mark - 私有方法 47 | - (void)stateLabelClick 48 | { 49 | if (self.state == MJRefreshStateIdle) { 50 | [self beginRefreshing]; 51 | } 52 | } 53 | 54 | #pragma mark - 重写父类的方法 55 | - (void)prepare 56 | { 57 | [super prepare]; 58 | 59 | // 初始化文字 60 | [self setTitle:MJRefreshAutoFooterIdleText forState:MJRefreshStateIdle]; 61 | [self setTitle:MJRefreshAutoFooterRefreshingText forState:MJRefreshStateRefreshing]; 62 | [self setTitle:MJRefreshAutoFooterNoMoreDataText forState:MJRefreshStateNoMoreData]; 63 | 64 | // 监听label 65 | self.stateLabel.userInteractionEnabled = YES; 66 | [self.stateLabel addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(stateLabelClick)]]; 67 | } 68 | 69 | - (void)placeSubviews 70 | { 71 | [super placeSubviews]; 72 | 73 | // 状态标签 74 | self.stateLabel.frame = self.bounds; 75 | } 76 | 77 | - (void)setState:(MJRefreshState)state 78 | { 79 | MJRefreshCheckState 80 | 81 | if (self.isRefreshingTitleHidden && state == MJRefreshStateRefreshing) { 82 | self.stateLabel.text = nil; 83 | } else { 84 | self.stateLabel.text = self.stateTitles[@(state)]; 85 | } 86 | } 87 | @end -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackGifFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshBackStateFooter.h" 10 | 11 | @interface MJRefreshBackGifFooter : MJRefreshBackStateFooter 12 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 13 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 14 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackNormalFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshBackStateFooter.h" 10 | 11 | @interface MJRefreshBackNormalFooter : MJRefreshBackStateFooter 12 | @property (weak, nonatomic, readonly) UIImageView *arrowView; 13 | /** 菊花的样式 */ 14 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle; 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackStateFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/6/13. 6 | // Copyright © 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshBackFooter.h" 10 | 11 | @interface MJRefreshBackStateFooter : MJRefreshBackFooter 12 | /** 显示刷新状态的label */ 13 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 14 | /** 设置state状态下的文字 */ 15 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 16 | @end 17 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.m: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackStateFooter.m 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/6/13. 6 | // Copyright © 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshBackStateFooter.h" 10 | 11 | @interface MJRefreshBackStateFooter() 12 | { 13 | /** 显示刷新状态的label */ 14 | __weak UILabel *_stateLabel; 15 | } 16 | /** 所有状态对应的文字 */ 17 | @property (strong, nonatomic) NSMutableDictionary *stateTitles; 18 | @end 19 | 20 | @implementation MJRefreshBackStateFooter 21 | #pragma mark - 懒加载 22 | - (NSMutableDictionary *)stateTitles 23 | { 24 | if (!_stateTitles) { 25 | self.stateTitles = [NSMutableDictionary dictionary]; 26 | } 27 | return _stateTitles; 28 | } 29 | 30 | - (UILabel *)stateLabel 31 | { 32 | if (!_stateLabel) { 33 | [self addSubview:_stateLabel = [UILabel label]]; 34 | } 35 | return _stateLabel; 36 | } 37 | 38 | #pragma mark - 公共方法 39 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state 40 | { 41 | if (title == nil) return; 42 | self.stateTitles[@(state)] = title; 43 | self.stateLabel.text = self.stateTitles[@(self.state)]; 44 | } 45 | 46 | #pragma mark - 重写父类的方法 47 | - (void)prepare 48 | { 49 | [super prepare]; 50 | 51 | // 初始化文字 52 | [self setTitle:MJRefreshBackFooterIdleText forState:MJRefreshStateIdle]; 53 | [self setTitle:MJRefreshBackFooterPullingText forState:MJRefreshStatePulling]; 54 | [self setTitle:MJRefreshBackFooterRefreshingText forState:MJRefreshStateRefreshing]; 55 | [self setTitle:MJRefreshBackFooterNoMoreDataText forState:MJRefreshStateNoMoreData]; 56 | } 57 | 58 | - (void)placeSubviews 59 | { 60 | [super placeSubviews]; 61 | 62 | // 状态标签 63 | self.stateLabel.frame = self.bounds; 64 | } 65 | 66 | - (void)setState:(MJRefreshState)state 67 | { 68 | MJRefreshCheckState 69 | 70 | // 设置状态文字 71 | self.stateLabel.text = self.stateTitles[@(state)]; 72 | } 73 | @end 74 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshGifHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshGifHeader.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshStateHeader.h" 10 | 11 | @interface MJRefreshGifHeader : MJRefreshStateHeader 12 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 13 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 14 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshNormalHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshNormalHeader.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshStateHeader.h" 10 | 11 | @interface MJRefreshNormalHeader : MJRefreshStateHeader 12 | @property (weak, nonatomic, readonly) UIImageView *arrowView; 13 | /** 菊花的样式 */ 14 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle; 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshStateHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshStateHeader.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshHeader.h" 10 | 11 | @interface MJRefreshStateHeader : MJRefreshHeader 12 | #pragma mark - 刷新时间相关 13 | /** 利用这个block来决定显示的更新时间文字 */ 14 | @property (copy, nonatomic) NSString *(^lastUpdatedTimeText)(NSDate *lastUpdatedTime); 15 | /** 显示上一次刷新时间的label */ 16 | @property (weak, nonatomic, readonly) UILabel *lastUpdatedTimeLabel; 17 | 18 | #pragma mark - 状态相关 19 | /** 显示刷新状态的label */ 20 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 21 | /** 设置state状态下的文字 */ 22 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 23 | @end 24 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/arrow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/arrow@2x.png -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | 4 | #import "UIScrollView+MJRefresh.h" 5 | #import "UIScrollView+MJExtension.h" 6 | #import "UIView+MJExtension.h" 7 | 8 | #import "MJRefreshNormalHeader.h" 9 | #import "MJRefreshGifHeader.h" 10 | 11 | #import "MJRefreshBackNormalFooter.h" 12 | #import "MJRefreshBackGifFooter.h" 13 | #import "MJRefreshAutoNormalFooter.h" 14 | #import "MJRefreshAutoGifFooter.h" -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefreshConst.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 | #import 4 | #import 5 | 6 | // 日志输出 7 | #ifdef DEBUG 8 | #define MJRefreshLog(...) NSLog(__VA_ARGS__) 9 | #else 10 | #define MJRefreshLog(...) 11 | #endif 12 | 13 | // 过期提醒 14 | #define MJRefreshDeprecated(instead) NS_DEPRECATED(2_0, 2_0, 2_0, 2_0, instead) 15 | 16 | // 运行时objc_MJRefreshMsgSend 17 | #define MJRefreshMsgSend(...) ((void (*)(void *, SEL, UIView *))objc_msgSend)(__VA_ARGS__) 18 | #define MJRefreshMsgTarget(target) (__bridge void *)(target) 19 | 20 | // RGB颜色 21 | #define MJRefreshColor(r, g, b) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:1.0] 22 | 23 | // 文字颜色 24 | #define MJRefreshLabelTextColor MJRefreshColor(90, 90, 90) 25 | 26 | // 字体大小 27 | #define MJRefreshLabelFont [UIFont boldSystemFontOfSize:14] 28 | 29 | // 图片路径 30 | #define MJRefreshSrcName(file) [@"MJRefresh.bundle" stringByAppendingPathComponent:file] 31 | 32 | // 常量 33 | UIKIT_EXTERN const CGFloat MJRefreshHeaderHeight; 34 | UIKIT_EXTERN const CGFloat MJRefreshFooterHeight; 35 | UIKIT_EXTERN const CGFloat MJRefreshFastAnimationDuration; 36 | UIKIT_EXTERN const CGFloat MJRefreshSlowAnimationDuration; 37 | 38 | UIKIT_EXTERN NSString *const MJRefreshKeyPathContentOffset; 39 | UIKIT_EXTERN NSString *const MJRefreshKeyPathContentSize; 40 | UIKIT_EXTERN NSString *const MJRefreshKeyPathContentInset; 41 | UIKIT_EXTERN NSString *const MJRefreshKeyPathPanState; 42 | 43 | UIKIT_EXTERN NSString *const MJRefreshHeaderLastUpdatedTimeKey; 44 | 45 | UIKIT_EXTERN NSString *const MJRefreshHeaderIdleText; 46 | UIKIT_EXTERN NSString *const MJRefreshHeaderPullingText; 47 | UIKIT_EXTERN NSString *const MJRefreshHeaderRefreshingText; 48 | 49 | UIKIT_EXTERN NSString *const MJRefreshAutoFooterIdleText; 50 | UIKIT_EXTERN NSString *const MJRefreshAutoFooterRefreshingText; 51 | UIKIT_EXTERN NSString *const MJRefreshAutoFooterNoMoreDataText; 52 | 53 | UIKIT_EXTERN NSString *const MJRefreshBackFooterIdleText; 54 | UIKIT_EXTERN NSString *const MJRefreshBackFooterPullingText; 55 | UIKIT_EXTERN NSString *const MJRefreshBackFooterRefreshingText; 56 | UIKIT_EXTERN NSString *const MJRefreshBackFooterNoMoreDataText; 57 | 58 | // 状态检查 59 | #define MJRefreshCheckState \ 60 | MJRefreshState oldState = self.state; \ 61 | if (state == oldState) return; \ 62 | [super setState:state]; 63 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefreshConst.m: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | #import 4 | 5 | const CGFloat MJRefreshHeaderHeight = 54.0; 6 | const CGFloat MJRefreshFooterHeight = 44.0; 7 | const CGFloat MJRefreshFastAnimationDuration = 0.25; 8 | const CGFloat MJRefreshSlowAnimationDuration = 0.4; 9 | 10 | NSString *const MJRefreshKeyPathContentOffset = @"contentOffset"; 11 | NSString *const MJRefreshKeyPathContentInset = @"contentInset"; 12 | NSString *const MJRefreshKeyPathContentSize = @"contentSize"; 13 | NSString *const MJRefreshKeyPathPanState = @"state"; 14 | 15 | NSString *const MJRefreshHeaderLastUpdatedTimeKey = @"MJRefreshHeaderLastUpdatedTimeKey"; 16 | 17 | NSString *const MJRefreshHeaderIdleText = @"下拉可以刷新"; 18 | NSString *const MJRefreshHeaderPullingText = @"松开立即刷新"; 19 | NSString *const MJRefreshHeaderRefreshingText = @"正在刷新数据中..."; 20 | 21 | NSString *const MJRefreshAutoFooterIdleText = @"点击或上拉加载更多"; 22 | NSString *const MJRefreshAutoFooterRefreshingText = @"正在加载更多的数据..."; 23 | NSString *const MJRefreshAutoFooterNoMoreDataText = @"已经全部加载完毕"; 24 | 25 | NSString *const MJRefreshBackFooterIdleText = @"上拉可以加载更多"; 26 | NSString *const MJRefreshBackFooterPullingText = @"松开立即加载更多"; 27 | NSString *const MJRefreshBackFooterRefreshingText = @"正在加载更多的数据..."; 28 | NSString *const MJRefreshBackFooterNoMoreDataText = @"已经全部加载完毕"; -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/UIScrollView+MJExtension.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // UIScrollView+Extension.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 14-5-28. 7 | // Copyright (c) 2014年 小码哥. All rights reserved. 8 | // 9 | 10 | #import 11 | 12 | @interface UIScrollView (MJExtension) 13 | @property (assign, nonatomic) CGFloat mj_insetT; 14 | @property (assign, nonatomic) CGFloat mj_insetB; 15 | @property (assign, nonatomic) CGFloat mj_insetL; 16 | @property (assign, nonatomic) CGFloat mj_insetR; 17 | 18 | @property (assign, nonatomic) CGFloat mj_offsetX; 19 | @property (assign, nonatomic) CGFloat mj_offsetY; 20 | 21 | @property (assign, nonatomic) CGFloat mj_contentW; 22 | @property (assign, nonatomic) CGFloat mj_contentH; 23 | @end 24 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/UIScrollView+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 | // UIScrollView+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 "UIScrollView+MJExtension.h" 11 | #import 12 | 13 | @implementation UIScrollView (MJExtension) 14 | 15 | - (void)setMj_insetT:(CGFloat)mj_insetT 16 | { 17 | UIEdgeInsets inset = self.contentInset; 18 | inset.top = mj_insetT; 19 | self.contentInset = inset; 20 | } 21 | 22 | - (CGFloat)mj_insetT 23 | { 24 | return self.contentInset.top; 25 | } 26 | 27 | - (void)setMj_insetB:(CGFloat)mj_insetB 28 | { 29 | UIEdgeInsets inset = self.contentInset; 30 | inset.bottom = mj_insetB; 31 | self.contentInset = inset; 32 | } 33 | 34 | - (CGFloat)mj_insetB 35 | { 36 | return self.contentInset.bottom; 37 | } 38 | 39 | - (void)setMj_insetL:(CGFloat)mj_insetL 40 | { 41 | UIEdgeInsets inset = self.contentInset; 42 | inset.left = mj_insetL; 43 | self.contentInset = inset; 44 | } 45 | 46 | - (CGFloat)mj_insetL 47 | { 48 | return self.contentInset.left; 49 | } 50 | 51 | - (void)setMj_insetR:(CGFloat)mj_insetR 52 | { 53 | UIEdgeInsets inset = self.contentInset; 54 | inset.right = mj_insetR; 55 | self.contentInset = inset; 56 | } 57 | 58 | - (CGFloat)mj_insetR 59 | { 60 | return self.contentInset.right; 61 | } 62 | 63 | - (void)setMj_offsetX:(CGFloat)mj_offsetX 64 | { 65 | CGPoint offset = self.contentOffset; 66 | offset.x = mj_offsetX; 67 | self.contentOffset = offset; 68 | } 69 | 70 | - (CGFloat)mj_offsetX 71 | { 72 | return self.contentOffset.x; 73 | } 74 | 75 | - (void)setMj_offsetY:(CGFloat)mj_offsetY 76 | { 77 | CGPoint offset = self.contentOffset; 78 | offset.y = mj_offsetY; 79 | self.contentOffset = offset; 80 | } 81 | 82 | - (CGFloat)mj_offsetY 83 | { 84 | return self.contentOffset.y; 85 | } 86 | 87 | - (void)setMj_contentW:(CGFloat)mj_contentW 88 | { 89 | CGSize size = self.contentSize; 90 | size.width = mj_contentW; 91 | self.contentSize = size; 92 | } 93 | 94 | - (CGFloat)mj_contentW 95 | { 96 | return self.contentSize.width; 97 | } 98 | 99 | - (void)setMj_contentH:(CGFloat)mj_contentH 100 | { 101 | CGSize size = self.contentSize; 102 | size.height = mj_contentH; 103 | self.contentSize = size; 104 | } 105 | 106 | - (CGFloat)mj_contentH 107 | { 108 | return self.contentSize.height; 109 | } 110 | @end 111 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/UIScrollView+MJRefresh.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // UIScrollView+MJRefresh.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 15/3/4. 7 | // Copyright (c) 2015年 小码哥. All rights reserved. 8 | // 给ScrollView增加下拉刷新、上拉刷新的功能 9 | 10 | #import 11 | 12 | @class MJRefreshHeader, MJRefreshFooter; 13 | 14 | @interface UIScrollView (MJRefresh) 15 | /** 下拉刷新控件 */ 16 | @property (strong, nonatomic) MJRefreshHeader *header; 17 | /** 上拉刷新控件 */ 18 | @property (strong, nonatomic) MJRefreshFooter *footer; 19 | @end 20 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/UIScrollView+MJRefresh.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 | // UIScrollView+MJRefresh.m 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 15/3/4. 7 | // Copyright (c) 2015年 小码哥. All rights reserved. 8 | // 9 | 10 | #import "UIScrollView+MJRefresh.h" 11 | #import "MJRefreshHeader.h" 12 | #import "MJRefreshFooter.h" 13 | #import 14 | 15 | @implementation UIScrollView (MJRefresh) 16 | 17 | #pragma mark - header 18 | static const char MJRefreshHeaderKey = '\0'; 19 | - (void)setHeader:(MJRefreshHeader *)header 20 | { 21 | if (header != self.header) { 22 | // 删除旧的,添加新的 23 | [self.header removeFromSuperview]; 24 | [self addSubview:header]; 25 | 26 | // 存储新的 27 | [self willChangeValueForKey:@"header"]; // KVO 28 | objc_setAssociatedObject(self, &MJRefreshHeaderKey, 29 | header, OBJC_ASSOCIATION_ASSIGN); 30 | [self didChangeValueForKey:@"header"]; // KVO 31 | } 32 | } 33 | 34 | - (MJRefreshHeader *)header 35 | { 36 | return objc_getAssociatedObject(self, &MJRefreshHeaderKey); 37 | } 38 | 39 | #pragma mark - footer 40 | static const char MJRefreshFooterKey = '\0'; 41 | - (void)setFooter:(MJRefreshFooter *)footer 42 | { 43 | if (footer != self.footer) { 44 | // 删除旧的,添加新的 45 | [self.footer removeFromSuperview]; 46 | [self addSubview:footer]; 47 | 48 | // 存储新的 49 | [self willChangeValueForKey:@"footer"]; // KVO 50 | objc_setAssociatedObject(self, &MJRefreshFooterKey, 51 | footer, OBJC_ASSOCIATION_ASSIGN); 52 | [self didChangeValueForKey:@"footer"]; // KVO 53 | } 54 | } 55 | 56 | - (MJRefreshFooter *)footer 57 | { 58 | return objc_getAssociatedObject(self, &MJRefreshFooterKey); 59 | } 60 | @end 61 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/UIView+MJExtension.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // UIView+Extension.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 14-5-28. 7 | // Copyright (c) 2014年 小码哥. All rights reserved. 8 | // 9 | 10 | #import 11 | 12 | @interface UIView (MJExtension) 13 | @property (assign, nonatomic) CGFloat mj_x; 14 | @property (assign, nonatomic) CGFloat mj_y; 15 | @property (assign, nonatomic) CGFloat mj_w; 16 | @property (assign, nonatomic) CGFloat mj_h; 17 | @property (assign, nonatomic) CGSize mj_size; 18 | @property (assign, nonatomic) CGPoint mj_origin; 19 | @end 20 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/UIView+MJExtension.m: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // UIView+Extension.m 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 14-5-28. 7 | // Copyright (c) 2014年 小码哥. All rights reserved. 8 | // 9 | 10 | #import "UIView+MJExtension.h" 11 | 12 | @implementation UIView (MJExtension) 13 | - (void)setMj_x:(CGFloat)mj_x 14 | { 15 | CGRect frame = self.frame; 16 | frame.origin.x = mj_x; 17 | self.frame = frame; 18 | } 19 | 20 | - (CGFloat)mj_x 21 | { 22 | return self.frame.origin.x; 23 | } 24 | 25 | - (void)setMj_y:(CGFloat)mj_y 26 | { 27 | CGRect frame = self.frame; 28 | frame.origin.y = mj_y; 29 | self.frame = frame; 30 | } 31 | 32 | - (CGFloat)mj_y 33 | { 34 | return self.frame.origin.y; 35 | } 36 | 37 | - (void)setMj_w:(CGFloat)mj_w 38 | { 39 | CGRect frame = self.frame; 40 | frame.size.width = mj_w; 41 | self.frame = frame; 42 | } 43 | 44 | - (CGFloat)mj_w 45 | { 46 | return self.frame.size.width; 47 | } 48 | 49 | - (void)setMj_h:(CGFloat)mj_h 50 | { 51 | CGRect frame = self.frame; 52 | frame.size.height = mj_h; 53 | self.frame = frame; 54 | } 55 | 56 | - (CGFloat)mj_h 57 | { 58 | return self.frame.size.height; 59 | } 60 | 61 | - (void)setMj_size:(CGSize)mj_size 62 | { 63 | CGRect frame = self.frame; 64 | frame.size = mj_size; 65 | self.frame = frame; 66 | } 67 | 68 | - (CGSize)mj_size 69 | { 70 | return self.frame.size; 71 | } 72 | 73 | - (void)setMj_origin:(CGPoint)mj_origin 74 | { 75 | CGRect frame = self.frame; 76 | frame.origin = mj_origin; 77 | self.frame = frame; 78 | } 79 | 80 | - (CGPoint)mj_origin 81 | { 82 | return self.frame.origin; 83 | } 84 | @end 85 | -------------------------------------------------------------------------------- /Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - FMDB (2.5): 3 | - FMDB/standard (= 2.5) 4 | - FMDB/common (2.5) 5 | - FMDB/standard (2.5): 6 | - FMDB/common 7 | - MBProgressHUD (0.9.1) 8 | - MJExtension (2.5.2) 9 | - MJRefresh (2.3.1) 10 | - Reachability (3.2) 11 | - SDWebImage (3.7.3): 12 | - SDWebImage/Core (= 3.7.3) 13 | - SDWebImage/Core (3.7.3) 14 | - UMengAnalytics-NO-IDFA (3.5.9) 15 | 16 | DEPENDENCIES: 17 | - FMDB (~> 2.5) 18 | - MBProgressHUD (~> 0.9.1) 19 | - MJExtension (~> 2.5.2) 20 | - MJRefresh (~> 2.3.1) 21 | - Reachability (~> 3.2) 22 | - SDWebImage (~> 3.7.3) 23 | - UMengAnalytics-NO-IDFA 24 | 25 | SPEC CHECKSUMS: 26 | FMDB: 96e8f1bcc1329e269330f99770ad4285d9003e52 27 | MBProgressHUD: c47f2c166c126cf2ce36498d80f33e754d4e93ad 28 | MJExtension: 73e812aca0846e4a7b4d7aca34cfacf48d1f3310 29 | MJRefresh: fa22d5d753aaceb4e76232ce264cb2dca90b323f 30 | Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96 31 | SDWebImage: 1d2b1a1efda1ade1b00b6f8498865f8ddedc8a84 32 | UMengAnalytics-NO-IDFA: c5302a2246061c356641bb3056e89dfbdeb37424 33 | 34 | COCOAPODS: 0.39.0 35 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/zhangfengyang.xcuserdatad/xcschemes/FMDB.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/zhangfengyang.xcuserdatad/xcschemes/MBProgressHUD.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/zhangfengyang.xcuserdatad/xcschemes/MJExtension.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/zhangfengyang.xcuserdatad/xcschemes/MJRefresh.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/zhangfengyang.xcuserdatad/xcschemes/Pods.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/zhangfengyang.xcuserdatad/xcschemes/Reachability.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/zhangfengyang.xcuserdatad/xcschemes/SDWebImage.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/zhangfengyang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | FMDB.xcscheme 8 | 9 | isShown 10 | 11 | 12 | MBProgressHUD.xcscheme 13 | 14 | isShown 15 | 16 | 17 | MJExtension.xcscheme 18 | 19 | isShown 20 | 21 | 22 | MJRefresh.xcscheme 23 | 24 | isShown 25 | 26 | 27 | Pods.xcscheme 28 | 29 | isShown 30 | 31 | 32 | Reachability.xcscheme 33 | 34 | isShown 35 | 36 | 37 | SDWebImage.xcscheme 38 | 39 | isShown 40 | 41 | 42 | 43 | SuppressBuildableAutocreation 44 | 45 | 10D30E966B08F1D6C05657EE78BDA84B 46 | 47 | primary 48 | 49 | 50 | 63246C052002EE17F4E8D8B6FAAB0679 51 | 52 | primary 53 | 54 | 55 | 8F74D9EA91F4C43190670066BAC37D44 56 | 57 | primary 58 | 59 | 60 | 9F12FB4A63E20F601CFB2E64A65B57C1 61 | 62 | primary 63 | 64 | 65 | D6BB1D25E2B9AD1D8FA7EAD20B23024C 66 | 67 | primary 68 | 69 | 70 | FD4DA5B7F954E53CDD518FFF4419A0C1 71 | 72 | primary 73 | 74 | 75 | FE2F1D7B9D9FCEA148517E4657B243F4 76 | 77 | primary 78 | 79 | 80 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /Pods/Reachability/LICENCE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011-2013, Tony Million. 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | 1. Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | 2. Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 15 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 18 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 19 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 20 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 21 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 22 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 23 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 24 | POSSIBILITY OF SUCH DAMAGE. 25 | -------------------------------------------------------------------------------- /Pods/Reachability/README.md: -------------------------------------------------------------------------------- 1 | [![Reference Status](https://www.versioneye.com/objective-c/reachability/reference_badge.svg?style=flat)](https://www.versioneye.com/objective-c/reachability/references) 2 | 3 | # Reachability 4 | 5 | This is a drop-in replacement for Apple's `Reachability` class. It is ARC-compatible, and it uses the new GCD methods to notify of network interface changes. 6 | 7 | In addition to the standard `NSNotification`, it supports the use of blocks for when the network becomes reachable and unreachable. 8 | 9 | Finally, you can specify whether a WWAN connection is considered "reachable". 10 | 11 | *DO NOT OPEN BUGS UNTIL YOU HAVE TESTED ON DEVICE* 12 | 13 | ## Requirements 14 | 15 | Once you have added the `.h/m` files to your project, simply: 16 | 17 | * Go to the `Project->TARGETS->Build Phases->Link Binary With Libraries`. 18 | * Press the plus in the lower left of the list. 19 | * Add `SystemConfiguration.framework`. 20 | 21 | Boom, you're done. 22 | 23 | ## Examples 24 | 25 | ### Block Example 26 | 27 | This sample uses blocks to notify when the interface state has changed. The blocks will be called on a **BACKGROUND THREAD**, so you need to dispatch UI updates onto the main thread. 28 | 29 | // Allocate a reachability object 30 | Reachability* reach = [Reachability reachabilityWithHostname:@"www.google.com"]; 31 | 32 | // Set the blocks 33 | reach.reachableBlock = ^(Reachability*reach) 34 | { 35 | // keep in mind this is called on a background thread 36 | // and if you are updating the UI it needs to happen 37 | // on the main thread, like this: 38 | 39 | dispatch_async(dispatch_get_main_queue(), ^{ 40 | NSLog(@"REACHABLE!"); 41 | }); 42 | }; 43 | 44 | reach.unreachableBlock = ^(Reachability*reach) 45 | { 46 | NSLog(@"UNREACHABLE!"); 47 | }; 48 | 49 | // Start the notifier, which will cause the reachability object to retain itself! 50 | [reach startNotifier]; 51 | 52 | ### `NSNotification` Example 53 | 54 | This sample will use `NSNotification`s to notify when the interface has changed. They will be delivered on the **MAIN THREAD**, so you *can* do UI updates from within the function. 55 | 56 | In addition, it asks the `Reachability` object to consider the WWAN (3G/EDGE/CDMA) as a non-reachable connection (you might use this if you are writing a video streaming app, for example, to save the user's data plan). 57 | 58 | // Allocate a reachability object 59 | Reachability* reach = [Reachability reachabilityWithHostname:@"www.google.com"]; 60 | 61 | // Tell the reachability that we DON'T want to be reachable on 3G/EDGE/CDMA 62 | reach.reachableOnWWAN = NO; 63 | 64 | // Here we set up a NSNotification observer. The Reachability that caused the notification 65 | // is passed in the object parameter 66 | [[NSNotificationCenter defaultCenter] addObserver:self 67 | selector:@selector(reachabilityChanged:) 68 | name:kReachabilityChangedNotification 69 | object:nil]; 70 | 71 | [reach startNotifier]; 72 | 73 | ## Tell the world 74 | 75 | Head over to [Projects using Reachability](https://github.com/tonymillion/Reachability/wiki/Projects-using-Reachability) and add your project for "Maximum Wins!". 76 | -------------------------------------------------------------------------------- /Pods/SDWebImage/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2009 Olivier Poitrey 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is furnished 8 | to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | 21 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/NSData+ImageContentType.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Fabrice Aneche on 06/01/14. 3 | // Copyright (c) 2014 Dailymotion. All rights reserved. 4 | // 5 | 6 | #import 7 | 8 | @interface NSData (ImageContentType) 9 | 10 | /** 11 | * Compute the content type for an image data 12 | * 13 | * @param data the input data 14 | * 15 | * @return the content type as string (i.e. image/jpeg, image/gif) 16 | */ 17 | + (NSString *)sd_contentTypeForImageData:(NSData *)data; 18 | 19 | @end 20 | 21 | 22 | @interface NSData (ImageContentTypeDeprecated) 23 | 24 | + (NSString *)contentTypeForImageData:(NSData *)data __deprecated_msg("Use `sd_contentTypeForImageData:`"); 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/NSData+ImageContentType.m: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Fabrice Aneche on 06/01/14. 3 | // Copyright (c) 2014 Dailymotion. All rights reserved. 4 | // 5 | 6 | #import "NSData+ImageContentType.h" 7 | 8 | 9 | @implementation NSData (ImageContentType) 10 | 11 | + (NSString *)sd_contentTypeForImageData:(NSData *)data { 12 | uint8_t c; 13 | [data getBytes:&c length:1]; 14 | switch (c) { 15 | case 0xFF: 16 | return @"image/jpeg"; 17 | case 0x89: 18 | return @"image/png"; 19 | case 0x47: 20 | return @"image/gif"; 21 | case 0x49: 22 | case 0x4D: 23 | return @"image/tiff"; 24 | case 0x52: 25 | // R as RIFF for WEBP 26 | if ([data length] < 12) { 27 | return nil; 28 | } 29 | 30 | NSString *testString = [[NSString alloc] initWithData:[data subdataWithRange:NSMakeRange(0, 12)] encoding:NSASCIIStringEncoding]; 31 | if ([testString hasPrefix:@"RIFF"] && [testString hasSuffix:@"WEBP"]) { 32 | return @"image/webp"; 33 | } 34 | 35 | return nil; 36 | } 37 | return nil; 38 | } 39 | 40 | @end 41 | 42 | 43 | @implementation NSData (ImageContentTypeDeprecated) 44 | 45 | + (NSString *)contentTypeForImageData:(NSData *)data { 46 | return [self sd_contentTypeForImageData:data]; 47 | } 48 | 49 | @end 50 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/SDWebImageCompat.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * (c) Jamie Pinkham 5 | * 6 | * For the full copyright and license information, please view the LICENSE 7 | * file that was distributed with this source code. 8 | */ 9 | 10 | #import 11 | 12 | #ifdef __OBJC_GC__ 13 | #error SDWebImage does not support Objective-C Garbage Collection 14 | #endif 15 | 16 | #if __IPHONE_OS_VERSION_MIN_REQUIRED != 20000 && __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_5_0 17 | #error SDWebImage doesn't support Deployement Target version < 5.0 18 | #endif 19 | 20 | #if !TARGET_OS_IPHONE 21 | #import 22 | #ifndef UIImage 23 | #define UIImage NSImage 24 | #endif 25 | #ifndef UIImageView 26 | #define UIImageView NSImageView 27 | #endif 28 | #else 29 | 30 | #import 31 | 32 | #endif 33 | 34 | #ifndef NS_ENUM 35 | #define NS_ENUM(_type, _name) enum _name : _type _name; enum _name : _type 36 | #endif 37 | 38 | #ifndef NS_OPTIONS 39 | #define NS_OPTIONS(_type, _name) enum _name : _type _name; enum _name : _type 40 | #endif 41 | 42 | #if OS_OBJECT_USE_OBJC 43 | #undef SDDispatchQueueRelease 44 | #undef SDDispatchQueueSetterSementics 45 | #define SDDispatchQueueRelease(q) 46 | #define SDDispatchQueueSetterSementics strong 47 | #else 48 | #undef SDDispatchQueueRelease 49 | #undef SDDispatchQueueSetterSementics 50 | #define SDDispatchQueueRelease(q) (dispatch_release(q)) 51 | #define SDDispatchQueueSetterSementics assign 52 | #endif 53 | 54 | extern UIImage *SDScaledImageForKey(NSString *key, UIImage *image); 55 | 56 | typedef void(^SDWebImageNoParamsBlock)(); 57 | 58 | extern NSString *const SDWebImageErrorDomain; 59 | 60 | #define dispatch_main_sync_safe(block)\ 61 | if ([NSThread isMainThread]) {\ 62 | block();\ 63 | } else {\ 64 | dispatch_sync(dispatch_get_main_queue(), block);\ 65 | } 66 | 67 | #define dispatch_main_async_safe(block)\ 68 | if ([NSThread isMainThread]) {\ 69 | block();\ 70 | } else {\ 71 | dispatch_async(dispatch_get_main_queue(), block);\ 72 | } 73 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/SDWebImageCompat.m: -------------------------------------------------------------------------------- 1 | // 2 | // SDWebImageCompat.m 3 | // SDWebImage 4 | // 5 | // Created by Olivier Poitrey on 11/12/12. 6 | // Copyright (c) 2012 Dailymotion. All rights reserved. 7 | // 8 | 9 | #import "SDWebImageCompat.h" 10 | 11 | #if !__has_feature(objc_arc) 12 | #error SDWebImage is ARC only. Either turn on ARC for the project or use -fobjc-arc flag 13 | #endif 14 | 15 | inline UIImage *SDScaledImageForKey(NSString *key, UIImage *image) { 16 | if (!image) { 17 | return nil; 18 | } 19 | 20 | if ([image.images count] > 0) { 21 | NSMutableArray *scaledImages = [NSMutableArray array]; 22 | 23 | for (UIImage *tempImage in image.images) { 24 | [scaledImages addObject:SDScaledImageForKey(key, tempImage)]; 25 | } 26 | 27 | return [UIImage animatedImageWithImages:scaledImages duration:image.duration]; 28 | } 29 | else { 30 | if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) { 31 | CGFloat scale = 1.0; 32 | if (key.length >= 8) { 33 | NSRange range = [key rangeOfString:@"@2x."]; 34 | if (range.location != NSNotFound) { 35 | scale = 2.0; 36 | } 37 | 38 | range = [key rangeOfString:@"@3x."]; 39 | if (range.location != NSNotFound) { 40 | scale = 3.0; 41 | } 42 | } 43 | 44 | UIImage *scaledImage = [[UIImage alloc] initWithCGImage:image.CGImage scale:scale orientation:image.imageOrientation]; 45 | image = scaledImage; 46 | } 47 | return image; 48 | } 49 | } 50 | 51 | NSString *const SDWebImageErrorDomain = @"SDWebImageErrorDomain"; 52 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/SDWebImageDecoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * Created by james on 9/28/11. 6 | * 7 | * For the full copyright and license information, please view the LICENSE 8 | * file that was distributed with this source code. 9 | */ 10 | 11 | #import 12 | #import "SDWebImageCompat.h" 13 | 14 | @interface UIImage (ForceDecode) 15 | 16 | + (UIImage *)decodedImageWithImage:(UIImage *)image; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/SDWebImageDecoder.m: -------------------------------------------------------------------------------- 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 "SDWebImageDecoder.h" 12 | 13 | @implementation UIImage (ForceDecode) 14 | 15 | + (UIImage *)decodedImageWithImage:(UIImage *)image { 16 | if (image.images) { 17 | // Do not decode animated images 18 | return image; 19 | } 20 | 21 | CGImageRef imageRef = image.CGImage; 22 | CGSize imageSize = CGSizeMake(CGImageGetWidth(imageRef), CGImageGetHeight(imageRef)); 23 | CGRect imageRect = (CGRect){.origin = CGPointZero, .size = imageSize}; 24 | 25 | CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); 26 | CGBitmapInfo bitmapInfo = CGImageGetBitmapInfo(imageRef); 27 | 28 | int infoMask = (bitmapInfo & kCGBitmapAlphaInfoMask); 29 | BOOL anyNonAlpha = (infoMask == kCGImageAlphaNone || 30 | infoMask == kCGImageAlphaNoneSkipFirst || 31 | infoMask == kCGImageAlphaNoneSkipLast); 32 | 33 | // CGBitmapContextCreate doesn't support kCGImageAlphaNone with RGB. 34 | // https://developer.apple.com/library/mac/#qa/qa1037/_index.html 35 | if (infoMask == kCGImageAlphaNone && CGColorSpaceGetNumberOfComponents(colorSpace) > 1) { 36 | // Unset the old alpha info. 37 | bitmapInfo &= ~kCGBitmapAlphaInfoMask; 38 | 39 | // Set noneSkipFirst. 40 | bitmapInfo |= kCGImageAlphaNoneSkipFirst; 41 | } 42 | // Some PNGs tell us they have alpha but only 3 components. Odd. 43 | else if (!anyNonAlpha && CGColorSpaceGetNumberOfComponents(colorSpace) == 3) { 44 | // Unset the old alpha info. 45 | bitmapInfo &= ~kCGBitmapAlphaInfoMask; 46 | bitmapInfo |= kCGImageAlphaPremultipliedFirst; 47 | } 48 | 49 | // It calculates the bytes-per-row based on the bitsPerComponent and width arguments. 50 | CGContextRef context = CGBitmapContextCreate(NULL, 51 | imageSize.width, 52 | imageSize.height, 53 | CGImageGetBitsPerComponent(imageRef), 54 | 0, 55 | colorSpace, 56 | bitmapInfo); 57 | CGColorSpaceRelease(colorSpace); 58 | 59 | // If failed, return undecompressed image 60 | if (!context) return image; 61 | 62 | CGContextDrawImage(context, imageRect, imageRef); 63 | CGImageRef decompressedImageRef = CGBitmapContextCreateImage(context); 64 | 65 | CGContextRelease(context); 66 | 67 | UIImage *decompressedImage = [UIImage imageWithCGImage:decompressedImageRef scale:image.scale orientation:image.imageOrientation]; 68 | CGImageRelease(decompressedImageRef); 69 | return decompressedImage; 70 | } 71 | 72 | @end 73 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/SDWebImageOperation.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import 10 | 11 | @protocol SDWebImageOperation 12 | 13 | - (void)cancel; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/UIImage+GIF.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+GIF.h 3 | // LBGIFImage 4 | // 5 | // Created by Laurin Brandner on 06.01.12. 6 | // Copyright (c) 2012 __MyCompanyName__. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIImage (GIF) 12 | 13 | + (UIImage *)sd_animatedGIFNamed:(NSString *)name; 14 | 15 | + (UIImage *)sd_animatedGIFWithData:(NSData *)data; 16 | 17 | - (UIImage *)sd_animatedImageByScalingAndCroppingToSize:(CGSize)size; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/UIImage+MultiFormat.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+MultiFormat.h 3 | // SDWebImage 4 | // 5 | // Created by Olivier Poitrey on 07/06/13. 6 | // Copyright (c) 2013 Dailymotion. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIImage (MultiFormat) 12 | 13 | + (UIImage *)sd_imageWithData:(NSData *)data; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/UIView+WebCacheOperation.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import 10 | #import "SDWebImageManager.h" 11 | 12 | @interface UIView (WebCacheOperation) 13 | 14 | /** 15 | * Set the image load operation (storage in a UIView based dictionary) 16 | * 17 | * @param operation the operation 18 | * @param key key for storing the operation 19 | */ 20 | - (void)sd_setImageLoadOperation:(id)operation forKey:(NSString *)key; 21 | 22 | /** 23 | * Cancel all operations for the current UIView and key 24 | * 25 | * @param key key for identifying the operations 26 | */ 27 | - (void)sd_cancelImageLoadOperationWithKey:(NSString *)key; 28 | 29 | /** 30 | * Just remove the operations corresponding to the current UIView and key without cancelling them 31 | * 32 | * @param key key for identifying the operations 33 | */ 34 | - (void)sd_removeImageLoadOperationWithKey:(NSString *)key; 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/UIView+WebCacheOperation.m: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import "UIView+WebCacheOperation.h" 10 | #import "objc/runtime.h" 11 | 12 | static char loadOperationKey; 13 | 14 | @implementation UIView (WebCacheOperation) 15 | 16 | - (NSMutableDictionary *)operationDictionary { 17 | NSMutableDictionary *operations = objc_getAssociatedObject(self, &loadOperationKey); 18 | if (operations) { 19 | return operations; 20 | } 21 | operations = [NSMutableDictionary dictionary]; 22 | objc_setAssociatedObject(self, &loadOperationKey, operations, OBJC_ASSOCIATION_RETAIN_NONATOMIC); 23 | return operations; 24 | } 25 | 26 | - (void)sd_setImageLoadOperation:(id)operation forKey:(NSString *)key { 27 | [self sd_cancelImageLoadOperationWithKey:key]; 28 | NSMutableDictionary *operationDictionary = [self operationDictionary]; 29 | [operationDictionary setObject:operation forKey:key]; 30 | } 31 | 32 | - (void)sd_cancelImageLoadOperationWithKey:(NSString *)key { 33 | // Cancel in progress downloader from queue 34 | NSMutableDictionary *operationDictionary = [self operationDictionary]; 35 | id operations = [operationDictionary objectForKey:key]; 36 | if (operations) { 37 | if ([operations isKindOfClass:[NSArray class]]) { 38 | for (id operation in operations) { 39 | if (operation) { 40 | [operation cancel]; 41 | } 42 | } 43 | } else if ([operations conformsToProtocol:@protocol(SDWebImageOperation)]){ 44 | [(id) operations cancel]; 45 | } 46 | [operationDictionary removeObjectForKey:key]; 47 | } 48 | } 49 | 50 | - (void)sd_removeImageLoadOperationWithKey:(NSString *)key { 51 | NSMutableDictionary *operationDictionary = [self operationDictionary]; 52 | [operationDictionary removeObjectForKey:key]; 53 | } 54 | 55 | @end 56 | -------------------------------------------------------------------------------- /Pods/Target Support Files/FMDB/FMDB-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_FMDB : NSObject 3 | @end 4 | @implementation PodsDummy_FMDB 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/FMDB/FMDB-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/FMDB/FMDB.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/FMDB" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/FMDB" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJExtension" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/UMengAnalytics-NO-IDFA" 3 | OTHER_LDFLAGS = -l"sqlite3" 4 | PODS_ROOT = ${SRCROOT} 5 | SKIP_INSTALL = YES -------------------------------------------------------------------------------- /Pods/Target Support Files/MBProgressHUD/MBProgressHUD-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_MBProgressHUD : NSObject 3 | @end 4 | @implementation PodsDummy_MBProgressHUD 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MBProgressHUD/MBProgressHUD-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MBProgressHUD/MBProgressHUD.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MBProgressHUD" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/FMDB" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJExtension" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/UMengAnalytics-NO-IDFA" 3 | OTHER_LDFLAGS = -framework "CoreGraphics" 4 | PODS_ROOT = ${SRCROOT} 5 | SKIP_INSTALL = YES -------------------------------------------------------------------------------- /Pods/Target Support Files/MJExtension/MJExtension-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_MJExtension : NSObject 3 | @end 4 | @implementation PodsDummy_MJExtension 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJExtension/MJExtension-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJExtension/MJExtension.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MJExtension" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/FMDB" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJExtension" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/UMengAnalytics-NO-IDFA" 3 | PODS_ROOT = ${SRCROOT} 4 | SKIP_INSTALL = YES -------------------------------------------------------------------------------- /Pods/Target Support Files/MJRefresh/MJRefresh-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_MJRefresh : NSObject 3 | @end 4 | @implementation PodsDummy_MJRefresh 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJRefresh/MJRefresh-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJRefresh/MJRefresh.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MJRefresh" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/FMDB" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJExtension" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/UMengAnalytics-NO-IDFA" 3 | PODS_ROOT = ${SRCROOT} 4 | SKIP_INSTALL = YES -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods/Pods-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods : NSObject 3 | @end 4 | @implementation PodsDummy_Pods 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods/Pods.debug.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/FMDB" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJExtension" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/UMengAnalytics-NO-IDFA" 3 | LIBRARY_SEARCH_PATHS = "$(PODS_ROOT)/UMengAnalytics-NO-IDFA/**" 4 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/FMDB" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/MJExtension" -isystem "${PODS_ROOT}/Headers/Public/MJRefresh" -isystem "${PODS_ROOT}/Headers/Public/Reachability" -isystem "${PODS_ROOT}/Headers/Public/SDWebImage" -isystem "${PODS_ROOT}/Headers/Public/UMengAnalytics-NO-IDFA" 5 | OTHER_LDFLAGS = $(inherited) -ObjC -l"FMDB" -l"MBProgressHUD" -l"MJExtension" -l"MJRefresh" -l"MobClickLibrary" -l"Reachability" -l"SDWebImage" -l"sqlite3" -l"z" -framework "CoreGraphics" -framework "ImageIO" -framework "SystemConfiguration" 6 | PODS_ROOT = ${SRCROOT}/Pods -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods/Pods.release.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/FMDB" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJExtension" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/UMengAnalytics-NO-IDFA" 3 | LIBRARY_SEARCH_PATHS = "$(PODS_ROOT)/UMengAnalytics-NO-IDFA/**" 4 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/FMDB" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/MJExtension" -isystem "${PODS_ROOT}/Headers/Public/MJRefresh" -isystem "${PODS_ROOT}/Headers/Public/Reachability" -isystem "${PODS_ROOT}/Headers/Public/SDWebImage" -isystem "${PODS_ROOT}/Headers/Public/UMengAnalytics-NO-IDFA" 5 | OTHER_LDFLAGS = $(inherited) -ObjC -l"FMDB" -l"MBProgressHUD" -l"MJExtension" -l"MJRefresh" -l"MobClickLibrary" -l"Reachability" -l"SDWebImage" -l"sqlite3" -l"z" -framework "CoreGraphics" -framework "ImageIO" -framework "SystemConfiguration" 6 | PODS_ROOT = ${SRCROOT}/Pods -------------------------------------------------------------------------------- /Pods/Target Support Files/Reachability/Reachability-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Reachability : NSObject 3 | @end 4 | @implementation PodsDummy_Reachability 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Reachability/Reachability-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Reachability/Reachability.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Reachability" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/FMDB" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJExtension" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/UMengAnalytics-NO-IDFA" 3 | OTHER_LDFLAGS = -framework "SystemConfiguration" 4 | PODS_ROOT = ${SRCROOT} 5 | SKIP_INSTALL = YES -------------------------------------------------------------------------------- /Pods/Target Support Files/SDWebImage/SDWebImage-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_SDWebImage : NSObject 3 | @end 4 | @implementation PodsDummy_SDWebImage 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDWebImage/SDWebImage-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDWebImage/SDWebImage.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/SDWebImage" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/FMDB" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJExtension" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/UMengAnalytics-NO-IDFA" 3 | OTHER_LDFLAGS = -framework "ImageIO" 4 | PODS_ROOT = ${SRCROOT} 5 | SKIP_INSTALL = YES -------------------------------------------------------------------------------- /Pods/UMengAnalytics-NO-IDFA/umsdk_IOS_analytics_no-idfa_v3.5.9/UMAnalytics_Sdk_3.5.9/libMobClickLibrary.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/Pods/UMengAnalytics-NO-IDFA/umsdk_IOS_analytics_no-idfa_v3.5.9/UMAnalytics_Sdk_3.5.9/libMobClickLibrary.a -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # cookbook 2 | 菜谱大师--厨房小帮手 作者是 ZhangFengyang 3 | 4 | 点击此处进入AppStore查看应用(原先的开发者账户已停用,所以目前无法从商店下载到) 5 | 6 | ### 概要 7 | 捕捉一茶一饭的光辉
8 | 定格有滋有味的幸福
9 | 菜谱大师为您提供全方面的菜谱,在这里您可以根据不同的分类下找到适合您的菜谱。 10 | ### 功能: 11 | 1. 提供二十几种分类菜谱,总有一种是您想要的; 12 | 2. 能够根据您的的食材,调料等为您列出可以做的美食; 13 | 3. 您可以收藏您喜爱的美食到“我的收藏”中,以备下次快捷地查看制作该美食的方法; 14 | 4. 提供搜索记录与浏览记录支持,再也不会忘记之前搜索的关键字了; 15 | 5. 提供优质的缓存功能,只要是您在联网的情况下看过的,那么下次查看的时候不需要任何网络流量,您可以在任何时候任何地点,没网也能制作美食。 16 | 17 | -------------------------------------------------------------------------------- /cookbook.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /cookbook.xcodeproj/project.xcworkspace/xcuserdata/zhangfengyang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook.xcodeproj/project.xcworkspace/xcuserdata/zhangfengyang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /cookbook.xcodeproj/xcuserdata/zhangfengyang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 8 | 20 | 21 | 22 | 24 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /cookbook.xcodeproj/xcuserdata/zhangfengyang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | cookbook.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 9F452A971B774DBF003202B3 16 | 17 | primary 18 | 19 | 20 | 9F452AB01B774DBF003202B3 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /cookbook.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /cookbook.xcworkspace/xcuserdata/zhangfengyang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook.xcworkspace/xcuserdata/zhangfengyang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /cookbook/AllVC.h: -------------------------------------------------------------------------------- 1 | // 2 | // AllVC.h 3 | // cookbook 4 | // 5 | // Created by 张逢阳 on 15/8/9. 6 | // Copyright (c) 2015年 张逢阳. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AllVC : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /cookbook/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // cookbook 4 | // 5 | // Created by 张逢阳 on 15/8/9. 6 | // Copyright (c) 2015年 张逢阳. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /cookbook/BurTableViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // BurTableViewCell.h 3 | // cookbook 4 | // 5 | // Created by 张逢阳 on 15/8/13. 6 | // Copyright (c) 2015年 张逢阳. All rights reserved. 7 | // 8 | 9 | #import 10 | /** 材料Cell*/ 11 | @interface BurTableViewCell : UITableViewCell 12 | @property (weak, nonatomic) IBOutlet UILabel *name_1; 13 | @property (weak, nonatomic) IBOutlet UILabel *value_1; 14 | @property (weak, nonatomic) IBOutlet UILabel *name_2; 15 | @property (weak, nonatomic) IBOutlet UILabel *value_2; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /cookbook/BurTableViewCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // BurTableViewCell.m 3 | // cookbook 4 | // 5 | // Created by 张逢阳 on 15/8/13. 6 | // Copyright (c) 2015年 张逢阳. All rights reserved. 7 | // 8 | 9 | #import "BurTableViewCell.h" 10 | 11 | @implementation BurTableViewCell 12 | 13 | - (void)awakeFromNib { 14 | // Initialization code 15 | } 16 | 17 | - (void)setSelected:(BOOL)selected animated:(BOOL)animated { 18 | [super setSelected:selected animated:animated]; 19 | 20 | // Configure the view for the selected state 21 | } 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /cookbook/Cache.xcdatamodeld/Cache.xcdatamodel/contents: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /cookbook/CalendarVC.h: -------------------------------------------------------------------------------- 1 | // 2 | // CalendarVC.h 3 | // cookbook 4 | // 5 | // Created by 张逢阳 on 15/8/9. 6 | // Copyright (c) 2015年 张逢阳. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface CalendarVC : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /cookbook/Comm.h: -------------------------------------------------------------------------------- 1 | // 2 | // Comm.h 3 | // cookbook 4 | // 5 | // Created by 张逢阳 on 15/8/21. 6 | // Copyright (c) 2015年 张逢阳. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "InfoModel.h" 11 | @interface Comm : NSObject 12 | 13 | +(Comm*)sharedInstance; 14 | 15 | /** 判断是否此URL已经有缓存*/ 16 | +(BOOL)urlContains:(NSString *) url; 17 | 18 | /** 根据url及数据设置缓存*/ 19 | +(BOOL)setCacheWithUrl:(NSString*)url :(NSArray *)infoModelArray; 20 | 21 | /** 根据url取缓存数据*/ 22 | +(NSArray *)getCacheWithUrl:(NSString *)url; 23 | 24 | /** 根据菜的ID获取该菜的步骤缓存数据*/ 25 | +(NSArray *)getStepsCacheWithCookId:(NSString *)cookId; 26 | 27 | /** 设置浏览记录*/ 28 | +(BOOL)setCacheWithInfoModel:(InfoModel*)infoModel; 29 | 30 | /** 获取历史浏览记录*/ 31 | +(NSArray *)getHistoryCache; 32 | 33 | /** 根据菜谱ID删除浏览记录*/ 34 | +(BOOL)deleteHistoryWithCookId:(NSString*)cookId; 35 | @end 36 | -------------------------------------------------------------------------------- /cookbook/ConfigVC.h: -------------------------------------------------------------------------------- 1 | // 2 | // ConfigVC.h 3 | // cookbook 4 | // 5 | // Created by 张逢阳 on 15/8/9. 6 | // Copyright (c) 2015年 张逢阳. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ConfigVC : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /cookbook/ConfigVC.m: -------------------------------------------------------------------------------- 1 | // 2 | // ConfigVC.m 3 | // cookbook 4 | // 5 | // Created by 张逢阳 on 15/8/9. 6 | // Copyright (c) 2015年 张逢阳. All rights reserved. 7 | // 8 | 9 | #import "ConfigVC.h" 10 | 11 | @interface ConfigVC () 12 | 13 | @end 14 | 15 | @implementation ConfigVC 16 | 17 | - (void)viewDidLoad { 18 | [super viewDidLoad]; 19 | // Do any additional setup after loading the view. 20 | [self setTitle:@"设置"]; 21 | } 22 | 23 | - (void)didReceiveMemoryWarning { 24 | [super didReceiveMemoryWarning]; 25 | // Dispose of any resources that can be recreated. 26 | } 27 | 28 | /* 29 | #pragma mark - Navigation 30 | 31 | // In a storyboard-based application, you will often want to do a little preparation before navigation 32 | - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 33 | // Get the new view controller using [segue destinationViewController]. 34 | // Pass the selected object to the new view controller. 35 | } 36 | */ 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /cookbook/ConstFile.h: -------------------------------------------------------------------------------- 1 | // 2 | // ConstFile.h 3 | // cookbook 4 | // 5 | // Created by 张逢阳 on 15/8/9. 6 | // Copyright (c) 2015年 张逢阳. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | #import 12 | #import 13 | #import 14 | 15 | extern NSString * OpenID; 16 | extern NSString * APPID; 17 | extern NSString * Method_Get; 18 | extern NSString * Method_Post; 19 | extern NSMutableArray * SearchArray; 20 | extern NSMutableArray * favSource;//收藏数据,离线,存放NSData 21 | extern NSMutableArray * favModels;//收藏数据,存放对象,程序在所有操作中都使用此对象,只有存档时使用NSData 22 | extern UIImage * defaultImage; 23 | 24 | 25 | extern FMDatabase * db;//数据库 26 | //API 27 | //菜谱大全e 28 | extern NSString * API_query;//http://apis.juhe.cn/cook/query.php 29 | //查看菜谱的所有分类,如菜系、口味等 30 | extern NSString * API_category; //http://apis.juhe.cn/cook/category 31 | //按标签检索菜谱 32 | extern NSString * API_queryByTag;//http://apis.juhe.cn/cook/index 33 | //按菜谱ID查看详细 34 | extern NSString * API_queryByID;//http://apis.juhe.cn/cook/queryid 35 | 36 | 37 | #ifdef DEBUG 38 | #define NSLog(...) NSLog(__VA_ARGS__) 39 | #else 40 | #define NSLog(...) 41 | #endif 42 | 43 | #define ALERT_MESSAGE(msg) {\ 44 | MBProgressHUD *hud=[MBProgressHUD showHUDAddedTo: [UIApplication sharedApplication].keyWindow animated:YES];\ 45 | hud.mode=MBProgressHUDModeText;\ 46 | hud.labelText=msg;\ 47 | hud.removeFromSuperViewOnHide=YES;\ 48 | [hud hide:YES afterDelay:1];\ 49 | } 50 | 51 | 52 | #define UIColorFromRGBA(rgbValue, alphaValue) \ 53 | [UIColor \ 54 | colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \ 55 | green:((float)((rgbValue & 0x00FF00) >> 8))/255.0 \ 56 | blue:((float)(rgbValue & 0x0000FF))/255.0 \ 57 | alpha:alphaValue] 58 | 59 | 60 | @interface ConstFile : NSObject 61 | 62 | @end 63 | 64 | 65 | -------------------------------------------------------------------------------- /cookbook/ConstFile.m: -------------------------------------------------------------------------------- 1 | // 2 | // ConstFile.m 3 | // cookbook 4 | // 5 | // Created by 张逢阳 on 15/8/9. 6 | // Copyright (c) 2015年 张逢阳. All rights reserved. 7 | // 8 | 9 | #import "ConstFile.h" 10 | #warning 请替换成自己在聚合上的OpenID 11 | NSString * OpenID=@"......"; 12 | NSString * APPID=@"46"; 13 | NSString * Method_Get=@"GET"; 14 | NSString * Method_Post=@"POST"; 15 | NSMutableArray * SearchArray; 16 | NSMutableArray * favSource; 17 | NSMutableArray * favModels; 18 | UIImage * defaultImage; 19 | 20 | FMDatabase * db; 21 | //API 22 | //菜谱大全 23 | NSString * API_query=@"http://apis.juhe.cn/cook/query.php"; 24 | //查看菜谱的所有分类,如菜系、口味等 25 | NSString * API_category=@"http://apis.juhe.cn/cook/category"; 26 | //按标签检索菜谱 27 | NSString * API_queryByTag=@"http://apis.juhe.cn/cook/index"; 28 | //按菜谱ID查看详细 29 | NSString * API_queryByID=@"http://apis.juhe.cn/cook/queryid"; 30 | 31 | 32 | 33 | @implementation ConstFile 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /cookbook/DetailTableViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // DetailTableViewController.h 3 | // cookbook 4 | // 5 | // Created by 张逢阳 on 15/8/13. 6 | // Copyright (c) 2015年 张逢阳. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "InfoModel.h" 11 | @interface DetailTableViewController : UITableViewController 12 | -(id)initWithInfoModel:(InfoModel * ) model; 13 | @end 14 | -------------------------------------------------------------------------------- /cookbook/ImageAndTextTableViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // ImageAndTextTableViewCell.h 3 | // cookbook 4 | // 5 | // Created by 张逢阳 on 15/8/12. 6 | // Copyright (c) 2015年 张逢阳. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ImageAndTextTableViewCell : UITableViewCell 12 | @property (weak, nonatomic) IBOutlet UIImageView *img; 13 | @property (weak, nonatomic) IBOutlet UILabel *text; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /cookbook/ImageAndTextTableViewCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // ImageAndTextTableViewCell.m 3 | // cookbook 4 | // 5 | // Created by 张逢阳 on 15/8/12. 6 | // Copyright (c) 2015年 张逢阳. All rights reserved. 7 | // 8 | 9 | #import "ImageAndTextTableViewCell.h" 10 | 11 | @implementation ImageAndTextTableViewCell 12 | 13 | - (void)awakeFromNib { 14 | // Initialization code 15 | // self.img.layer.cornerRadius=self.img.frame.size.width/2; 16 | //self.img.clipsToBounds=YES; 17 | UIView *view=[[UIView alloc]init]; 18 | [view setBackgroundColor:[UIColor whiteColor]]; 19 | [self setSelectedBackgroundView:view]; 20 | 21 | 22 | } 23 | 24 | - (void)setSelected:(BOOL)selected animated:(BOOL)animated { 25 | [super setSelected:selected animated:animated]; 26 | 27 | // Configure the view for the selected state 28 | } 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10001-1.imageset/10001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10001-1.imageset/10001.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10001-1.imageset/10001@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10001-1.imageset/10001@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10001-1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "10001.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "10001@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10001.imageset/10001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10001.imageset/10001.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10001.imageset/10001@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10001.imageset/10001@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10001.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "10001.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "10001@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10002.imageset/10002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10002.imageset/10002.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10002.imageset/10002@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10002.imageset/10002@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10002.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "10002.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "10002@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10003.imageset/10003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10003.imageset/10003.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10003.imageset/10003@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10003.imageset/10003@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10003.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "10003.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "10003@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10004.imageset/10004.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10004.imageset/10004.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10004.imageset/10004@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10004.imageset/10004@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10004.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "10004.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "10004@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10005.imageset/10005.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10005.imageset/10005.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10005.imageset/10005@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10005.imageset/10005@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10005.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "10005.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "10005@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10006.imageset/10006.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10006.imageset/10006.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10006.imageset/10006@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10006.imageset/10006@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10006.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "10006.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "10006@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10007.imageset/10007.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10007.imageset/10007.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10007.imageset/10007@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10007.imageset/10007@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10007.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "10007.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "10007@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10008.imageset/10008.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10008.imageset/10008.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10008.imageset/10008@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10008.imageset/10008@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10008.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "10008.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "10008@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10009.imageset/10009.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10009.imageset/10009.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10009.imageset/10009@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10009.imageset/10009@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10009.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "10009.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "10009@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10010.imageset/10010.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10010.imageset/10010.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10010.imageset/10010@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10010.imageset/10010@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10010.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "10010.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "10010@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10011.imageset/10011.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10011.imageset/10011.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10011.imageset/10011@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10011.imageset/10011@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10011.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "10011.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "10011@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10012.imageset/10012.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10012.imageset/10012.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10012.imageset/10012@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10012.imageset/10012@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10012.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "10012.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "10012@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10013.imageset/10013.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10013.imageset/10013.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10013.imageset/10013@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10013.imageset/10013@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10013.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "10013.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "10013@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10014.imageset/10014.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10014.imageset/10014.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10014.imageset/10014@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10014.imageset/10014@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10014.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "10014.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "10014@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10015.imageset/10015.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10015.imageset/10015.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10015.imageset/10015@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10015.imageset/10015@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10015.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "10015.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "10015@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10016.imageset/10016.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10016.imageset/10016.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10016.imageset/10016@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10016.imageset/10016@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10016.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "10016.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "10016@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10017.imageset/10017.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10017.imageset/10017.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10017.imageset/10017@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10017.imageset/10017@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10017.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "10017.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "10017@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10018.imageset/10018.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10018.imageset/10018.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10018.imageset/10018@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10018.imageset/10018@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10018.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "10018.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "10018@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10019.imageset/10019.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10019.imageset/10019.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10019.imageset/10019@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10019.imageset/10019@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10019.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "10019.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "10019@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10020.imageset/10020.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10020.imageset/10020.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10020.imageset/10020@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10020.imageset/10020@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10020.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "10020.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "10020@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10021.imageset/10021.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10021.imageset/10021.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10021.imageset/10021@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10021.imageset/10021@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10021.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "10021.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "10021@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10022.imageset/10022.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10022.imageset/10022.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10022.imageset/10022@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10022.imageset/10022@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10022.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "10022.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "10022@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10023.imageset/10023.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10023.imageset/10023.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10023.imageset/10023@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10023.imageset/10023@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10023.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "10023.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "10023@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10024.imageset/10024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10024.imageset/10024.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10024.imageset/10024@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10024.imageset/10024@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10024.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "10024.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "10024@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10025.imageset/10025.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10025.imageset/10025.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10025.imageset/10025@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10025.imageset/10025@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10025.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "10025.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "10025@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10026.imageset/10026.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10026.imageset/10026.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10026.imageset/10026@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10026.imageset/10026@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10026.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "10026.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "10026@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10027.imageset/10027.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10027.imageset/10027.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10027.imageset/10027@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10027.imageset/10027@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10027.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "10027.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "10027@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10028.imageset/10028.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10028.imageset/10028.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10028.imageset/10028@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/10028.imageset/10028@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/10028.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "10028.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "10028@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "29x29", 5 | "idiom" : "iphone", 6 | "filename" : "Icon-Small@2x.png", 7 | "scale" : "2x" 8 | }, 9 | { 10 | "idiom" : "iphone", 11 | "size" : "29x29", 12 | "scale" : "3x" 13 | }, 14 | { 15 | "size" : "40x40", 16 | "idiom" : "iphone", 17 | "filename" : "Icon-Small-40@2x.png", 18 | "scale" : "2x" 19 | }, 20 | { 21 | "idiom" : "iphone", 22 | "size" : "40x40", 23 | "scale" : "3x" 24 | }, 25 | { 26 | "size" : "60x60", 27 | "idiom" : "iphone", 28 | "filename" : "Icon-60@2x.png", 29 | "scale" : "2x" 30 | }, 31 | { 32 | "idiom" : "iphone", 33 | "size" : "60x60", 34 | "scale" : "3x" 35 | } 36 | ], 37 | "info" : { 38 | "version" : 1, 39 | "author" : "xcode" 40 | } 41 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/AppIcon.appiconset/Icon-Small-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/AppIcon.appiconset/Icon-Small-40@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/AppIcon.appiconset/Icon-Small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/AppIcon.appiconset/Icon-Small@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/LaunchImage.launchimage/640x1136.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/LaunchImage.launchimage/640x1136.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/LaunchImage.launchimage/640x960.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/LaunchImage.launchimage/640x960.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "filename" : "640x960.png", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "extent" : "full-screen", 13 | "idiom" : "iphone", 14 | "subtype" : "retina4", 15 | "filename" : "640x1136.png", 16 | "minimum-system-version" : "7.0", 17 | "orientation" : "portrait", 18 | "scale" : "2x" 19 | } 20 | ], 21 | "info" : { 22 | "version" : 1, 23 | "author" : "xcode" 24 | } 25 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/calendar.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "calendar.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "calendar@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/calendar.imageset/calendar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/calendar.imageset/calendar.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/calendar.imageset/calendar@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/calendar.imageset/calendar@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/config.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "config.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "config@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/config.imageset/config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/config.imageset/config.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/config.imageset/config@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/config.imageset/config@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/del.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "del.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "del@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/del.imageset/del.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/del.imageset/del.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/del.imageset/del@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/del.imageset/del@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/flower.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "flower.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "flower@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/flower.imageset/flower.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/flower.imageset/flower.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/flower.imageset/flower@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/flower.imageset/flower@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/home.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "home.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "home@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/home.imageset/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/home.imageset/home.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/home.imageset/home@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/home.imageset/home@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/light.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "light.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "light@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/light.imageset/light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/light.imageset/light.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/light.imageset/light@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/light.imageset/light@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/tran.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "tran.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "tran@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x", 16 | "filename" : "tran@3x.png" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/tran.imageset/tran.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/tran.imageset/tran.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/tran.imageset/tran@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/tran.imageset/tran@2x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/tran.imageset/tran@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/tran.imageset/tran@3x.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/xin.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "xin.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "xin@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /cookbook/Images.xcassets/xin.imageset/xin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/xin.imageset/xin.png -------------------------------------------------------------------------------- /cookbook/Images.xcassets/xin.imageset/xin@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/Images.xcassets/xin.imageset/xin@2x.png -------------------------------------------------------------------------------- /cookbook/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | zh_CN 7 | CFBundleDisplayName 8 | 菜谱大师 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | com.xiaoyu5062.$(PRODUCT_NAME:rfc1034identifier) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.1 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 3 25 | LSApplicationCategoryType 26 | 27 | LSRequiresIPhoneOS 28 | 29 | NSAppTransportSecurity 30 | 31 | NSAllowsArbitraryLoads 32 | 33 | 34 | UIMainStoryboardFile 35 | Main 36 | UIRequiredDeviceCapabilities 37 | 38 | armv7 39 | 40 | UISupportedInterfaceOrientations 41 | 42 | UIInterfaceOrientationPortrait 43 | UIInterfaceOrientationLandscapeLeft 44 | UIInterfaceOrientationLandscapeRight 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /cookbook/InfoCollectionViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // InfoCollectionViewCell.h 3 | // cookbook 4 | // 5 | // Created by 张逢阳 on 15/8/12. 6 | // Copyright (c) 2015年 张逢阳. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | @interface InfoCollectionViewCell : UICollectionViewCell 12 | @property (weak, nonatomic) IBOutlet UIImageView *img; 13 | @property (weak, nonatomic) IBOutlet UILabel *text; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /cookbook/InfoCollectionViewCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // InfoCollectionViewCell.m 3 | // cookbook 4 | // 5 | // Created by 张逢阳 on 15/8/12. 6 | // Copyright (c) 2015年 张逢阳. All rights reserved. 7 | // 8 | 9 | #import "InfoCollectionViewCell.h" 10 | 11 | @implementation InfoCollectionViewCell 12 | 13 | - (void)awakeFromNib { 14 | // Initialization code 15 | } 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /cookbook/InfoCollectionViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // InfoCollectionViewController.h 3 | // cookbook 4 | // 5 | // Created by 张逢阳 on 15/8/12. 6 | // Copyright (c) 2015年 张逢阳. All rights reserved. 7 | // 8 | 9 | #import 10 | @interface InfoCollectionViewController : UICollectionViewController 11 | /** 根据标签id初始化*/ 12 | -(id)initWithTagId:(NSString* )tagId; 13 | /** 根据搜索内容初始化*/ 14 | -(id)initWithSearchText:(NSString *) searchText; 15 | @end 16 | -------------------------------------------------------------------------------- /cookbook/JuheApisSDK/JuheApisSDK.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoyu5062/cookbook/309352cdce3726c2173e4c039df7f121d5bada78/cookbook/JuheApisSDK/JuheApisSDK.a -------------------------------------------------------------------------------- /cookbook/JuheApisSDK/include/JuheApisSDK/JHAPISDK.h: -------------------------------------------------------------------------------- 1 | // 2 | // JHAPISDK.h 3 | // JuheApisSDK 4 | // 5 | // Created by Bill.Fang on 14-11-3. 6 | // Copyright (c) 2014年 thinkland. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface JHAPISDK : NSObject 12 | 13 | + (instancetype)shareJHAPISDK; 14 | 15 | /** 16 | @brief 执行聚合数据请求, 操作请求返回的数据 17 | 18 | @param api 聚合数据服务接口,可以在聚合数据官网的数据接口API,接口地址中找到,如IP地址API接口:http://apis.juhe.cn/ip/ip2addr 19 | 20 | @param api_id 聚合数据服务接口,可以在聚合数据官网的数据接口API,URL地址中找到,如IP地址URL:http://www.juhe.cn/docs/api/id/1,则api_id:1 21 | 22 | @param paras 对应于服务类型的一些参数, 是Objective-C的NSDictionary类型,可以在IP地址API接口中“请求参数” 23 | 24 | @param success 请求得到处理, 并且返回有效数据时, 对返回的数据, 在主线程, 执行自定义的行为 25 | 26 | @param failure 没有网络, 或者服务器没有响应, 或者服务器没有返回有效数据, 对返回的NSError对象, 在主线程, 执行自定义的行为 27 | 28 | @discuss 29 | a. 数据服务类型的选择, 对应可用的HTTP请求方法, 对应可用的请求参数, 执行请求返回的Objective-C对象, 请参考SDK文档 30 | 31 | b. 执行数据请求是异步的, 开发者直接调用即可. 32 | */ 33 | 34 | - (void)executeWorkWithAPI:(NSString *)api 35 | APIID:(NSString *)api_id 36 | Parameters:(NSDictionary *)paras 37 | Method:(NSString *)method 38 | Success:(void (^)(id responseObject))success 39 | Failure:(void (^)(NSError *error))failure; 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /cookbook/JuheApisSDK/include/JuheApisSDK/JHOpenidSupplier.h: -------------------------------------------------------------------------------- 1 | // 2 | // JHOpenidSupplier.h 3 | // JuheApisSDK 4 | // 5 | // Created by Edward.Shi on 8/8/14. 6 | // Copyright (c) 2014 ThinkLand. All rights reserved. 7 | // 8 | #import 9 | 10 | @interface JHOpenidSupplier : NSObject 11 | 12 | +(JHOpenidSupplier *)shareSupplier; 13 | 14 | /** 15 | 注册API数据服务所需要的openId 16 | @param openId 申请的有效openId 17 | @discuss 18 | a. openId通过聚合官网( http://www.juhe.cn )申请, openId的相关说明参考官网 19 | b. 可以多次register, 最后register的openId最先获取 20 | */ 21 | - (void)registerJuheAPIByOpenId:(NSString *)openId; 22 | 23 | /** 24 | 注销API数据服务所需要的openId 25 | @param openId 申请的有效openId 26 | @dicuss 27 | a. openId通过聚合官网( http://www.juhe.cn )申请 28 | b. 没有API数据服务所需要的openId, 将无法获得API数据服务 29 | */ 30 | - (void)unregisterJuheAPIByOpenId:(NSString *)openId; 31 | 32 | /** 33 | 获取最后注册API数据服务所需要的openId 34 | @discuss 35 | 没有注册,或者取消所有注册的数据服务的openId, 返回nil 36 | */ 37 | - (NSString *)getLatestJuheAPIOpenId; 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /cookbook/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /cookbook/MarkVC.h: -------------------------------------------------------------------------------- 1 | // 2 | // MarkVC.h 3 | // cookbook 4 | // 5 | // Created by 张逢阳 on 15/8/9. 6 | // Copyright (c) 2015年 张逢阳. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MarkVC : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /cookbook/Model/InfoModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // InfoModel.h 3 | // cookbook 4 | // 5 | // Created by 张逢阳 on 15/8/12. 6 | // Copyright (c) 2015年 张逢阳. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | /** 每个菜的详情*/ 12 | @interface InfoModel : NSObject 13 | /** id*/ 14 | @property (nonatomic, strong) NSString *id; 15 | /** 标题*/ 16 | @property (nonatomic, strong) NSString *title; 17 | /** 标签*/ 18 | @property (nonatomic, strong) NSString *tags; 19 | /** 简介*/ 20 | @property (nonatomic, strong) NSString *imtro; 21 | /** 材料*/ 22 | @property (nonatomic, strong) NSString *ingredients; 23 | /** 调料*/ 24 | @property (nonatomic, strong) NSString *burden; 25 | /** 图片*/ 26 | @property (nonatomic, strong) NSArray *albums; 27 | /** 步骤*/ 28 | @property (nonatomic, strong) NSArray *steps; 29 | @end 30 | 31 | @interface StepModel : NSObject 32 | /** 步骤图片*/ 33 | @property (nonatomic, strong) NSString *img; 34 | /** 步骤说明*/ 35 | @property (nonatomic, strong) NSString *step; 36 | @end 37 | -------------------------------------------------------------------------------- /cookbook/Model/InfoModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // InfoModel.m 3 | // cookbook 4 | // 5 | // Created by 张逢阳 on 15/8/12. 6 | // Copyright (c) 2015年 张逢阳. All rights reserved. 7 | // 8 | 9 | #import "InfoModel.h" 10 | 11 | @implementation InfoModel 12 | 13 | MJCodingImplementation 14 | 15 | + (NSDictionary*)objectClassInArray{ 16 | return @{ 17 | @"steps":@"StepModel" 18 | }; 19 | } 20 | 21 | -(BOOL)isEqual:(id)object{ 22 | if (object==self) { 23 | return YES; 24 | } 25 | if (![object isKindOfClass:[InfoModel class]]) { 26 | return NO; 27 | } 28 | InfoModel* model=(InfoModel*) object; 29 | return [model.id isEqualToString:self.id]; 30 | 31 | } 32 | @end 33 | 34 | @implementation StepModel 35 | MJCodingImplementation 36 | 37 | 38 | @end -------------------------------------------------------------------------------- /cookbook/Model/TagModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // TagModel.h 3 | // cookbook 4 | // 5 | // Created by 张逢阳 on 15/8/10. 6 | // Copyright (c) 2015年 张逢阳. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | /** heheehhe*/ 12 | @interface TagModel : NSObject 13 | @property (nonatomic, strong) NSString *parentId; 14 | /** 大类名称*/ 15 | @property (nonatomic, strong) NSString *name; 16 | /** 小分类*/ 17 | @property (nonatomic, strong) NSArray *list; 18 | @end 19 | 20 | @interface Tag_ListModel : NSObject 21 | /** 分类ID*/ 22 | @property (nonatomic, strong) NSString *id; 23 | /** 小分类名称*/ 24 | @property (nonatomic, strong) NSString *name; 25 | /** 所属大分类ID*/ 26 | @property (nonatomic, strong) NSString *parentId; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /cookbook/Model/TagModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // TagModel.m 3 | // cookbook 4 | // 5 | // Created by 张逢阳 on 15/8/10. 6 | // Copyright (c) 2015年 张逢阳. All rights reserved. 7 | // 8 | 9 | #import "TagModel.h" 10 | 11 | @implementation TagModel 12 | 13 | +(NSDictionary*)objectClassInArray{ 14 | return @{@"list":@"Tag_ListModel"}; 15 | } 16 | 17 | @end 18 | 19 | @implementation Tag_ListModel 20 | 21 | 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /cookbook/SearchVC.h: -------------------------------------------------------------------------------- 1 | // 2 | // SearchVC.h 3 | // cookbook 4 | // 5 | // Created by 张逢阳 on 15/8/9. 6 | // Copyright (c) 2015年 张逢阳. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SearchVC : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /cookbook/StepTableViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // StepTableViewCell.h 3 | // cookbook 4 | // 5 | // Created by 张逢阳 on 15/8/13. 6 | // Copyright (c) 2015年 张逢阳. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface StepTableViewCell : UITableViewCell 12 | @property (weak, nonatomic) IBOutlet UIImageView *imgView; 13 | 14 | @property (weak, nonatomic) IBOutlet UITextView *textView; 15 | 16 | @property (nonatomic, strong) UIFont *currFont; 17 | -(void)initText; 18 | @end 19 | -------------------------------------------------------------------------------- /cookbook/StepTableViewCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // StepTableViewCell.m 3 | // cookbook 4 | // 5 | // Created by 张逢阳 on 15/8/13. 6 | // Copyright (c) 2015年 张逢阳. All rights reserved. 7 | // 8 | 9 | #import "StepTableViewCell.h" 10 | 11 | @implementation StepTableViewCell 12 | 13 | - (void)awakeFromNib { 14 | // Initialization code 15 | } 16 | 17 | -(void)initText{ 18 | CGRect textViewRect=CGRectInset(self.contentView.frame, 15, 0); 19 | //需要显示的文字信息 20 | NSTextStorage* textStorage=[[NSTextStorage alloc]initWithString:_textView.text]; 21 | //布局 22 | NSLayoutManager* layoutManager=[[NSLayoutManager alloc]init]; 23 | [textStorage addLayoutManager:layoutManager]; 24 | //文字容器 25 | NSTextContainer * textContainer=[[NSTextContainer alloc]initWithSize:textViewRect.size]; 26 | [layoutManager addTextContainer:textContainer]; 27 | 28 | [_textView removeFromSuperview]; 29 | _textView=[[UITextView alloc] initWithFrame:textViewRect textContainer:textContainer] ; 30 | _textView.editable=NO; 31 | _textView.selectable=NO; 32 | _textView.scrollEnabled=NO; 33 | //UIFont *font=[[UIFont alloc]fontWithSize:17]; 34 | // UIFont *font=[UIFont systemFontOfSize:17]; 35 | if (_currFont) { 36 | _textView.font=_currFont; 37 | } 38 | //_textView.font=font; 39 | [self.contentView insertSubview:_textView belowSubview:_imgView]; 40 | _textView.textContainer.exclusionPaths=@[[self translatedBezierPath]]; 41 | } 42 | 43 | -(UIBezierPath*) translatedBezierPath{ 44 | CGRect imgRect=_imgView.frame; 45 | imgRect.origin.x=0; 46 | imgRect.origin.y=0; 47 | imgRect.size.width+=20; 48 | CGRect imageRect=[_textView convertRect:imgRect fromView:self]; 49 | UIBezierPath *newPath=[UIBezierPath bezierPathWithRect:imageRect]; 50 | return newPath; 51 | } 52 | 53 | - (void)setSelected:(BOOL)selected animated:(BOOL)animated { 54 | [super setSelected:selected animated:animated]; 55 | 56 | // Configure the view for the selected state 57 | } 58 | 59 | @end 60 | -------------------------------------------------------------------------------- /cookbook/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // cookbook 4 | // 5 | // Created by 张逢阳 on 15/8/9. 6 | // Copyright (c) 2015年 张逢阳. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /cookbook/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // cookbook 4 | // 5 | // Created by 张逢阳 on 15/8/9. 6 | // Copyright (c) 2015年 张逢阳. All rights reserved. 7 | // 8 | 9 | #import "ViewController.h" 10 | #import "ConstFile.h" 11 | #import "JHAPISDK.h" 12 | #import "JHOpenidSupplier.h" 13 | #import "TagModel.h" 14 | @interface ViewController () 15 | 16 | @end 17 | 18 | @implementation ViewController 19 | 20 | - (void)viewDidLoad { 21 | [super viewDidLoad]; 22 | // Do any additional setup after loading the view, typically from a nib. 23 | NSLog(@"openID=%@",OpenID); 24 | //[self getTags]; 25 | 26 | } 27 | 28 | - (void)didReceiveMemoryWarning { 29 | [super didReceiveMemoryWarning]; 30 | // Dispose of any resources that can be recreated. 31 | } 32 | 33 | 34 | -(void)getTags{ 35 | NSString *path = API_category; 36 | NSString *api_id = APPID; 37 | NSString *method = Method_Get; 38 | JHAPISDK *juheapi = [JHAPISDK shareJHAPISDK]; 39 | 40 | [juheapi executeWorkWithAPI:path 41 | APIID:api_id 42 | Parameters:nil 43 | Method:method 44 | Success:^(id responseObject){ 45 | int error_code = [[responseObject objectForKey:@"error_code"] intValue]; 46 | if (!error_code) { 47 | NSLog(@" %@", responseObject); 48 | }else{ 49 | NSLog(@" %@", responseObject); 50 | } 51 | 52 | } Failure:^(NSError *error) { 53 | NSLog(@"error: %@",error.description); 54 | }]; 55 | } 56 | @end 57 | -------------------------------------------------------------------------------- /cookbook/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // cookbook 4 | // 5 | // Created by 张逢阳 on 15/8/9. 6 | // Copyright (c) 2015年 张逢阳. 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 | -------------------------------------------------------------------------------- /cookbookTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDisplayName 6 | 菜谱大师 7 | CFBundleDevelopmentRegion 8 | en 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | com.xiaoyu5062.$(PRODUCT_NAME:rfc1034identifier) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | BNDL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1 25 | 26 | 27 | -------------------------------------------------------------------------------- /cookbookTests/cookbookTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // cookbookTests.m 3 | // cookbookTests 4 | // 5 | // Created by 张逢阳 on 15/8/9. 6 | // Copyright (c) 2015年 张逢阳. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface cookbookTests : XCTestCase 13 | 14 | @end 15 | 16 | @implementation cookbookTests 17 | 18 | - (void)setUp { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown { 24 | // Put teardown code here. This method is called after the invocation of each test method in the class. 25 | [super tearDown]; 26 | } 27 | 28 | - (void)testExample { 29 | // This is an example of a functional test case. 30 | XCTAssert(YES, @"Pass"); 31 | } 32 | 33 | - (void)testPerformanceExample { 34 | // This is an example of a performance test case. 35 | [self measureBlock:^{ 36 | // Put the code you want to measure the time of here. 37 | }]; 38 | } 39 | 40 | @end 41 | --------------------------------------------------------------------------------