Browse Source

new version

cjc 6 years ago
parent
commit
4f7ec19e76
100 changed files with 1788 additions and 84 deletions
  1. 103 0
      CAIPU.xcodeproj/project.pbxproj
  2. 17 2
      CAIPU/AppDelegate.m
  3. BIN
      CAIPU/Assets.xcassets/AppIcon.appiconset/1024.png
  4. BIN
      CAIPU/Assets.xcassets/AppIcon.appiconset/20@2x-1.png
  5. BIN
      CAIPU/Assets.xcassets/AppIcon.appiconset/20@3x-1.png
  6. BIN
      CAIPU/Assets.xcassets/AppIcon.appiconset/29@2x-1.png
  7. BIN
      CAIPU/Assets.xcassets/AppIcon.appiconset/29@3x-1.png
  8. BIN
      CAIPU/Assets.xcassets/AppIcon.appiconset/40@2x-1.png
  9. BIN
      CAIPU/Assets.xcassets/AppIcon.appiconset/40@3x-1.png
  10. BIN
      CAIPU/Assets.xcassets/AppIcon.appiconset/60@2x-1.png
  11. BIN
      CAIPU/Assets.xcassets/AppIcon.appiconset/60@3x-1.png
  12. 18 9
      CAIPU/Assets.xcassets/AppIcon.appiconset/Contents.json
  13. BIN
      CAIPU/Assets.xcassets/LaunchImage.launchimage/1125.png
  14. BIN
      CAIPU/Assets.xcassets/LaunchImage.launchimage/1242.png
  15. BIN
      CAIPU/Assets.xcassets/LaunchImage.launchimage/320.png
  16. BIN
      CAIPU/Assets.xcassets/LaunchImage.launchimage/640.png
  17. BIN
      CAIPU/Assets.xcassets/LaunchImage.launchimage/640copy.png
  18. BIN
      CAIPU/Assets.xcassets/LaunchImage.launchimage/750.png
  19. 75 0
      CAIPU/Assets.xcassets/LaunchImage.launchimage/Contents.json
  20. 23 0
      CAIPU/Assets.xcassets/Mine/white_back.imageset/Contents.json
  21. BIN
      CAIPU/Assets.xcassets/Mine/white_back.imageset/white_back.png
  22. BIN
      CAIPU/Assets.xcassets/Mine/white_back.imageset/white_back@2x.png
  23. BIN
      CAIPU/Assets.xcassets/Mine/white_back.imageset/white_back@3x.png
  24. 6 1
      CAIPU/CPHeader.h
  25. 3 2
      CAIPU/CPPrefixHeader.pch
  26. 13 7
      CAIPU/Info.plist
  27. 1 1
      CAIPU/Main/Base(基类)/CPNavgationController.m
  28. 2 1
      CAIPU/Main/Base(基类)/CPTabBarController.m
  29. 2 0
      CAIPU/Main/Category(类别)/UIColor+CPColor.h
  30. 7 0
      CAIPU/Main/Category(类别)/UIColor+CPColor.m
  31. 2 0
      CAIPU/Main/Classification(分类)/Controllers/CPClassificationViewController.m
  32. 1 1
      CAIPU/Main/Classification(分类)/Models/CPRequestViewModel.m
  33. 13 0
      CAIPU/Main/Find(发现)/Controller/CPFindViewController.h
  34. 156 0
      CAIPU/Main/Find(发现)/Controller/CPFindViewController.m
  35. 16 0
      CAIPU/Main/Find(发现)/View/CPPhotoCell.h
  36. 199 0
      CAIPU/Main/Find(发现)/View/CPPhotoCell.m
  37. 14 0
      CAIPU/Main/Health(健康)/Controller/CPHealthViewController.h
  38. 37 0
      CAIPU/Main/Health(健康)/Controller/CPHealthViewController.m
  39. 14 4
      CAIPU/Main/Home(菜谱大全)/Controllers/CPDetailViewController.m
  40. 105 15
      CAIPU/Main/Home(菜谱大全)/Controllers/CPHomeViewController.m
  41. 2 0
      CAIPU/Main/Home(菜谱大全)/Views/CPChoiceCollectionViewCell.m
  42. 19 15
      CAIPU/Main/Home(菜谱大全)/Views/CPHomeHeaderView.m
  43. 2 0
      CAIPU/Main/Home(菜谱大全)/Views/CPSearchResultTableViewCell.m
  44. 21 3
      CAIPU/Main/Home(菜谱大全)/Views/CPSearchResultView.m
  45. 22 0
      CAIPU/Main/Home(菜谱大全)/Views/CPThemeCollectionCell.h
  46. 145 0
      CAIPU/Main/Home(菜谱大全)/Views/CPThemeCollectionCell.m
  47. 5 1
      CAIPU/Main/Home(菜谱大全)/Views/DetailView/CPDetailHeaderView.m
  48. 5 3
      CAIPU/Main/Home(菜谱大全)/Views/DetailView/CPDetailTableViewCell.m
  49. 1 1
      CAIPU/Main/Home(菜谱大全)/Views/DetailView/CPPerceptionView.m
  50. 2 0
      CAIPU/Main/Home(菜谱大全)/Views/DetailView/CPStepTableViewCell.m
  51. 1 1
      CAIPU/Main/More(更多)/Controllers/CPAboutViewController.m
  52. 6 4
      CAIPU/Main/More(更多)/Controllers/CPFeedBackController.m
  53. 1 1
      CAIPU/Main/More(更多)/Controllers/CPHistoryCell.m
  54. 20 0
      CAIPU/Main/More(更多)/Controllers/CPMoreViewController.m
  55. 1 1
      CAIPU/Main/More(更多)/Controllers/CPMyHistoryController.m
  56. 2 0
      CAIPU/Main/Third(第三方)/NewPagedFlowView/PGIndexBannerSubiew.m
  57. 1 0
      CAIPU/Main/Tools(工具)/CPHTTP.h
  58. 17 10
      CAIPU/Main/Tools(工具)/CPHTTP.m
  59. 19 0
      CAIPU/Main/Tools(工具)/SortDictManager.h
  60. 101 0
      CAIPU/Main/Tools(工具)/SortDictManager.m
  61. 3 0
      Podfile
  62. 15 1
      Podfile.lock
  63. 28 0
      Pods/DACircularProgress/DACircularProgress/DACircularProgressView.h
  64. 321 0
      Pods/DACircularProgress/DACircularProgress/DACircularProgressView.m
  65. 23 0
      Pods/DACircularProgress/DACircularProgress/DALabeledCircularProgressView.h
  66. 47 0
      Pods/DACircularProgress/DACircularProgress/DALabeledCircularProgressView.m
  67. 23 0
      Pods/DACircularProgress/LICENSE.md
  68. 77 0
      Pods/DACircularProgress/README.md
  69. 1 0
      Pods/Headers/Private/DACircularProgress/DACircularProgressView.h
  70. 1 0
      Pods/Headers/Private/DACircularProgress/DALabeledCircularProgressView.h
  71. 1 0
      Pods/Headers/Private/PYPhotoBrowser/MBProgressHUD+PYExtension.h
  72. 1 0
      Pods/Headers/Private/PYPhotoBrowser/PYPhoto.h
  73. 1 0
      Pods/Headers/Private/PYPhotoBrowser/PYPhotoBrowseView.h
  74. 1 0
      Pods/Headers/Private/PYPhotoBrowser/PYPhotoBrowser.h
  75. 1 0
      Pods/Headers/Private/PYPhotoBrowser/PYPhotoBrowserConst.h
  76. 1 0
      Pods/Headers/Private/PYPhotoBrowser/PYPhotoCell.h
  77. 1 0
      Pods/Headers/Private/PYPhotoBrowser/PYPhotoView.h
  78. 1 0
      Pods/Headers/Private/PYPhotoBrowser/PYPhotosNavigationController.h
  79. 1 0
      Pods/Headers/Private/PYPhotoBrowser/PYPhotosPreviewController.h
  80. 1 0
      Pods/Headers/Private/PYPhotoBrowser/PYPhotosReaderController.h
  81. 1 0
      Pods/Headers/Private/PYPhotoBrowser/PYPhotosView.h
  82. 1 0
      Pods/Headers/Private/PYPhotoBrowser/PYPhotosViewController.h
  83. 1 0
      Pods/Headers/Private/PYPhotoBrowser/PYProgressView.h
  84. 1 0
      Pods/Headers/Private/PYPhotoBrowser/UIView+PYExtension.h
  85. 1 0
      Pods/Headers/Private/SDAutoLayout/SDAutoLayout.h
  86. 1 0
      Pods/Headers/Private/SDAutoLayout/UITableView+SDAutoTableViewCellHeight.h
  87. 1 0
      Pods/Headers/Private/SDAutoLayout/UIView+SDAutoLayout.h
  88. 1 0
      Pods/Headers/Private/UITableView+FDTemplateLayoutCell/UITableView+FDIndexPathHeightCache.h
  89. 1 0
      Pods/Headers/Private/UITableView+FDTemplateLayoutCell/UITableView+FDKeyedHeightCache.h
  90. 1 0
      Pods/Headers/Private/UITableView+FDTemplateLayoutCell/UITableView+FDTemplateLayoutCell.h
  91. 1 0
      Pods/Headers/Private/UITableView+FDTemplateLayoutCell/UITableView+FDTemplateLayoutCellDebug.h
  92. 1 0
      Pods/Headers/Public/DACircularProgress/DACircularProgressView.h
  93. 1 0
      Pods/Headers/Public/DACircularProgress/DALabeledCircularProgressView.h
  94. 1 0
      Pods/Headers/Public/PYPhotoBrowser/MBProgressHUD+PYExtension.h
  95. 1 0
      Pods/Headers/Public/PYPhotoBrowser/PYPhoto.h
  96. 1 0
      Pods/Headers/Public/PYPhotoBrowser/PYPhotoBrowseView.h
  97. 1 0
      Pods/Headers/Public/PYPhotoBrowser/PYPhotoBrowser.h
  98. 1 0
      Pods/Headers/Public/PYPhotoBrowser/PYPhotoBrowserConst.h
  99. 1 0
      Pods/Headers/Public/PYPhotoBrowser/PYPhotoCell.h
  100. 0 0
      Pods/Headers/Public/PYPhotoBrowser/PYPhotoView.h

+ 103 - 0
CAIPU.xcodeproj/project.pbxproj

@@ -14,6 +14,11 @@
14 14
 		497B1BE720523E2500EBB024 /* CPFeedBackController.m in Sources */ = {isa = PBXBuildFile; fileRef = 497B1BE620523E2500EBB024 /* CPFeedBackController.m */; };
15 15
 		497B1BEB205259B400EBB024 /* CPAboutViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 497B1BE9205259B400EBB024 /* CPAboutViewController.m */; };
16 16
 		497B1BEC205259B400EBB024 /* CPAboutViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 497B1BEA205259B400EBB024 /* CPAboutViewController.xib */; };
17
+		497B1C302056503E00EBB024 /* SortDictManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 497B1C2E2056503D00EBB024 /* SortDictManager.m */; };
18
+		49EF90C32071CADC008B7187 /* CPThemeCollectionCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 49EF90C22071CADC008B7187 /* CPThemeCollectionCell.m */; };
19
+		49EF90CE2071F8A5008B7187 /* CPHealthViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 49EF90CD2071F8A5008B7187 /* CPHealthViewController.m */; };
20
+		49EF90D12071FA62008B7187 /* CPFindViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 49EF90D02071FA62008B7187 /* CPFindViewController.m */; };
21
+		49EF90D42071FD59008B7187 /* CPPhotoCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 49EF90D32071FD59008B7187 /* CPPhotoCell.m */; };
17 22
 		C428739A2028081300502005 /* CPStepTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = C42873992028081300502005 /* CPStepTableView.m */; };
18 23
 		C42873A02028086E00502005 /* CPStepTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C428739F2028086E00502005 /* CPStepTableViewCell.m */; };
19 24
 		C444ED522017100F0082AA5C /* CPHomeListModel.m in Sources */ = {isa = PBXBuildFile; fileRef = C444ED512017100F0082AA5C /* CPHomeListModel.m */; };
