瀏覽代碼

no message

南鑫林 5 年之前
父節點
當前提交
4f5949f610
共有 80 個文件被更改,包括 1020 次插入62 次删除
  1. 0 1
      RainbowPlanet/Podfile
  2. 1 5
      RainbowPlanet/Podfile.lock
  3. 88 8
      RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj
  4. 1 1
      RainbowPlanet/RainbowPlanet/Base/BaseTabbarViewController/BaseIrregularityBasicContentView.swift
  5. 3 3
      RainbowPlanet/RainbowPlanet/Base/BaseTabbarViewController/BaseTabbarViewController.swift
  6. 4 3
      RainbowPlanet/RainbowPlanet/Macro/ColorMacro.swift
  7. 51 0
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/View/Cell/CardContent/Action/CardContentActionTableViewCell.swift
  8. 46 0
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/View/Cell/CardContent/Comment/CardContentCommnetTableViewCell.swift
  9. 56 0
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/View/Cell/CardContent/PicVideo/CardContentPicVideoCollectionViewCell.swift
  10. 13 0
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/View/Cell/CardContent/PicVideo/CardContentPicVideoCollectionViewLayout.swift
  11. 18 0
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/View/Cell/CardContent/PicVideo/CardContentPicVideoModel.swift
  12. 45 0
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/View/Cell/CardContent/PicVideo/CardContentPicVideoTableViewCell.swift
  13. 167 0
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/View/Cell/CardContent/TitleContent/CardContentTitleTableViewCell.swift
  14. 173 0
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/View/Cell/CardContent/User/CardContentUserTableViewCell.swift
  15. 7 5
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/View/Cell/FollowStatus/CommunityFollowStatusTableViewCell.swift
  16. 4 4
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/View/Cell/RecommendFollow/CommunityRecommendFollowCollectionViewCell.swift
  17. 9 0
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/View/Cell/RecommendFollow/CommunityRecommendFollowTableViewCell.swift
  18. 171 3
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/ViewController/CommunityListViewController.swift
  19. 0 1
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/ViewController/CommunityViewController.swift
  20. 2 2
      RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ShoppingCart/View/ShoppingCartView.swift
  21. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/photo_verybig.imageset/photo_verybig.png
  22. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/photo_verybig.imageset/photo_verybig@2x.png
  23. 0 3
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_home.imageset/Contents.json
  24. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_home.imageset/tabbar_home@2x.png
  25. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_home.imageset/tabbar_home@3x.png
  26. 0 3
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_home_pre.imageset/Contents.json
  27. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_home_pre.imageset/tabbar_home_pre@2x.png
  28. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_home_pre.imageset/tabbar_home_pre@3x.png
  29. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_massage.imageset/Contents.json
  30. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_massage.imageset/tabbar_massage@2x.png
  31. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_massage.imageset/tabbar_massage@3x.png
  32. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_massage_pre.imageset/Contents.json
  33. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_massage_pre.imageset/tabbar_massage_pre@2x.png
  34. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_massage_pre.imageset/tabbar_massage_pre@3x.png
  35. 0 3
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_my.imageset/Contents.json
  36. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_my.imageset/tabbar_my@2x.png
  37. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_my.imageset/tabbar_my@3x.png
  38. 0 3
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_my_pre.imageset/Contents.json
  39. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_my_pre.imageset/tabbar_my_pre@2x.png
  40. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_my_pre.imageset/tabbar_my_pre@3x.png
  41. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_publish.imageset/Contents.json
  42. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_publish.imageset/tabbar_publish@2x.png
  43. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_publish.imageset/tabbar_publish@3x.png
  44. 0 3
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_shopping.imageset/Contents.json
  45. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_shopping.imageset/tabbar_shopping@2x.png
  46. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_shopping.imageset/tabbar_shopping@3x.png
  47. 0 3
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_shopping_pre.imageset/Contents.json
  48. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_shopping_pre.imageset/tabbar_shopping_pre@2x.png
  49. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_shopping_pre.imageset/tabbar_shopping_pre@3x.png
  50. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/CommunityModule.xcassets/Contents.json
  51. 2 2
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/photo_verybig.imageset/Contents.json
  52. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/CommunityModule.xcassets/btn_more.imageset/btn_more@2x.png
  53. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/CommunityModule.xcassets/btn_more.imageset/btn_more@3x.png
  54. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/CommunityModule.xcassets/ico_bean_white.imageset/Contents.json
  55. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/CommunityModule.xcassets/ico_bean_white.imageset/ico_bean_white@2x.png
  56. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/CommunityModule.xcassets/ico_bean_white.imageset/ico_bean_white@3x.png
  57. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/CommunityModule.xcassets/star_attention.imageset/Contents.json
  58. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/CommunityModule.xcassets/star_attention.imageset/star_attention@2x.png
  59. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/CommunityModule.xcassets/star_attention.imageset/star_attention@3x.png
  60. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/CommunityModule.xcassets/star_followed.imageset/Contents.json
  61. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/CommunityModule.xcassets/star_followed.imageset/star_followed@2x.png
  62. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/CommunityModule.xcassets/star_followed.imageset/star_followed@3x.png
  63. 0 6
      RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/Contents.json
  64. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingMallModule.xcassets/goods_ico_share.imageset/Contents.json
  65. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingMallModule.xcassets/goods_ico_share.imageset/goods_ico_share@2x.png
  66. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingMallModule.xcassets/goods_ico_share.imageset/goods_ico_share@3x.png
  67. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingMallModule.xcassets/orderPay_separateLine.imageset/Contents.json
  68. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingMallModule.xcassets/orderPay_separateLine.imageset/orderPay_separateLine@2x.png
  69. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingMallModule.xcassets/orderPay_separateLine.imageset/orderPay_separateLine@3x.png
  70. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingMallModule.xcassets/product_detail_top.imageset/Contents.json
  71. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingMallModule.xcassets/product_detail_top.imageset/product_detail_top@2x.png
  72. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingMallModule.xcassets/product_detail_top.imageset/product_detail_top@3x.png
  73. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingMallModule.xcassets/shopping_cart_trade_failure.imageset/Contents.json
  74. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingMallModule.xcassets/shopping_cart_trade_failure.imageset/shopping_cart_trade_failure@2x.png
  75. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingMallModule.xcassets/shopping_cart_trade_failure.imageset/shopping_cart_trade_failure@3x.png
  76. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingMallModule.xcassets/shopping_cart_trade_finish.imageset/Contents.json
  77. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingMallModule.xcassets/shopping_cart_trade_finish.imageset/shopping_cart_trade_finish@2x.png
  78. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingMallModule.xcassets/shopping_cart_trade_finish.imageset/shopping_cart_trade_finish@3x.png
  79. 13 0
      RainbowPlanet/RainbowPlanet/Tools/Extension/Extension+String.swift
  80. 14 0
      RainbowPlanet/RainbowPlanet/Tools/Extension/Extension+UILabel.swift

+ 0 - 1
RainbowPlanet/Podfile

@@ -52,7 +52,6 @@ target 'RainbowPlanet' do
 #  pod 'ReactorKit'
   # 富文本
 #  pod 'RichEditorView'
-  pod 'UITableView+FDTemplateLayoutCell'
 
   #======================第三方平台===========
   #======================友盟===========

+ 1 - 5
RainbowPlanet/Podfile.lock

@@ -32,7 +32,6 @@ PODS:
   - RxSwift (4.5.0)
   - SnapKit (4.2.0)
   - SwiftyJSON (5.0.0)
-  - "UITableView+FDTemplateLayoutCell (1.6)"
   - UMCAnalytics (6.0.3):
     - UMCCommon
   - UMCCommon (2.0.1)
@@ -79,7 +78,6 @@ DEPENDENCIES:
   - RxSwift
   - SnapKit
   - SwiftyJSON
-  - "UITableView+FDTemplateLayoutCell"
   - UMCAnalytics
   - UMCCommon
   - UMCCommonLog
@@ -116,7 +114,6 @@ SPEC REPOS:
     - RxSwift
     - SnapKit
     - SwiftyJSON
-    - "UITableView+FDTemplateLayoutCell"
     - UMCAnalytics
     - UMCCommon
     - UMCCommonLog
@@ -149,7 +146,6 @@ SPEC CHECKSUMS:
   RxSwift: f172070dfd1a93d70a9ab97a5a01166206e1c575
   SnapKit: fe8a619752f3f27075cc9a90244d75c6c3f27e2a
   SwiftyJSON: 36413e04c44ee145039d332b4f4e2d3e8d6c4db7
-  "UITableView+FDTemplateLayoutCell": 5c949b4a5059c404b442926c0e80f81d10a2d66f
   UMCAnalytics: ff58714ada407682c4a07548156f94bcec92f055
   UMCCommon: 0263a057a2e1ae1da4c8308541e56904a493ce13
   UMCCommonLog: 05a2d5de21858e3d870551562cff405c1366d244
@@ -157,6 +153,6 @@ SPEC CHECKSUMS:
   UMCSecurityPlugins: 0831a08f3988f3cea9f1d3a7626cd9bee4fef150
   UMCShare: 552b29753f1b4da87b51d96545ed19e6263df397
 
-PODFILE CHECKSUM: 48f0c32fcc71dc794608e47ecdc1df2585927cb0
+PODFILE CHECKSUM: ce904adbb6da37ca3145c2921469be1ffc5965e0
 
 COCOAPODS: 1.7.1

+ 88 - 8
RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj

@@ -17,7 +17,6 @@
 		A70B2C252286C03800B2449F /* NXLPageControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70B2C242286C03800B2449F /* NXLPageControl.swift */; };
 		A70B2C272286C5D600B2449F /* ProductDetailFSPagerViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70B2C262286C5D600B2449F /* ProductDetailFSPagerViewCell.swift */; };
 		A70B2C292286D77200B2449F /* ProductDetailProductInfoTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70B2C282286D77200B2449F /* ProductDetailProductInfoTableViewCell.swift */; };