@@ -98,6 +103,16 @@
98 103
 		497B1BE8205259B400EBB024 /* CPAboutViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CPAboutViewController.h; sourceTree = "<group>"; };
99 104
 		497B1BE9205259B400EBB024 /* CPAboutViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CPAboutViewController.m; sourceTree = "<group>"; };
100 105
 		497B1BEA205259B400EBB024 /* CPAboutViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CPAboutViewController.xib; sourceTree = "<group>"; };
106
+		497B1C2E2056503D00EBB024 /* SortDictManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SortDictManager.m; sourceTree = "<group>"; };
107
+		497B1C2F2056503E00EBB024 /* SortDictManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SortDictManager.h; sourceTree = "<group>"; };
108
+		49EF90C12071CADC008B7187 /* CPThemeCollectionCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CPThemeCollectionCell.h; sourceTree = "<group>"; };
109
+		49EF90C22071CADC008B7187 /* CPThemeCollectionCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CPThemeCollectionCell.m; sourceTree = "<group>"; };
110
+		49EF90CC2071F8A5008B7187 /* CPHealthViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CPHealthViewController.h; sourceTree = "<group>"; };
111
+		49EF90CD2071F8A5008B7187 /* CPHealthViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CPHealthViewController.m; sourceTree = "<group>"; };
112
+		49EF90CF2071FA62008B7187 /* CPFindViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CPFindViewController.h; sourceTree = "<group>"; };
113
+		49EF90D02071FA62008B7187 /* CPFindViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CPFindViewController.m; sourceTree = "<group>"; };
114
+		49EF90D22071FD59008B7187 /* CPPhotoCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CPPhotoCell.h; sourceTree = "<group>"; };
115
+		49EF90D32071FD59008B7187 /* CPPhotoCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CPPhotoCell.m; sourceTree = "<group>"; };
101 116
 		5D7DDE3161671277618A2624 /* Pods-CAIPU.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CAIPU.release.xcconfig"; path = "Pods/Target Support Files/Pods-CAIPU/Pods-CAIPU.release.xcconfig"; sourceTree = "<group>"; };
102 117
 		83372F69E447D8645B21F903 /* Pods-CAIPU.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CAIPU.debug.xcconfig"; path = "Pods/Target Support Files/Pods-CAIPU/Pods-CAIPU.debug.xcconfig"; sourceTree = "<group>"; };
103 118
 		C42873982028081300502005 /* CPStepTableView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CPStepTableView.h; sourceTree = "<group>"; };
@@ -245,6 +260,74 @@
245 260
 			path = PlaceholderTextView;
246 261
 			sourceTree = "<group>";
247 262
 		};
263
+		49EF90C42071F753008B7187 /* Find(发现) */ = {
264
+			isa = PBXGroup;
265
+			children = (
266
+				49EF90CA2071F791008B7187 /* Model */,
267
+				49EF90C82071F788008B7187 /* View */,
268
+				49EF90C62071F77C008B7187 /* Controller */,
269
+			);
270
+			path = "Find(发现)";
271
+			sourceTree = "<group>";
272
+		};
273
+		49EF90C52071F76F008B7187 /* Health(健康) */ = {
274
+			isa = PBXGroup;
275
+			children = (
276
+				49EF90CB2071F794008B7187 /* Model */,
277
+				49EF90C92071F78B008B7187 /* View */,
278
+				49EF90C72071F780008B7187 /* Controller */,
279
+			);
280
+			path = "Health(健康)";
281
+			sourceTree = "<group>";
282
+		};
283
+		49EF90C62071F77C008B7187 /* Controller */ = {
284
+			isa = PBXGroup;
285
+			children = (
286
+				49EF90CF2071FA62008B7187 /* CPFindViewController.h */,
287
+				49EF90D02071FA62008B7187 /* CPFindViewController.m */,
288
+			);
289
+			path = Controller;
290
+			sourceTree = "<group>";
291
+		};
292
+		49EF90C72071F780008B7187 /* Controller */ = {
293
+			isa = PBXGroup;
294
+			children = (
295
+				49EF90CC2071F8A5008B7187 /* CPHealthViewController.h */,
296
+				49EF90CD2071F8A5008B7187 /* CPHealthViewController.m */,
297
+			);
298
+			path = Controller;
299
+			sourceTree = "<group>";
300
+		};
301
+		49EF90C82071F788008B7187 /* View */ = {
302
+			isa = PBXGroup;
303
+			children = (
304
+				49EF90D22071FD59008B7187 /* CPPhotoCell.h */,
305
+				49EF90D32071FD59008B7187 /* CPPhotoCell.m */,
306
+			);
307
+			path = View;
308
+			sourceTree = "<group>";
309
+		};
310
+		49EF90C92071F78B008B7187 /* View */ = {
311
+			isa = PBXGroup;
312
+			children = (
313
+			);
314
+			path = View;
315
+			sourceTree = "<group>";
316
+		};
317
+		49EF90CA2071F791008B7187 /* Model */ = {
318
+			isa = PBXGroup;
319
+			children = (
320
+			);
321
+			path = Model;
322
+			sourceTree = "<group>";
323
+		};
324
+		49EF90CB2071F794008B7187 /* Model */ = {
325
+			isa = PBXGroup;
326
+			children = (
327
+			);
328
+			path = Model;
329
+			sourceTree = "<group>";
330
+		};
248 331
 		C47D02702011EF5D00E5C025 /* NewPagedFlowView */ = {
249 332
 			isa = PBXGroup;
250 333
 			children = (
@@ -350,6 +433,8 @@
350 433
 				C4EC00B3200EF43B00A3225A /* Category(类别) */,
351 434
 				C4EC00B4200EF43B00A3225A /* Classification(分类) */,
352 435
 				C4EC00B8200EF43B00A3225A /* Home(菜谱大全) */,
436
+				49EF90C42071F753008B7187 /* Find(发现) */,
437
+				49EF90C52071F76F008B7187 /* Health(健康) */,
353 438
 				C4EC00BC200EF43B00A3225A /* More(更多) */,
354 439
 				C4EC00C0200EF43B00A3225A /* Tools(工具) */,
355 440
 			);
@@ -465,6 +550,8 @@
465 550
 			children = (
466 551
 				C4B7E2962011BFA60046C0EC /* CPChoiceCollectionViewCell.h */,
467 552
 				C4B7E2972011BFA60046C0EC /* CPChoiceCollectionViewCell.m */,
553
+				49EF90C12071CADC008B7187 /* CPThemeCollectionCell.h */,
554
+				49EF90C22071CADC008B7187 /* CPThemeCollectionCell.m */,
468 555
 				C47D02772011F2C000E5C025 /* CPHomeHeaderView.h */,
469 556
 				C47D02782011F2C000E5C025 /* CPHomeHeaderView.m */,
470 557
 				C47D027A2011F64800E5C025 /* CPHotButton.h */,
@@ -528,6 +615,8 @@
528 615
 		C4EC00C0200EF43B00A3225A /* Tools(工具) */ = {
529 616
 			isa = PBXGroup;
530 617
 			children = (
618
+				497B1C2F2056503E00EBB024 /* SortDictManager.h */,
619
+				497B1C2E2056503D00EBB024 /* SortDictManager.m */,
531 620
 				C4F5116820106F8D0012111E /* CPHTTP.h */,
532 621
 				C4F5116920106F8D0012111E /* CPHTTP.m */,
533 622
 			);
@@ -719,6 +808,7 @@
719 808
 				"${SRCROOT}/Pods/Target Support Files/Pods-CAIPU/Pods-CAIPU-resources.sh",
720 809
 				"${PODS_ROOT}/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.bundle",
721 810
 				"${PODS_ROOT}/MJRefresh/MJRefresh/MJRefresh.bundle",
811
+				"${PODS_ROOT}/PYPhotoBrowser/PYPhotoBrowser/PYPhotosView.bundle",
722 812
 			);
723 813
 			name = "[CP] Copy Pods Resources";
724 814
 			outputPaths = (
@@ -753,6 +843,7 @@
753 843
 			files = (
754 844
 				C4EC0090200EE17800A3225A /* main.m in Sources */,
755 845
 				C47D02922013198900E5C025 /* CPSegmentControl.m in Sources */,
846
+				497B1C302056503E00EBB024 /* SortDictManager.m in Sources */,
756 847
 				C45708072015D17300F60FEE /* CPBannerModel.m in Sources */,
757 848
 				C47ACA77201078BD005DA04C /* CPClassifyLeftTableViewCell.m in Sources */,
758 849
 				C4B4106B2020453E00C95284 /* CPHotModel.m in Sources */,
@@ -772,8 +863,10 @@
772 863
 				C4F51158201034080012111E /* CPClassificationViewController.m in Sources */,
773 864
 				C4B4226E2022BE3B00C95284 /* CPDetailTableViewCell.m in Sources */,
774 865
 				C428739A2028081300502005 /* CPStepTableView.m in Sources */,
866
+				49EF90CE2071F8A5008B7187 /* CPHealthViewController.m in Sources */,
775 867
 				C47D02792011F2C000E5C025 /* CPHomeHeaderView.m in Sources */,
776 868
 				C444ED522017100F0082AA5C /* CPHomeListModel.m in Sources */,
869
+				49EF90C32071CADC008B7187 /* CPThemeCollectionCell.m in Sources */,
777 870
 				497B1BE420523E0100EBB024 /* PlaceholderTextView.m in Sources */,
778 871
 				C47D027C2011F64800E5C025 /* CPHotButton.m in Sources */,
779 872
 				C4B422622021653100C95284 /* CPIngredientModel.m in Sources */,
@@ -789,11 +882,13 @@
789 882
 				C4B422682022A6FD00C95284 /* CPPerceptionView.m in Sources */,
790 883
 				C47ACA7D20108984005DA04C /* CPClassifyRightCollectionViewCell.m in Sources */,
791 884
 				497B1BD720512E6300EBB024 /* CPMyHistoryController.m in Sources */,
885
+				49EF90D42071FD59008B7187 /* CPPhotoCell.m in Sources */,
792 886
 				C4F5116A20106F8D0012111E /* CPHTTP.m in Sources */,
793 887
 				C42873A02028086E00502005 /* CPStepTableViewCell.m in Sources */,
794 888
 				C47D02762011EF5D00E5C025 /* PGIndexBannerSubiew.m in Sources */,
795 889
 				C47ACA7A2010875F005DA04C /* CPClassifyRightView.m in Sources */,
796 890
 				C4F5115E201036680012111E /* CPNavgationController.m in Sources */,
891
+				49EF90D12071FA62008B7187 /* CPFindViewController.m in Sources */,
797 892
 				497B1BEB205259B400EBB024 /* CPAboutViewController.m in Sources */,
798 893
 				C4B7E2952011A1820046C0EC /* CPSearchViewController.m in Sources */,
799 894
 				C4F5116D2010726D0012111E /* CPClassifyLeftView.m in Sources */,
@@ -964,6 +1059,8 @@
964 1059
 			baseConfigurationReference = 83372F69E447D8645B21F903 /* Pods-CAIPU.debug.xcconfig */;
965 1060
 			buildSettings = {
966 1061
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
1062
+				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
1063
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
967 1064
 				CODE_SIGN_STYLE = Automatic;
968 1065
 				DEVELOPMENT_TEAM = HNC9PH2VZ6;
969 1066
 				GCC_PREFIX_HEADER = "$(SRCROOT)/CAIPU/CPPrefixHeader.pch";
@@ -972,6 +1069,8 @@
972 1069
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
973 1070
 				PRODUCT_BUNDLE_IDENTIFIER = com.kuxuan.CAIPU;
974 1071
 				PRODUCT_NAME = "$(TARGET_NAME)";
1072
+				PROVISIONING_PROFILE = "";
1073
+				PROVISIONING_PROFILE_SPECIFIER = "";
975 1074
 				TARGETED_DEVICE_FAMILY = 1;
976 1075
 			};
977 1076
 			name = Debug;
@@ -981,6 +1080,8 @@
981 1080
 			baseConfigurationReference = 5D7DDE3161671277618A2624 /* Pods-CAIPU.release.xcconfig */;
982 1081
 			buildSettings = {
983 1082
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
1083
+				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
1084
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
984 1085
 				CODE_SIGN_STYLE = Automatic;
985 1086
 				DEVELOPMENT_TEAM = HNC9PH2VZ6;
986 1087
 				GCC_PREFIX_HEADER = "$(SRCROOT)/CAIPU/CPPrefixHeader.pch";
@@ -989,6 +1090,8 @@
989 1090
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
990 1091
 				PRODUCT_BUNDLE_IDENTIFIER = com.kuxuan.CAIPU;
991 1092
 				PRODUCT_NAME = "$(TARGET_NAME)";
1093
+				PROVISIONING_PROFILE = "";
1094
+				PROVISIONING_PROFILE_SPECIFIER = "";
992 1095
 				TARGETED_DEVICE_FAMILY = 1;
993 1096
 			};
994 1097
 			name = Release;

+ 17 - 2
CAIPU/AppDelegate.m

@@ -8,6 +8,9 @@
8 8
 
9 9
 #import "AppDelegate.h"
10 10
 #import "CPTabBarController.h"
11
+#import "UMMobClick/MobClick.h"
12
+#import <Bugly/Bugly.h>
13
+
11 14
 @interface AppDelegate ()
12 15
 
13 16
 @end
@@ -17,6 +20,9 @@
17 20
 
18 21
 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
19 22
     // Override point for customization after application launch.
23
+    [self setBugly];
24
+    [self setUMAnalisis];
25
+    
20 26
     [self setupWindow];
21 27
     return YES;
22 28
 }
@@ -28,8 +34,17 @@
28 34
     [self.window makeKeyAndVisible];
29 35
 }
30 36
 
31
-- (void)creatDataBase {
32
-    
37
+
38
+
39
+- (void)setBugly {
40
+    [Bugly startWithAppId:BUGLY_ID];
41
+}
42
+
43
+-(void)setUMAnalisis
44
+{
45
+    UMConfigInstance.appKey = UMAPP_KEY;
46
+    UMConfigInstance.channelId = @"App Store";
47
+    [MobClick startWithConfigure:UMConfigInstance];
33 48
 }
34 49
 
35 50
 

BIN
CAIPU/Assets.xcassets/AppIcon.appiconset/1024.png


BIN
CAIPU/Assets.xcassets/AppIcon.appiconset/20@2x-1.png


BIN
CAIPU/Assets.xcassets/AppIcon.appiconset/20@3x-1.png


BIN
CAIPU/Assets.xcassets/AppIcon.appiconset/29@2x-1.png


BIN
CAIPU/Assets.xcassets/AppIcon.appiconset/29@3x-1.png


BIN
CAIPU/Assets.xcassets/AppIcon.appiconset/40@2x-1.png


BIN
CAIPU/Assets.xcassets/AppIcon.appiconset/40@3x-1.png


BIN
CAIPU/Assets.xcassets/AppIcon.appiconset/60@2x-1.png


BIN
CAIPU/Assets.xcassets/AppIcon.appiconset/60@3x-1.png


+ 18 - 9
CAIPU/Assets.xcassets/AppIcon.appiconset/Contents.json

@@ -1,43 +1,51 @@
1 1
 {
2 2
   "images" : [
3 3
     {
4
-      "idiom" : "iphone",
5 4
       "size" : "20x20",
5
+      "idiom" : "iphone",
6
+      "filename" : "20@2x-1.png",
6 7
       "scale" : "2x"
7 8
     },
8 9
     {
9
-      "idiom" : "iphone",
10 10
       "size" : "20x20",
11
+      "idiom" : "iphone",
12
+      "filename" : "20@3x-1.png",
11 13
       "scale" : "3x"
12 14
     },
13 15
     {
14
-      "idiom" : "iphone",
15 16
       "size" : "29x29",
17
+      "idiom" : "iphone",
18
+      "filename" : "29@2x-1.png",
16 19
       "scale" : "2x"
17 20
     },
18 21
     {
19
-      "idiom" : "iphone",
20 22
       "size" : "29x29",
23
+      "idiom" : "iphone",
24
+      "filename" : "29@3x-1.png",
21 25
       "scale" : "3x"
22 26
     },
23 27
     {
24
-      "idiom" : "iphone",
25 28
       "size" : "40x40",
29
+      "idiom" : "iphone",
30
+      "filename" : "40@2x-1.png",
26 31
       "scale" : "2x"
27 32
     },
28 33
     {
29
-      "idiom" : "iphone",
30 34
       "size" : "40x40",
35
+      "idiom" : "iphone",
36
+      "filename" : "40@3x-1.png",
31 37
       "scale" : "3x"
32 38
     },
33 39
     {
34
-      "idiom" : "iphone",
35 40
       "size" : "60x60",
41
+      "idiom" : "iphone",
42
+      "filename" : "60@2x-1.png",
36 43
       "scale" : "2x"
37 44
     },
38 45
     {
39
-      "idiom" : "iphone",
40 46
       "size" : "60x60",
47
+      "idiom" : "iphone",
48
+      "filename" : "60@3x-1.png",
41 49
       "scale" : "3x"
42 50
     },
43 51
     {
@@ -86,8 +94,9 @@
86 94
       "scale" : "2x"
87 95
     },
88 96
     {
89
-      "idiom" : "ios-marketing",
90 97
       "size" : "1024x1024",
98
+      "idiom" : "ios-marketing",
99
+      "filename" : "1024.png",
91 100
       "scale" : "1x"
92 101
     }
93 102
   ],

BIN
CAIPU/Assets.xcassets/LaunchImage.launchimage/1125.png


BIN
CAIPU/Assets.xcassets/LaunchImage.launchimage/1242.png


BIN
CAIPU/Assets.xcassets/LaunchImage.launchimage/320.png


BIN
CAIPU/Assets.xcassets/LaunchImage.launchimage/640.png


BIN
CAIPU/Assets.xcassets/LaunchImage.launchimage/640copy.png


BIN
CAIPU/Assets.xcassets/LaunchImage.launchimage/750.png


+ 75 - 0
CAIPU/Assets.xcassets/LaunchImage.launchimage/Contents.json

@@ -0,0 +1,75 @@
1
+{
2
+  "images" : [
3
+    {
4
+      "extent" : "full-screen",
5
+      "idiom" : "iphone",
6
+      "subtype" : "2436h",
7
+      "filename" : "1125.png",
8
+      "minimum-system-version" : "11.0",
9
+      "orientation" : "portrait",
10
+      "scale" : "3x"
11
+    },
12
+    {
13
+      "extent" : "full-screen",
14
+      "idiom" : "iphone",
15
+      "subtype" : "736h",
16
+      "filename" : "1242.png",
17
+      "minimum-system-version" : "8.0",
18
+      "orientation" : "portrait",
19
+      "scale" : "3x"
20
+    },
21
+    {
22
+      "extent" : "full-screen",
23
+      "idiom" : "iphone",
24
+      "subtype" : "667h",
25
+      "filename" : "750.png",
26
+      "minimum-system-version" : "8.0",
27
+      "orientation" : "portrait",
28
+      "scale" : "2x"
29
+    },
30
+    {
31
+      "orientation" : "portrait",
32
+      "idiom" : "iphone",
33
+      "filename" : "640copy.png",
34
+      "extent" : "full-screen",
35
+      "minimum-system-version" : "7.0",
36
+      "scale" : "2x"
37
+    },
38
+    {
39
+      "orientation" : "portrait",
40
+      "idiom" : "iphone",
41
+      "extent" : "full-screen",
42
+      "minimum-system-version" : "7.0",
43
+      "subtype" : "retina4",
44
+      "scale" : "2x"
45
+    },
46
+    {
47
+      "orientation" : "portrait",
48
+      "idiom" : "iphone",
49
+      "filename" : "320.png",
50
+      "extent" : "full-screen",
51
+      "scale" : "1x"
52
+    },
53
+    {
54
+      "orientation" : "portrait",
55
+      "idiom" : "iphone",
56
+      "minimum-system-version" : "7.0",
57
+      "scale" : "2x"
58
+    },
59
+    {
60
+      "orientation" : "portrait",
61
+      "idiom" : "iphone",
62
+      "minimum-system-version" : "7.0",
63
+      "subtype" : "retina4",
64
+      "scale" : "2x"
65
+    },
66
+    {
67
+      "filename" : "640.png",
68
+      "unassigned" : true
69
+    }
70
+  ],
71
+  "info" : {
72
+    "version" : 1,
73
+    "author" : "xcode"
74
+  }
75
+}

+ 23 - 0
CAIPU/Assets.xcassets/Mine/white_back.imageset/Contents.json

@@ -0,0 +1,23 @@
1
+{
2
+  "images" : [
3
+    {
4
+      "idiom" : "universal",
5
+      "filename" : "white_back.png",
6
+      "scale" : "1x"
7
+    },
8
+    {
9
+      "idiom" : "universal",
10
+      "filename" : "white_back@2x.png",
11
+      "scale" : "2x"
12
+    },
13
+    {
14
+      "idiom" : "universal",
15
+      "filename" : "white_back@3x.png",
16
+      "scale" : "3x"
17
+    }
18
+  ],
19
+  "info" : {
20
+    "version" : 1,
21
+    "author" : "xcode"
22
+  }
23
+}

BIN
CAIPU/Assets.xcassets/Mine/white_back.imageset/white_back.png


BIN
CAIPU/Assets.xcassets/Mine/white_back.imageset/white_back@2x.png


BIN
CAIPU/Assets.xcassets/Mine/white_back.imageset/white_back@3x.png


+ 6 - 1
CAIPU/CPHeader.h

@@ -9,7 +9,12 @@
9 9
 #ifndef CPHeader_h
10 10
 #define CPHeader_h
11 11
 
12
-#define BrowserKey @"BrowserKey"
12
+//#define BrowserKey @"BrowserKey"
13
+//友盟key
14
+#define UMAPP_KEY @"5aa64327a40fa379700001dd"
15
+//bugly  id
16
+#define BUGLY_ID @"50d6f2e32a"
17
+#define SIGN_KEY @"b693013c19222873eece0526b7b85da2"  //加密秘钥
13 18
 
14 19
 //定义屏幕的宽度
15 20
 #define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width<[UIScreen mainScreen].bounds.size.height?[UIScreen mainScreen].bounds.size.width:[UIScreen mainScreen].bounds.size.height)

+ 3 - 2
CAIPU/CPPrefixHeader.pch

@@ -23,9 +23,10 @@
23 23
 #import "CPRequestViewModel.h"
24 24
 #import "YYText.h"
25 25
 #import "LKDBHelper.h"
26
+#import "SDAutoLayout.h"
26 27
   
27 28
 
28
-static NSString * const URL = @"http://182.92.118.1:3320/api";               //测试
29
-//static NSString * const URL = @"http://api.money.quyaqu.com/api";
29
+//static NSString * const URL = @"http://182.92.118.1:3320/api";               //测试
30
+static NSString * const URL = @"https://apicaipu.726p.com/api";
30 31
 
31 32
 #endif /* CPPrefixHeader_pch */

+ 13 - 7
CAIPU/Info.plist

@@ -2,13 +2,12 @@
2 2
 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3 3
 <plist version="1.0">
4 4
 <dict>
5
-	<key>NSAppTransportSecurity</key>
6
-	<dict>
7
-		<key>NSAllowsArbitraryLoads</key>
8
-		<true/>
9
-	</dict>
10 5
 	<key>CFBundleDevelopmentRegion</key>
11 6
 	<string>$(DEVELOPMENT_LANGUAGE)</string>
7
+	<key>NSPhotoLibraryUsageDescription</key>
8
+	<string>菜谱申请访问您的相册</string>
9
+	<key>NSPhotoLibraryAddUsageDescription</key>
10
+	<string>菜谱申请加入您的相册</string>
12 11
 	<key>CFBundleDisplayName</key>
13 12
 	<string>菜谱</string>
14 13
 	<key>CFBundleExecutable</key>
@@ -22,11 +21,16 @@
22 21
 	<key>CFBundlePackageType</key>
23 22
 	<string>APPL</string>
24 23
 	<key>CFBundleShortVersionString</key>
25
-	<string>1.0</string>
24
+	<string>1.1.0</string>
26 25
 	<key>CFBundleVersion</key>
27
-	<string>1</string>
26
+	<string>2</string>
28 27
 	<key>LSRequiresIPhoneOS</key>
29 28
 	<true/>
29
+	<key>NSAppTransportSecurity</key>
30
+	<dict>
31
+		<key>NSAllowsArbitraryLoads</key>
32
+		<true/>
33
+	</dict>
30 34
 	<key>UILaunchStoryboardName</key>
31 35
 	<string>LaunchScreen</string>
32 36
 	<key>UIMainStoryboardFile</key>
@@ -46,5 +50,7 @@
46 50
 		<string>UIInterfaceOrientationLandscapeLeft</string>
47 51
 		<string>UIInterfaceOrientationLandscapeRight</string>
48 52
 	</array>
53
+	<key>UIViewControllerBasedStatusBarAppearance</key>
54
+	<false/>
49 55
 </dict>
50 56
 </plist>

+ 1 - 1
CAIPU/Main/Base(基类)/CPNavgationController.m

@@ -61,7 +61,7 @@
61 61
     self.navigationBar.translucent = NO;
62 62
     
63 63
     //设置navigationBar的颜色
64
-    self.navigationBar.barTintColor = [UIColor backgroudColor];
64
+    self.navigationBar.barTintColor = [UIColor whiteColor];
65 65
     
66 66
     //解决边缘右滑手势失效
67 67
     self.interactivePopGestureRecognizer.delegate = self;

+ 2 - 1
CAIPU/Main/Base(基类)/CPTabBarController.m

@@ -12,6 +12,7 @@
12 12
 #import "CPHomeViewController.h"
13 13
 #import "CPClassificationViewController.h"
14 14
 #import "CPMoreViewController.h"
15
+#import "CPFindViewController.h"
15 16
 
16 17
 @interface CPTabBarController ()
17 18
 
@@ -29,7 +30,7 @@
29 30
 -(void)setcontrollers
30 31
 {
31 32
     CPNavgationController *mainNavigationController = [self navigationControllerWithClassName:@"CPHomeViewController" title:@"菜谱大全" imageName:@"tab_main"];
32
-    CPNavgationController *classificationNavigationController = [self navigationControllerWithClassName:@"CPClassificationViewController" title:@"分类" imageName:@"tab_classify"];
33
+    CPNavgationController *classificationNavigationController = [self navigationControllerWithClassName:@"CPFindViewController" title:@"发下" imageName:@"tab_classify"];
33 34
     CPNavgationController *moreNavigationController = [self navigationControllerWithClassName:@"CPMoreViewController" title:@"更多" imageName:@"tab_more"];
34 35
   
35 36
     

+ 2 - 0
CAIPU/Main/Category(类别)/UIColor+CPColor.h

@@ -26,6 +26,8 @@
26 26
 
27 27
 +(instancetype)detailTitleColor;
28 28
 
29
++(instancetype)imageBgColor;
30
+
29 31
 +(instancetype)CPColorWithHex:(uint32_t)hex;
30 32
 
31 33
 +(instancetype)CPColorWithHex:(uint32_t)hex alpha:(CGFloat)alpha;

+ 7 - 0
CAIPU/Main/Category(类别)/UIColor+CPColor.m

@@ -43,6 +43,13 @@
43 43
 {
44 44
     return [self CPColorWithHex:0x999999];
45 45
 }
46
+
47
+//0xf0f0f0
48
++(instancetype)imageBgColor
49
+{
50
+    return [self CPColorWithHex:0xf0f0f0];
51
+}
52
+
46 53
 +(instancetype)CPColorWithHex:(uint32_t)hex
47 54
 {
48 55
     uint8_t r = (hex & 0xff0000) >> 16;

+ 2 - 0
CAIPU/Main/Classification(分类)/Controllers/CPClassificationViewController.m

@@ -30,6 +30,7 @@
30 30
 
31 31
 @implementation CPClassificationViewController
32 32
 
33
+
33 34
 - (void)viewDidLoad {
34 35
     [super viewDidLoad];
35 36
     // Do any additional setup after loading the view.
@@ -40,6 +41,7 @@
40 41
 
41 42
 - (void)viewWillAppear:(BOOL)animated{
42 43
     [super viewWillAppear:animated];
44
+    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
43 45
     self.segmentControl.hidden = NO;
44 46
 }
45 47
 

+ 1 - 1
CAIPU/Main/Classification(分类)/Models/CPRequestViewModel.m

@@ -48,7 +48,7 @@
48 48
 
49 49
 + (void)requestHomeTime:(NSNumber *)page Data:(void (^)(NSArray *data))success{
50 50
     NSString *urlString = [NSString stringWithFormat:@"%@/features/getRecommend",URL];
51
-    [CPHTTP post:urlString params:@{@"time":page} success:^(id json) {
51
+    [CPHTTP post:urlString params:@{@"page":page} success:^(id json) {
52 52
         success(json);
53 53
     } failure:^(NSError *error) {
54 54
         

+ 13 - 0
CAIPU/Main/Find(发现)/Controller/CPFindViewController.h

@@ -0,0 +1,13 @@
1
+//
2
+//  CPFindViewController.h
3
+//  CAIPU
4
+//
5
+//  Created by 小花 on 2018/4/2.
6
+//  Copyright © 2018年 kuxuan. All rights reserved.
7
+//
8
+
9
+#import "CPBaseViewController.h"
10
+
11
+@interface CPFindViewController : CPBaseViewController
12
+
13
+@end

+ 156 - 0
CAIPU/Main/Find(发现)/Controller/CPFindViewController.m

@@ -0,0 +1,156 @@
1
+//
2
+//  CPFindViewController.m
3
+//  CAIPU
4
+//
5
+//  Created by 小花 on 2018/4/2.
6
+//  Copyright © 2018年 kuxuan. All rights reserved.
7
+//
8
+
9
+#import "CPFindViewController.h"
10
+#import "CPPhotoCell.h"
11
+#import "UITableView+FDTemplateLayoutCell.h"
12
+
13
+@interface CPFindViewController ()<UITableViewDelegate,UITableViewDataSource>
14
+@property (nonatomic, strong) UITableView *tableView;
15
+@end
16
+
17
+@implementation CPFindViewController
18
+
19
+- (void)viewDidLoad {
20
+    [super viewDidLoad];
21
+    
22
+    [self creatContentView];
23
+}
24
+
25
+- (void)creatContentView {
26
+    self.tableView.fd_debugLogEnabled = YES;
27
+    [self.tableView registerClass:[CPPhotoCell class] forCellReuseIdentifier:@"CPPhotoCell"];
28
+    [self.view addSubview:self.tableView];
29
+    
30
+    if (@available(iOS 11.0, *)) {
31
+        self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;//UIScrollView也适用
32
+    }else {
33
+        self.automaticallyAdjustsScrollViewInsets = NO;
34
+    }
35
+}
36
+
37
+
38
+
39
+#pragma mark ============ UITableView Delegate &&  DataSource ==========
40
+
41
+- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
42
+    if (indexPath.section == 0) {
43
+        if (indexPath.row == 0) {
44
+            //            cell.separatorInset = UIEdgeInsetsMake(0, cell.bounds.size.width, 0, 0);
45
+        }
46
+    }
47
+}
48
+
49
+
50
+
51
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
52
+    return 1;
53
+}
54
+
55
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
56
+    
57
+    CPPhotoCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CPPhotoCell"];
58
+    [self configureCell:cell atIndexPath:indexPath];
59
+    
60
+    return cell;
61
+}
62
+
63
+- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
64
+    // 获取cell高度
65
+    return [self cellHeightForIndexPath:indexPath cellContentViewWidth:SCREEN_WIDTH tableView:self.tableView];
66
+}
67
+
68
+
69
+
70
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
71
+    
72
+    
73
+}
74
+
75
+- (void)configureCell:(CPPhotoCell *)cell atIndexPath:(NSIndexPath *)indexPath {
76
+    cell.fd_enforceFrameLayout = NO;
77
+    // 1. 创建图片链接数组
78
+    NSMutableArray *thumbnailImageUrls = [NSMutableArray array];
79
+    // 添加图片(缩略图)链接
80
+    [thumbnailImageUrls addObject:@"http://ww3.sinaimg.cn/thumbnail/006ka0Iygw1f6bqm7zukpj30g60kzdi2.jpg"];
81
+    [thumbnailImageUrls addObject:@"http://ww1.sinaimg.cn/thumbnail/61b69811gw1f6bqb1bfd2j20b4095dfy.jpg"];
82
+    [thumbnailImageUrls addObject:@"http://ww1.sinaimg.cn/thumbnail/54477ddfgw1f6bqkbanqoj20ku0rsn4d.jpg"];
83
+    [thumbnailImageUrls addObject:@"http://ww4.sinaimg.cn/thumbnail/006ka0Iygw1f6b8gpwr2tj30bc0bqmyz.jpg"];
84
+    [thumbnailImageUrls addObject:@"http://ww2.sinaimg.cn/thumbnail/9c2b5f31jw1f6bqtinmpyj20dw0ae76e.jpg"];
85
+    [thumbnailImageUrls addObject:@"http://ww1.sinaimg.cn/thumbnail/536e7093jw1f6bqdj3lpjj20va134ana.jpg"];
86
+    [thumbnailImageUrls addObject:@"http://ww1.sinaimg.cn/thumbnail/75b1a75fjw1f6bqn35ij6j20ck0g8jtf.jpg"];
87
+    [thumbnailImageUrls addObject:@"http://ww4.sinaimg.cn/bmiddle/406ef017jw1ec40av2nscj20ip4p0b29.jpg"];
88
+    [thumbnailImageUrls addObject:@"http://ww1.sinaimg.cn/thumbnail/86afb21egw1f6bq3lq0itj20gg0c2myt.jpg"];
89
+    
90
+    // 1.2 创建图片原图链接数组
91
+    NSMutableArray *originalImageUrls = [NSMutableArray array];
92
+    // 添加图片(原图)链接
93
+    [originalImageUrls addObject:@"http://ww3.sinaimg.cn/large/006ka0Iygw1f6bqm7zukpj30g60kzdi2.jpg"];
94
+    [originalImageUrls addObject:@"http://ww1.sinaimg.cn/large/61b69811gw1f6bqb1bfd2j20b4095dfy.jpg"];
95
+    [originalImageUrls addObject:@"http://ww1.sinaimg.cn/large/54477ddfgw1f6bqkbanqoj20ku0rsn4d.jpg"];
96
+    [originalImageUrls addObject:@"http://ww4.sinaimg.cn/large/006ka0Iygw1f6b8gpwr2tj30bc0bqmyz.jpg"];
97
+    [originalImageUrls addObject:@"http://ww2.sinaimg.cn/large/9c2b5f31jw1f6bqtinmpyj20dw0ae76e.jpg"];
98
+    [originalImageUrls addObject:@"http://ww1.sinaimg.cn/large/536e7093jw1f6bqdj3lpjj20va134ana.jpg"];
99
+    [originalImageUrls addObject:@"http://ww1.sinaimg.cn/large/75b1a75fjw1f6bqn35ij6j20ck0g8jtf.jpg"];
100
+    [originalImageUrls addObject:@"http://ww4.sinaimg.cn/bmiddle/406ef017jw1ec40av2nscj20ip4p0b29.jpg"];
101
+    [originalImageUrls addObject:@"http://ww1.sinaimg.cn/large/86afb21egw1f6bq3lq0itj20gg0c2myt.jpg"];
102
+    
103
+    [cell setThumbnailImageUrls:thumbnailImageUrls originalImageUrls:originalImageUrls];
104
+}
105
+
106
+
107
+- (UITableView *)tableView {
108
+    if (!_tableView) {
109
+        _tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT-TabbarHeight) style:UITableViewStyleGrouped];
110
+//        _tableView.estimatedRowHeight = 0;
111
+        _tableView.estimatedSectionHeaderHeight = 0;
112
+        _tableView.estimatedSectionFooterHeight = 0;
113
+        _tableView.sectionFooterHeight = 0;
114
+        _tableView.sectionHeaderHeight = 0;
115
+        _tableView.delegate = self;
116
+        _tableView.dataSource = self;
117
+        _tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
118
+        _tableView.backgroundColor = [UIColor backgroudColor];
119
+        _tableView.bounces = YES;
120
+        _tableView.showsVerticalScrollIndicator = NO;
121
+        _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
122
+        _tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
123
+        }];
124
+        
125
+        MJRefreshAutoNormalFooter *footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
126
+        }];
127
+        _tableView.mj_footer = footer;
128
+        
129
+        
130
+        
131
+    }
132
+    return _tableView;
133
+}
134
+
135
+
136
+#pragma mark ------- layzer ---------
137
+
138
+
139
+
140
+
141
+- (void)didReceiveMemoryWarning {
142
+    [super didReceiveMemoryWarning];
143
+    // Dispose of any resources that can be recreated.
144
+}
145
+
146
+/*
147
+#pragma mark - Navigation
148
+
149
+// In a storyboard-based application, you will often want to do a little preparation before navigation
150
+- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
151
+    // Get the new view controller using [segue destinationViewController].
152
+    // Pass the selected object to the new view controller.
153
+}
154
+*/
155
+
156
+@end

+ 16 - 0
CAIPU/Main/Find(发现)/View/CPPhotoCell.h

@@ -0,0 +1,16 @@
1
+//
2
+//  CPPhotoCell.h
3
+//  CAIPU
4
+//
5
+//  Created by 小花 on 2018/4/2.
6
+//  Copyright © 2018年 kuxuan. All rights reserved.
7
+//
8
+
9
+#import <UIKit/UIKit.h>
10
+
11
+@interface CPPhotoCell : UITableViewCell
12
++ (instancetype)cellWithTableView:(UITableView *)tableView;
13
+
14
+@property (nonatomic, strong) NSArray *photos;
15
+- (void)setThumbnailImageUrls:(NSArray *)thumbnailImageUrls originalImageUrls:(NSArray *)originalImageUrls;
16
+@end

+ 199 - 0
CAIPU/Main/Find(发现)/View/CPPhotoCell.m

@@ -0,0 +1,199 @@
1
+//
2
+//  CPPhotoCell.m
3
+//  CAIPU
4
+//
5
+//  Created by 小花 on 2018/4/2.
6
+//  Copyright © 2018年 kuxuan. All rights reserved.
7
+//
8
+
9
+#import "CPPhotoCell.h"
10
+#import "PYPhotosView.h"
11
+#import "PYPhotoBrowseView.h"
12
+
13
+@interface CPPhotoCell ()
14
+@property (nonatomic, strong) PYPhotosView *photosView;
15
+@property (nonatomic, strong) UIImageView *icon;
16
+@property (nonatomic, strong) UILabel *nickLabel;
17
+@property (nonatomic, strong) UILabel *timeLabel;
18
+@property (nonatomic, strong) UIButton *likeBtn;
19
+@end
20
+
21
+@implementation CPPhotoCell
22
+
23
+- (void)awakeFromNib {
24
+    [super awakeFromNib];
25
+    // Initialization code
26
+}
27
+
28
+
29
++ (instancetype)cellWithTableView:(UITableView *)tableView {
30
+    static NSString *cellID = nil;
31
+    cellID = NSStringFromClass([self class]);
32
+    CPPhotoCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
33
+    if (!cell) {
34
+        cell = [[CPPhotoCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID];
35
+    }
36
+    return cell;
37
+    
38
+}
39
+
40
+- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
41
+    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
42
+    if (self) {
43
+        self.backgroundColor = [UIColor whiteColor];
44
+        [self initUI];
45
+    }
46
+    return self;
47
+}
48
+
49
+- (void)initUI {
50
+    [self.contentView addSubview:self.icon];
51
+    [self.contentView addSubview:self.nickLabel];
52
+    [self.contentView addSubview:self.timeLabel];
53
+    [self.contentView addSubview:self.photosView];
54
+    [self.contentView addSubview:self.likeBtn];
55
+    
56
+    [self.icon mas_makeConstraints:^(MASConstraintMaker *make) {
57
+        make.left.mas_equalTo(10);
58
+        make.top.mas_equalTo(15).priorityHigh();;
59
+        make.width.height.mas_equalTo(40);
60
+    }];
61
+    self.icon.layer.cornerRadius = 20;
62
+    
63
+    [self.nickLabel mas_makeConstraints:^(MASConstraintMaker *make) {
64
+        make.left.mas_equalTo(self.icon.mas_right).mas_offset(8);
65
+        make.centerY.mas_equalTo(self.icon.mas_centerY);
66
+    }];
67
+    
68
+    [self.timeLabel mas_makeConstraints:^(MASConstraintMaker *make) {
69
+        make.right.mas_equalTo(-10);
70
+        make.centerY.mas_equalTo(self.icon.mas_centerY);
71
+    }];
72
+    
73
+    [self.photosView mas_makeConstraints:^(MASConstraintMaker *make) {
74
+        make.top.mas_equalTo(self.icon.mas_bottom).mas_offset(10).priorityHigh();;
75
+        make.left.mas_equalTo(10);
76
+        make.right.mas_equalTo(-10);
77
+        make.height.mas_equalTo(0);
78
+    }];
79
+    
80
+    [self.likeBtn mas_makeConstraints:^(MASConstraintMaker *make) {
81
+        make.right.mas_equalTo(-10);
82
+        make.top.mas_equalTo(self.photosView.mas_bottom).mas_offset(20).priorityHigh();;
83
+        make.height.mas_equalTo(30);
84
+        make.width.mas_equalTo(100);
85
+    }];
86
+    
87
+    [self setupAutoHeightWithBottomView:self.likeBtn bottomMargin:20];
88
+}
89
+
90
+
91
+
92
+- (void)setThumbnailImageUrls:(NSArray *)thumbnailImageUrls originalImageUrls:(NSArray *)originalImageUrls {
93
+   
94
+    
95
+    [self setUpPhotoHeightWithOriginalImageUrls:originalImageUrls];
96
+    // 设置缩略图数组
97
+//    self.photosView.thumbnailUrls = thumbnailImageUrls;
98
+    // 设置原图地址
99
+    self.photosView.originalUrls = originalImageUrls;
100
+    // 设置分页指示类型
101
+    self.photosView.pageType = PYPhotosViewPageTypeLabel;
102
+    
103
+    CGSize size = [self.photosView sizeWithPhotoCount:thumbnailImageUrls.count photosState:PYPhotosViewStateDidCompose];
104
+    [self.photosView mas_updateConstraints:^(MASConstraintMaker *make) {
105
+        make.height.mas_equalTo(size.height);
106
+    }];
107
+}
108
+
109
+
110
+- (void)setUpPhotoHeightWithOriginalImageUrls:(NSArray *)originalImageUrls {
111
+    CGFloat Width = SCREEN_WIDTH-20;
112
+    CGFloat margin = self.photosView.photoMargin;
113
+    switch (originalImageUrls.count) {
114
+        case 1:
115
+            self.photosView.photoWidth = Width;
116
+            self.photosView.photoHeight = Width*9/16;
117
+            break;
118
+        case 2:
119
+        case 4:
120
+            self.photosView.photoWidth = (Width-margin)/2;
121
+            self.photosView.photoHeight = (Width-margin)/2;
122
+            
123
+            break;
124
+        case 3:
125
+        case 5:
126
+        case 6:
127
+        case 7:
128
+        case 8:
129
+        case 9:
130
+            self.photosView.photoWidth = (Width-margin*2)/3;
131
+            self.photosView.photoHeight = (Width-margin*2)/3;
132
+            break;
133
+
134
+        default:
135
+            break;
136
+    }
137
+}
138
+
139
+
140
+#pragma mark -------- layzer ---------
141
+- (UIImageView *)icon {
142
+    if (!_icon) {
143
+        _icon = [[UIImageView alloc] init];
144
+        _icon.backgroundColor = [UIColor imageBgColor];
145
+        _icon.clipsToBounds = YES;
146
+    }
147
+    return _icon;
148
+}
149
+
150
+- (UILabel *)nickLabel {
151
+    if (!_nickLabel) {
152
+        _nickLabel = [[UILabel alloc] init];
153
+        _nickLabel.textColor = [UIColor titleColor];
154
+        _nickLabel.font = [UIFont systemFontOfSize:15];
155
+        _nickLabel.text = @"印度阿三";
156
+        _nickLabel.preferredMaxLayoutWidth = 180;
157
+    }
158
+    return _nickLabel;
159
+}
160
+
161
+- (UILabel *)timeLabel {
162
+    if (!_timeLabel) {
163
+        _timeLabel = [[UILabel alloc] init];
164
+        _timeLabel.textColor = [UIColor middleTitleColor];
165
+        _timeLabel.textAlignment = NSTextAlignmentRight;
166
+        _timeLabel.font = [UIFont systemFontOfSize:13];
167
+        _timeLabel.text = @"一分钟前";
168
+        _timeLabel.preferredMaxLayoutWidth = 80;
169
+    }
170
+    return _timeLabel;
171
+}
172
+
173
+- (PYPhotosView *)photosView {
174
+    if (!_photosView) {
175
+        _photosView = [PYPhotosView photosView];
176
+        _photosView.showDuration = 0.25;
177
+        _photosView.hiddenDuration = 0.25;
178
+    }
179
+    return _photosView;
180
+}
181
+
182
+- (UIButton *)likeBtn {
183
+    if (!_likeBtn) {
184
+        _likeBtn = [UIButton buttonWithType:UIButtonTypeCustom];
185
+        [_likeBtn setTitle:@"喜欢" forState:UIControlStateNormal];
186
+        [_likeBtn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
187
+    }
188
+    return _likeBtn;
189
+}
190
+
191
+
192
+
193
+- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
194
+    [super setSelected:selected animated:animated];
195
+
196
+    // Configure the view for the selected state
197
+}
198
+
199
+@end

+ 14 - 0
CAIPU/Main/Health(健康)/Controller/CPHealthViewController.h

@@ -0,0 +1,14 @@
1
+//
2
+//  CPHealthViewController.h
3
+//  CAIPU
4
+//
5
+//  Created by 小花 on 2018/4/2.
6
+//  Copyright © 2018年 kuxuan. All rights reserved.
7
+//
8
+
9
+#import <UIKit/UIKit.h>
10
+#import "CPBaseViewController.h"
11
+
12
+@interface CPHealthViewController : CPBaseViewController
13
+
14
+@end

+ 37 - 0
CAIPU/Main/Health(健康)/Controller/CPHealthViewController.m

@@ -0,0 +1,37 @@
1
+//
2
+//  CPHealthViewController.m
3
+//  CAIPU
4
+//
5
+//  Created by 小花 on 2018/4/2.
6
+//  Copyright © 2018年 kuxuan. All rights reserved.
7
+//
8
+
9
+#import "CPHealthViewController.h"
10
+
11
+@interface CPHealthViewController ()
12
+
13
+@end
14
+
15
+@implementation CPHealthViewController
16
+
17
+- (void)viewDidLoad {
18
+    [super viewDidLoad];
19
+    // Do any additional setup after loading the view.
20
+}
21
+
22
+- (void)didReceiveMemoryWarning {
23
+    [super didReceiveMemoryWarning];
24
+    // Dispose of any resources that can be recreated.
25
+}
26
+
27
+/*
28
+#pragma mark - Navigation
29
+
30
+// In a storyboard-based application, you will often want to do a little preparation before navigation
31
+- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
32
+    // Get the new view controller using [segue destinationViewController].
33
+    // Pass the selected object to the new view controller.
34
+}
35
+*/
36
+
37
+@end

+ 14 - 4
CAIPU/Main/Home(菜谱大全)/Controllers/CPDetailViewController.m

@@ -25,6 +25,7 @@
25 25
 - (void)viewDidLoad {
26 26
     [super viewDidLoad];
27 27
     // Do any additional setup after loading the view.
28
+    
28 29
     [self createNav];
29 30
     [self createView];
30 31
     [self requestData];
@@ -56,7 +57,7 @@
56 57
     [CPRequestViewModel requestDetail:self.menu_id data:^(NSArray *data) {
57 58
         self.detailModel = [CPDetailModel yy_modelWithJSON:data];
58 59
         self.collectionModel = [CPCollectionModel yy_modelWithJSON:data];
59
-        
60
+        self.title = self.detailModel.title;
60 61
         [self showData];
61 62
         [self saveDetailModel];
62 63
     }];
@@ -114,6 +115,7 @@
114 115
     }else {
115 116
         BOOL collection = [self.collectionModel saveToDB];
116 117
         if (collection) {
118
+            [self collectionRequest];
117 119
             sender.selected = YES;
118 120
             sender.backgroundColor = [UIColor btnGrayColor];
119 121
         }
@@ -124,11 +126,19 @@
124 126
             [CPCollectionModel deleteWithWhere:sql];
125 127
         }
126 128
     }
127
-    
128
-    
129
-    
130 129
 }
131 130
 
131
+//只做计数+1
132
+- (void)collectionRequest {
133
+    NSString *urlString = [NSString stringWithFormat:@"%@/features/addCollection",URL];
134
+    [CPHTTP post:urlString params:@{@"menu_id":self.collectionModel.Id} success:^(id json) {
135
+        
136
+    } failure:^(NSError *error) {
137
+        
138
+    }];
139
+}
140
+
141
+
132 142
 - (void)didReceiveMemoryWarning {
133 143
     [super didReceiveMemoryWarning];
134 144
     // Dispose of any resources that can be recreated.

+ 105 - 15
CAIPU/Main/Home(菜谱大全)/Controllers/CPHomeViewController.m

@@ -12,10 +12,14 @@
12 12
 #import "CPChoiceCollectionViewCell.h"
13 13
 #import "CPHomeListModel.h"
14 14
 #import "CPDetailViewController.h"
15
+#import "CPThemeCollectionCell.h"
15 16
 
16 17
 static NSString *const homeIdentifier = @"homeIdentifier";
18
+static NSString *const themeIdentifier = @"themeIdentifier";
17 19
 
18
-@interface CPHomeViewController ()<UICollectionViewDelegate,UICollectionViewDataSource,CPHomeHeaderViewDelegate>
20
+@interface CPHomeViewController ()<UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout,CPHomeHeaderViewDelegate>{
21
+    NSInteger _page;
22
+}
19 23
 
20 24
 @property (nonatomic,strong)UIButton *searchButton;
21 25
 
@@ -23,6 +27,8 @@ static NSString *const homeIdentifier = @"homeIdentifier";
23 27
 
24 28
 @property (nonatomic,strong)NSMutableArray *dataSource;
25 29
 
30
+@property (nonatomic, strong) UICollectionReusableView *headerView;
31
+
26 32
 @end
27 33
 
28 34
 @implementation CPHomeViewController
@@ -31,13 +37,16 @@ static NSString *const homeIdentifier = @"homeIdentifier";
31 37
     [super viewDidLoad];
32 38
     // Do any additional setup after loading the view.
33 39
     self.view.backgroundColor = [UIColor whiteColor];
40
+//    self.navigationController.navigationBar.barTintColor = [UIColor whiteColor];
41
+    _page = 0;
34 42
     [self createNav];
35 43
     [self createView];
36
-    [self requestData:@(0)];
44
+    [self requestData:@(_page)];
37 45
 }