-		A70B2C2D2286E29900B2449F /* ProductModule.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A70B2C2C2286E29900B2449F /* ProductModule.xcassets */; };
 		A70B2C3322880BB700B2449F /* ProductDetailProductLabelTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70B2C3222880BB700B2449F /* ProductDetailProductLabelTableViewCell.swift */; };
 		A70B2C35228815F700B2449F /* ProductDetailProductSkuLabelCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70B2C34228815F700B2449F /* ProductDetailProductSkuLabelCollectionViewCell.swift */; };
 		A70B2C372288177300B2449F /* ProductDetailProductLabelIconCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70B2C362288177300B2449F /* ProductDetailProductLabelIconCollectionViewCell.swift */; };
@@ -271,6 +270,11 @@
 		A7BB685922696B9200AB07A2 /* SelfRecommendationCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7BB685822696B9200AB07A2 /* SelfRecommendationCollectionViewCell.swift */; };
 		A7BB68662269B1DD00AB07A2 /* AddressPOIView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7BB68632269B1DD00AB07A2 /* AddressPOIView.swift */; };
 		A7BB68672269B1DD00AB07A2 /* AddressPOIViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7BB68652269B1DD00AB07A2 /* AddressPOIViewController.swift */; };
+		A7BF202422B392D600396DB3 /* CommunityModule.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A7BF202322B392D600396DB3 /* CommunityModule.xcassets */; };
+		A7BF202722B3930100396DB3 /* MessageModule.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A7BF202622B3930100396DB3 /* MessageModule.xcassets */; };
+		A7BF202B22B396F300396DB3 /* CardContentTitleTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7BF202922B396F300396DB3 /* CardContentTitleTableViewCell.swift */; };
+		A7BF203122B47CC000396DB3 /* CardContentCommnetTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7BF203022B47CC000396DB3 /* CardContentCommnetTableViewCell.swift */; };
+		A7BF203422B47E8600396DB3 /* CardContentActionTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7BF203322B47E8600396DB3 /* CardContentActionTableViewCell.swift */; };
 		A7C3DD1A226422BF00FA262E /* SwiftMoyaServiceSMSApi.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7C3DD19226422BF00FA262E /* SwiftMoyaServiceSMSApi.swift */; };
 		A7C3DD1C226422D200FA262E /* SwiftMoyaNetWorkServiceSMS.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7C3DD1B226422D200FA262E /* SwiftMoyaNetWorkServiceSMS.swift */; };
 		A7CC74D4226FF1AA003C4F38 /* MineView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CC74D3226FF1AA003C4F38 /* MineView.swift */; };
@@ -322,6 +326,11 @@
 		A7F2D6CB22B0E4270093000B /* CommunityRecommendFollowCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7F2D6CA22B0E4270093000B /* CommunityRecommendFollowCollectionViewCell.swift */; };
 		A7F2D6CE22B0FF180093000B /* CommunityFollowStatusTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7F2D6CD22B0FF180093000B /* CommunityFollowStatusTableViewCell.swift */; };
 		A7F2D6D022B1119A0093000B /* CommunityEnum.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7F2D6CF22B1119A0093000B /* CommunityEnum.swift */; };
+		A7F2D6D722B1ED370093000B /* CardContentUserTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7F2D6D622B1ED370093000B /* CardContentUserTableViewCell.swift */; };
+		A7F2D6D922B250EF0093000B /* CardContentPicVideoTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7F2D6D822B250EF0093000B /* CardContentPicVideoTableViewCell.swift */; };
+		A7F2D6DD22B2536F0093000B /* CardContentPicVideoCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7F2D6DC22B2536F0093000B /* CardContentPicVideoCollectionViewCell.swift */; };
+		A7F2D6DF22B25B5D0093000B /* CardContentPicVideoCollectionViewLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7F2D6DE22B25B5D0093000B /* CardContentPicVideoCollectionViewLayout.swift */; };
+		A7F2D6E122B25EF30093000B /* CardContentPicVideoModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7F2D6E022B25EF30093000B /* CardContentPicVideoModel.swift */; };
 		A7FF1555228AC27600A85748 /* ProductAllCommentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7FF1554228AC27600A85748 /* ProductAllCommentView.swift */; };
 		A7FF1557228AC3E800A85748 /* ProductAllCommentViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7FF1556228AC3E800A85748 /* ProductAllCommentViewController.swift */; };
 		A7FF1560228C693D00A85748 /* OrderViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7FF155F228C693D00A85748 /* OrderViewController.swift */; };
@@ -386,7 +395,6 @@
 		BD20F1CF2283CE2300677D8E /* OrderFinishPayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD20F1CE2283CE2300677D8E /* OrderFinishPayView.swift */; };
 		BD20F1D32283D0ED00677D8E /* OrderFinishPaySuccessCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD20F1D22283D0ED00677D8E /* OrderFinishPaySuccessCell.swift */; };
 		BD20F1D52283D15500677D8E /* OrderFinishPayFailureCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD20F1D42283D15500677D8E /* OrderFinishPayFailureCell.swift */; };
-		BD20F1D82283D2AA00677D8E /* ShoppingCartModule.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = BD20F1D72283D2AA00677D8E /* ShoppingCartModule.xcassets */; };
 		BD29A92E228F99780018CFC3 /* OrderCommentParameterModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD29A92D228F99780018CFC3 /* OrderCommentParameterModel.swift */; };
 		BD3474F522857B85000908C5 /* CommonPayHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD3474F422857B85000908C5 /* CommonPayHeader.swift */; };
 		BD3AA45822AE63EC00EF4F20 /* MessageMainViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD3AA45722AE63EC00EF4F20 /* MessageMainViewController.swift */; };
@@ -460,7 +468,6 @@
 		A70B2C242286C03800B2449F /* NXLPageControl.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NXLPageControl.swift; sourceTree = "<group>"; };
 		A70B2C262286C5D600B2449F /* ProductDetailFSPagerViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductDetailFSPagerViewCell.swift; sourceTree = "<group>"; };
 		A70B2C282286D77200B2449F /* ProductDetailProductInfoTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductDetailProductInfoTableViewCell.swift; sourceTree = "<group>"; };
-		A70B2C2C2286E29900B2449F /* ProductModule.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = ProductModule.xcassets; sourceTree = "<group>"; };
 		A70B2C3222880BB700B2449F /* ProductDetailProductLabelTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductDetailProductLabelTableViewCell.swift; sourceTree = "<group>"; };
 		A70B2C34228815F700B2449F /* ProductDetailProductSkuLabelCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductDetailProductSkuLabelCollectionViewCell.swift; sourceTree = "<group>"; };
 		A70B2C362288177300B2449F /* ProductDetailProductLabelIconCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductDetailProductLabelIconCollectionViewCell.swift; sourceTree = "<group>"; };
@@ -729,6 +736,11 @@
 		A7BB685822696B9200AB07A2 /* SelfRecommendationCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelfRecommendationCollectionViewCell.swift; sourceTree = "<group>"; };
 		A7BB68632269B1DD00AB07A2 /* AddressPOIView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddressPOIView.swift; sourceTree = "<group>"; };
 		A7BB68652269B1DD00AB07A2 /* AddressPOIViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddressPOIViewController.swift; sourceTree = "<group>"; };
+		A7BF202322B392D600396DB3 /* CommunityModule.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = CommunityModule.xcassets; sourceTree = "<group>"; };
+		A7BF202622B3930100396DB3 /* MessageModule.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = MessageModule.xcassets; sourceTree = "<group>"; };
+		A7BF202922B396F300396DB3 /* CardContentTitleTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardContentTitleTableViewCell.swift; sourceTree = "<group>"; };
+		A7BF203022B47CC000396DB3 /* CardContentCommnetTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardContentCommnetTableViewCell.swift; sourceTree = "<group>"; };
+		A7BF203322B47E8600396DB3 /* CardContentActionTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardContentActionTableViewCell.swift; sourceTree = "<group>"; };
 		A7C3DD19226422BF00FA262E /* SwiftMoyaServiceSMSApi.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwiftMoyaServiceSMSApi.swift; sourceTree = "<group>"; };
 		A7C3DD1B226422D200FA262E /* SwiftMoyaNetWorkServiceSMS.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwiftMoyaNetWorkServiceSMS.swift; sourceTree = "<group>"; };
 		A7CC74D3226FF1AA003C4F38 /* MineView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MineView.swift; sourceTree = "<group>"; };
@@ -781,6 +793,11 @@
 		A7F2D6CA22B0E4270093000B /* CommunityRecommendFollowCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommunityRecommendFollowCollectionViewCell.swift; sourceTree = "<group>"; };
 		A7F2D6CD22B0FF180093000B /* CommunityFollowStatusTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommunityFollowStatusTableViewCell.swift; sourceTree = "<group>"; };
 		A7F2D6CF22B1119A0093000B /* CommunityEnum.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommunityEnum.swift; sourceTree = "<group>"; };
+		A7F2D6D622B1ED370093000B /* CardContentUserTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardContentUserTableViewCell.swift; sourceTree = "<group>"; };
+		A7F2D6D822B250EF0093000B /* CardContentPicVideoTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardContentPicVideoTableViewCell.swift; sourceTree = "<group>"; };
+		A7F2D6DC22B2536F0093000B /* CardContentPicVideoCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardContentPicVideoCollectionViewCell.swift; sourceTree = "<group>"; };
+		A7F2D6DE22B25B5D0093000B /* CardContentPicVideoCollectionViewLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardContentPicVideoCollectionViewLayout.swift; sourceTree = "<group>"; };
+		A7F2D6E022B25EF30093000B /* CardContentPicVideoModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardContentPicVideoModel.swift; sourceTree = "<group>"; };
 		A7FF1554228AC27600A85748 /* ProductAllCommentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductAllCommentView.swift; sourceTree = "<group>"; };
 		A7FF1556228AC3E800A85748 /* ProductAllCommentViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductAllCommentViewController.swift; sourceTree = "<group>"; };
 		A7FF155F228C693D00A85748 /* OrderViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderViewController.swift; sourceTree = "<group>"; };
@@ -850,7 +867,6 @@
 		BD20F1CE2283CE2300677D8E /* OrderFinishPayView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderFinishPayView.swift; sourceTree = "<group>"; };
 		BD20F1D22283D0ED00677D8E /* OrderFinishPaySuccessCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderFinishPaySuccessCell.swift; sourceTree = "<group>"; };
 		BD20F1D42283D15500677D8E /* OrderFinishPayFailureCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderFinishPayFailureCell.swift; sourceTree = "<group>"; };
-		BD20F1D72283D2AA00677D8E /* ShoppingCartModule.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = ShoppingCartModule.xcassets; sourceTree = "<group>"; };
 		BD29A92D228F99780018CFC3 /* OrderCommentParameterModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderCommentParameterModel.swift; sourceTree = "<group>"; };
 		BD3474F422857B85000908C5 /* CommonPayHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommonPayHeader.swift; sourceTree = "<group>"; };
 		BD3AA45722AE63EC00EF4F20 /* MessageMainViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageMainViewController.swift; sourceTree = "<group>"; };
@@ -2321,11 +2337,11 @@
 			children = (
 				A77F2C672231FB4A001BD3F6 /* Assets.xcassets */,
 				A71AF0BD226F1792001730FE /* ShoppingMallModule.xcassets */,