38 46
 
39 47
 - (void)viewWillAppear:(BOOL)animated{
40 48
     [super viewWillAppear:animated];
49
+    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
41 50
 }
42 51
 
43 52
 - (void)viewWillDisappear:(BOOL)animated{
@@ -51,9 +60,11 @@ static NSString *const homeIdentifier = @"homeIdentifier";
51 60
     [searchButton setImage:[UIImage imageNamed:@"home_search"] forState:UIControlStateNormal];
52 61
     [searchButton setTitle:@"菜名、菜系、口味" forState:UIControlStateNormal];
53 62
     [searchButton setTitleColor:[UIColor detailTitleColor] forState:UIControlStateNormal];
54
-    [searchButton setBackgroundColor:[UIColor CPColorWithHex:0xffffff]];
63
+    [searchButton setBackgroundColor:[UIColor backgroudColor]];
55 64
     searchButton.cornerRadius = 3;
56 65
     searchButton.titleLabel.font = FONT_SYS(14);
66
+    searchButton.imageEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);
67
+    searchButton.titleEdgeInsets = UIEdgeInsetsMake(0, 12, 0, 0);
57 68
     searchButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
58 69
     [searchButton addTarget:self action:@selector(searchAction) forControlEvents:UIControlEventTouchUpInside];
59 70
     self.navigationItem.titleView = searchButton;
@@ -62,25 +73,53 @@ static NSString *const homeIdentifier = @"homeIdentifier";
62 73
 - (void)createView{
63 74
     
64 75
     UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc]init];
65
-    flowLayout.itemSize = CGSizeMake((SCREEN_WIDTH - 30) / 2, 220*SCREEN_MUTI);
66
-    flowLayout.minimumLineSpacing = 0;
67
-    flowLayout.minimumInteritemSpacing = 0;
76
+//    flowLayout.itemSize = CGSizeMake((SCREEN_WIDTH - 30) / 2, 220*SCREEN_MUTI);
77
+//    flowLayout.minimumLineSpacing = 10;
78
+//    flowLayout.minimumInteritemSpacing = 5;
68 79
     UICollectionView *collectionView = [[UICollectionView alloc]initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT - NavHeight - TabbarHeight) collectionViewLayout:flowLayout];
69 80
     self.collectionView = collectionView;
70
-    collectionView.backgroundColor = [UIColor whiteColor];
81
+    collectionView.backgroundColor = [UIColor backgroudColor];
71 82
     [collectionView registerClass:[CPChoiceCollectionViewCell class] forCellWithReuseIdentifier:homeIdentifier];
83
+    [collectionView registerClass:[CPThemeCollectionCell class] forCellWithReuseIdentifier:themeIdentifier];
84
+    
72 85
     [collectionView registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"header"];
73 86
     collectionView.delegate = self;
74 87
     collectionView.dataSource = self;
88
+    
89
+    MJRefreshNormalHeader *header = [[MJRefreshNormalHeader alloc] init];
90
+    [header setRefreshingTarget:self refreshingAction:@selector(loadNewData)];
91
+    collectionView.mj_header = header;
92
+    
93
+    //上拉加载
94
+    MJRefreshAutoNormalFooter *footer=[[MJRefreshAutoNormalFooter alloc]init];
95
+    [footer setRefreshingTarget:self refreshingAction:@selector(loadMoreData)];
96
+    collectionView.mj_footer = footer;
75 97
     [self.view addSubview:collectionView];
76 98
 }
77 99
 
100
+- (void)loadNewData {
101
+    [self.dataSource removeAllObjects];
102
+    _page = 0;
103
+    [self requestData:@(_page)];
104
+}
105
+
106
+- (void)loadMoreData {
107
+    _page++;
108
+    [self requestData:@(_page)];
109
+}
110
+
78 111
 - (void)requestData:(NSNumber *)page{
79 112
     [CPRequestViewModel requestHomeTime:page Data:^(NSArray *data) {
80 113
         NSArray *array = [NSArray yy_modelArrayWithClass:[CPHomeListModel class] json:data];
81 114
         for (CPHomeListModel *model in array) {
82 115
             [self.dataSource addObject:model];
83 116
         }
117
+        if (array.count == 0) {
118
+            MJRefreshAutoNormalFooter *footer=(MJRefreshAutoNormalFooter *)self.collectionView.mj_footer;
119
+            [footer setTitle:@"到底了~" forState:MJRefreshStateIdle];
120
+        }
121
+        [self.collectionView.mj_header endRefreshing];
122
+        [self.collectionView.mj_footer endRefreshing];
84 123
         [self.collectionView reloadData];
85 124
     }];
86 125
 }
@@ -92,13 +131,51 @@ static NSString *const homeIdentifier = @"homeIdentifier";
92 131
     [self.navigationController pushViewController:search animated:YES];
93 132
 }
94 133
 
134
+- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
135
+    return 2;
136
+}
137
+
95 138
 - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
96 139
 {
140
+    if (section == 0) {
141
+        return 3;
142
+    }
97 143
     return self.dataSource.count;
98 144
 }
99 145
 
146
+- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
147
+    if (indexPath.section == 0) {
148
+        return CGSizeMake(SCREEN_WIDTH, 80+85*SCREEN_MUTI);
149
+    }else {
150
+        return CGSizeMake((SCREEN_WIDTH - 30) / 2, 220*SCREEN_MUTI);
151
+    }
152
+}
153
+
154
+- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section {
155
+    if (section == 0) {
156
+        return 5;
157
+    }else {
158
+        return 10;
159
+    }
160
+}
161
+
162
+- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section {
163
+    if (section == 0) {
164
+        return 5;
165
+    }else {
166
+        return 5;
167
+    }
168
+}
169
+
170
+
100 171
 - (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
101 172
 {
173
+    
174
+    if (indexPath.section == 0) {
175
+        CPThemeCollectionCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:themeIdentifier forIndexPath:indexPath];
176
+        return cell;
177
+    }
178
+    
102 179
     CPHomeListModel *model = self.dataSource[indexPath.row];
103 180
     CPChoiceCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:homeIdentifier forIndexPath:indexPath];
104 181
     cell.listModel = model;
@@ -107,20 +184,28 @@ static NSString *const homeIdentifier = @"homeIdentifier";
107 184
 
108 185
 - (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
109 186
 {
110
-    UICollectionReusableView *headerView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"header" forIndexPath:indexPath];
111
-    headerView.userInteractionEnabled = YES;
112
-    headerView.backgroundColor = [UIColor backgroudColor];
187
+    if (self.headerView) {
188
+        return self.headerView;
189
+    }
190
+    self.headerView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"header" forIndexPath:indexPath];
191
+    self.headerView .userInteractionEnabled = YES;
192
+    self.headerView .backgroundColor = [UIColor backgroudColor];
113 193
   
114
-    CPHomeHeaderView *header = [[CPHomeHeaderView alloc]initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 300*SCREEN_MUTI)];
194
+    CPHomeHeaderView *header = [[CPHomeHeaderView alloc]initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 260*SCREEN_MUTI)];
115 195
     header.delegate = self;
116
-    [headerView addSubview:header];
196
+    [self.headerView  addSubview:header];
117 197
     
118
-    return headerView;
198
+    return self.headerView ;
119 199
 }
120 200
 
121 201
 - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section
122 202
 {
123
-    return CGSizeMake(SCREEN_WIDTH, 300*SCREEN_MUTI);
203
+    if (section == 0) {
204
+        return CGSizeMake(SCREEN_WIDTH, 260*SCREEN_MUTI);
205
+    }else {
206
+        return CGSizeZero;
207
+    }
208
+    
124 209
 }
125 210
 
126 211
 - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
@@ -132,7 +217,12 @@ static NSString *const homeIdentifier = @"homeIdentifier";
132 217
 
133 218
 -(UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section
134 219
 {
135
-    return UIEdgeInsetsMake(0, 10, 0, 10);
220
+    if (section == 0) {
221
+        return UIEdgeInsetsMake(0, 0, 0, 0);
222
+    }else {
223
+        return UIEdgeInsetsMake(0, 10, 0, 10);
224
+    }
225
+    
136 226
 }
137 227
 
138 228
 #pragma mark ---------------------CPHomeHeaderViewDelegate---------------

+ 2 - 0
CAIPU/Main/Home(菜谱大全)/Views/CPChoiceCollectionViewCell.m

@@ -26,6 +26,8 @@
26 26
     self.backgroundColor = [UIColor whiteColor];
27 27
     
28 28
     _showImageView = [[UIImageView alloc]init];
29
+    _showImageView.contentMode = UIViewContentModeScaleAspectFill;
30
+    _showImageView.clipsToBounds = YES;
29 31
     [self.contentView addSubview:_showImageView];
30 32
     
31 33
     _titleLabel = [[UILabel alloc]init];

+ 19 - 15
CAIPU/Main/Home(菜谱大全)/Views/CPHomeHeaderView.m

@@ -39,7 +39,7 @@
39 39
 
40 40
 - (void)setupUI{
41 41
  
42
-    NewPagedFlowView *pageFlowView = [[NewPagedFlowView alloc] initWithFrame:CGRectMake(0, 10*SCREEN_MUTI, SCREEN_WIDTH,170*SCREEN_MUTI)];
42
+    NewPagedFlowView *pageFlowView = [[NewPagedFlowView alloc] initWithFrame:CGRectMake(0, 10*SCREEN_MUTI, SCREEN_WIDTH,150*SCREEN_MUTI)];
43 43
     self.bannerView = pageFlowView;
44 44
     pageFlowView.delegate = self;
45 45
     pageFlowView.dataSource = self;
@@ -48,29 +48,33 @@
48 48
     pageFlowView.orientation = NewPagedFlowViewOrientationHorizontal;
49 49
     pageFlowView.isOpenAutoScroll = YES;
50 50
     
51
-    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
52
-    self.titleButton = button;
53
-    button.frame = CGRectMake(SCREEN_WIDTH/2 - 160*SCREEN_MUTI, 130*SCREEN_MUTI, 320*SCREEN_MUTI, 40*SCREEN_MUTI);
54
-    [button setBackgroundImage:[UIImage imageNamed:@"home_banner_title"] forState:UIControlStateNormal];
55
-    [button setTitleColor:[UIColor CPColorWithHex:0xffffff] forState:UIControlStateNormal];
56
-    [pageFlowView addSubview:button];
51
+    //初始化pageControl
52
+    UIPageControl *pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(pageFlowView.frame), SCREEN_WIDTH, 20*SCREEN_MUTI)];
53
+    pageControl.backgroundColor = [UIColor whiteColor];
54
+    [pageControl setValue:[UIImage imageNamed:@"collection"] forKeyPath:@"_currentPageImage"];
55
+    [pageControl setValue:[UIImage imageNamed:@"collection"] forKeyPath:@"_pageImage"];
56
+    pageFlowView.pageControl = pageControl;
57
+    [self addSubview:pageControl];
58
+    
59
+    
60
+    
61
+//    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
62
+//    self.titleButton = button;
63
+//    button.frame = CGRectMake(0, 130*SCREEN_MUTI, SCREEN_WIDTH, 40*SCREEN_MUTI);
64
+//    [button setBackgroundImage:[UIImage imageNamed:@"home_banner_title"] forState:UIControlStateNormal];
65
+//    [button setTitleColor:[UIColor CPColorWithHex:0xffffff] forState:UIControlStateNormal];
66
+//    [pageFlowView addSubview:button];
57 67
    
58 68
     [self addSubview:pageFlowView];
59 69
     
60 70
     for (int i = 0; i < 6;i++) {
61
-        CPHotButton *hotButton = [[CPHotButton alloc]initWithFrame:CGRectMake(SCREEN_WIDTH/6*i, 190*SCREEN_MUTI, SCREEN_WIDTH/6, 76*SCREEN_MUTI)];
71
+        CPHotButton *hotButton = [[CPHotButton alloc]initWithFrame:CGRectMake(SCREEN_WIDTH/6*i, 180*SCREEN_MUTI, SCREEN_WIDTH/6, 76*SCREEN_MUTI)];
62 72
         hotButton.backgroundColor = [UIColor whiteColor];
63 73
         [hotButton addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];
64 74
         hotButton.tag = TAG + i;
65 75
         [self addSubview:hotButton];
66 76
     }
67 77
     
68
-    UILabel *choiceLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 266*SCREEN_MUTI, SCREEN_WIDTH, 34*SCREEN_MUTI)];
69
-    choiceLabel.textColor = [UIColor middleTitleColor];
70
-    choiceLabel.text = @"精品好菜";
71
-    choiceLabel.textAlignment = NSTextAlignmentCenter;
72
-    choiceLabel.font = FONT_SYS(14);
73
-    [self addSubview:choiceLabel];
74 78
 }
75 79
 
76 80
 - (void)buttonClick:(CPHotButton *)hotBtn{
@@ -112,7 +116,7 @@
112 116
 
113 117
 #pragma mark NewPagedFlowView Delegate
114 118
 - (CGSize)sizeForPageInFlowView:(NewPagedFlowView *)flowView {
115
-    return CGSizeMake(320*SCREEN_MUTI, 170*SCREEN_MUTI);
119
+    return CGSizeMake(SCREEN_WIDTH, 170*SCREEN_MUTI);
116 120
 }
117 121
 
118 122
 - (void)didSelectCell:(UIView *)subView withSubViewIndex:(NSInteger)subIndex {

+ 2 - 0
CAIPU/Main/Home(菜谱大全)/Views/CPSearchResultTableViewCell.m

@@ -24,6 +24,8 @@
24 24
 
25 25
 - (void)setupUI{
26 26
     imageView = [[UIImageView alloc]init];
27
+    imageView.contentMode = UIViewContentModeScaleAspectFill;
28
+    imageView.clipsToBounds = YES;
27 29
     [self.contentView addSubview:imageView];
28 30
     
29 31
     titleLabel = [[UILabel alloc]init];

+ 21 - 3
CAIPU/Main/Home(菜谱大全)/Views/CPSearchResultView.m

@@ -42,6 +42,16 @@
42 42
     footer.stateLabel.hidden = YES;
43 43
 }
44 44
 
45
+
46
+- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
47
+    if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
48
+        [cell setSeparatorInset:UIEdgeInsetsMake(0, 10, 0, 10)];
49
+        tableView.separatorColor = [UIColor btnGrayColor];
50
+        
51
+    }
52
+}
53
+
54
+
45 55
 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
46 56
     return self.dataSource.count;
47 57
 }
@@ -64,6 +74,7 @@
64 74
 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
65 75
     CPSearchResultModel *model = self.dataSource[indexPath.row];
66 76
     self.resultClickBlock(model);
77
+    [self.tableView deselectRowAtIndexPath:indexPath animated:YES];
67 78
 }
68 79
 
69 80
 - (void)refreshFooter:(MJRefreshAutoNormalFooter *)footer{
@@ -72,8 +83,15 @@
72 83
 }
73 84
 
74 85
 - (void)requestData{
75
-    [CPHTTP post:self.urlString params:@{@"value":self.value,@"time":@(self.page)} success:^(id json) {
86
+    [CPHTTP post:self.urlString params:@{@"value":self.value,@"page":@(self.page)} success:^(id json) {
76 87
         NSArray *array = [NSArray yy_modelArrayWithClass:[CPSearchResultModel class] json:json];
88
+        if (array.count == 0) {
89
+            [MBProgressHUD showMessage:@"无搜索结果"];
90
+        }
91
+        if (array.count == 0) {
92
+            MJRefreshAutoNormalFooter *footer=(MJRefreshAutoNormalFooter *)self.tableView.mj_footer;
93
+            [footer setTitle:@"到底了~" forState:MJRefreshStateIdle];
94
+        }
77 95
         if (self.page == 0) {
78 96
             [self.dataSource removeAllObjects];
79 97
         }
@@ -83,7 +101,7 @@
83 101
         [self.tableView.mj_footer endRefreshing];
84 102
         [self.tableView reloadData];
85 103
     } failure:^(NSError *error) {
86
-        
104
+        [MBProgressHUD showMessage:@"无搜索结果"];
87 105
     }];
88 106
 }
89 107
 
@@ -98,7 +116,7 @@
98 116
             self.urlString = [NSString stringWithFormat:@"%@/features/selectTag",URL];
99 117
             break;
100 118
         case CPSearchTypeSelectIngredients:
101
-            self.urlString = [NSString stringWithFormat:@"%@/features/selectTag",URL];
119
+            self.urlString = [NSString stringWithFormat:@"%@/features/selectIngredients",URL];
102 120
             break;
103 121
         default:
104 122
             break;

+ 22 - 0
CAIPU/Main/Home(菜谱大全)/Views/CPThemeCollectionCell.h

@@ -0,0 +1,22 @@
1
+//
2
+//  CPThemeCollectionCell.h
3
+//  CAIPU
4
+//
5
+//  Created by 小花 on 2018/4/2.
6
+//  Copyright © 2018年 kuxuan. All rights reserved.
7
+//
8
+
9
+#import <UIKit/UIKit.h>
10
+
11
+@interface CPThemeCollectionCell : UICollectionViewCell
12
+
13
+@end
14
+
15
+
16
+
17
+#pragma mark --============cell=========
18
+
19
+@interface CPThemeItem : UICollectionViewCell
20
+
21
+
22
+@end

+ 145 - 0
CAIPU/Main/Home(菜谱大全)/Views/CPThemeCollectionCell.m

@@ -0,0 +1,145 @@
1
+//
2
+//  CPThemeCollectionCell.m
3
+//  CAIPU
4
+//
5
+//  Created by 小花 on 2018/4/2.
6
+//  Copyright © 2018年 kuxuan. All rights reserved.
7
+//
8
+
9
+#import "CPThemeCollectionCell.h"
10
+
11
+@interface CPThemeCollectionCell ()<UICollectionViewDelegate,UICollectionViewDataSource>
12
+
13
+@property (nonatomic, strong) UILabel *titleLabel;
14
+@property (nonatomic, strong) UICollectionView *collectionView;
15
+@property (nonatomic, strong) UILabel *allButton;
16
+
17
+@end
18
+
19
+@implementation CPThemeCollectionCell
20
+
21
+- (instancetype)initWithFrame:(CGRect)frame {
22
+    self = [super initWithFrame:frame];
23
+    if (self) {
24
+        self.backgroundColor = [UIColor whiteColor];
25
+        [self initUI];
26
+    }
27
+    return self;
28
+}
29
+
30
+- (void)initUI {
31
+    self.titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 300*SCREEN_MUTI, 20)];
32
+    self.titleLabel.font = [UIFont boldSystemFontOfSize:17];
33
+    self.titleLabel.text = @"这是有个主题";
34
+    [self.contentView addSubview:self.titleLabel];
35
+    
36
+    self.allButton = [[UILabel alloc] initWithFrame:CGRectMake(SCREEN_WIDTH-60-10, 0, 60, 40)];
37
+    self.allButton.textColor = [UIColor detailTitleColor];
38
+    self.allButton.textAlignment = NSTextAlignmentRight;
39
+    self.allButton.userInteractionEnabled = YES;
40
+    self.allButton.font = [UIFont systemFontOfSize:14];
41
+    self.allButton.text = @"查看全部";
42
+    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(allAction)];
43
+    [self.allButton addGestureRecognizer:tap];
44
+    [self.contentView addSubview:self.allButton];
45
+    
46
+    UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc]init];
47
+    flowLayout.itemSize = CGSizeMake((SCREEN_WIDTH - 20 -60 ) / 2, 115*SCREEN_MUTI);
48
+    flowLayout.minimumLineSpacing = 5;
49
+    flowLayout.minimumInteritemSpacing = 5;
50
+    UICollectionView *collectionView = [[UICollectionView alloc]initWithFrame:CGRectMake(10, 40, SCREEN_WIDTH-20, 125*SCREEN_MUTI) collectionViewLayout:flowLayout];
51
+    [collectionView registerClass:[CPThemeItem class] forCellWithReuseIdentifier:@"CPThemeItem"];
52
+    collectionView.delegate = self;
53
+    collectionView.dataSource = self;
54
+    collectionView.backgroundColor = [UIColor whiteColor];
55
+    self.collectionView = collectionView;
56
+    flowLayout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
57
+    [self.contentView addSubview:self.collectionView];
58
+}
59
+
60
+- (void)allAction {
61
+    
62
+}
63
+
64
+
65
+#pragma mark -----------------
66
+- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
67
+{
68
+    return 10;
69
+}
70
+
71
+- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
72
+{
73
+    CPThemeItem *item = [collectionView dequeueReusableCellWithReuseIdentifier:@"CPThemeItem" forIndexPath:indexPath];
74
+    
75
+    return item;
76
+}
77
+
78
+
79
+- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
80
+   
81
+}
82
+
83
+@end
84
+
85
+
86
+#pragma mark================cell=========
87
+
88
+@interface CPThemeItem ()
89
+
90
+@property (nonatomic, strong) UIImageView *imageView;
91
+@property (nonatomic, strong) UILabel *titleLabel;
92
+
93
+@end
94
+
95
+@implementation CPThemeItem
96
+
97
+- (instancetype)initWithFrame:(CGRect)frame {
98
+    self = [super initWithFrame:frame];
99
+    if (self) {
100
+        [self initUI];
101
+    }
102
+    return self;
103
+}
104
+
105
+- (void)initUI {
106
+   
107
+    [self.contentView addSubview:self.imageView];
108
+    [self.contentView addSubview:self.titleLabel];
109
+    
110
+    [self.imageView mas_makeConstraints:^(MASConstraintMaker *make) {
111
+        make.left.top.right.mas_equalTo(0);
112
+        make.height.mas_equalTo(85*SCREEN_MUTI);
113
+    }];
114
+    
115
+    [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
116
+        make.top.mas_equalTo(self.imageView.mas_bottom).mas_offset(10);
117
+        make.left.right.mas_equalTo(0);
118
+        make.height.mas_equalTo(20);
119
+    }];
120
+}
121
+
122
+- (UIImageView *)imageView {
123
+    if (!_imageView) {
124
+        _imageView = [[UIImageView alloc] init];
125
+        _imageView.backgroundColor = [UIColor imageBgColor];
126
+        _imageView.layer.cornerRadius = 4;
127
+        _imageView.clipsToBounds = YES;
128
+    }
129
+    return _imageView;
130
+}
131
+
132
+- (UILabel *)titleLabel {
133
+    if (!_titleLabel) {
134
+        _titleLabel = [[UILabel alloc] init];
135
+        _titleLabel.textColor = [UIColor middleTitleColor];
136
+        _titleLabel.font = [UIFont systemFontOfSize:14];
137
+        _titleLabel.text = @"大烤鸭";
138
+    }
139
+    return _titleLabel;
140
+}
141
+
142
+
143
+
144
+@end
145
+

+ 5 - 1
CAIPU/Main/Home(菜谱大全)/Views/DetailView/CPDetailHeaderView.m