-				BD20F1D72283D2AA00677D8E /* ShoppingCartModule.xcassets */,
 				A7CC74DD22703B4A003C4F38 /* MineModule.xcassets */,
-				A70B2C2C2286E29900B2449F /* ProductModule.xcassets */,
 				A7FF1576228C824300A85748 /* OrderModule.xcassets */,
 				A7931E0722AF855E00297D0A /* RegisterLoginModule.xcassets */,
+				A7BF202322B392D600396DB3 /* CommunityModule.xcassets */,
+				A7BF202622B3930100396DB3 /* MessageModule.xcassets */,
 				A729B5A92266F6FD004AE098 /* Launch Screen.storyboard */,
 				A77F2C6C2231FB4A001BD3F6 /* Info.plist */,
 			);
@@ -2703,6 +2719,30 @@
 			path = ViewController;
 			sourceTree = "<group>";
 		};
+		A7BF202822B396D100396DB3 /* TitleContent */ = {
+			isa = PBXGroup;
+			children = (
+				A7BF202922B396F300396DB3 /* CardContentTitleTableViewCell.swift */,
+			);
+			path = TitleContent;
+			sourceTree = "<group>";
+		};
+		A7BF202F22B47CA000396DB3 /* Comment */ = {
+			isa = PBXGroup;
+			children = (
+				A7BF203022B47CC000396DB3 /* CardContentCommnetTableViewCell.swift */,
+			);
+			path = Comment;
+			sourceTree = "<group>";
+		};
+		A7BF203222B47D6200396DB3 /* Action */ = {
+			isa = PBXGroup;
+			children = (
+				A7BF203322B47E8600396DB3 /* CardContentActionTableViewCell.swift */,
+			);
+			path = Action;
+			sourceTree = "<group>";
+		};
 		A7C3DD182264229900FA262E /* SwiftMoyaServiceSMS */ = {
 			isa = PBXGroup;
 			children = (
@@ -2960,6 +3000,7 @@
 		A7F2D6C422B0DBCB0093000B /* Cell */ = {
 			isa = PBXGroup;
 			children = (
+				A7F2D6D522B1ED100093000B /* CardContent */,
 				A7F2D6CC22B0FEF60093000B /* FollowStatus */,
 				A7F2D6C922B0E2FE0093000B /* RecommendFollow */,
 			);
@@ -2983,6 +3024,37 @@
 			path = FollowStatus;
 			sourceTree = "<group>";
 		};
+		A7F2D6D522B1ED100093000B /* CardContent */ = {
+			isa = PBXGroup;
+			children = (
+				A7BF203222B47D6200396DB3 /* Action */,
+				A7BF202F22B47CA000396DB3 /* Comment */,
+				A7BF202822B396D100396DB3 /* TitleContent */,
+				A7F2D6DB22B252520093000B /* PicVideo */,
+				A7F2D6DA22B2524A0093000B /* User */,
+			);
+			path = CardContent;
+			sourceTree = "<group>";
+		};
+		A7F2D6DA22B2524A0093000B /* User */ = {
+			isa = PBXGroup;
+			children = (
+				A7F2D6D622B1ED370093000B /* CardContentUserTableViewCell.swift */,
+			);
+			path = User;
+			sourceTree = "<group>";
+		};
+		A7F2D6DB22B252520093000B /* PicVideo */ = {
+			isa = PBXGroup;
+			children = (
+				A7F2D6D822B250EF0093000B /* CardContentPicVideoTableViewCell.swift */,
+				A7F2D6DC22B2536F0093000B /* CardContentPicVideoCollectionViewCell.swift */,
+				A7F2D6DE22B25B5D0093000B /* CardContentPicVideoCollectionViewLayout.swift */,
+				A7F2D6E022B25EF30093000B /* CardContentPicVideoModel.swift */,
+			);
+			path = PicVideo;
+			sourceTree = "<group>";
+		};
 		A7FF1550228AC22700A85748 /* ProductAllComment */ = {
 			isa = PBXGroup;
 			children = (
@@ -3644,7 +3716,7 @@
 			buildActionMask = 2147483647;
 			files = (
 				A7CC74DE22703B4A003C4F38 /* MineModule.xcassets in Resources */,
-				A70B2C2D2286E29900B2449F /* ProductModule.xcassets in Resources */,
+				A7BF202422B392D600396DB3 /* CommunityModule.xcassets in Resources */,
 				A71AF0BE226F1792001730FE /* ShoppingMallModule.xcassets in Resources */,
 				A7931DFE22AF827600297D0A /* Localizable.strings in Resources */,
 				A7778C9722438F5D00C7C47A /* AlipaySDK.bundle in Resources */,
@@ -3653,9 +3725,9 @@
 				A72C01232275404A0065E0C3 /* province_city_area.json in Resources */,
 				BD108C9B22A60C3300837DAB /* HGImage.storyboard in Resources */,
 				A7FF1577228C824300A85748 /* OrderModule.xcassets in Resources */,
-				BD20F1D82283D2AA00677D8E /* ShoppingCartModule.xcassets in Resources */,
 				A7931E0822AF855E00297D0A /* RegisterLoginModule.xcassets in Resources */,
 				A7778C9922438F5D00C7C47A /* README.txt in Resources */,
+				A7BF202722B3930100396DB3 /* MessageModule.xcassets in Resources */,
 				BD108C9A22A60C3300837DAB /* HGImage.xcassets in Resources */,
 				A729B5AA2266F6FD004AE098 /* Launch Screen.storyboard in Resources */,
 			);
@@ -3827,10 +3899,12 @@
 				BDF47D852282C59F00941AB9 /* ShoppingCartListTableViewCell.swift in Sources */,
 				A7931DFF22AF827600297D0A /* ESTabBarItemMoreContentView.swift in Sources */,
 				A77F2CCA223209F2001BD3F6 /* BaseTabbarViewController.swift in Sources */,
+				A7BF202B22B396F300396DB3 /* CardContentTitleTableViewCell.swift in Sources */,
 				A70B2C1D2286B52400B2449F /* ProductDetailViewController.swift in Sources */,
 				A7CC75332271ABB0003C4F38 /* AddressManagerViewController.swift in Sources */,
 				A7FF158C228C911C00A85748 /* OrderRefunddetailsViewController.swift in Sources */,
 				A7CC750D227157DA003C4F38 /* MessageDetailesView.swift in Sources */,
+				A7F2D6DD22B2536F0093000B /* CardContentPicVideoCollectionViewCell.swift in Sources */,
 				BD7AB83622841A8B0030646A /* ShoppingCartPayOrderItemCell.swift in Sources */,
 				A71AA519227219D7008FF1A5 /* EditExpressAddressViewController.swift in Sources */,
 				A7FF1568228C6E2300A85748 /* OrderDeliveryModeAndTimeTableViewCell.swift in Sources */,
@@ -3842,6 +3916,7 @@
 				A7931E0522AF827600297D0A /* ESTabBarItemContainer.swift in Sources */,
 				A70B2C60228870CE00B2449F /* ShopSectionHeaderView.swift in Sources */,
 				A7CC7528227196C4003C4F38 /* AccountSecuritySetTableViewCell.swift in Sources */,
+				A7F2D6E122B25EF30093000B /* CardContentPicVideoModel.swift in Sources */,
 				A70B2C292286D77200B2449F /* ProductDetailProductInfoTableViewCell.swift in Sources */,
 				BD1FC1A922B1075F00D55081 /* LXKeyBoard.m in Sources */,
 				A72A726822321DBD00B21995 /* UMManager.swift in Sources */,
@@ -3919,6 +3994,7 @@
 				A7284A7722547333000BAEC4 /* AlipayResultModel.swift in Sources */,
 				A72A72B422321DE000B21995 /* Extension+UIImage.swift in Sources */,
 				A7BB68552268DE8600AB07A2 /* SelfRecommendationView.swift in Sources */,
+				A7BF203122B47CC000396DB3 /* CardContentCommnetTableViewCell.swift in Sources */,
 				A72A72AF22321DE000B21995 /* AppInfo.swift in Sources */,
 				A70B843422911AF600882BC5 /* ProductDetailView.swift in Sources */,
 				A7FF1598228D092A00A85748 /* OrderListModel.swift in Sources */,
@@ -3942,6 +4018,7 @@
 				BD1DC6C6228CFD0B00B89C57 /* SwiftMoyaServiceOrderApi.swift in Sources */,
 				A7F2D6CE22B0FF180093000B /* CommunityFollowStatusTableViewCell.swift in Sources */,
 				BD1FC18A22B0A32100D55081 /* CommunityReplyCommentCell.swift in Sources */,
+				A7F2D6D722B1ED370093000B /* CardContentUserTableViewCell.swift in Sources */,
 				A7CC751A22716254003C4F38 /* SetTableViewCell.swift in Sources */,
 				BD20F1D32283D0ED00677D8E /* OrderFinishPaySuccessCell.swift in Sources */,
 				A71AA52822732173008FF1A5 /* SwiftMoyaNetWorkServiceConfig.swift in Sources */,
@@ -4020,6 +4097,7 @@
 				A72A73162232481600B21995 /* WeChatpayManager.swift in Sources */,
 				A7CC750F22715AAC003C4F38 /* MessageDetailesTableViewCell.swift in Sources */,
 				A7931E1822AFC1DF00297D0A /* CommunityListViewController.swift in Sources */,
+				A7F2D6D922B250EF0093000B /* CardContentPicVideoTableViewCell.swift in Sources */,
 				A7B4E72D228176060012914A /* ProductMallBarChartCollectionViewCell.swift in Sources */,
 				A70B2C4E22884AE800B2449F /* ProductDetailDescriptionTableViewCell.swift in Sources */,
 				A7649B6922977A4300BCE9D1 /* ShopSectionHeaderModel.swift in Sources */,
@@ -4042,6 +4120,7 @@
 				A7284A542252FB5C000BAEC4 /* PaginationModel.swift in Sources */,
 				A72A72D022321E2700B21995 /* FontMacro.swift in Sources */,
 				BD1DC6C9228D005000B89C57 /* OrderCreateParameterModel.swift in Sources */,
+				A7BF203422B47E8600396DB3 /* CardContentActionTableViewCell.swift in Sources */,
 				A71AA52622732068008FF1A5 /* SwiftMoyaServiceConfigApi.swift in Sources */,
 				A77F2C982231FD25001BD3F6 /* BaseNavigationViewController.swift in Sources */,
 				A7274C5D228EE636000E3A07 /* LBXScanViewStyle.swift in Sources */,
@@ -4079,6 +4158,7 @@
 				A71738A622897892000AEA6A /* SwiftMoyaServiceShopApi.swift in Sources */,
 				A72A726722321DBD00B21995 /* LocationModel.swift in Sources */,
 				A7F2D6C622B0DC7B0093000B /* CommunityCommonSectionHeaderView.swift in Sources */,
+				A7F2D6DF22B25B5D0093000B /* CardContentPicVideoCollectionViewLayout.swift in Sources */,
 				A7A98E10227EC531005306E9 /* ProductHSmallTableViewCell.swift in Sources */,
 				A7A98DFD227E84F4005306E9 /* SwiftMoyaServiceProductApi.swift in Sources */,
 				BD12205022AFB08B0051C7C2 /* MessageThumbTableCell.swift in Sources */,

+ 1 - 1
RainbowPlanet/RainbowPlanet/Base/BaseTabbarViewController/BaseIrregularityBasicContentView.swift

@@ -26,7 +26,7 @@ class BaseIrregularityContentView: ESTabBarItemContentView {
     override init(frame: CGRect) {
         super.init(frame: frame)
 
-        self.insets = UIEdgeInsets.init(top: 0, left: 0, bottom: -(kTabBarTotalHeight-kSafeTabBarHeight-42)/2, right: 0)
+        self.insets = UIEdgeInsets.init(top: 1, left: 0, bottom: 0, right: 0)
         let transform = CGAffineTransform.identity
         self.imageView.transform = transform
         self.superview?.bringSubviewToFront(self)

+ 3 - 3
RainbowPlanet/RainbowPlanet/Base/BaseTabbarViewController/BaseTabbarViewController.swift

@@ -51,9 +51,9 @@ class BaseTabbarViewController: ESTabBarController {
         let v5 = MineViewController()
         
         v1.tabBarItem = ESTabBarItem.init(BaseIrregularityBasicContentView(),title: "社区", image: UIImage(named: "tabbar_home"), selectedImage: UIImage(named: "tabbar_home_pre"))
-        v2.tabBarItem = ESTabBarItem.init(BaseIrregularityBasicContentView(),title: "商城", image: UIImage(named: "tabbar_home"), selectedImage: UIImage(named: "tabbar_home_pre"))
-        v3.tabBarItem = ESTabBarItem.init(BaseIrregularityContentView(), title: nil, image: UIImage(named: "photo_verybig"), selectedImage: UIImage(named: "photo_verybig"))
-        v4.tabBarItem = ESTabBarItem.init(BaseIrregularityBasicContentView(),title: "消息", image: UIImage(named: "tabbar_shopping"), selectedImage: UIImage(named: "tabbar_shopping_pre"))
+        v2.tabBarItem = ESTabBarItem.init(BaseIrregularityBasicContentView(),title: "商城", image: UIImage(named: "tabbar_shopping"), selectedImage: UIImage(named: "tabbar_shopping_pre"))
+        v3.tabBarItem = ESTabBarItem.init(BaseIrregularityContentView(), title: nil, image: UIImage(named: "tabbar_publish"), selectedImage: UIImage(named: "tabbar_publish"))
+        v4.tabBarItem = ESTabBarItem.init(BaseIrregularityBasicContentView(),title: "消息", image: UIImage(named: "tabbar_massage"), selectedImage: UIImage(named: "tabbar_massage_pre"))
         v5.tabBarItem = ESTabBarItem.init(BaseIrregularityBasicContentView(),title: "我的", image: UIImage(named: "tabbar_my"), selectedImage: UIImage(named: "tabbar_my_pre"))
         
         let n1 = BaseNavigationViewController.init(rootViewController: v1)

+ 4 - 3
RainbowPlanet/RainbowPlanet/Macro/ColorMacro.swift

@@ -10,9 +10,9 @@ import UIKit
 
 let kThemeColor = UIColor(hexString: "62CC74")
 
-let kTabbarSelectColor = UIColor(hexString: "62CC74")
+let kTabbarSelectColor = UIColor(hexString: "333333")
 
-let kTabbarNormalColor = UIColor(hexString: "333333")
+let kTabbarNormalColor = UIColor(hexString: "666666")
 
 let kDisabledButtonColor = UIColor(hexString: "E6E6E6")
 
@@ -22,9 +22,10 @@ let kEnabledButtonColor = UIColor(hexString: "62CC74")
 
 let kEnabledTitleColor = UIColor(hexString: "FFFFFF")
 
-
 let k333333Color = UIColor(hexString: "333333")
 
+let k262626Color = UIColor(hexString: "262626")
+
 let k313334Color = UIColor(hexString: "313334")
 
 let k666666Color = UIColor(hexString: "666666")

+ 51 - 0
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/View/Cell/CardContent/Action/CardContentActionTableViewCell.swift

@@ -0,0 +1,51 @@
+//
+//  CardContentActionTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/6/15.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class CardContentActionTableViewCell: UITableViewCell {
+
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> CardContentActionTableViewCell {
+        let ID = "CardContentActionTableViewCell"
+        tableView.register(CardContentActionTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : CardContentActionTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! CardContentActionTableViewCell
+        cell.indexPath = indexPath
+        return cell
+    }
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        setupViews()
+        setupLayouts()
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    var indexPath: IndexPath? {
+        didSet {
+            
+        }
+    }
+    //MRAK: - 设置View
+    private func setupViews() {
+        self.selectionStyle = .none
+    }
+    
+    private func setupLayouts() {
+    }
+    
+    private lazy var skittlesButton: UIButton = {
+        let skittlesButton = UIButton(type: UIButton.ButtonType.custom)
+        skittlesButton.setImage(kImage(name: ""), for: UIControl.State.normal)
+        return skittlesButton
+    }()
+    
+
+}

+ 46 - 0
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/View/Cell/CardContent/Comment/CardContentCommnetTableViewCell.swift

@@ -0,0 +1,46 @@
+//
+//  CardContentCommnetTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/6/15.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class CardContentCommnetTableViewCell: UITableViewCell {
+
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> UITableViewCell {
+        let ID = "CardContentCommnetTableViewCell"
+        tableView.register(CardContentCommnetTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : CardContentCommnetTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! CardContentCommnetTableViewCell
+        cell.indexPath = indexPath
+        return cell
+    }
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        setupViews()
+        setupLayouts()
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    var indexPath: IndexPath? {
+        didSet {
+            
+        }
+    }
+    //MRAK: - 设置View
+    private func setupViews() {
+        self.selectionStyle = .none
+    }
+    
+    private func setupLayouts() {
+    }
+    
+    
+
+}

+ 56 - 0
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/View/Cell/CardContent/PicVideo/CardContentPicVideoCollectionViewCell.swift

@@ -0,0 +1,56 @@
+//
+//  CardContentPicVideoCollectionViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/6/13.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class CardContentPicVideoCollectionViewCell: UICollectionViewCell {
+    class func cellWith(collectionView:UICollectionView,indexPath:IndexPath) -> CardContentPicVideoCollectionViewCell {
+        let ID = "CardContentPicVideoCollectionViewCell"
+        collectionView.register(CardContentPicVideoCollectionViewCell.self, forCellWithReuseIdentifier: ID)
+        let cell : CardContentPicVideoCollectionViewCell = collectionView.dequeueReusableCell(withReuseIdentifier: ID, for: indexPath) as! CardContentPicVideoCollectionViewCell
+        cell.indexPath = indexPath
+        return cell
+    }
+    //MARK: - indexPath
+    var indexPath: IndexPath?{
+        didSet {
+            
+        }
+    }
+    //MARK: - 初始化
+    override init(frame: CGRect) {
+        super.init(frame: frame)
+        setupViews()
+        setupLayouts()
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    //MARK: - 设置view
+    private func setupViews() {
+        self.cornerRadius = 2
+        self.masksToBounds = true
+        addSubview(iconImageView)
+    }
+    
+    private func setupLayouts() {
+        iconImageView.snp_makeConstraints { (make) in
+            make.edges.equalToSuperview()
+        }
+    }
+    
+    private lazy var iconImageView: UIImageView = {
+        let iconImageView = UIImageView()
+        iconImageView.image = kImage(name: "pic_preload")
+        return iconImageView
+    }()
+    
+    
+}

+ 13 - 0
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/View/Cell/CardContent/PicVideo/CardContentPicVideoCollectionViewLayout.swift

@@ -0,0 +1,13 @@
+//
+//  CardContentPicVideoCollectionViewLayout.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/6/13.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class CardContentPicVideoCollectionViewLayout: UICollectionViewLayout {
+
+}

+ 18 - 0
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/View/Cell/CardContent/PicVideo/CardContentPicVideoModel.swift

@@ -0,0 +1,18 @@
+//
+//  CardContentPicVideoModel.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/6/13.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class CardContentPicVideoModel: NSObject {
+    
+    var width : CGFloat = 0
+    var height : CGFloat = 0
+    var picAndVideo : Int = 0
+    var number : Int = 0
+    
+}

+ 45 - 0
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/View/Cell/CardContent/PicVideo/CardContentPicVideoTableViewCell.swift

@@ -0,0 +1,45 @@
+//
+//  CardContentPicTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/6/13.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class CardContentPicTableViewCell: UITableViewCell {
+    
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> CardContentPicTableViewCell {
+        let ID = "CardContentPicTableViewCell"
+        tableView.register(CardContentPicTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : CardContentPicTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! CardContentPicTableViewCell
+        cell.indexPath = indexPath
+        return cell
+    }
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        setupViews()
+        setupLayouts()
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    var indexPath: IndexPath? {
+        didSet {
+            
+        }
+    }
+    //MRAK: - 设置View
+    private func setupViews() {
+        self.selectionStyle = .none
+    }
+    
+    private func setupLayouts() {
+        
+    }
+
+}

+ 167 - 0
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/View/Cell/CardContent/TitleContent/CardContentTitleTableViewCell.swift

@@ -0,0 +1,167 @@
+//
+//  TitleContentTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/6/14.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+import UITableView_FDTemplateLayoutCell
+
+enum CardContentTitleTableViewCellType {
+    case noTitleMoreThan
+    case noTitleNoMoreThan
+    case titleMoreThan
+    case titleNoMoreThan
+}
+
+class CardContentTitleTableViewCell: UITableViewCell {
+
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> CardContentTitleTableViewCell {
+        let ID = "CardContentTitleTableViewCell"
+        tableView.register(CardContentTitleTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : CardContentTitleTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! CardContentTitleTableViewCell
+        cell.indexPath = indexPath
+        return cell
+    }
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        setupViews()
+        setupLayouts()
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    var indexPath: IndexPath? {
+        didSet {
+            
+        }
+    }
+    //MRAK: - 设置View
+    private func setupViews() {
+        self.selectionStyle = .none
+        
+        addSubview(titleLabel)
+        addSubview(subtitleLabel)
+    }
+    
+    private func setupLayouts() {
+        titleLabel.snp_remakeConstraints { (make) in
+            make.top.equalToSuperview()
+            make.left.equalTo(14)
+            make.right.equalTo(-14)
+            make.height.equalTo(22)
+        }
+        
+        subtitleLabel.snp_remakeConstraints { (make) in
+            make.top.equalTo(titleLabel.snp_bottom).offset(10)
+            make.bottom.equalToSuperview()
+            make.left.equalTo(14)
+            make.right.equalTo(-14)
+        }
+    }
+    
+    private lazy var titleLabel: UILabel = {
+        let titleLabel = UILabel()
+        titleLabel.textColor = k262626Color
+        titleLabel.font = kMediumFont16
+        return titleLabel
+    }()
+    
+    private lazy var subtitleLabel: UILabel = {
+        let subtitleLabel = UILabel()
+        subtitleLabel.textColor = k313334Color
+        subtitleLabel.font = kRegularFont14
+        subtitleLabel.numberOfLines = 0
+        return subtitleLabel
+    }()
+    
+    
+    var cardContentTitleTableViewCellType: CardContentTitleTableViewCellType? {
+        didSet {
+            switch cardContentTitleTableViewCellType {
+            case .noTitleMoreThan?:
+                titleLabel.isHidden = false
+                var str = " 在1962年,白人至上运动在美国又一次掀起小高潮,黑人邮政员维克写了这么一本小册黑人邮政员维克写了这么一本小册"
+
+                if str.count >= 46 {
+                    str = String(str.prefix(46) + "...更多")
+                    let str1 = str.suffix(2)
+                    subtitleLabel.attributedText = str.changeTextColorFont(rangStr: String(str1), rangColor: k313334Color, font: kMediumFont14!)
+
+                }else {
+                    let attr = NSMutableAttributedString.init(string: str)
+                    subtitleLabel.attributedText = attr
+                }
+
+                subtitleLabel.snp_remakeConstraints { (make) in
+                    make.top.bottom.equalToSuperview()
+                    make.left.equalTo(14)
+                    make.right.equalTo(-14)
+                }
+                break
+            case .noTitleNoMoreThan?:
+                titleLabel.isHidden = false
+                subtitleLabel.text = "在1962年,"
+                subtitleLabel.snp_remakeConstraints { (make) in
+                    make.top.bottom.equalToSuperview()
+                    make.left.equalTo(14)
+                    make.right.equalTo(-14)
+                }
+                break
+            case .titleMoreThan?:
+                titleLabel.isHidden = false
+                titleLabel.text = "在1962年,白人至上运动在美国又一次掀起小高"
+                var str = " 在1962年,白人至上运动在美国又一次掀起小高潮,黑人邮政员维克写了这么一本小册黑人邮政员维克写了这么一本小册"
+                if str.count >= 46 {
+                    str = String(str.prefix(46) + "...更多")
+                    let str1 = str.suffix(2)
+                    subtitleLabel.attributedText = str.changeTextColorFont(rangStr: String(str1), rangColor: k313334Color, font: kMediumFont14!)
+                    
+                }else {
+                    let attr = NSMutableAttributedString.init(string: str)
+                    subtitleLabel.attributedText = attr
+                }
+                titleLabel.snp_remakeConstraints { (make) in
+                    make.top.equalToSuperview()
+                    make.left.equalTo(14)
+                    make.right.equalTo(-14)
+                    make.height.equalTo(22)
+                }
+                
+                subtitleLabel.snp_remakeConstraints { (make) in
+                    make.top.equalTo(titleLabel.snp_bottom).offset(10)
+                    make.bottom.equalToSuperview()
+                    make.left.equalTo(14)
+                    make.right.equalTo(-14)
+                }
+
+                break
+            case .titleNoMoreThan?:
+                titleLabel.isHidden = false
+                titleLabel.text = "在1962年,白人至上运动在美国又一次掀起小高"
+                subtitleLabel.text = "在1962年"
+                titleLabel.snp_remakeConstraints { (make) in
+                    make.top.equalToSuperview()
+                    make.leading.equalTo(14)
+                    make.trailing.equalTo(-14)
+                    make.height.equalTo(22)
+                }
+                subtitleLabel.snp_remakeConstraints { (make) in
+                    make.top.equalTo(titleLabel.snp_bottom).offset(10)
+                    make.bottom.equalToSuperview()
+                    make.leading.equalTo(14)
+                    make.trailing.equalTo(-14)
+                }
+
+                break
+            default:
+                break
+            }
+        }
+    }
+}

+ 173 - 0
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/View/Cell/CardContent/User/CardContentUserTableViewCell.swift

@@ -0,0 +1,173 @@
+//
+//  CardContentUserTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/6/13.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+import RxSwift
+
+class CardContentUserTableViewCell: UITableViewCell {
+    
+    let disposeBag = DisposeBag()
+    
+    typealias FollowClosure = () -> Void
+    var followClosure : FollowClosure?
+
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> CardContentUserTableViewCell {
+        let ID = "CardContentUserTableViewCell"
+        tableView.register(CardContentUserTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : CardContentUserTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! CardContentUserTableViewCell
+        cell.indexPath = indexPath
+        return cell
+    }
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        setupViews()
+        setupLayouts()
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    var indexPath: IndexPath? {
+        didSet {
+            
+        }
+    }
+    //MRAK: - 设置View
+    private func setupViews() {
+        self.selectionStyle = .none
+        addSubview(avatarButton)
+        addSubview(titleButton)
+        addSubview(timeLabel)
+        addSubview(setButton)
+        addSubview(followButton)
+        
+    }
+    
+    private func setupLayouts() {
+        avatarButton.snp_makeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.size.equalTo(40)
+            make.left.equalTo(14)
+        }
+        titleButton.snp_makeConstraints { (make) in
+            make.top.equalTo(avatarButton).offset(2)
+            make.height.equalTo(21)
+            make.left.equalTo(avatarButton.snp_right).offset(16)
+        }
+        timeLabel.snp_makeConstraints { (make) in
+            make.bottom.equalTo(avatarButton).offset(4)
+            make.left.equalTo(titleButton)
+
+        }
+        setButton.snp_makeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.size.equalTo(22)
+            make.right.equalTo(-14)
+        }
+        followButton.snp_makeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.height.equalTo(26)
+            make.width.equalTo(64)
+            make.right.equalTo(setButton.snp_left).offset(-11)
+        }
+    }
+    
+    private lazy var avatarButton: UIButton = {
+        let avatarButton = UIButton(type: UIButton.ButtonType.custom)
+        avatarButton.setImage(kImage(name: "pic_preload"), for: UIControl.State.normal)
+        avatarButton.imageView?.contentMode = .scaleAspectFit
+        avatarButton.cornerRadius = 20
+        avatarButton.masksToBounds = true
+        avatarButton.rx.tap.subscribe(onNext: { (data) in
+            NotificationCenter.default.post(name: NSNotification.Name(rawValue: "CommunityUser"), object: nil)
+            
+        }).disposed(by: disposeBag)
+        return avatarButton
+    }()
+    
+    private lazy var titleButton: UIButton = {
+        let titleButton = UIButton(type: UIButton.ButtonType.custom)
+        titleButton.setTitle("用户昵称", for: UIControl.State.normal)
+        titleButton.setTitleColor(k333333Color, for: UIControl.State.normal)
+        titleButton.titleLabel?.font = kMediumFont14
+        titleButton.rx.tap.subscribe(onNext: { (data) in
+            NotificationCenter.default.post(name: NSNotification.Name(rawValue: "CommunityUser"), object: nil)
+        }).disposed(by: disposeBag)
+        return titleButton
+    }()
+    
+    private lazy var timeLabel: UILabel = {
+        let timeLabel = UILabel()
+        timeLabel.text = "5小时前"
+        timeLabel.textColor = kbbbbbbColor
+        timeLabel.font = kRegularFont12
+        return timeLabel
+    }()
+    
+    private lazy var followButton: UIButton = {
+        let followButton = UIButton(type: UIButton.ButtonType.custom)
+        followButton.titleLabel?.font = kMediumFont13
+        followButton.layer.cornerRadius = 13
+        followButton.layer.masksToBounds = true
+        followButton.layer.borderWidth = 1
+        followButton.rx.tap.subscribe(onNext: {[weak self] (data) in
+            if let followClosure = self?.followClosure {
+                followClosure()
+            }
+        }).disposed(by: disposeBag)
+        return followButton
+    }()
+    
+    private lazy var setButton: UIButton = {
+        let setButton = UIButton(type: UIButton.ButtonType.custom)
+        setButton.setImage(kImage(name: "btn_more"), for: UIControl.State.normal)
+        setButton.titleLabel?.font = kMediumFont13
+        setButton.rx.tap.subscribe(onNext: {[weak self] (data) in
+            
+        }).disposed(by: disposeBag)
+        return setButton
+    }()
+    
+    var followType: FollowType! {
+        didSet {
+            switch followType {
+            case .futureFollow?:
+                followButton.setTitle("关注", for: UIControl.State.normal)
+                followButton.setTitleColor(kThemeColor, for: UIControl.State.normal)
+                followButton.setImage(kImage(name: "star_attention"), for: UIControl.State.normal)
+                followButton.layer.borderColor = kThemeColor.cgColor
+                followButton.setBackgroundImage(UIImage.imageWithColor(color: kffffffColor), for: UIControl.State.normal)
+                followButton.layoutButton(edgeInsetsStyle: ButtonEdgeInsetsStyle.left, imageTitleSpace: 2)
+                
+                break
+            case .alreadyFollow?:
+                followButton.setTitle("关注", for: UIControl.State.normal)
+                followButton.setTitleColor(k333333Color, for: UIControl.State.normal)
+                followButton.setImage(kImage(name: "star_followed"), for: UIControl.State.normal)
+                followButton.layer.borderColor = kf7f8faColor.cgColor
+                followButton.setBackgroundImage(UIImage.imageWithColor(color: kf7f8faColor), for: UIControl.State.normal)
+                followButton.layoutButton(edgeInsetsStyle: ButtonEdgeInsetsStyle.left, imageTitleSpace: 2)
+                break
+            case .mutualFollow?:
+                followButton.setTitle("互相关注", for: UIControl.State.normal)
+                followButton.setTitleColor(k333333Color, for: UIControl.State.normal)
+                followButton.setImage(nil, for: UIControl.State.normal)
+                followButton.layer.borderColor = kccccccColor.cgColor
+                followButton.setBackgroundImage(UIImage.imageWithColor(color: kffffffColor), for: UIControl.State.normal)
+                followButton.layoutButton(edgeInsetsStyle: ButtonEdgeInsetsStyle.left, imageTitleSpace: 0)
+                
+                break
+            default:
+                break
+            }
+        }
+    }
+
+}

+ 7 - 5
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/View/Cell/FollowStatus/CommunityFollowStatusTableViewCell.swift

@@ -215,8 +215,10 @@ class CommunityFollowStatusTableViewCell: UITableViewCell {
         followButton.layer.cornerRadius = 13
         followButton.layer.masksToBounds = true
         followButton.layer.borderWidth = 1
-        followButton.rx.tap.subscribe(onNext: { (data) in
-            
+        followButton.rx.tap.subscribe(onNext: {[weak self] (data) in
+            if let followClosure = self?.followClosure {
+                followClosure()
+            }
         }).disposed(by: disposeBag)
         return followButton
     }()
@@ -280,7 +282,7 @@ class CommunityFollowStatusTableViewCell: UITableViewCell {
     
     private lazy var skittlesImageView: UIImageView = {
         let skittlesImageView = UIImageView()
-        skittlesImageView.image = kImage(name: "my_arrows_unfold")
+        skittlesImageView.image = kImage(name: "ico_bean_white")
         skittlesImageView.cornerRadius = 8
         skittlesImageView.masksToBounds = true
         return skittlesImageView
@@ -385,7 +387,7 @@ class CommunityFollowStatusTableViewCell: UITableViewCell {
             case .futureFollow?:
                 followButton.setTitle("关注", for: UIControl.State.normal)
                 followButton.setTitleColor(kThemeColor, for: UIControl.State.normal)
-                followButton.setImage(kImage(name: "my_arrows_unfold"), for: UIControl.State.normal)
+                followButton.setImage(kImage(name: "star_attention"), for: UIControl.State.normal)
                 followButton.layer.borderColor = kThemeColor.cgColor
                 followButton.setBackgroundImage(UIImage.imageWithColor(color: kffffffColor), for: UIControl.State.normal)
                 followButton.layoutButton(edgeInsetsStyle: ButtonEdgeInsetsStyle.left, imageTitleSpace: 2)
@@ -394,7 +396,7 @@ class CommunityFollowStatusTableViewCell: UITableViewCell {
             case .alreadyFollow?:
                 followButton.setTitle("关注", for: UIControl.State.normal)
                 followButton.setTitleColor(k333333Color, for: UIControl.State.normal)
-                followButton.setImage(kImage(name: "my_arrows_unfold"), for: UIControl.State.normal)
+                followButton.setImage(kImage(name: "star_followed"), for: UIControl.State.normal)
                 followButton.layer.borderColor = kf7f8faColor.cgColor
                 followButton.setBackgroundImage(UIImage.imageWithColor(color: kf7f8faColor), for: UIControl.State.normal)
                 followButton.layoutButton(edgeInsetsStyle: ButtonEdgeInsetsStyle.left, imageTitleSpace: 2)

+ 4 - 4
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/View/Cell/RecommendFollow/CommunityRecommendFollowCollectionViewCell.swift

@@ -133,16 +133,16 @@ class CommunityRecommendFollowCollectionViewCell: UICollectionViewCell {
             case .futureFollow?:
                 followButton.setTitle("关注", for: UIControl.State.normal)
                 followButton.setTitleColor(kThemeColor, for: UIControl.State.normal)
-                followButton.setImage(kImage(name: "my_arrows_unfold"), for: UIControl.State.normal)
+                followButton.setImage(kImage(name: "star_attention"), for: UIControl.State.normal)
                 followButton.layer.borderColor = kThemeColor.cgColor
                 followButton.setBackgroundImage(UIImage.imageWithColor(color: kffffffColor), for: UIControl.State.normal)
                 followButton.layoutButton(edgeInsetsStyle: ButtonEdgeInsetsStyle.left, imageTitleSpace: 2)
-
+                
                 break
             case .alreadyFollow?:
                 followButton.setTitle("关注", for: UIControl.State.normal)
                 followButton.setTitleColor(k333333Color, for: UIControl.State.normal)
-                followButton.setImage(kImage(name: "my_arrows_unfold"), for: UIControl.State.normal)
+                followButton.setImage(kImage(name: "star_followed"), for: UIControl.State.normal)
                 followButton.layer.borderColor = kf7f8faColor.cgColor
                 followButton.setBackgroundImage(UIImage.imageWithColor(color: kf7f8faColor), for: UIControl.State.normal)
                 followButton.layoutButton(edgeInsetsStyle: ButtonEdgeInsetsStyle.left, imageTitleSpace: 2)
@@ -154,7 +154,7 @@ class CommunityRecommendFollowCollectionViewCell: UICollectionViewCell {
                 followButton.layer.borderColor = kccccccColor.cgColor
                 followButton.setBackgroundImage(UIImage.imageWithColor(color: kffffffColor), for: UIControl.State.normal)
                 followButton.layoutButton(edgeInsetsStyle: ButtonEdgeInsetsStyle.left, imageTitleSpace: 0)
-
+                
                 break
             default:
                 break

+ 9 - 0
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/View/Cell/RecommendFollow/CommunityRecommendFollowTableViewCell.swift

@@ -55,6 +55,7 @@ class CommunityRecommendFollowTableViewCell: UITableViewCell {
         let collectionViewLayout = UICollectionViewFlowLayout.init()
         collectionViewLayout.minimumLineSpacing = 8
         collectionViewLayout.minimumInteritemSpacing = 0
+        collectionViewLayout.estimatedItemSize = CGSize(width:140, height: 191)
         collectionViewLayout.itemSize = CGSize(width:140, height: 191)
         collectionViewLayout.sectionInset = UIEdgeInsets(top: 0, left: 14, bottom: 0, right: 14)
         collectionViewLayout.scrollDirection = .horizontal
@@ -80,6 +81,7 @@ extension CommunityRecommendFollowTableViewCell: UICollectionViewDelegateFlowLay
     }
     
     func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
+        
         let cell = CommunityRecommendFollowCollectionViewCell.cellWith(collectionView: collectionView, indexPath: indexPath)
         //关注状态
         cell.followClosure = {
@@ -103,5 +105,12 @@ extension CommunityRecommendFollowTableViewCell: UICollectionViewDelegateFlowLay
 
     }
     
+    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForFooterInSection section: Int) -> CGSize {
+        return CGSize.init(width: 0, height: 0)
+    }
+    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize {
+        return CGSize.init(width: 0, height: 0)
+    }
+    
 }
 

+ 171 - 3
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/ViewController/CommunityListViewController.swift

@@ -20,6 +20,9 @@ enum CommunityListVCType : Int {
 class CommunityListViewController: UIViewController {
     
     var communityListVCType : CommunityListVCType!
+    var cellHeightsDictionary = Dictionary<IndexPath, Any>()
+    var cellHeightsFooterDictionary = Dictionary<Int, Any>()
+    var cellHeightsHeaderDictionary = Dictionary<Int, Any>()
     
     override func viewDidLoad() {
         super.viewDidLoad()
@@ -50,6 +53,7 @@ class CommunityListViewController: UIViewController {
             make.top.left.right.equalToSuperview()
             make.height.equalTo(kScreenHeight-48-kNavBarTotalHeight-kTabBarTotalHeight)
         }
+        tableView.reloadData()
     }
     
     func setupData() {
@@ -68,6 +72,9 @@ class CommunityListViewController: UIViewController {
         tableView.backgroundColor = kf7f8faColor
         tableView.dataSource = self
         tableView.delegate = self
+//        tableView.estimatedRowHeight = 0
+//        tableView.estimatedSectionHeaderHeight = 0
+//        tableView.estimatedSectionFooterHeight = 0
         return tableView
     }()
     
@@ -87,7 +94,7 @@ extension CommunityListViewController : UITableViewDelegate,UITableViewDataSourc
     func numberOfSections(in tableView: UITableView) -> Int {
         switch communityListVCType {
         case .follow?:
-            return 8
+            return 12
         case .recommend?:
             return 0
         default:
@@ -98,7 +105,11 @@ extension CommunityListViewController : UITableViewDelegate,UITableViewDataSourc
     func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
         switch communityListVCType {
         case .follow?:
-             return 1
+            if section >= 8 {
+                return 3
+            }else {
+                return 1
+            }
         case .recommend?:
             return 0
         default:
@@ -160,6 +171,91 @@ extension CommunityListViewController : UITableViewDelegate,UITableViewDataSourc
                 let cell = CommunityFollowStatusTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
                 cell.followUserStatus = .collection
                 return cell
+            case 8:
+                switch indexPath.row {
+                case 0:
+                    let cell = CardContentUserTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+                    cell.followType = .futureFollow
+                    //关注状态
+                    cell.followClosure = {
+                        [weak self] in
+                        self?.followData(indexPath: indexPath)
+                    }
+                    return cell
+                case 1:
+                    let cell = CardContentPicTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+                    return cell
+                case 2:
+                    let cell = CardContentTitleTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+                    cell.cardContentTitleTableViewCellType = .noTitleMoreThan
+                    return cell
+                default:
+                    return UITableViewCell()
+                }
+            case 9:
+                switch indexPath.row {
+                case 0:
+                    let cell = CardContentUserTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+                    cell.followType = .alreadyFollow
+                    //关注状态
+                    cell.followClosure = {
+                        [weak self] in
+                        self?.followData(indexPath: indexPath)
+                    }
+                    return cell
+                case 1:
+                    let cell = CardContentPicTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+                    return cell
+                case 2:
+                    let cell = CardContentTitleTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+                    cell.cardContentTitleTableViewCellType = .noTitleNoMoreThan
+                    return cell
+                default:
+                    return UITableViewCell()
+                }
+            case 10:
+                switch indexPath.row {
+                case 0:
+                    let cell = CardContentUserTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+                    cell.followType = .mutualFollow
+                    //关注状态
+                    cell.followClosure = {
+                        [weak self] in
+                        self?.followData(indexPath: indexPath)
+                    }
+                    return cell
+                case 1:
+                    let cell = CardContentPicTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+                    return cell
+                case 2:
+                    let cell = CardContentTitleTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+                    cell.cardContentTitleTableViewCellType = .titleMoreThan
+
+                    return cell
+                default:
+                    return UITableViewCell()
+                }
+            case 11:
+                switch indexPath.row {
+                case 0:
+                    let cell = CardContentUserTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+                    cell.followType = .mutualFollow
+                    //关注状态
+                    cell.followClosure = {
+                        [weak self] in
+                        self?.followData(indexPath: indexPath)
+                    }
+                    return cell
+                case 1:
+                    let cell = CardContentPicTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+                    return cell
+                case 2:
+                    let cell = CardContentTitleTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+                    cell.cardContentTitleTableViewCellType = .titleNoMoreThan
+                    return cell
+                default:
+                    return UITableViewCell()
+                }
             default:
                 return UITableViewCell()
             }
@@ -194,7 +290,42 @@ extension CommunityListViewController : UITableViewDelegate,UITableViewDataSourc
                 return 182
             case 7:
                 return 182
-                
+            case 8:
+                switch indexPath.row {
+                case 0:
+                    return 80
+                case 2:
+                    return UITableView.automaticDimension
+                default:
+                    return 0
+                }
+            case 9:
+                switch indexPath.row {
+                case 0:
+                    return 80
+                case 2:
+                    return UITableView.automaticDimension
+                default:
+                    return 0
+                }
+            case 10:
+                switch indexPath.row {
+                case 0:
+                    return 80
+                case 2:
+                    return UITableView.automaticDimension
+                default:
+                    return 0
+                }
+            case 11:
+                switch indexPath.row {
+                case 0:
+                    return 80
+                case 2:
+                    return UITableView.automaticDimension
+                default:
+                    return 0
+                }
             default:
                 return 0
             }
@@ -255,6 +386,43 @@ extension CommunityListViewController : UITableViewDelegate,UITableViewDataSourc
         }
     }
     
+    func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
+        cellHeightsDictionary.updateValue(cell.frame.size.height, forKey: indexPath)
+    }
+    
+//    func tableView(_ tableView: UITableView, willDisplayFooterView view: UIView, forSection section: Int) {
+//        cellHeightsFooterDictionary.updateValue(view.frame.size.height, forKey: section)
+//    }
+//    func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
+//        cellHeightsHeaderDictionary.updateValue(view.frame.size.height, forKey: section)
+//    }
+    
+    func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
+        let height = cellHeightsDictionary[indexPath]
+        if let height = height  {
+            return height as! CGFloat
+        }
+        return UITableView.automaticDimension
+    }
+    
+//    func tableView(_ tableView: UITableView, estimatedHeightForHeaderInSection section: Int) -> CGFloat {
+//        let height = cellHeightsHeaderDictionary[section]
+//        if let height = height  {
+//            return height as! CGFloat
+//        }
+//        return 0
+//    }
+//
+//    func tableView(_ tableView: UITableView, estimatedHeightForFooterInSection section: Int) -> CGFloat {
+//        let height = cellHeightsFooterDictionary[section]
+//        if let height = height  {
+//            return height as! CGFloat
+//        }
+//        return 0
+//    }
+
+    
+    
     func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
         return nil
     }

+ 0 - 1
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/ViewController/CommunityViewController.swift

@@ -88,7 +88,6 @@ class CommunityViewController: BaseViewController {
             
         }
         
-        
     }
     
     

+ 2 - 2
RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ShoppingCart/View/ShoppingCartView.swift

@@ -190,8 +190,8 @@ class ShoppingCartView: BaseView {
         tableView.dataSource = self
         tableView.delegate = self
         tableView.estimatedRowHeight = self.hotSaleHeight
-        tableView.estimatedSectionFooterHeight = 0.000001
-        tableView.estimatedSectionHeaderHeight = 0.000001
+        tableView.estimatedSectionFooterHeight = 0
+        tableView.estimatedSectionHeaderHeight = 0
         return tableView
     }()
 

二進制
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/photo_verybig.imageset/photo_verybig.png


二進制
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/photo_verybig.imageset/photo_verybig@2x.png


+ 0 - 3
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_home.imageset/Contents.json

@@ -18,8 +18,5 @@
   "info" : {
     "version" : 1,
     "author" : "xcode"
-  },
-  "properties" : {
-    "template-rendering-intent" : "original"
   }
 }

二進制
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_home.imageset/tabbar_home@2x.png


二進制
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_home.imageset/tabbar_home@3x.png


+ 0 - 3
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_home_pre.imageset/Contents.json

@@ -18,8 +18,5 @@
   "info" : {
     "version" : 1,
     "author" : "xcode"
-  },
-  "properties" : {
-    "template-rendering-intent" : "original"
   }
 }

二進制
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_home_pre.imageset/tabbar_home_pre@2x.png


二進制
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_home_pre.imageset/tabbar_home_pre@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_massage.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "tabbar_massage@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "tabbar_massage@3x.png",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

二進制
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_massage.imageset/tabbar_massage@2x.png


二進制
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_massage.imageset/tabbar_massage@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_massage_pre.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "tabbar_massage_pre@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "tabbar_massage_pre@3x.png",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

二進制
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_massage_pre.imageset/tabbar_massage_pre@2x.png


二進制
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_massage_pre.imageset/tabbar_massage_pre@3x.png


+ 0 - 3
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_my.imageset/Contents.json

@@ -18,8 +18,5 @@
   "info" : {
     "version" : 1,
     "author" : "xcode"
-  },
-  "properties" : {
-    "template-rendering-intent" : "original"
   }
 }

二進制
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_my.imageset/tabbar_my@2x.png


二進制
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_my.imageset/tabbar_my@3x.png


+ 0 - 3
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_my_pre.imageset/Contents.json

@@ -18,8 +18,5 @@
   "info" : {
     "version" : 1,
     "author" : "xcode"
-  },
-  "properties" : {
-    "template-rendering-intent" : "original"
   }
 }

二進制
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_my_pre.imageset/tabbar_my_pre@2x.png


二進制
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_my_pre.imageset/tabbar_my_pre@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_publish.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "tabbar_publish@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "tabbar_publish@3x.png",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

二進制
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_publish.imageset/tabbar_publish@2x.png


二進制
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_publish.imageset/tabbar_publish@3x.png


+ 0 - 3
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_shopping.imageset/Contents.json

@@ -18,8 +18,5 @@
   "info" : {
     "version" : 1,
     "author" : "xcode"
-  },
-  "properties" : {
-    "template-rendering-intent" : "original"
   }
 }

二進制
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_shopping.imageset/tabbar_shopping@2x.png


二進制
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_shopping.imageset/tabbar_shopping@3x.png


+ 0 - 3
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_shopping_pre.imageset/Contents.json

@@ -18,8 +18,5 @@
   "info" : {
     "version" : 1,
     "author" : "xcode"
-  },
-  "properties" : {
-    "template-rendering-intent" : "original"
   }
 }

二進制
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_shopping_pre.imageset/tabbar_shopping_pre@2x.png


二進制
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/tabbar_shopping_pre.imageset/tabbar_shopping_pre@3x.png


RainbowPlanet/RainbowPlanet/Supporting Files/ProductModule.xcassets/Contents.json → RainbowPlanet/RainbowPlanet/Supporting Files/CommunityModule.xcassets/Contents.json


+ 2 - 2
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/TabbarIcons/photo_verybig.imageset/Contents.json

@@ -2,16 +2,16 @@
   "images" : [
     {
       "idiom" : "universal",
-      "filename" : "photo_verybig.png",
       "scale" : "1x"
     },
     {
       "idiom" : "universal",
-      "filename" : "photo_verybig@2x.png",
+      "filename" : "btn_more@2x.png",
       "scale" : "2x"
     },
     {
       "idiom" : "universal",
+      "filename" : "btn_more@3x.png",
       "scale" : "3x"
     }
   ],

二進制
RainbowPlanet/RainbowPlanet/Supporting Files/CommunityModule.xcassets/btn_more.imageset/btn_more@2x.png


二進制
RainbowPlanet/RainbowPlanet/Supporting Files/CommunityModule.xcassets/btn_more.imageset/btn_more@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/CommunityModule.xcassets/ico_bean_white.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "ico_bean_white@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "ico_bean_white@3x.png",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

二進制
RainbowPlanet/RainbowPlanet/Supporting Files/CommunityModule.xcassets/ico_bean_white.imageset/ico_bean_white@2x.png


二進制
RainbowPlanet/RainbowPlanet/Supporting Files/CommunityModule.xcassets/ico_bean_white.imageset/ico_bean_white@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/CommunityModule.xcassets/star_attention.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "star_attention@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "star_attention@3x.png",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

二進制
RainbowPlanet/RainbowPlanet/Supporting Files/CommunityModule.xcassets/star_attention.imageset/star_attention@2x.png


二進制
RainbowPlanet/RainbowPlanet/Supporting Files/CommunityModule.xcassets/star_attention.imageset/star_attention@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/CommunityModule.xcassets/star_followed.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "star_followed@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "star_followed@3x.png",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

二進制
RainbowPlanet/RainbowPlanet/Supporting Files/CommunityModule.xcassets/star_followed.imageset/star_followed@2x.png


二進制
RainbowPlanet/RainbowPlanet/Supporting Files/CommunityModule.xcassets/star_followed.imageset/star_followed@3x.png


+ 0 - 6
RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/Contents.json

@@ -1,6 +0,0 @@
-{
-  "info" : {
-    "version" : 1,
-    "author" : "xcode"
-  }
-}

RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/goods_ico_share.imageset/Contents.json → RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingMallModule.xcassets/goods_ico_share.imageset/Contents.json


RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/goods_ico_share.imageset/goods_ico_share@2x.png → RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingMallModule.xcassets/goods_ico_share.imageset/goods_ico_share@2x.png


RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/goods_ico_share.imageset/goods_ico_share@3x.png → RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingMallModule.xcassets/goods_ico_share.imageset/goods_ico_share@3x.png


RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/orderPay_separateLine.imageset/Contents.json → RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingMallModule.xcassets/orderPay_separateLine.imageset/Contents.json


RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/orderPay_separateLine.imageset/orderPay_separateLine@2x.png → RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingMallModule.xcassets/orderPay_separateLine.imageset/orderPay_separateLine@2x.png


RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/orderPay_separateLine.imageset/orderPay_separateLine@3x.png → RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingMallModule.xcassets/orderPay_separateLine.imageset/orderPay_separateLine@3x.png


RainbowPlanet/RainbowPlanet/Supporting Files/ProductModule.xcassets/product_detail_top.imageset/Contents.json → RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingMallModule.xcassets/product_detail_top.imageset/Contents.json


RainbowPlanet/RainbowPlanet/Supporting Files/ProductModule.xcassets/product_detail_top.imageset/product_detail_top@2x.png → RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingMallModule.xcassets/product_detail_top.imageset/product_detail_top@2x.png


RainbowPlanet/RainbowPlanet/Supporting Files/ProductModule.xcassets/product_detail_top.imageset/product_detail_top@3x.png → RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingMallModule.xcassets/product_detail_top.imageset/product_detail_top@3x.png


RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/shopping_cart_trade_failure.imageset/Contents.json → RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingMallModule.xcassets/shopping_cart_trade_failure.imageset/Contents.json


RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/shopping_cart_trade_failure.imageset/shopping_cart_trade_failure@2x.png → RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingMallModule.xcassets/shopping_cart_trade_failure.imageset/shopping_cart_trade_failure@2x.png


RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/shopping_cart_trade_failure.imageset/shopping_cart_trade_failure@3x.png → RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingMallModule.xcassets/shopping_cart_trade_failure.imageset/shopping_cart_trade_failure@3x.png


RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/shopping_cart_trade_finish.imageset/Contents.json → RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingMallModule.xcassets/shopping_cart_trade_finish.imageset/Contents.json


RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/shopping_cart_trade_finish.imageset/shopping_cart_trade_finish@2x.png → RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingMallModule.xcassets/shopping_cart_trade_finish.imageset/shopping_cart_trade_finish@2x.png


RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/shopping_cart_trade_finish.imageset/shopping_cart_trade_finish@3x.png → RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingMallModule.xcassets/shopping_cart_trade_finish.imageset/shopping_cart_trade_finish@3x.png


+ 13 - 0
RainbowPlanet/RainbowPlanet/Tools/Extension/Extension+String.swift

@@ -214,6 +214,19 @@ extension String {
         attrstring.addAttribute(NSAttributedString.Key.foregroundColor, value:rangColor, range: theRange)
         return attrstring
     }
+    //改变指定字符串中内容的颜色
+    func changeTextColorFont(rangStr : String, rangColor : UIColor,font:UIFont) ->NSAttributedString{
+        let strg = self
+        let ranStr = rangStr
+        //所有文字变为富文本
+        let attrstring:NSMutableAttributedString = NSMutableAttributedString(string:strg)
+        //颜色处理的范围
+        let str = NSString(string: strg)
+        let theRange = str.range(of: ranStr)
+        //颜色处理//字体
+        attrstring.addAttributes([NSAttributedString.Key.foregroundColor:rangColor,NSAttributedString.Key.font:font], range: theRange)
+        return attrstring
+    }
     
     func setHTMLImgStyle() -> String {
         let str = "<head><style>img{width:\(kScreenWidth) !important;height:auto}</style></head>\(self)"

+ 14 - 0
RainbowPlanet/RainbowPlanet/Tools/Extension/Extension+UILabel.swift

@@ -33,4 +33,18 @@ extension UILabel {
         //比较两个行数来判断是否需要截断
         return labelTextLines > labelShowLines
     }
+    
+    ///label高度自适应
+    /// - Parameters:
+    ///   - text: 文字
+    ///   - labelWidth: 最大宽度
+    ///   - attributes: 字体,行距等
+    /// - Returns: 高度
+    func autoLabelHeight(with text:String , labelWidth: CGFloat ,attributes : [NSAttributedString.Key : Any]) -> CGFloat{
+        var size = CGRect()
+        let size2 = CGSize(width: labelWidth, height: 0)//设置label的最大宽度
+        size = text.boundingRect(with: size2, options: NSStringDrawingOptions.usesLineFragmentOrigin, attributes: attributes , context: nil);
+        return size.size.height
+    }
+
 }