@@ -24,11 +24,13 @@
24 24
 
25 25
 - (void)setupUI{
26 26
     _imageView = [[UIImageView alloc]init];
27
+    _imageView.contentMode = UIViewContentModeScaleAspectFill;
28
+    _imageView.clipsToBounds = YES;
27 29
     [self addSubview:_imageView];
28 30
     
29 31
     _titleLabel = [[UILabel alloc]init];
30 32
     _titleLabel.textColor = [UIColor titleColor];
31
-    _titleLabel.font = FONT_SYS(16);
33
+    _titleLabel.font = FONT_SYS(19);
32 34
     [self addSubview:_titleLabel];
33 35
     
34 36
     _detailLabel = [[UILabel alloc]init];
@@ -38,11 +40,13 @@
38 40
     
39 41
     _collectButton = [UIButton buttonWithType:UIButtonTypeCustom];
40 42
     _collectButton.backgroundColor = [UIColor CPColorWithHex:0xfa3d3d];
43
+    _collectButton.layer.cornerRadius = 3;
41 44
     [_collectButton addTarget:self action:@selector(collectAction) forControlEvents:UIControlEventTouchUpInside];
42 45
     [_collectButton setTitle:@"收藏" forState:UIControlStateNormal];
43 46
     [_collectButton setTitleColor:[UIColor CPColorWithHex:0xffffff] forState:UIControlStateNormal];
44 47
     [_collectButton setTitle:@"已收藏" forState:UIControlStateSelected];
45 48
     [_collectButton setTitleColor:[UIColor middleTitleColor] forState:UIControlStateSelected];
49
+    _collectButton.titleLabel.font = [UIFont systemFontOfSize:14];
46 50
     [self addSubview:_collectButton];
47 51
     
48 52
     UIView *lineView = [[UIView alloc]initWithFrame:CGRectMake(0, self.height - 6, SCREEN_WIDTH, 6)];

+ 5 - 3
CAIPU/Main/Home(菜谱大全)/Views/DetailView/CPDetailTableViewCell.m

@@ -24,22 +24,24 @@
24 24
     nameLabel = [[UILabel alloc]init];
25 25
     nameLabel.textColor = [UIColor titleColor];
26 26
     nameLabel.font = FONT_SYS(15);
27
-    nameLabel.textAlignment = NSTextAlignmentLeft;
27
+    nameLabel.textAlignment = NSTextAlignmentCenter;
28
+    nameLabel.textColor = [UIColor middleTitleColor];
28 29
     [self.contentView addSubview:nameLabel];
29 30
     
30 31
     measureLabel = [[UILabel alloc]init];
31 32
     measureLabel.textColor = [UIColor titleColor];
32 33
     measureLabel.font = FONT_SYS(15);
33 34
     measureLabel.textAlignment = NSTextAlignmentLeft;
35
+    measureLabel.textColor = [UIColor middleTitleColor];
34 36
     [self.contentView addSubview:measureLabel];
35 37
     
36 38
     [nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
37
-        make.left.equalTo(self.contentView.mas_left).offset(84*SCREEN_MUTI);
39
+        make.centerX.equalTo(self.contentView.mas_left).offset(84*SCREEN_MUTI);
38 40
         make.top.equalTo(self.contentView.mas_top).offset(17);
39 41
     }];
40 42
     
41 43
     [measureLabel mas_makeConstraints:^(MASConstraintMaker *make) {
42
-        make.left.equalTo(self.contentView.mas_left).offset(240*SCREEN_MUTI);
44
+        make.centerX.equalTo(self.contentView.mas_left).offset(240*SCREEN_MUTI);
43 45
         make.top.equalTo(self.contentView.mas_top).offset(17);
44 46
     }];
45 47
     

+ 1 - 1
CAIPU/Main/Home(菜谱大全)/Views/DetailView/CPPerceptionView.m

@@ -46,7 +46,7 @@
46 46
 
47 47
 - (void)setPerception:(NSString *)perception{
48 48
     _perception = perception;
49
-    NSMutableAttributedString *attri = [[NSMutableAttributedString alloc] initWithString:perception attributes:@{NSFontAttributeName:FONT_SYS(14)}];
49
+    NSMutableAttributedString *attri = [[NSMutableAttributedString alloc] initWithString:perception attributes:@{NSFontAttributeName:FONT_SYS(14),NSForegroundColorAttributeName:[UIColor middleTitleColor]}];
50 50
     attri.yy_lineSpacing = 8;
51 51
     _perceptionLabel.attributedText = attri;
52 52
     YYTextLayout *layout = [YYTextLayout layoutWithContainerSize:CGSizeMake(SCREEN_WIDTH - 48*SCREEN_MUTI, MAXFLOAT) text:attri];

+ 2 - 0
CAIPU/Main/Home(菜谱大全)/Views/DetailView/CPStepTableViewCell.m

@@ -23,6 +23,8 @@
23 23
 
24 24
 - (void)setupUI{
25 25
     imageView = [[UIImageView alloc]init];
26
+    imageView.contentMode = UIViewContentModeScaleAspectFill;
27
+    imageView.clipsToBounds = YES;
26 28
     [self.contentView addSubview:imageView];
27 29
     
28 30
     titleLabel = [[UILabel alloc]init];

+ 1 - 1
CAIPU/Main/More(更多)/Controllers/CPAboutViewController.m

@@ -37,7 +37,7 @@
37 37
 
38 38
 -(void)createNav{
39 39
     
40
-    [self addLeftBarButtonItemWithImageName:@"home_back" title:nil target:self selector:@selector(backAction)];
40
+    [self addLeftBarButtonItemWithImageName:@"white_back" title:nil target:self selector:@selector(backAction)];
41 41
 }
42 42
 
43 43
 -(void)backAction{

+ 6 - 4
CAIPU/Main/More(更多)/Controllers/CPFeedBackController.m

@@ -25,7 +25,7 @@
25 25
 
26 26
 -(void)createNav{
27 27
     
28
-    [self addLeftBarButtonItemWithImageName:@"home_back" title:nil target:self selector:@selector(backAction)];
28
+    [self addLeftBarButtonItemWithImageName:@"white_back" title:nil target:self selector:@selector(backAction)];
29 29
 }
30 30
 
31 31
 -(void)backAction{
@@ -67,11 +67,13 @@
67 67
 - (void)feedbackAction {
68 68
     
69 69
     NSString *msg = self.textView.text;
70
-    NSString *urlString = [NSString stringWithFormat:@"%@/user/feedBack",URL];
70
+    NSString *urlString = [NSString stringWithFormat:@"%@/features/feedBack",URL];
71 71
     [CPHTTP post:urlString params:@{@"message":msg} success:^(id json) {
72
-        
72
+        [MBProgressHUD showSuccess:@"提交成功,感谢您的反馈~"];
73
+        self.textView.text = nil;
74
+        [self.navigationController popViewControllerAnimated:YES];
73 75
     } failure:^(NSError *error) {
74
-        
76
+        [MBProgressHUD showSuccess:@"提交失败"];
75 77
     }];
76 78
     
77 79
 }

+ 1 - 1
CAIPU/Main/More(更多)/Controllers/CPHistoryCell.m

@@ -95,7 +95,7 @@
95 95
 - (UILabel *)tags {
96 96
     if (!_tags) {
97 97
         _tags = [[UILabel alloc] init];
98
-        _tags.numberOfLines = 4;
98
+        _tags.numberOfLines = 2;
99 99
         _tags.font = [UIFont systemFontOfSize:14];
100 100
         _tags.textColor = [UIColor CPColorWithHex:0x666666];
101 101
     }

+ 20 - 0
CAIPU/Main/More(更多)/Controllers/CPMoreViewController.m

@@ -23,10 +23,18 @@ static NSString *const cellIdentifier = @"moreCell";
23 23
 
24 24
 @implementation CPMoreViewController
25 25
 
26
+- (void)viewWillAppear:(BOOL)animated {
27
+    [super viewWillAppear:animated];
28
+    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
29
+}
30
+
26 31
 - (void)viewDidLoad {
27 32
     [super viewDidLoad];
28 33
     // Do any additional setup after loading the view.
29 34
     self.title = @"更多";
35
+    self.navigationController.navigationBar.barTintColor = [UIColor baseColor];
36
+    [self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]}];
37
+    
30 38
     [self setupUI];
31 39
 }
32 40
 
@@ -40,6 +48,14 @@ static NSString *const cellIdentifier = @"moreCell";
40 48
     
41 49
 }
42 50
 
51
+- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
52
+    if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
53
+        [cell setSeparatorInset:UIEdgeInsetsMake(0, 20, 0, 20)];
54
+        tableView.separatorColor = [UIColor btnGrayColor];
55
+        
56
+    }
57
+}
58
+
43 59
 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
44 60
     return self.dataSource.count;
45 61
 }
@@ -67,6 +83,10 @@ static NSString *const cellIdentifier = @"moreCell";
67 83
     return 15;
68 84
 }
69 85
 
86
+- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
87
+    return 50;
88
+}
89
+
70 90
 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
71 91
     if (indexPath.row == 0) {
72 92
         CPMyHistoryController *history = [[CPMyHistoryController alloc] init];

+ 1 - 1
CAIPU/Main/More(更多)/Controllers/CPMyHistoryController.m

@@ -33,7 +33,7 @@
33 33
 
34 34
 -(void)createNav{
35 35
     
36
-    [self addLeftBarButtonItemWithImageName:@"home_back" title:nil target:self selector:@selector(backAction)];
36
+    [self addLeftBarButtonItemWithImageName:@"white_back" title:nil target:self selector:@selector(backAction)];
37 37
     [self.view addSubview:self.tableView];
38 38
 }
39 39
 

+ 2 - 0
CAIPU/Main/Third(第三方)/NewPagedFlowView/PGIndexBannerSubiew.m

@@ -48,6 +48,8 @@
48 48
     if (_mainImageView == nil) {
49 49
         _mainImageView = [[UIImageView alloc] init];
50 50
         _mainImageView.userInteractionEnabled = YES;
51
+        _mainImageView.contentMode = UIViewContentModeScaleAspectFill;
52
+        _mainImageView.clipsToBounds = YES;
51 53
     }
52 54
     return _mainImageView;
53 55
 }

+ 1 - 0
CAIPU/Main/Tools(工具)/CPHTTP.h

@@ -7,6 +7,7 @@
7 7
 //
8 8
 
9 9
 #import <Foundation/Foundation.h>
10
+#import "SortDictManager.h"
10 11
 
11 12
 @interface CPHTTP : NSObject
12 13
 

+ 17 - 10
CAIPU/Main/Tools(工具)/CPHTTP.m

@@ -20,13 +20,17 @@
20 20
     NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];
21 21
     NSString *app_Version = [infoDictionary objectForKey:@"CFBundleShortVersionString"];
22 22
     [mgr.requestSerializer setValue:app_Version forHTTPHeaderField:@"version"];
23
-    NSDate *date = [NSDate date];
24
-    NSInteger time = [date timeIntervalSince1970];
25
-    NSString *timeStr = [NSString stringWithFormat:@"%ld",(long)time];
26
-    [mgr.requestSerializer setValue:timeStr forHTTPHeaderField:@"time"];
23
+//    NSDate *date = [NSDate date];
24
+//    NSInteger time = [date timeIntervalSince1970];
25
+//    NSString *timeStr = [NSString stringWithFormat:@"%ld",(long)time];
26
+//    [mgr.requestSerializer setValue:timeStr forHTTPHeaderField:@"time"];
27
+    
28
+    //1.加密请求参数
29
+   
30
+    NSDictionary *newParams = [SortDictManager SortDictFromDict:params];
27 31
     
28 32
     // 2.发送请求
29
-    [mgr POST:url parameters:params progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
33
+    [mgr POST:url parameters:newParams progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
30 34
         id responseDict =[NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
31 35
         if ([responseDict[@"errno"] isEqual:@"200"]) {
32 36
             success([responseDict[@"rst"] valueForKey:@"data"]);
@@ -49,13 +53,16 @@
49 53
     mgr.requestSerializer = [AFHTTPRequestSerializer serializer];  // 解析为data
50 54
     mgr.responseSerializer=[AFHTTPResponseSerializer serializer];
51 55
     mgr.responseSerializer.acceptableContentTypes =[NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html",nil];
52
-    NSDate *date = [NSDate date];
53
-    NSInteger time = [date timeIntervalSince1970];
54
-    NSString *timeStr = [NSString stringWithFormat:@"%ld",(long)time];
55
-    [mgr.requestSerializer setValue:timeStr forHTTPHeaderField:@"time"];
56
+//    NSDate *date = [NSDate date];
57
+//    NSInteger time = [date timeIntervalSince1970];
58
+//    NSString *timeStr = [NSString stringWithFormat:@"%ld",(long)time];
59
+//    [mgr.requestSerializer setValue:timeStr forHTTPHeaderField:@"time"];
56 60
  
61
+    //1.加密请求参数
62
+    NSDictionary *newParams = [SortDictManager SortDictFromDict:params];
63
+    
57 64
     // 2.发送请求
58
-    [mgr GET:url parameters:params progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
65
+    [mgr GET:url parameters:newParams progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
59 66
         id responseDict =[NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
60 67
         if ([responseDict[@"code"] isEqual:@0]) {
61 68
             if (!responseDict[@"data"]) {

+ 19 - 0
CAIPU/Main/Tools(工具)/SortDictManager.h

@@ -0,0 +1,19 @@
1
+//
2
+//  SortDictManager.h
3
+//  字典排序
4
+//
5
+//  Created by 小花 on 2018/3/12.
6
+//  Copyright © 2018年 kuxuan. All rights reserved.
7
+//
8
+
9
+#import <Foundation/Foundation.h>
10
+
11
+@interface SortDictManager : NSObject
12
+
13
+//字典正序转字符串
14
++ (NSString *)getNeedSignStrFrom:(id)obj;
15
+//字典正序
16
++ (NSDictionary *)SortDictFromDict:(id)obj;
17
+//md5加密
18
++ (NSString *)md5:(NSString *)str;
19
+@end

+ 101 - 0
CAIPU/Main/Tools(工具)/SortDictManager.m

@@ -0,0 +1,101 @@
1
+//
2
+//  SortDictManager.m
3
+//  字典排序
4
+//
5
+//  Created by 小花 on 2018/3/12.
6
+//  Copyright © 2018年 kuxuan. All rights reserved.
7
+//
8
+
9
+#import "SortDictManager.h"
10
+#import <CommonCrypto/CommonDigest.h>
11
+@implementation SortDictManager
12
+
13
++ (NSString *)getNeedSignStrFrom:(id)obj{
14
+    NSDictionary *dict = obj;
15
+    NSArray *arrPrimary = dict.allKeys;
16
+    
17
+    NSArray *arrKey = [arrPrimary sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2){
18
+        NSComparisonResult result = [obj1 compare:obj2];
19
+        return result == NSOrderedDescending;//NSOrderedAscending 倒序
20
+    }];
21
+    
22
+    NSString *str =@"";
23
+    
24
+    for (NSString *s in arrKey) {
25
+        id value = dict[s];
26
+        if([value isKindOfClass:[NSDictionary class]]) {
27
+            value = [self getNeedSignStrFrom:value];
28
+        }
29
+        if([str length] !=0) {
30
+            
31
+            str = [str stringByAppendingString:@","];
32
+            
33
+        }
34
+        
35
+        str = [str stringByAppendingFormat:@"%@:%@",s,value];
36
+        
37
+    }
38
+
39
+    
40
+    return str;
41
+}
42
+
43
+
44
++ (NSDictionary *)SortDictFromDict:(id)obj{
45
+    
46
+    NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithDictionary:obj];
47
+    
48
+    //当前时间戳
49
+    NSDate *date = [NSDate date];
50
+    NSInteger time = [date timeIntervalSince1970];
51
+    NSString *timeStr = [NSString stringWithFormat:@"%ld",(long)time];
52
+    [dict setObject:timeStr forKey:@"time"];
53
+    
54
+    NSArray *arrPrimary = dict.allKeys;
55
+    
56
+    NSArray *arrKey = [arrPrimary sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2){
57
+        NSComparisonResult result = [obj1 compare:obj2];
58
+        return result == NSOrderedDescending;//NSOrderedAscending 倒序
59
+    }];
60
+    
61
+    NSString *str =@"";
62
+    NSMutableDictionary *newDic = [NSMutableDictionary dictionary];
63
+    
64
+    for (NSString *key in arrKey) {
65
+        id value = dict[key];
66
+        if([value isKindOfClass:[NSDictionary class]]) {
67
+            value = [self getNeedSignStrFrom:value];
68
+        }
69
+        
70
+        if([str length] !=0) {
71
+            str = [str stringByAppendingString:@"&"];
72
+        }
73
+        str = [str stringByAppendingFormat:@"%@=%@",key,value];
74
+        
75
+        [newDic setObject:value forKey:key];
76
+    }
77
+    str = [str stringByAppendingString:SIGN_KEY];
78
+    
79
+    NSString *md5Str = [self md5:str];
80
+    [newDic setObject:md5Str forKey:@"sign"];
81
+    
82
+    
83
+    return newDic;
84
+}
85
+
86
++ (NSString *)md5:(NSString *)str
87
+{
88
+    const char *cStr = [str UTF8String];
89
+    unsigned char result[16];
90
+    CC_MD5(cStr, (CC_LONG)strlen(cStr), result);
91
+    return [NSString stringWithFormat:
92
+            @"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
93
+            result[0], result[1], result[2], result[3],
94
+            result[4], result[5], result[6], result[7],
95
+            result[8], result[9], result[10], result[11],
96
+            result[12], result[13], result[14], result[15]
97
+            ];
98
+}
99
+
100
+
101
+@end

+ 3 - 0
Podfile

@@ -15,5 +15,8 @@ pod 'UMengAnalytics'
15 15
 pod 'Bugly'
16 16
 pod 'YYText'
17 17
 pod 'LKDBHelper'
18
+pod 'PYPhotoBrowser'
19
+pod 'UITableView+FDTemplateLayoutCell', '~> 1.6'
20
+pod 'SDAutoLayout', '~> 2.2.0'
18 21
 
19 22
 end

+ 15 - 1
Podfile.lock

@@ -15,6 +15,7 @@ PODS:
15 15
   - AFNetworking/UIKit (3.1.0):
16 16
     - AFNetworking/NSURLSession
17 17
   - Bugly (2.5.0)
18
+  - DACircularProgress (2.3.1)
18 19
   - FMDB (2.7.2):
19 20
     - FMDB/standard (= 2.7.2)
20 21
   - FMDB/standard (2.7.2)
@@ -26,9 +27,15 @@ PODS:
26 27
   - Masonry (1.1.0)
27 28
   - MBProgressHUD (1.1.0)
28 29
   - MJRefresh (3.1.15.1)
30
+  - PYPhotoBrowser (1.2.5):
31
+    - DACircularProgress
32
+    - MBProgressHUD
33
+    - SDWebImage
34
+  - SDAutoLayout (2.2.0)
29 35
   - SDWebImage (3.7.3):
30 36
     - SDWebImage/Core (= 3.7.3)
31 37
   - SDWebImage/Core (3.7.3)
38
+  - UITableView+FDTemplateLayoutCell (1.6)
32 39
   - UMengAnalytics (4.2.4)
33 40
   - YYModel (1.0.4)
34 41
   - YYText (1.0.7)
@@ -42,7 +49,10 @@ DEPENDENCIES:
42 49
   - Masonry
43 50
   - MBProgressHUD
44 51
   - MJRefresh
52
+  - PYPhotoBrowser
53
+  - SDAutoLayout (~> 2.2.0)
45 54
   - SDWebImage (= 3.7.3)
55
+  - UITableView+FDTemplateLayoutCell (~> 1.6)
46 56
   - UMengAnalytics
47 57
   - YYModel
48 58
   - YYText
@@ -50,17 +60,21 @@ DEPENDENCIES:
50 60
 SPEC CHECKSUMS:
51 61
   AFNetworking: 5e0e199f73d8626b11e79750991f5d173d1f8b67
52 62
   Bugly: 3ca9f255c01025582df26f9222893b383c7e4b4e
63
+  DACircularProgress: 4dd437c0fc3da5161cb289e07ac449493d41db71
53 64
   FMDB: 6198a90e7b6900cfc046e6bc0ef6ebb7be9236aa
54 65
   IQKeyboardManager: 077b7f691dfa9d69db9cff66f2bed68ebfc02d9b
55 66
   LKDBHelper: 9a276ba51f2e16263d46a9517e16cc9b03472664
56 67
   Masonry: 678fab65091a9290e40e2832a55e7ab731aad201
57 68
   MBProgressHUD: e7baa36a220447d8aeb12769bf0585582f3866d9
58 69
   MJRefresh: 5f8552bc25ca8751c010f621c1098dbdaacbccd6
70
+  PYPhotoBrowser: 832154ec5e61c2c321d9be0e69af1fda8731e5ac
71
+  SDAutoLayout: c5509e77ae75735d9a39f7bc83dba6d3f75d49d8
59 72
   SDWebImage: 1d2b1a1efda1ade1b00b6f8498865f8ddedc8a84
73
+  UITableView+FDTemplateLayoutCell: 5c949b4a5059c404b442926c0e80f81d10a2d66f
60 74
   UMengAnalytics: ef8d45f94c0e5771dc364cf6a5731d9d3b101da2
61 75
   YYModel: 2a7fdd96aaa4b86a824e26d0c517de8928c04b30
62 76
   YYText: 5c461d709e24d55a182d1441c41dc639a18a4849
63 77
 
64
-PODFILE CHECKSUM: a28fc03025dfb2b6d10f34d64fcc7e3ce724052c
78
+PODFILE CHECKSUM: 5ae5854d3a7482f0551fad3e59603512a343619e
65 79
 
66 80
 COCOAPODS: 1.3.1

+ 28 - 0
Pods/DACircularProgress/DACircularProgress/DACircularProgressView.h

@@ -0,0 +1,28 @@
1
+//
2
+//  DACircularProgressView.h
3
+//  DACircularProgress
4
+//
5
+//  Created by Daniel Amitay on 2/6/12.
6
+//  Copyright (c) 2012 Daniel Amitay. All rights reserved.
7
+//
8
+
9
+#import <UIKit/UIKit.h>
10
+
11
+@interface DACircularProgressView : UIView
12
+
13
+@property(nonatomic, strong) UIColor *trackTintColor UI_APPEARANCE_SELECTOR;
14
+@property(nonatomic, strong) UIColor *progressTintColor UI_APPEARANCE_SELECTOR;
15
+@property(nonatomic, strong) UIColor *innerTintColor UI_APPEARANCE_SELECTOR;
16
+@property(nonatomic) NSInteger roundedCorners UI_APPEARANCE_SELECTOR; // Can not use BOOL with UI_APPEARANCE_SELECTOR :-(
17
+@property(nonatomic) CGFloat thicknessRatio UI_APPEARANCE_SELECTOR;
18
+@property(nonatomic) NSInteger clockwiseProgress UI_APPEARANCE_SELECTOR; // Can not use BOOL with UI_APPEARANCE_SELECTOR :-(
19
+@property(nonatomic) CGFloat progress;
20
+
21
+@property(nonatomic) CGFloat indeterminateDuration UI_APPEARANCE_SELECTOR;
22
+@property(nonatomic) NSInteger indeterminate UI_APPEARANCE_SELECTOR; // Can not use BOOL with UI_APPEARANCE_SELECTOR :-(
23
+
24
+- (void)setProgress:(CGFloat)progress animated:(BOOL)animated;
25
+- (void)setProgress:(CGFloat)progress animated:(BOOL)animated initialDelay:(CFTimeInterval)initialDelay;
26
+- (void)setProgress:(CGFloat)progress animated:(BOOL)animated initialDelay:(CFTimeInterval)initialDelay withDuration:(CFTimeInterval)duration;
27
+
28
+@end

+ 321 - 0
Pods/DACircularProgress/DACircularProgress/DACircularProgressView.m

@@ -0,0 +1,321 @@
1
+//
2
+//  DACircularProgressView.m
3
+//  DACircularProgress
4
+//
5
+//  Created by Daniel Amitay on 2/6/12.
6
+//  Copyright (c) 2012 Daniel Amitay. All rights reserved.
7
+//
8
+
9
+#import "DACircularProgressView.h"
10
+
11
+#import <QuartzCore/QuartzCore.h>
12
+
13
+@interface DACircularProgressLayer : CALayer
14
+
15
+@property(nonatomic, strong) UIColor *trackTintColor;
16
+@property(nonatomic, strong) UIColor *progressTintColor;
17
+@property(nonatomic, strong) UIColor *innerTintColor;
18
+@property(nonatomic) NSInteger roundedCorners;
19
+@property(nonatomic) CGFloat thicknessRatio;
20
+@property(nonatomic) CGFloat progress;
21
+@property(nonatomic) NSInteger clockwiseProgress;
22
+
23
+@end
24
+
25
+@implementation DACircularProgressLayer
26
+
27
+@dynamic trackTintColor;
28
+@dynamic progressTintColor;
29
+@dynamic innerTintColor;
30
+@dynamic roundedCorners;
31
+@dynamic thicknessRatio;
32
+@dynamic progress;
33
+@dynamic clockwiseProgress;
34
+
35
++ (BOOL)needsDisplayForKey:(NSString *)key
36
+{
37
+    if ([key isEqualToString:@"progress"]) {
38
+        return YES;
39
+    } else {
40
+        return [super needsDisplayForKey:key];
41
+    }
42
+}
43
+
44
+- (void)drawInContext:(CGContextRef)context
45
+{
46
+    CGRect rect = self.bounds;
47
+    CGPoint centerPoint = CGPointMake(rect.size.width / 2.0f, rect.size.height / 2.0f);
48
+    CGFloat radius = MIN(rect.size.height, rect.size.width) / 2.0f;
49
+    
50
+    BOOL clockwise = (self.clockwiseProgress != 0);
51
+    
52
+    CGFloat progress = MIN(self.progress, 1.0f - FLT_EPSILON);
53
+    CGFloat radians = 0;
54
+    if (clockwise) {
55
+        radians = (float)((progress * 2.0f * M_PI) - M_PI_2);
56
+    } else {
57
+        radians = (float)(3 * M_PI_2 - (progress * 2.0f * M_PI));
58
+    }
59
+    
60
+    CGContextSetFillColorWithColor(context, self.trackTintColor.CGColor);
61
+    CGMutablePathRef trackPath = CGPathCreateMutable();
62
+    CGPathMoveToPoint(trackPath, NULL, centerPoint.x, centerPoint.y);
63
+    CGPathAddArc(trackPath, NULL, centerPoint.x, centerPoint.y, radius, (float)(2.0f * M_PI), 0.0f, TRUE);
64
+    CGPathCloseSubpath(trackPath);
65
+    CGContextAddPath(context, trackPath);
66
+    CGContextFillPath(context);
67
+    CGPathRelease(trackPath);
68
+    
69
+    if (progress > 0.0f) {
70
+        CGContextSetFillColorWithColor(context, self.progressTintColor.CGColor);
71
+        CGMutablePathRef progressPath = CGPathCreateMutable();
72
+        CGPathMoveToPoint(progressPath, NULL, centerPoint.x, centerPoint.y);
73
+        CGPathAddArc(progressPath, NULL, centerPoint.x, centerPoint.y, radius, (float)(3.0f * M_PI_2), radians, !clockwise);
74
+        CGPathCloseSubpath(progressPath);
75
+        CGContextAddPath(context, progressPath);
76
+        CGContextFillPath(context);
77
+        CGPathRelease(progressPath);
78
+    }
79
+    
80
+    if (progress > 0.0f && self.roundedCorners) {
81
+        CGFloat pathWidth = radius * self.thicknessRatio;
82
+        CGFloat xOffset = radius * (1.0f + ((1.0f - (self.thicknessRatio / 2.0f)) * cosf(radians)));
83
+        CGFloat yOffset = radius * (1.0f + ((1.0f - (self.thicknessRatio / 2.0f)) * sinf(radians)));
84
+        CGPoint endPoint = CGPointMake(xOffset, yOffset);
85
+        
86
+        CGRect startEllipseRect = (CGRect) {
87
+            .origin.x = centerPoint.x - pathWidth / 2.0f,
88
+            .origin.y = 0.0f,
89
+            .size.width = pathWidth,
90
+            .size.height = pathWidth
91
+        };
92
+        CGContextAddEllipseInRect(context, startEllipseRect);
93
+        CGContextFillPath(context);
94
+        
95
+        CGRect endEllipseRect = (CGRect) {
96
+            .origin.x = endPoint.x - pathWidth / 2.0f,
97
+            .origin.y = endPoint.y - pathWidth / 2.0f,
98
+            .size.width = pathWidth,
99
+            .size.height = pathWidth
100
+        };
101
+        CGContextAddEllipseInRect(context, endEllipseRect);
102
+        CGContextFillPath(context);
103
+    }
104
+
105
+    CGContextSetBlendMode(context, kCGBlendModeClear);
106
+    CGFloat innerRadius = radius * (1.0f - self.thicknessRatio);
107
+    CGRect clearRect = (CGRect) {
108
+        .origin.x = centerPoint.x - innerRadius,
109
+        .origin.y = centerPoint.y - innerRadius,
110
+        .size.width = innerRadius * 2.0f,
111
+        .size.height = innerRadius * 2.0f
112
+    };
113
+    CGContextAddEllipseInRect(context, clearRect);
114
+    CGContextFillPath(context);
115
+
116
+    if (self.innerTintColor) {
117
+        CGContextSetBlendMode(context, kCGBlendModeNormal);
118
+        CGContextSetFillColorWithColor(context, [self.innerTintColor CGColor]);
119
+        CGContextAddEllipseInRect(context, clearRect);
120
+        CGContextFillPath(context);
121
+    }
122
+}
123
+
124
+@end
125
+
126
+@interface DACircularProgressView ()
127
+
128
+@end
129
+
130
+@implementation DACircularProgressView
131
+
132
++ (void) initialize
133
+{
134
+    if (self == [DACircularProgressView class]) {
135
+        DACircularProgressView *circularProgressViewAppearance = [DACircularProgressView appearance];
136
+        [circularProgressViewAppearance setTrackTintColor:[[UIColor whiteColor] colorWithAlphaComponent:0.3f]];
137
+        [circularProgressViewAppearance setProgressTintColor:[UIColor whiteColor]];
138
+        [circularProgressViewAppearance setInnerTintColor:nil];
139
+        [circularProgressViewAppearance setBackgroundColor:[UIColor clearColor]];
140
+        [circularProgressViewAppearance setThicknessRatio:0.3f];
141
+        [circularProgressViewAppearance setRoundedCorners:NO];
142
+        [circularProgressViewAppearance setClockwiseProgress:YES];
143
+        
144
+        [circularProgressViewAppearance setIndeterminateDuration:2.0f];
145
+        [circularProgressViewAppearance setIndeterminate:NO];
146
+    }
147
+}
148
+
149
++ (Class)layerClass
150
+{
151
+    return [DACircularProgressLayer class];
152
+}
153
+
154
+- (DACircularProgressLayer *)circularProgressLayer
155
+{
156
+    return (DACircularProgressLayer *)self.layer;
157
+}
158
+
159
+- (id)init
160
+{
161
+    return [super initWithFrame:CGRectMake(0.0f, 0.0f, 40.0f, 40.0f)];
162
+}
163
+
164
+- (void)didMoveToWindow
165
+{
166
+    CGFloat windowContentsScale = self.window.screen.scale;
167
+    self.circularProgressLayer.contentsScale = windowContentsScale;
168
+    [self.circularProgressLayer setNeedsDisplay];
169
+}
170
+
171
+
172
+#pragma mark - Progress
173
+
174
+- (CGFloat)progress
175
+{
176
+    return self.circularProgressLayer.progress;
177
+}
178
+
179
+- (void)setProgress:(CGFloat)progress
180
+{
181
+    [self setProgress:progress animated:NO];
182
+}
183
+
184
+- (void)setProgress:(CGFloat)progress animated:(BOOL)animated
185
+{
186
+    [self setProgress:progress animated:animated initialDelay:0.0];
187
+}
188
+
189
+- (void)setProgress:(CGFloat)progress
190
+           animated:(BOOL)animated
191
+       initialDelay:(CFTimeInterval)initialDelay
192
+{
193
+    CGFloat pinnedProgress = MIN(MAX(progress, 0.0f), 1.0f);
194
+    [self setProgress:progress
195
+             animated:animated
196
+         initialDelay:initialDelay
197
+         withDuration:fabs(self.progress - pinnedProgress)];
198
+}
199
+
200
+- (void)setProgress:(CGFloat)progress
201
+           animated:(BOOL)animated
202
+       initialDelay:(CFTimeInterval)initialDelay
203
+       withDuration:(CFTimeInterval)duration
204
+{
205
+    [self.layer removeAnimationForKey:@"indeterminateAnimation"];
206
+    [self.circularProgressLayer removeAnimationForKey:@"progress"];
207
+    
208
+    CGFloat pinnedProgress = MIN(MAX(progress, 0.0f), 1.0f);
209
+    if (animated) {
210
+        CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"progress"];
211
+        animation.duration = duration;
212
+        animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
213
+        animation.fillMode = kCAFillModeForwards;
214
+        animation.fromValue = [NSNumber numberWithFloat:self.progress];
215
+        animation.toValue = [NSNumber numberWithFloat:pinnedProgress];
216
+        animation.beginTime = CACurrentMediaTime() + initialDelay;
217
+        animation.delegate = self;
218
+        [self.circularProgressLayer addAnimation:animation forKey:@"progress"];
219
+    } else {
220
+        [self.circularProgressLayer setNeedsDisplay];
221
+        self.circularProgressLayer.progress = pinnedProgress;
222
+    }
223
+}
224
+
225
+- (void)animationDidStop:(CAAnimation *)animation finished:(BOOL)flag
226
+{
227
+   NSNumber *pinnedProgressNumber = [animation valueForKey:@"toValue"];
228
+   self.circularProgressLayer.progress = [pinnedProgressNumber floatValue];
229
+}
230
+
231
+
232
+#pragma mark - UIAppearance methods
233
+
234
+- (UIColor *)trackTintColor
235
+{
236
+    return self.circularProgressLayer.trackTintColor;
237
+}
238
+
239
+- (void)setTrackTintColor:(UIColor *)trackTintColor
240
+{
241
+    self.circularProgressLayer.trackTintColor = trackTintColor;
242
+    [self.circularProgressLayer setNeedsDisplay];
243
+}
244
+
245
+- (UIColor *)progressTintColor
246
+{
247
+    return self.circularProgressLayer.progressTintColor;
248
+}
249
+
250
+- (void)setProgressTintColor:(UIColor *)progressTintColor
251
+{
252
+    self.circularProgressLayer.progressTintColor = progressTintColor;
253
+    [self.circularProgressLayer setNeedsDisplay];
254
+}
255
+
256
+- (UIColor *)innerTintColor
257
+{
258
+    return self.circularProgressLayer.innerTintColor;
259
+}
260
+
261
+- (void)setInnerTintColor:(UIColor *)innerTintColor
262
+{
263
+    self.circularProgressLayer.innerTintColor = innerTintColor;
264
+    [self.circularProgressLayer setNeedsDisplay];
265
+}
266
+
267
+- (NSInteger)roundedCorners
268
+{
269
+    return self.roundedCorners;
270
+}
271
+
272
+- (void)setRoundedCorners:(NSInteger)roundedCorners
273
+{
274
+    self.circularProgressLayer.roundedCorners = roundedCorners;
275
+    [self.circularProgressLayer setNeedsDisplay];
276
+}
277
+
278
+- (CGFloat)thicknessRatio
279
+{
280
+    return self.circularProgressLayer.thicknessRatio;
281
+}
282
+
283
+- (void)setThicknessRatio:(CGFloat)thicknessRatio
284
+{
285
+    self.circularProgressLayer.thicknessRatio = MIN(MAX(thicknessRatio, 0.f), 1.f);
286
+    [self.circularProgressLayer setNeedsDisplay];
287
+}
288
+
289
+- (NSInteger)indeterminate
290
+{
291
+    CAAnimation *spinAnimation = [self.layer animationForKey:@"indeterminateAnimation"];
292
+    return (spinAnimation == nil ? 0 : 1);
293
+}
294
+
295
+- (void)setIndeterminate:(NSInteger)indeterminate
296
+{
297
+    if (indeterminate) {
298
+        if (!self.indeterminate) {
299
+            CABasicAnimation *spinAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
300
+            spinAnimation.byValue = [NSNumber numberWithDouble:indeterminate > 0 ? 2.0f*M_PI : -2.0f*M_PI];
301
+            spinAnimation.duration = self.indeterminateDuration;
302
+            spinAnimation.repeatCount = HUGE_VALF;
303
+            [self.layer addAnimation:spinAnimation forKey:@"indeterminateAnimation"];
304
+        }
305
+    } else {
306
+        [self.layer removeAnimationForKey:@"indeterminateAnimation"];
307
+    }
308
+}
309
+
310
+- (NSInteger)clockwiseProgress
311
+{
312
+    return self.circularProgressLayer.clockwiseProgress;
313
+}
314
+
315
+- (void)setClockwiseProgress:(NSInteger)clockwiseProgres
316
+{
317
+    self.circularProgressLayer.clockwiseProgress = clockwiseProgres;
318
+    [self.circularProgressLayer setNeedsDisplay];
319
+}
320
+
321
+@end

+ 23 - 0
Pods/DACircularProgress/DACircularProgress/DALabeledCircularProgressView.h

@@ -0,0 +1,23 @@
1
+//
2
+//  DALabeledCircularProgressView.h
3
+//  DACircularProgressExample
4
+//
5
+//  Created by Josh Sklar on 4/8/14.
6
+//  Copyright (c) 2014 Shout Messenger. All rights reserved.
7
+//
8
+
9
+#import "DACircularProgressView.h"
10
+
11
+/**
12
+ @class DALabeledCircularProgressView
13
+ 
14
+ @brief Subclass of DACircularProgressView that adds a UILabel.
15
+ */
16
+@interface DALabeledCircularProgressView : DACircularProgressView
17
+
18
+/**
19
+ UILabel placed right on the DACircularProgressView.
20
+ */
21
+@property (strong, nonatomic) UILabel *progressLabel;
22
+
23
+@end

+ 47 - 0
Pods/DACircularProgress/DACircularProgress/DALabeledCircularProgressView.m

@@ -0,0 +1,47 @@
1
+//
2
+//  DALabeledCircularProgressView.m
3
+//  DACircularProgressExample
4
+//
5
+//  Created by Josh Sklar on 4/8/14.
6
+//  Copyright (c) 2014 Shout Messenger. All rights reserved.
7
+//
8
+
9
+#import "DALabeledCircularProgressView.h"
10
+
11
+@implementation DALabeledCircularProgressView
12
+
13
+- (id)initWithFrame:(CGRect)frame
14
+{
15
+    self = [super initWithFrame:frame];
16
+    if (self) {
17
+        [self initializeLabel];
18
+    }
19
+    return self;
20
+}
21
+
22
+- (id)initWithCoder:(NSCoder *)aDecoder
23
+{
24
+    self = [super initWithCoder:aDecoder];
25
+    if (self) {
26
+        [self initializeLabel];
27
+    }
28
+    return self;
29
+}
30
+
31
+
32
+#pragma mark - Internal methods
33
+
34
+/**
35
+ Creates and initializes
36
+ -[DALabeledCircularProgressView progressLabel].
37
+ */
38
+- (void)initializeLabel
39
+{
40
+    self.progressLabel = [[UILabel alloc] initWithFrame:self.bounds];
41
+    self.progressLabel.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
42
+    self.progressLabel.textAlignment = NSTextAlignmentCenter;
43
+    self.progressLabel.backgroundColor = [UIColor clearColor];
44
+    [self addSubview:self.progressLabel];
45
+}
46
+
47
+@end

+ 23 - 0
Pods/DACircularProgress/LICENSE.md

@@ -0,0 +1,23 @@
1
+# License
2
+
3
+## MIT License
4
+
5
+Copyright (c) 2013 Daniel Amitay (http://danielamitay.com)
6
+
7
+Permission is hereby granted, free of charge, to any person obtaining a copy
8
+of this software and associated documentation files (the "Software"), to deal
9
+in the Software without restriction, including without limitation the rights
10
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+copies of the Software, and to permit persons to whom the Software is
12
+furnished to do so, subject to the following conditions:
13
+
14
+The above copyright notice and this permission notice shall be included in
15
+all copies or substantial portions of the Software.
16
+
17
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23
+THE SOFTWARE.

+ 77 - 0
Pods/DACircularProgress/README.md

@@ -0,0 +1,77 @@
1
+## DACircularProgress
2
+
3
+`DACircularProgress` is a `UIView` subclass with circular `UIProgressView` properties.
4
+
5
+It was originally built to be an imitation of Facebook's photo progress indicator.
6
+
7
+View the included example project for a demonstration.
8
+
9
+![Screenshot](https://github.com/danielamitay/DACircularProgress/raw/master/screenshot.png)
10
+
11
+## Installation
12
+
13
+To use `DACircularProgress`:
14
+
15
+- Copy over the `DACircularProgress` folder to your project folder.
16
+- Make sure that your project includes `<QuartzCore.framework>`.
17
+- `#import "DACircularProgressView.h"`
18
+
19
+### Example Code
20
+
21
+```objective-c
22
+
23
+self.progressView = [[DACircularProgressView alloc] initWithFrame:CGRectMake(140.0f, 30.0f, 40.0f, 40.0f)];
24
+self.progressView.roundedCorners = YES;
25
+self.progressView.trackTintColor = [UIColor clearColor];
26
+[self.view addSubview:self.progressView];
27
+```
28
+
29
+- You can also use Interface Builder by adding a `UIView` element and setting its class to `DACircularProgress`
30
+
31
+## Notes
32
+
33
+### Compatibility
34
+
35
+iOS5.0+
36
+
37
+### Automatic Reference Counting (ARC) support
38
+
39
+`DACircularProgress` was made with ARC enabled by default.
40
+
41
+## Contact
42
+
43
+- [Personal website](http://danielamitay.com)
44
+- [GitHub](http://github.com/danielamitay)
45
+- [Twitter](http://twitter.com/danielamitay)
46
+- [LinkedIn](http://www.linkedin.com/in/danielamitay)
47
+- [Email](hello@danielamitay.com)
48
+
49
+If you use/enjoy `DACircularProgress`, let me know!
50
+
51
+## Credits
52
+
53
+`DACircularProgress` is brought to you by [Daniel Amitay](http://www.amitay.us) and [contributors to the project](https://github.com/danielamitay/DACircularProgress/contributors). A special thanks to [Cédric Luthi](https://github.com/0xced) for a significant amount of changes. If you have feature suggestions or bug reports, feel free to help out by sending pull requests or by [creating new issues](https://github.com/danielamitay/DACircularProgress/issues/new).
54
+
55
+## License
56
+
57
+### MIT License
58
+
59
+Copyright (c) 2013 Daniel Amitay (http://danielamitay.com)
60
+
61
+Permission is hereby granted, free of charge, to any person obtaining a copy
62
+of this software and associated documentation files (the "Software"), to deal
63
+in the Software without restriction, including without limitation the rights
64
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
65
+copies of the Software, and to permit persons to whom the Software is
66
+furnished to do so, subject to the following conditions:
67
+
68
+The above copyright notice and this permission notice shall be included in
69
+all copies or substantial portions of the Software.
70
+
71
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
72
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
73
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
74
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
75
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
76
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
77
+THE SOFTWARE.

+ 1 - 0
Pods/Headers/Private/DACircularProgress/DACircularProgressView.h

@@ -0,0 +1 @@
1
+../../../DACircularProgress/DACircularProgress/DACircularProgressView.h

+ 1 - 0
Pods/Headers/Private/DACircularProgress/DALabeledCircularProgressView.h

@@ -0,0 +1 @@
1
+../../../DACircularProgress/DACircularProgress/DALabeledCircularProgressView.h

+ 1 - 0
Pods/Headers/Private/PYPhotoBrowser/MBProgressHUD+PYExtension.h

@@ -0,0 +1 @@
1
+../../../PYPhotoBrowser/PYPhotoBrowser/Category/MBProgressHUD+PYExtension.h

+ 1 - 0
Pods/Headers/Private/PYPhotoBrowser/PYPhoto.h

@@ -0,0 +1 @@
1
+../../../PYPhotoBrowser/PYPhotoBrowser/Model/PYPhoto.h

+ 1 - 0
Pods/Headers/Private/PYPhotoBrowser/PYPhotoBrowseView.h

@@ -0,0 +1 @@
1
+../../../PYPhotoBrowser/PYPhotoBrowser/View/PYPhotoBrowseView.h

+ 1 - 0
Pods/Headers/Private/PYPhotoBrowser/PYPhotoBrowser.h

@@ -0,0 +1 @@
1
+../../../PYPhotoBrowser/PYPhotoBrowser/PYPhotoBrowser.h

+ 1 - 0
Pods/Headers/Private/PYPhotoBrowser/PYPhotoBrowserConst.h

@@ -0,0 +1 @@
1
+../../../PYPhotoBrowser/PYPhotoBrowser/Other/PYPhotoBrowserConst.h

+ 1 - 0
Pods/Headers/Private/PYPhotoBrowser/PYPhotoCell.h

@@ -0,0 +1 @@
1
+../../../PYPhotoBrowser/PYPhotoBrowser/View/PYPhotoCell.h

+ 1 - 0
Pods/Headers/Private/PYPhotoBrowser/PYPhotoView.h

@@ -0,0 +1 @@
1
+../../../PYPhotoBrowser/PYPhotoBrowser/View/PYPhotoView.h

+ 1 - 0
Pods/Headers/Private/PYPhotoBrowser/PYPhotosNavigationController.h

@@ -0,0 +1 @@
1
+../../../PYPhotoBrowser/PYPhotoBrowser/Controller/PYPhotosNavigationController.h

+ 1 - 0
Pods/Headers/Private/PYPhotoBrowser/PYPhotosPreviewController.h

@@ -0,0 +1 @@
1
+../../../PYPhotoBrowser/PYPhotoBrowser/Controller/PYPhotosPreviewController.h

+ 1 - 0
Pods/Headers/Private/PYPhotoBrowser/PYPhotosReaderController.h

@@ -0,0 +1 @@
1
+../../../PYPhotoBrowser/PYPhotoBrowser/Controller/PYPhotosReaderController.h

+ 1 - 0
Pods/Headers/Private/PYPhotoBrowser/PYPhotosView.h

@@ -0,0 +1 @@
1
+../../../PYPhotoBrowser/PYPhotoBrowser/View/PYPhotosView.h

+ 1 - 0
Pods/Headers/Private/PYPhotoBrowser/PYPhotosViewController.h

@@ -0,0 +1 @@
1
+../../../PYPhotoBrowser/PYPhotoBrowser/Controller/PYPhotosViewController.h

+ 1 - 0
Pods/Headers/Private/PYPhotoBrowser/PYProgressView.h

@@ -0,0 +1 @@
1
+../../../PYPhotoBrowser/PYPhotoBrowser/Other/PYProgressView.h

+ 1 - 0
Pods/Headers/Private/PYPhotoBrowser/UIView+PYExtension.h

@@ -0,0 +1 @@
1
+../../../PYPhotoBrowser/PYPhotoBrowser/Category/UIView+PYExtension.h

+ 1 - 0
Pods/Headers/Private/SDAutoLayout/SDAutoLayout.h

@@ -0,0 +1 @@
1
+../../../SDAutoLayout/SDAutoLayoutDemo/SDAutoLayout/SDAutoLayout.h

+ 1 - 0
Pods/Headers/Private/SDAutoLayout/UITableView+SDAutoTableViewCellHeight.h

@@ -0,0 +1 @@
1
+../../../SDAutoLayout/SDAutoLayoutDemo/SDAutoLayout/UITableView+SDAutoTableViewCellHeight.h

+ 1 - 0
Pods/Headers/Private/SDAutoLayout/UIView+SDAutoLayout.h

@@ -0,0 +1 @@
1
+../../../SDAutoLayout/SDAutoLayoutDemo/SDAutoLayout/UIView+SDAutoLayout.h

+ 1 - 0
Pods/Headers/Private/UITableView+FDTemplateLayoutCell/UITableView+FDIndexPathHeightCache.h

@@ -0,0 +1 @@
1
+../../../UITableView+FDTemplateLayoutCell/Classes/UITableView+FDIndexPathHeightCache.h

+ 1 - 0
Pods/Headers/Private/UITableView+FDTemplateLayoutCell/UITableView+FDKeyedHeightCache.h

@@ -0,0 +1 @@
1
+../../../UITableView+FDTemplateLayoutCell/Classes/UITableView+FDKeyedHeightCache.h

+ 1 - 0
Pods/Headers/Private/UITableView+FDTemplateLayoutCell/UITableView+FDTemplateLayoutCell.h

@@ -0,0 +1 @@
1
+../../../UITableView+FDTemplateLayoutCell/Classes/UITableView+FDTemplateLayoutCell.h

+ 1 - 0
Pods/Headers/Private/UITableView+FDTemplateLayoutCell/UITableView+FDTemplateLayoutCellDebug.h

@@ -0,0 +1 @@
1
+../../../UITableView+FDTemplateLayoutCell/Classes/UITableView+FDTemplateLayoutCellDebug.h

+ 1 - 0
Pods/Headers/Public/DACircularProgress/DACircularProgressView.h

@@ -0,0 +1 @@
1
+../../../DACircularProgress/DACircularProgress/DACircularProgressView.h

+ 1 - 0
Pods/Headers/Public/DACircularProgress/DALabeledCircularProgressView.h

@@ -0,0 +1 @@
1
+../../../DACircularProgress/DACircularProgress/DALabeledCircularProgressView.h

+ 1 - 0
Pods/Headers/Public/PYPhotoBrowser/MBProgressHUD+PYExtension.h

@@ -0,0 +1 @@
1
+../../../PYPhotoBrowser/PYPhotoBrowser/Category/MBProgressHUD+PYExtension.h

+ 1 - 0
Pods/Headers/Public/PYPhotoBrowser/PYPhoto.h

@@ -0,0 +1 @@
1
+../../../PYPhotoBrowser/PYPhotoBrowser/Model/PYPhoto.h

+ 1 - 0
Pods/Headers/Public/PYPhotoBrowser/PYPhotoBrowseView.h

@@ -0,0 +1 @@
1
+../../../PYPhotoBrowser/PYPhotoBrowser/View/PYPhotoBrowseView.h

+ 1 - 0
Pods/Headers/Public/PYPhotoBrowser/PYPhotoBrowser.h

@@ -0,0 +1 @@
1
+../../../PYPhotoBrowser/PYPhotoBrowser/PYPhotoBrowser.h

+ 1 - 0
Pods/Headers/Public/PYPhotoBrowser/PYPhotoBrowserConst.h

@@ -0,0 +1 @@
1
+../../../PYPhotoBrowser/PYPhotoBrowser/Other/PYPhotoBrowserConst.h

+ 1 - 0
Pods/Headers/Public/PYPhotoBrowser/PYPhotoCell.h

@@ -0,0 +1 @@
1
+../../../PYPhotoBrowser/PYPhotoBrowser/View/PYPhotoCell.h

+ 0 - 0
Pods/Headers/Public/PYPhotoBrowser/PYPhotoView.h


Some files were not shown because too many files changed in this diff