浏览代码

个人中心

南鑫林 5 年之前
父节点
当前提交
38c593fcd8
共有 50 个文件被更改,包括 1181 次插入19 次删除
  1. 60 0
      RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj
  2. 2 1
      RainbowPlanet/RainbowPlanet/Base/BaseTabbarViewController/BaseTabbarViewController.swift
  3. 5 1
      RainbowPlanet/RainbowPlanet/Macro/ColorMacro.swift
  4. 1 1
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityRecommendDetail/View/RecommendDefaultBackCell.swift
  5. 1 1
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityRecommendDetail/View/RecommendNoneCommentCell.swift
  6. 1 1
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityRecommendDetail/View/全部评论的Cell/RecommendCommentFooter.swift
  7. 1 1
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityRecommendDetail/View/全部评论的Cell/RecommendSubCommentCollectionFooter.swift
  8. 134 3
      RainbowPlanet/RainbowPlanet/Modules/MineModule/PersonalCenter/PersonalCenterView/PersonViewUserAndOtherHeaderView.swift
  9. 93 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/PersonalCenter/PersonalCenterView/PersonViewUserAndOtherListCollectionViewCell.swift
  10. 92 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/PersonalCenter/PersonalCenterView/PersonViewUserAndOtherListView.swift
  11. 72 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/PersonalCenter/UserPersonalCenter/View/Order/UserPersonalCenterOrderCollectionViewCell.swift
  12. 80 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/PersonalCenter/UserPersonalCenter/View/Order/UserPersonalCenterOrderView.swift
  13. 131 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/PersonalCenter/UserPersonalCenter/View/RainbowBeanPhysical/RainbowBeanPhysicalCollectionViewCell.swift
  14. 70 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/PersonalCenter/UserPersonalCenter/View/RainbowBeanPhysical/RainbowBeanPhysicalView.swift
  15. 53 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/PersonalCenter/UserPersonalCenter/View/UserPersonalCenterHeaderView/UserPersonalCenterHeaderView.swift
  16. 165 10
      RainbowPlanet/RainbowPlanet/Modules/MineModule/PersonalCenter/UserPersonalCenter/ViewController/UserPersonalCenterViewController.swift
  17. 二进制
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/NavigationBarIcons/navbar_back_black.imageset/navbar_back_black@2x.png
  18. 二进制
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/NavigationBarIcons/navbar_back_black.imageset/navbar_back_black@3x.png
  19. 二进制
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/NavigationBarIcons/navbar_back_white.imageset/navbar_back_white@2x.png
  20. 二进制
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/NavigationBarIcons/navbar_back_white.imageset/navbar_back_white@3x.png
  21. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/CommunityModule.xcassets/center_values.imageset/Contents.json
  22. 二进制
      RainbowPlanet/RainbowPlanet/Supporting Files/CommunityModule.xcassets/center_values.imageset/center_values@2x.png
  23. 二进制
      RainbowPlanet/RainbowPlanet/Supporting Files/CommunityModule.xcassets/center_values.imageset/center_values@3x.png
  24. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_comment.imageset/Contents.json
  25. 二进制
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_comment.imageset/center_comment@2x.png
  26. 二进制
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_comment.imageset/center_comment@3x.png
  27. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_customer.imageset/Contents.json
  28. 二进制
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_customer.imageset/center_customer@2x.png
  29. 二进制
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_customer.imageset/center_customer@3x.png
  30. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_harvested.imageset/Contents.json
  31. 二进制
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_harvested.imageset/center_harvested@2x.png
  32. 二进制
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_harvested.imageset/center_harvested@3x.png
  33. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_overhang.imageset/Contents.json
  34. 二进制
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_overhang.imageset/center_overhang@2x.png
  35. 二进制
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_overhang.imageset/center_overhang@3x.png
  36. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_payment.imageset/Contents.json
  37. 二进制
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_payment.imageset/center_payment@2x.png
  38. 二进制
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_payment.imageset/center_payment@3x.png
  39. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_peas.imageset/Contents.json
  40. 二进制
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_peas.imageset/center_peas@2x.png
  41. 二进制
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_peas.imageset/center_peas@3x.png
  42. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_video.imageset/Contents.json
  43. 二进制
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_video.imageset/center_video@2x.png
  44. 二进制
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_video.imageset/center_video@3x.png
  45. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/personage_dou.imageset/Contents.json
  46. 二进制
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/personage_dou.imageset/personage_dou@2x.png
  47. 二进制
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/personage_dou.imageset/personage_dou@3x.png
  48. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/personage_vit.imageset/Contents.json
  49. 二进制
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/personage_vit.imageset/personage_vit@2x.png
  50. 二进制
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/personage_vit.imageset/personage_vit@3x.png

+ 60 - 0
RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj

@@ -325,6 +325,13 @@
 		A7D07CBF22B73EE600186014 /* UserPersonalCenterViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D07CBE22B73EE600186014 /* UserPersonalCenterViewController.swift */; };
 		A7D07CC122B73F0200186014 /* OtherPersonalCenterViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D07CC022B73F0200186014 /* OtherPersonalCenterViewController.swift */; };
 		A7D07CC322B745C800186014 /* PersonViewUserAndOtherHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D07CC222B745C800186014 /* PersonViewUserAndOtherHeaderView.swift */; };
+		A7D07CC722B774D600186014 /* RainbowBeanPhysicalView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D07CC622B774D600186014 /* RainbowBeanPhysicalView.swift */; };
+		A7D07CC922B7769600186014 /* RainbowBeanPhysicalCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D07CC822B7769600186014 /* RainbowBeanPhysicalCollectionViewCell.swift */; };
+		A7D07CCD22B77D2E00186014 /* UserPersonalCenterOrderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D07CCC22B77D2E00186014 /* UserPersonalCenterOrderView.swift */; };
+		A7D07CCF22B77E0200186014 /* UserPersonalCenterOrderCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D07CCE22B77E0200186014 /* UserPersonalCenterOrderCollectionViewCell.swift */; };
+		A7D07CD222B784B800186014 /* UserPersonalCenterHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D07CD122B784B800186014 /* UserPersonalCenterHeaderView.swift */; };
+		A7D07CD422B789DE00186014 /* PersonViewUserAndOtherListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D07CD322B789DE00186014 /* PersonViewUserAndOtherListView.swift */; };
+		A7D07CD622B78BC300186014 /* PersonViewUserAndOtherListCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D07CD522B78BC300186014 /* PersonViewUserAndOtherListCollectionViewCell.swift */; };
 		A7D4608E227616F800A5A54E /* SQLiteManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D4608D227616F800A5A54E /* SQLiteManager.swift */; };
 		A7D46090227617D200A5A54E /* SQLModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D4608F227617D200A5A54E /* SQLModel.swift */; };
 		A7D46092227619CD00A5A54E /* BaiduToCityFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D46091227619CC00A5A54E /* BaiduToCityFactory.swift */; };
@@ -848,6 +855,13 @@
 		A7D07CBE22B73EE600186014 /* UserPersonalCenterViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserPersonalCenterViewController.swift; sourceTree = "<group>"; };
 		A7D07CC022B73F0200186014 /* OtherPersonalCenterViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OtherPersonalCenterViewController.swift; sourceTree = "<group>"; };
 		A7D07CC222B745C800186014 /* PersonViewUserAndOtherHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PersonViewUserAndOtherHeaderView.swift; sourceTree = "<group>"; };
+		A7D07CC622B774D600186014 /* RainbowBeanPhysicalView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RainbowBeanPhysicalView.swift; sourceTree = "<group>"; };
+		A7D07CC822B7769600186014 /* RainbowBeanPhysicalCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RainbowBeanPhysicalCollectionViewCell.swift; sourceTree = "<group>"; };
+		A7D07CCC22B77D2E00186014 /* UserPersonalCenterOrderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserPersonalCenterOrderView.swift; sourceTree = "<group>"; };
+		A7D07CCE22B77E0200186014 /* UserPersonalCenterOrderCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserPersonalCenterOrderCollectionViewCell.swift; sourceTree = "<group>"; };
+		A7D07CD122B784B800186014 /* UserPersonalCenterHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserPersonalCenterHeaderView.swift; sourceTree = "<group>"; };
+		A7D07CD322B789DE00186014 /* PersonViewUserAndOtherListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PersonViewUserAndOtherListView.swift; sourceTree = "<group>"; };
+		A7D07CD522B78BC300186014 /* PersonViewUserAndOtherListCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PersonViewUserAndOtherListCollectionViewCell.swift; sourceTree = "<group>"; };
 		A7D4608D227616F800A5A54E /* SQLiteManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SQLiteManager.swift; sourceTree = "<group>"; };
 		A7D4608F227617D200A5A54E /* SQLModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SQLModel.swift; sourceTree = "<group>"; };
 		A7D46091227619CC00A5A54E /* BaiduToCityFactory.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaiduToCityFactory.swift; sourceTree = "<group>"; };
@@ -3171,6 +3185,7 @@
 		A7D07CB922B73E6700186014 /* UserPersonalCenter */ = {
 			isa = PBXGroup;
 			children = (
+				A7D07CC522B771C300186014 /* View */,
 				A7D07CBC22B73EBD00186014 /* ViewController */,
 			);
 			path = UserPersonalCenter;
@@ -3204,10 +3219,48 @@
 			isa = PBXGroup;
 			children = (
 				A7D07CC222B745C800186014 /* PersonViewUserAndOtherHeaderView.swift */,
+				A7D07CD322B789DE00186014 /* PersonViewUserAndOtherListView.swift */,
+				A7D07CD522B78BC300186014 /* PersonViewUserAndOtherListCollectionViewCell.swift */,
 			);
 			path = PersonalCenterView;
 			sourceTree = "<group>";
 		};
+		A7D07CC522B771C300186014 /* View */ = {
+			isa = PBXGroup;
+			children = (
+				A7D07CD022B7849400186014 /* UserPersonalCenterHeaderView */,
+				A7D07CCB22B77CF500186014 /* Order */,
+				A7D07CCA22B77CEC00186014 /* RainbowBeanPhysical */,
+			);
+			path = View;
+			sourceTree = "<group>";
+		};
+		A7D07CCA22B77CEC00186014 /* RainbowBeanPhysical */ = {
+			isa = PBXGroup;
+			children = (
+				A7D07CC622B774D600186014 /* RainbowBeanPhysicalView.swift */,
+				A7D07CC822B7769600186014 /* RainbowBeanPhysicalCollectionViewCell.swift */,
+			);
+			path = RainbowBeanPhysical;
+			sourceTree = "<group>";
+		};
+		A7D07CCB22B77CF500186014 /* Order */ = {
+			isa = PBXGroup;
+			children = (
+				A7D07CCC22B77D2E00186014 /* UserPersonalCenterOrderView.swift */,
+				A7D07CCE22B77E0200186014 /* UserPersonalCenterOrderCollectionViewCell.swift */,
+			);
+			path = Order;
+			sourceTree = "<group>";
+		};
+		A7D07CD022B7849400186014 /* UserPersonalCenterHeaderView */ = {
+			isa = PBXGroup;
+			children = (
+				A7D07CD122B784B800186014 /* UserPersonalCenterHeaderView.swift */,
+			);
+			path = UserPersonalCenterHeaderView;
+			sourceTree = "<group>";
+		};
 		A7D4608C227616E600A5A54E /* FMDB */ = {
 			isa = PBXGroup;
 			children = (
@@ -4319,6 +4372,7 @@
 				A73D7C682268A032002A4CE3 /* SwiftyStarRatingView.swift in Sources */,
 				A7931E0122AF827600297D0A /* ESTabBarItemContentView.swift in Sources */,
 				A71AA5102272156A008FF1A5 /* ExpressAddressListViewController.swift in Sources */,
+				A7D07CC922B7769600186014 /* RainbowBeanPhysicalCollectionViewCell.swift in Sources */,
 				BDAA40FF228EA37900CF841D /* OrderApplyRefundPhotoCell.swift in Sources */,
 				A7A98E14227ED0E2005306E9 /* CategoryListModel.swift in Sources */,
 				A70B2C532288584500B2449F /* ShareView.swift in Sources */,
@@ -4332,6 +4386,7 @@
 				BDF862A2228E41CC000DEF84 /* OrderLogisticsInfoCell.swift in Sources */,
 				A739121D229F75F50033177E /* JXPagingListContainerView.swift in Sources */,
 				A72A7386223396CB00B21995 /* SwiftMoyaNetWorkManager.swift in Sources */,
+				A7D07CCD22B77D2E00186014 /* UserPersonalCenterOrderView.swift in Sources */,
 				A70B2C252286C03800B2449F /* NXLPageControl.swift in Sources */,
 				A7F2D6C122B0D1CB0093000B /* CommunityFollowTableHeaderView.swift in Sources */,
 				A7C0FE0022B66E5A00BC1E86 /* CommunityFeaturedTopicsViewController.swift in Sources */,
@@ -4392,6 +4447,7 @@
 				A754150F224CACF9002480B5 /* SwiftSign.swift in Sources */,
 				A71AF0BA226F00F8001730FE /* SearchResultView.swift in Sources */,
 				A77F2CB52232010F001BD3F6 /* ShoppingMallViewController.swift in Sources */,
+				A7D07CD622B78BC300186014 /* PersonViewUserAndOtherListCollectionViewCell.swift in Sources */,
 				A71AA513227215B5008FF1A5 /* ExpressAddressListView.swift in Sources */,
 				A7B4E723228154750012914A /* ProductFloorBannerView.swift in Sources */,
 				A7003EA3229192CC004E51FB /* PayManagerPay.swift in Sources */,
@@ -4551,6 +4607,7 @@
 				A7778CAB2244B12500C7C47A /* CountDownManager.swift in Sources */,
 				A775CBFE2237493600EBDCF8 /* ShoppingMallNavigationBarView.swift in Sources */,
 				A71AA5212272E527008FF1A5 /* Extension+UINavigationController.swift in Sources */,
+				A7D07CD222B784B800186014 /* UserPersonalCenterHeaderView.swift in Sources */,
 				A7CC751822716202003C4F38 /* SetView.swift in Sources */,
 				BD2FCBEA22B267280006D974 /* RecommendNoneCommentCell.swift in Sources */,
 				A7FF1594228C919A00A85748 /* OrderRefunddetailsTipsTableViewCell.swift in Sources */,
@@ -4569,6 +4626,7 @@
 				A70B2C4E22884AE800B2449F /* ProductDetailDescriptionTableViewCell.swift in Sources */,
 				A7649B6922977A4300BCE9D1 /* ShopSectionHeaderModel.swift in Sources */,
 				A7CC7516227161D5003C4F38 /* SetViewController.swift in Sources */,
+				A7D07CD422B789DE00186014 /* PersonViewUserAndOtherListView.swift in Sources */,
 				A7778CBA2244F14B00C7C47A /* Extension+UIViewController.swift in Sources */,
 				A7CC752C2271A1AE003C4F38 /* SetPasswordViewController.swift in Sources */,
 				A7C0FDEE22B6516A00BC1E86 /* CommunityBannerTableViewCell.swift in Sources */,
@@ -4587,6 +4645,7 @@
 				A71AF0AA226EDDF5001730FE /* SearchView.swift in Sources */,
 				A7FF1583228C843700A85748 /* OrderDetailExpressSelfMentionTableViewCell.swift in Sources */,
 				A7A98E0E227EC0C6005306E9 /* CategoryTableViewCell.swift in Sources */,
+				A7D07CC722B774D600186014 /* RainbowBeanPhysicalView.swift in Sources */,
 				A7FF1572228C7D4600A85748 /* OrderButtonTableViewCell.swift in Sources */,
 				A7B4E72F2281773F0012914A /* ProductFloorCenterTitleView.swift in Sources */,
 				A7284A542252FB5C000BAEC4 /* PaginationModel.swift in Sources */,
@@ -4640,6 +4699,7 @@
 				A7A98DFD227E84F4005306E9 /* SwiftMoyaServiceProductApi.swift in Sources */,
 				BD12205022AFB08B0051C7C2 /* MessageThumbTableCell.swift in Sources */,
 				A739121B229F75F50033177E /* JXPagingView.swift in Sources */,
+				A7D07CCF22B77E0200186014 /* UserPersonalCenterOrderCollectionViewCell.swift in Sources */,
 				BD7AB8452284398A0030646A /* OrderPaySelfPickAddInfoCell.swift in Sources */,
 				A72A72D222321E2700B21995 /* Common.swift in Sources */,
 				A70B2C64228875DE00B2449F /* ShopViewShopInfoTableViewCell.swift in Sources */,

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

@@ -48,7 +48,8 @@ class BaseTabbarViewController: ESTabBarController {
         /// 消息
         let v4 = MessageMainViewController()
         /// 我的
-        let v5 = MineViewController()
+//        let v5 = MineViewController()
+        let v5 = UserPersonalCenterViewController()
         
         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_shopping"), selectedImage: UIImage(named: "tabbar_shopping_pre"))

+ 5 - 1
RainbowPlanet/RainbowPlanet/Macro/ColorMacro.swift

@@ -76,6 +76,8 @@ let kf7f7faColor = UIColor(hexString: "f7f7fa")
 
 let kf7f8faColor = UIColor(hexString: "f7f8fa")
 
+let kf0f0f0Color = UIColor(hexString: "f0f0f0")
+
 let kf1f1f1Color = UIColor(hexString: "f1f1f1")
 
 let kf2f2f2Color = UIColor(hexString: "f2f2f2")
@@ -132,8 +134,10 @@ let kebebebColor = UIColor(hexString: "ebebeb")
 
 let kfff8ecColor = UIColor(hexString: "fff8ec")
 
-let k62cc74Color = UIColor(hexString: "62cc74")
+let k62CC74Color = UIColor(hexString: "62CC74")
 
 let kFFF8ECColor = UIColor(hexString: "FFF8EC")
 
 let kDDDDDDColor = UIColor(hexString: "DDDDDD")
+
+let kFEFEFEColor = UIColor(hexString: "#FEFEFE")

+ 1 - 1
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityRecommendDetail/View/RecommendDefaultBackCell.swift

@@ -86,7 +86,7 @@ class RecommendDefaultBackCell: UITableViewCell {
     
     private lazy var jumpBtn: UIButton = {
         let jumpBtn = UIButton(type: UIButton.ButtonType.custom)
-        jumpBtn.backgroundColor = k62cc74Color
+        jumpBtn.backgroundColor = k62CC74Color
         jumpBtn.setTitle("去首页", for: .normal)
         jumpBtn.setTitleColor(kffffffColor, for: .normal)
         jumpBtn.titleLabel?.font = kMediumFont16

+ 1 - 1
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityRecommendDetail/View/RecommendNoneCommentCell.swift

@@ -129,7 +129,7 @@ class RecommendNoneCommentCell: UITableViewCell {
     
     private lazy var commentBtn: UIButton = {
         let commentBtn = UIButton(type: UIButton.ButtonType.custom)
-        commentBtn.backgroundColor = k62cc74Color
+        commentBtn.backgroundColor = k62CC74Color
         commentBtn.setTitle("我要留言", for: .normal)
         commentBtn.setTitleColor(kffffffColor, for: .normal)
         commentBtn.titleLabel?.font = kRegularFont14

+ 1 - 1
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityRecommendDetail/View/全部评论的Cell/RecommendCommentFooter.swift

@@ -30,7 +30,7 @@ class RecommendCommentFooter: BaseView {
     private lazy var unfoldBtn: UIButton = {
         let unfoldBtn = UIButton(type: UIButton.ButtonType.custom)        
         unfoldBtn.setTitle("展开更多评论", for: .normal)
-        unfoldBtn.setTitleColor(k62cc74Color, for: .normal)
+        unfoldBtn.setTitleColor(k62CC74Color, for: .normal)
         unfoldBtn.titleLabel?.font = kRegularFont14        
         unfoldBtn.rx.tap.subscribe(onNext: { [weak self] (data) in
             if let unfoldClosure = self?.unfoldClosure {

+ 1 - 1
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityRecommendDetail/View/全部评论的Cell/RecommendSubCommentCollectionFooter.swift

@@ -58,7 +58,7 @@ class RecommendSubCommentCollectionFooter: UICollectionReusableView {
     private lazy var unfoldBtn: UIButton = {
         let unfoldBtn = UIButton(type: UIButton.ButtonType.custom)
         unfoldBtn.setTitle("展开3条回复", for: .normal)
-        unfoldBtn.setTitleColor(k62cc74Color, for: .normal)
+        unfoldBtn.setTitleColor(k62CC74Color, for: .normal)
         unfoldBtn.titleLabel?.font = kRegularFont14
         unfoldBtn.rx.tap.subscribe(onNext: { [weak self] (data) in
             if let unfoldClosure = self?.unfoldClosure {

+ 134 - 3
RainbowPlanet/RainbowPlanet/Modules/MineModule/PersonalCenter/PersonalCenterView/PersonViewUserAndOtherHeaderView.swift

@@ -9,15 +9,74 @@
 import UIKit
 
 class PersonViewUserAndOtherHeaderView: BaseView {
+    var imageView: UIImageView!
+    var imageViewFrame: CGRect!
 
     override func setupViews() {
-        addSubview(titleLabel)
+        imageViewFrame = CGRect(x: 0, y: 0, width: kScreenWidth, height: 140 + kNavBarTotalHeight)
+        addSubview(bgImageView)
+        addSubview(bgView)
+        bgView.addSubview(titleLabel)
+        bgView.addSubview(subtitleLabel)
+        bgView.addSubview(followNumberButton)
+        bgView.addSubview(fanNumberButton)
+        bgView.addSubview(avatarButton)
+        bgView.addSubview(editButton)
+        bgView.addSubview(followButton)
     }
     
     override func setupLayouts() {
-        
+        titleLabel.snp_makeConstraints { (make) in
+            make.bottom.equalTo(subtitleLabel.snp_top).offset(-10)
+            make.left.equalTo(14)
+            make.right.equalTo(-100)
+        }
+        subtitleLabel.snp_makeConstraints { (make) in
+            make.bottom.equalTo(followNumberButton.snp_top).offset(-30)
+            make.left.equalTo(14)
+            make.right.equalTo(-100)
+        }
+        followNumberButton.snp_makeConstraints { (make) in
+            make.bottom.equalTo(-23)
+            make.left.equalTo(14)
+            make.height.equalTo(20)
+        }
+        fanNumberButton.snp_makeConstraints { (make) in
+            make.centerY.height.equalTo(followNumberButton)
+            make.left.equalTo(followNumberButton.snp_right).offset(20)
+        }
+        editButton.snp_makeConstraints { (make) in
+             make.right.equalTo(-20)
+            make.bottom.equalTo(-23)
+            make.width.equalTo(64)
+            make.height.equalTo(24)
+        }
+        followButton.snp_makeConstraints { (make) in
+            make.right.equalTo(-20)
+            make.bottom.equalTo(-23)
+            make.width.equalTo(64)
+            make.height.equalTo(24)
+        }
+        avatarButton.snp_makeConstraints { (make) in
+            make.bottom.equalTo(-66)
+            make.right.equalTo(-20)
+            make.size.equalTo(60)
+        }
     }
     
+    private lazy var bgImageView: UIImageView = {
+        let bgImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: kScreenWidth, height: 140 + kNavBarTotalHeight))
+        bgImageView.image = kImage(name: "Rectangle 2")
+        bgImageView.contentMode = .scaleAspectFill
+        return bgImageView
+    }()
+    
+    private lazy var bgView: UIView = {
+        let bgView = UIView(frame: CGRect(x: 0, y: 0, width: kScreenWidth, height: 140 + kNavBarTotalHeight))
+        bgView.backgroundColor = UIColor(hexString: "000000", alpha: 0.5)
+        return bgView
+    }()
+    
     private lazy var titleLabel: UILabel = {
         let titleLabel = UILabel()
         titleLabel.text = "昵称"
@@ -25,5 +84,77 @@ class PersonViewUserAndOtherHeaderView: BaseView {
         titleLabel.font = kBoldFont18
         return titleLabel
     }()
-
+    
+    private lazy var subtitleLabel: UILabel = {
+        let subtitleLabel = UILabel()
+        subtitleLabel.text = "添加个人简介,让更多的彩虹居民认识你~"
+        subtitleLabel.textColor = kbbbbbbColor
+        subtitleLabel.font = kRegularFont10
+        return subtitleLabel
+    }()
+    
+    private lazy var followNumberButton: UIButton = {
+        let followNumberButton = UIButton(type: UIButton.ButtonType.custom)
+        followNumberButton.setTitle("283 关注", for: UIControl.State.normal)
+        followNumberButton.setTitleColor(kf0f0f0Color, for: UIControl.State.normal)
+        followNumberButton.titleLabel?.font = kBoldFont14
+        return followNumberButton
+    }()
+    
+    private lazy var fanNumberButton: UIButton = {
+        let fanNumberButton = UIButton(type: UIButton.ButtonType.custom)
+        fanNumberButton.setTitle("240 粉丝", for: UIControl.State.normal)
+        fanNumberButton.setTitleColor(kf0f0f0Color, for: UIControl.State.normal)
+        fanNumberButton.titleLabel?.font = kBoldFont14
+        return fanNumberButton
+    }()
+    
+    private lazy var avatarButton: UIButton = {
+        let avatarButton = UIButton(type: UIButton.ButtonType.custom)
+        avatarButton.setBackgroundImage(kImage(name: "defaul_tavatar"), for: UIControl.State.normal)
+        avatarButton.cornerRadius = 30
+        avatarButton.masksToBounds = true
+        return avatarButton
+    }()
+    
+    private lazy var editButton : UIButton = {
+        let editButton = UIButton(type: UIButton.ButtonType.custom)
+        editButton.cornerRadius = 12
+        editButton.masksToBounds = true
+        editButton.setTitle("编辑资料", for: UIControl.State.normal)
+        editButton.setTitleColor(kffffffColor, for: UIControl.State.normal)
+        editButton.titleLabel?.font = kRegularFont12
+        editButton.layer.borderColor = kffffffColor.cgColor
+        editButton.layer.borderWidth = 64
+        editButton.isHidden = true
+        return editButton
+    }()
+    
+    private lazy var followButton: UIButton = {
+        let followButton = UIButton(type: UIButton.ButtonType.custom)
+        followButton.setTitle("关注", for: UIControl.State.normal)
+        followButton.setImage(kImage(name: "center_attention_white"), for: UIControl.State.normal)
+        followButton.setImage(kImage(name: "center_followed_white"), for: UIControl.State.selected)
+        followButton.setBackgroundImage(UIImage.imageWithColor(color: kThemeColor), for:  UIControl.State.normal)
+        followButton.setBackgroundImage(UIImage.imageWithColor(color: UIColor.clear), for: UIControl.State.selected)
+        followButton.titleLabel?.font = kMediumFont13
+        followButton.alpha = 0
+        followButton.cornerRadius = 12
+        followButton.masksToBounds = true
+        followButton.isHidden = true
+        followButton.rx.tap.subscribe(onNext: {
+            [weak self] (data) in
+            followButton.isSelected = !followButton.isSelected
+        }).disposed(by: disposeBag)
+        return followButton
+    }()
+    
+    func scrollViewDidScroll(contentOffsetY: CGFloat) {
+        var frame = imageViewFrame!
+        frame.size.height -= contentOffsetY
+        frame.origin.y = contentOffsetY
+        bgImageView.frame = frame
+        bgView.frame = frame
+    }
+    
 }

+ 93 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/PersonalCenter/PersonalCenterView/PersonViewUserAndOtherListCollectionViewCell.swift

@@ -0,0 +1,93 @@
+//
+//  PersonViewUserAndOtherListCollectionViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/6/17.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class PersonViewUserAndOtherListCollectionViewCell: UICollectionViewCell {
+    class func cellWith(collectionView:UICollectionView,indexPath:IndexPath) -> PersonViewUserAndOtherListCollectionViewCell {
+        let ID = "PersonViewUserAndOtherListCollectionViewCell"
+        collectionView.register(PersonViewUserAndOtherListCollectionViewCell.self, forCellWithReuseIdentifier: ID)
+        let cell : PersonViewUserAndOtherListCollectionViewCell = collectionView.dequeueReusableCell(withReuseIdentifier: ID, for: indexPath) as! PersonViewUserAndOtherListCollectionViewCell
+        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() {
+        cornerRadius = 2
+        masksToBounds = true
+        addSubview(iconImageView)
+        addSubview(rainbowBeanImageView)
+        addSubview(rainbowBeanNumberLabel)
+        addSubview(videoImageView)
+    }
+    
+    private func setupLayouts() {
+        iconImageView.snp.makeConstraints { (make) in
+            make.edges.equalToSuperview()
+        }
+        rainbowBeanImageView.snp.makeConstraints { (make) in
+            make.left.equalTo(8)
+            make.bottom.equalTo(-9)
+            make.size.equalTo(12)
+        }
+        rainbowBeanNumberLabel.snp.makeConstraints { (make) in
+            make.centerY.equalTo(rainbowBeanImageView)
+            make.left.equalTo(rainbowBeanImageView.snp.right).offset(4)
+        }
+        videoImageView.snp.makeConstraints { (make) in
+            make.right.equalTo(-8)
+            make.bottom.equalTo(-8)
+            make.size.equalTo(14)
+        }
+    }
+    
+    private lazy var iconImageView: UIImageView = {
+        let iconImageView = UIImageView()
+        iconImageView.image = kImage(name: "pic_preload")
+        return iconImageView
+    }()
+    
+    private lazy var rainbowBeanImageView: UIImageView = {
+        let rainbowBeanImageView = UIImageView()
+        rainbowBeanImageView.image = kImage(name: "center_peas")
+        return rainbowBeanImageView
+    }()
+    
+    private lazy var rainbowBeanNumberLabel: UILabel = {
+        let rainbowBeanNumberLabel = UILabel()
+        rainbowBeanNumberLabel.text = "4567"
+        rainbowBeanNumberLabel.textColor = kffffffColor
+        rainbowBeanNumberLabel.font = kRegularFont13
+        return rainbowBeanNumberLabel
+    }()
+    
+    private lazy var videoImageView: UIImageView = {
+        let videoImageView = UIImageView()
+        videoImageView.image = kImage(name: "center_video")
+        return videoImageView
+    }()
+    
+    
+}

+ 92 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/PersonalCenter/PersonalCenterView/PersonViewUserAndOtherListView.swift

@@ -0,0 +1,92 @@
+//
+//  PersonViewUserAndOtherListView.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/6/17.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class PersonViewUserAndOtherListView: BaseView {
+
+    var listViewDidScrollCallback: ((UIScrollView) -> ())?
+    deinit {
+        listViewDidScrollCallback = nil
+    }
+    override func setupViews() {
+        addSubview(collectionView)
+    }
+    
+    override func setupLayouts() {
+        collectionView.snp_makeConstraints { (make) in
+            make.edges.equalToSuperview()
+        }
+    }
+    
+    private lazy var collectionView: UICollectionView = {
+        let collectionView = UICollectionView.init(frame: CGRect.zero, collectionViewLayout: collectionViewLayout)
+        collectionView.backgroundColor = kffffffColor
+        collectionView.delegate = self;
+        collectionView.dataSource = self;
+        collectionView.showsVerticalScrollIndicator = false
+        collectionView.showsHorizontalScrollIndicator = false
+        return collectionView
+    }()
+    
+    private lazy var collectionViewLayout: UICollectionViewFlowLayout = {
+        let collectionViewLayout = UICollectionViewFlowLayout.init()
+        collectionViewLayout.minimumLineSpacing = 0
+        collectionViewLayout.minimumInteritemSpacing = 0
+        return collectionViewLayout
+    }()
+    
+}
+
+extension PersonViewUserAndOtherListView: UICollectionViewDelegateFlowLayout,UICollectionViewDataSource {
+    func numberOfSections(in collectionView: UICollectionView) -> Int {
+        return 1
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
+        return 12
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
+        let cell = PersonViewUserAndOtherListCollectionViewCell.cellWith(collectionView: collectionView, indexPath: indexPath)
+        return cell
+        
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
+        
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
+        return CGSize(width:kScreenWidth/3, height:kScreenWidth/3)
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
+        return UIEdgeInsets(top:0, left: 0, bottom: 10, right: 0)
+    }
+    
+    public func scrollViewDidScroll(_ scrollView: UIScrollView) {
+        self.listViewDidScrollCallback?(scrollView)
+    }
+    
+}
+
+extension PersonViewUserAndOtherListView: JXPagingViewListViewDelegate {
+    public func listView() -> UIView {
+        return self
+    }
+    
+    public func listViewDidScrollCallback(callback: @escaping (UIScrollView) -> ()) {
+        self.listViewDidScrollCallback = callback
+    }
+    
+    public func listScrollView() -> UIScrollView {
+        return self.collectionView
+    }
+}
+

+ 72 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/PersonalCenter/UserPersonalCenter/View/Order/UserPersonalCenterOrderCollectionViewCell.swift

@@ -0,0 +1,72 @@
+//
+//  UserPersonalCenterOrderCollectionViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/6/17.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class UserPersonalCenterOrderCollectionViewCell: UICollectionViewCell {
+    class func cellWith(collectionView:UICollectionView,indexPath:IndexPath) -> UserPersonalCenterOrderCollectionViewCell {
+        let ID = "UserPersonalCenterOrderCollectionViewCell"
+        collectionView.register(UserPersonalCenterOrderCollectionViewCell.self, forCellWithReuseIdentifier: ID)
+        let cell : UserPersonalCenterOrderCollectionViewCell = collectionView.dequeueReusableCell(withReuseIdentifier: ID, for: indexPath) as! UserPersonalCenterOrderCollectionViewCell
+        cell.indexPath = indexPath
+        return cell
+    }
+    let images = ["center_payment","center_overhang","center_harvested","center_comment","center_customer"]
+    
+    let titles = ["待付款","待发货","待收货","待评价","退款/售后"]
+    //MARK: - indexPath
+    var indexPath: IndexPath?{
+        didSet {
+            iconImageView.image = kImage(name: images[(indexPath?.row)!])
+            titleLabel.text = titles[(indexPath?.row)!]
+        }
+    }
+    //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() {
+        backgroundColor = kffffffColor
+        addSubview(iconImageView)
+        addSubview(titleLabel)
+    }
+    
+    private func setupLayouts() {
+        iconImageView.snp.makeConstraints { (make) in
+            make.top.equalTo(12)
+            make.size.equalTo(40)
+            make.centerX.equalToSuperview()
+        }
+        titleLabel.snp.makeConstraints { (make) in
+            make.centerX.equalToSuperview()
+            make.top.equalTo(iconImageView.snp.bottom).offset(6)
+            make.height.equalTo(19)
+        }
+    }
+    
+    private lazy var iconImageView: UIImageView = {
+        let iconImageView = UIImageView()
+        iconImageView.isUserInteractionEnabled = true
+        return iconImageView
+    }()
+    
+    private lazy var titleLabel: UILabel = {
+        let titleLabel = UILabel()
+        titleLabel.textColor = k999999Color
+        titleLabel.font = kRegularFont13
+        return titleLabel
+    }()
+}

+ 80 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/PersonalCenter/UserPersonalCenter/View/Order/UserPersonalCenterOrderView.swift

@@ -0,0 +1,80 @@
+//
+//  UserPersonalCenterOrderView.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/6/17.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class UserPersonalCenterOrderView: BaseView {
+
+    override func setupViews() {
+        backgroundColor = kFEFEFEColor
+        addSubview(collectionView)
+    }
+    
+    override func setupLayouts() {
+        collectionView.snp_makeConstraints { (make) in
+            make.top.left.right.equalToSuperview()
+            make.height.equalTo(90)
+        }
+    }
+    
+    private lazy var collectionView: UICollectionView = {
+        let collectionView = UICollectionView.init(frame: CGRect.zero, collectionViewLayout: collectionViewLayout)
+        collectionView.backgroundColor = kFEFEFEColor
+        collectionView.delegate = self;
+        collectionView.dataSource = self;
+        collectionView.showsVerticalScrollIndicator = false
+        collectionView.showsHorizontalScrollIndicator = false
+//        // shadowCode
+//        collectionView.layer.shadowColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.04).cgColor
+//        collectionView.layer.shadowOffset = CGSize(width: 0, height: 0.5)
+//        collectionView.layer.shadowOpacity = 1
+//        collectionView.layer.shadowRadius = 9
+        // fill
+        collectionView.layer.cornerRadius = 4
+        return collectionView
+    }()
+    
+    private lazy var collectionViewLayout: UICollectionViewFlowLayout = {
+        let collectionViewLayout = UICollectionViewFlowLayout.init()
+        collectionViewLayout.minimumLineSpacing = 0
+        collectionViewLayout.minimumInteritemSpacing = 0
+        collectionViewLayout.scrollDirection = .horizontal
+        return collectionViewLayout
+    }()
+    
+}
+
+extension UserPersonalCenterOrderView: UICollectionViewDelegateFlowLayout,UICollectionViewDataSource {
+    func numberOfSections(in collectionView: UICollectionView) -> Int {
+        return 1
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
+        return 5
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
+        let cell = UserPersonalCenterOrderCollectionViewCell.cellWith(collectionView: collectionView, indexPath: indexPath)
+        return cell
+        
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
+        
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
+        return CGSize(width:(kScreenWidth-28)/5, height: 90)
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
+        return UIEdgeInsets(top:0, left: 14, bottom: 0, right: 14)
+    }
+    
+}
+

+ 131 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/PersonalCenter/UserPersonalCenter/View/RainbowBeanPhysical/RainbowBeanPhysicalCollectionViewCell.swift

@@ -0,0 +1,131 @@
+//
+//  RainbowBeanPhysicalCollectionViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/6/17.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class RainbowBeanPhysicalCollectionViewCell: UICollectionViewCell {
+    class func cellWith(collectionView:UICollectionView,indexPath:IndexPath) -> RainbowBeanPhysicalCollectionViewCell {
+        let ID = "RainbowBeanPhysicalCollectionViewCell"
+        collectionView.register(RainbowBeanPhysicalCollectionViewCell.self, forCellWithReuseIdentifier: ID)
+        let cell : RainbowBeanPhysicalCollectionViewCell = collectionView.dequeueReusableCell(withReuseIdentifier: ID, for: indexPath) as! RainbowBeanPhysicalCollectionViewCell
+        cell.indexPath = indexPath
+        return cell
+    }
+    //MARK: - indexPath
+    var indexPath: IndexPath?{
+        didSet {
+            if indexPath?.row == 0 {
+                iconImageView.image = kImage(name: "personage_dou")
+                titleLabel.text = "收获彩虹豆"
+                valueLabel.text = "50230"
+                subtitleLabel.text = "已超越彩虹星球1.7w用户"
+                goButton.isHidden = true
+            }else {
+                iconImageView.image = kImage(name: "personage_vit")
+                titleLabel.text = "今日体力值(100)"
+                valueLabel.text = "98"
+                subtitleLabel.text = "体力值是什么?"
+                goButton.isHidden = false
+            }
+            
+        }
+    }
+    //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() {
+        layer.shadowColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.04).cgColor
+        layer.shadowOffset = CGSize(width: 0, height: 0.5)
+        layer.shadowOpacity = 1
+        layer.shadowRadius = 9
+        // strokeCode
+        layer.borderColor = UIColor(red: 0.98, green: 0.98, blue: 0.98, alpha: 1).cgColor
+        layer.borderWidth = 0.5
+        // fill
+        backgroundColor = UIColor(red: 1, green: 1, blue: 1, alpha: 1)
+        layer.cornerRadius = 4;
+        alpha = 1
+        addSubview(iconImageView)
+        addSubview(titleLabel)
+        addSubview(valueLabel)
+        addSubview(subtitleLabel)
+        addSubview(goButton)
+        
+    }
+    
+    private func setupLayouts() {
+        iconImageView.snp.makeConstraints { (make) in
+            make.bottom.equalTo(-3)
+            make.right.equalTo(-3)
+            make.size.equalTo(65)
+        }
+        titleLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(8)
+            make.left.equalTo(8)
+        }
+        valueLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(titleLabel.snp.bottom).offset(6)
+            make.left.equalTo(titleLabel)
+            make.height.equalTo(25)
+        }
+        subtitleLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(valueLabel.snp.bottom).offset(6)
+            make.left.equalTo(titleLabel)
+            make.height.equalTo(14)
+        }
+        goButton.snp.makeConstraints { (make) in
+            make.right.equalTo(-8)
+            make.bottom.equalTo(-8)
+            make.size.equalTo(12)
+        }
+    }
+    
+    private lazy var iconImageView: UIImageView = {
+        let iconImageView = UIImageView()
+        return iconImageView
+    }()
+    
+    private lazy var titleLabel: UILabel = {
+        let titleLabel = UILabel()
+        titleLabel.textColor = k999999Color
+        titleLabel.font = kRegularFont10
+        return titleLabel
+    }()
+    
+    private lazy var valueLabel: UILabel = {
+        let valueLabel = UILabel()
+        valueLabel.textColor = kThemeColor
+        valueLabel.font = kBoldFont18
+        return valueLabel
+    }()
+    
+    private lazy var subtitleLabel: UILabel = {
+        let subtitleLabel = UILabel()
+        subtitleLabel.textColor = k999999Color
+        subtitleLabel.font = kRegularFont10
+        return subtitleLabel
+    }()
+    
+    private lazy var goButton: UIButton = {
+        let goButton = UIButton(type: UIButton.ButtonType.custom)
+        goButton.setImage(kImage(name: "center_values"), for: UIControl.State.normal)
+        goButton.cornerRadius = 6
+        goButton.masksToBounds = true
+        goButton.isHidden = true
+        return goButton
+    }()
+}

+ 70 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/PersonalCenter/UserPersonalCenter/View/RainbowBeanPhysical/RainbowBeanPhysicalView.swift

@@ -0,0 +1,70 @@
+//
+//  RainbowBeanPhysical.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/6/17.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class RainbowBeanPhysicalView: BaseView {
+    
+    override func setupViews() {
+        addSubview(collectionView)
+    }
+    
+    override func setupLayouts() {
+        collectionView.snp_makeConstraints { (make) in
+            make.edges.equalToSuperview()
+        }
+    }
+    
+    private lazy var collectionView: UICollectionView = {
+        let collectionView = UICollectionView.init(frame: CGRect.zero, collectionViewLayout: collectionViewLayout)
+        collectionView.backgroundColor = kFEFEFEColor
+        collectionView.delegate = self;
+        collectionView.dataSource = self;
+        collectionView.showsVerticalScrollIndicator = false
+        collectionView.showsHorizontalScrollIndicator = false
+        return collectionView
+    }()
+    
+    private lazy var collectionViewLayout: UICollectionViewFlowLayout = {
+        let collectionViewLayout = UICollectionViewFlowLayout.init()
+        collectionViewLayout.minimumLineSpacing = 15
+        collectionViewLayout.minimumInteritemSpacing = 0
+        collectionViewLayout.scrollDirection = .horizontal
+        return collectionViewLayout
+    }()
+    
+}
+
+extension RainbowBeanPhysicalView: UICollectionViewDelegateFlowLayout,UICollectionViewDataSource {
+    func numberOfSections(in collectionView: UICollectionView) -> Int {
+        return 1
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
+        return 2
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
+        let cell = RainbowBeanPhysicalCollectionViewCell.cellWith(collectionView: collectionView, indexPath: indexPath)
+        return cell
+        
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
+        
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
+        return CGSize(width:(kScreenWidth-28-15)/2, height: 81)
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
+        return UIEdgeInsets(top:14, left: 14, bottom: 14, right: 14)
+    }
+    
+}

+ 53 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/PersonalCenter/UserPersonalCenter/View/UserPersonalCenterHeaderView/UserPersonalCenterHeaderView.swift

@@ -0,0 +1,53 @@
+//
+//  UserPersonalCenterHeaderView.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/6/17.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class UserPersonalCenterHeaderView: BaseView {
+
+    override func setupViews() {
+        self.backgroundColor = kFEFEFEColor
+        addSubview(personViewUserAndOtherHeaderView)
+        addSubview(rainbowBeanPhysicalView)
+        addSubview(userPersonalCenterOrderView)
+    }
+    
+    override func setupLayouts() {
+        personViewUserAndOtherHeaderView.snp.makeConstraints { (make) in
+            make.top.right.left.equalToSuperview()
+            make.height.equalTo(140+kNavBarTotalHeight)
+        }
+        rainbowBeanPhysicalView.snp.makeConstraints { (make) in
+            make.top.equalTo(personViewUserAndOtherHeaderView.snp_bottom)
+            make.left.right.equalToSuperview()
+            make.height.equalTo(109)
+        }
+        userPersonalCenterOrderView.snp.makeConstraints { (make) in
+            make.top.equalTo(rainbowBeanPhysicalView.snp_bottom)
+            make.left.right.equalToSuperview()
+            make.height.equalTo(104)
+        }
+        
+    }
+    
+    lazy var personViewUserAndOtherHeaderView: PersonViewUserAndOtherHeaderView = {
+        let personViewUserAndOtherHeaderView = PersonViewUserAndOtherHeaderView()
+        return personViewUserAndOtherHeaderView
+    }()
+    
+    private lazy var rainbowBeanPhysicalView: RainbowBeanPhysicalView = {
+        let rainbowBeanPhysicalView = RainbowBeanPhysicalView()
+        return rainbowBeanPhysicalView
+    }()
+    
+    private lazy var userPersonalCenterOrderView: UserPersonalCenterOrderView = {
+        let userPersonalCenterOrderView = UserPersonalCenterOrderView()
+        return userPersonalCenterOrderView
+    }()
+
+}

+ 165 - 10
RainbowPlanet/RainbowPlanet/Modules/MineModule/PersonalCenter/UserPersonalCenter/ViewController/UserPersonalCenterViewController.swift

@@ -7,24 +7,179 @@
 //
 
 import UIKit
+import JXSegmentedView
+import RxSwift
 
 class UserPersonalCenterViewController: BaseViewController {
-
+    
+    let JXTableHeaderViewHeight: Int = Int(140 + kNavBarTotalHeight + 109 + 104)
+    let JXheightForHeaderInSection: Int = 44
+    var cmsTemplateTitles = ["发布 0", "收藏 0", "分享 0"]
+    var shoppingMallListVCType : Int = 0
+    
     override func viewDidLoad() {
         super.viewDidLoad()
-
-        // Do any additional setup after loading the view.
+        setupViews()
+        setupLayouts()
+        setupData()
+    }
+    
+    override func setupViews() {
+        userHeaderContainerView.addSubview(userHeaderView)
+        view.addSubview(segmentedView)
+        view.addSubview(pagingView)
+//        view.insertSubview(navigationBar, aboveSubview: segmentedView)
+        setnavigationBar()
     }
     
+    override func setupLayouts() {
+        
+    }
+    
+    /// 设置navigationBar
+    func setnavigationBar() {
+//        navigationBar.addSubview(navigationBgView)
+//        navigationBar.addSubview(topicLable)
+//        navigationBar.addSubview(followButton)
+//        navigationBar.insertSubview(navigationBgView, aboveSubview: navigationBar.backgroundImageView)
+//        navigationBar.backgroundImageView.frame = CGRect(x: 0, y: 0, width: kScreenWidth, height: kScreenWidth)
+//        navigationBar.clipsToBounds = true
+//        navigationBar.wr_setLeftButton(image: kImage(name: "navbar_back_white")!)
+//        navigationBar.wr_setRightButton(title: "我的话题", titleColor: .white)
+//        // 设置导航栏显示图片
+//        navigationBar.barBackgroundImage = UIImage(named: "pic_example_12")
+//        // 设置初始导航栏透明度
+//        navigationBar.wr_setBackgroundAlpha(alpha: 0)
+        // 设置状态栏style
+        statusBarStyle = .lightContent
+    }
+    override func setupData() {
+        reloadData()
+    }
+    
+    
+    /// 刷新页面
+    func reloadData() {
+        segmentedDataSource.titles = cmsTemplateTitles
+        segmentedView.indicators = [indicator]
+        self.segmentedDataSource.reloadData(selectedIndex: shoppingMallListVCType)
+        self.segmentedView.defaultSelectedIndex = shoppingMallListVCType
+        self.segmentedView.reloadData()
+        self.pagingView.reloadData()
+    }
+    
+    //1.初始化JXSegmentedView
+    lazy var segmentedView: JXSegmentedView = {
+        let segmentedView = JXSegmentedView(frame: CGRect(x: 0, y: kNavBarTotalHeight, width: UIScreen.main.bounds.size.width, height: CGFloat(JXheightForHeaderInSection)))
+        segmentedView.delegate = self
+        segmentedView.dataSource = segmentedDataSource
+        segmentedView.contentScrollView = pagingView.listContainerView.collectionView
+        return segmentedView
+    }()
+    
+    //2.初始化dataSource
+    lazy var segmentedDataSource: JXSegmentedTitleDataSource = {
+        let segmentedDataSource = JXSegmentedTitleDataSource()
+        segmentedDataSource.isTitleColorGradientEnabled = true
+        segmentedDataSource.isItemSpacingAverageEnabled = true
+        segmentedDataSource.isTitleZoomEnabled = true
+        segmentedDataSource.titleNormalColor = k999999Color
+        segmentedDataSource.titleSelectedColor = k333333Color
+        segmentedDataSource.titleNormalFont = kRegularFont14!
+        segmentedDataSource.titleSelectedFont = kBoldFont16
+        
+        //reloadData(selectedIndex:)方法一定要调用,方法内部会刷新数据源数组
+        segmentedDataSource.reloadData(selectedIndex: 0)
+        return segmentedDataSource
+    }()
+    //3.初始化指示器indicator
+    lazy var indicator: JXSegmentedIndicatorLineView = {
+        let indicator = JXSegmentedIndicatorLineView()
+        indicator.indicatorColor = k333333Color
+        indicator.indicatorHeight = 4
+        indicator.indicatorWidth = 22
+        return indicator
+    }()
+    
+    //4.pagingView
+    lazy var pagingView: JXPagingView = {
+        let pagingView = JXPagingView(delegate: self)
+        return pagingView
+    }()
+    // 5.头部headerView
+    lazy var userHeaderContainerView: UIView = {
+        let userHeaderContainerView = UIView(frame: CGRect(x: 0, y: 0, width: kScreenWidth, height: CGFloat(JXTableHeaderViewHeight)))
+        return userHeaderContainerView
+    }()
+    
+    /// 6.包含头部
+    lazy var userHeaderView: UserPersonalCenterHeaderView = {
+        var userHeaderView =  UserPersonalCenterHeaderView(frame: CGRect(x: 0, y: 0, width: kScreenWidth, height: CGFloat(JXTableHeaderViewHeight)))
+        return userHeaderView
+    }()
+    
+    override func viewDidLayoutSubviews() {
+        super.viewDidLayoutSubviews()
+        pagingView.frame = CGRect(x: 0, y: 0, width: kScreenWidth, height: kScreenHeight - kTabBarTotalHeight)
 
-    /*
-    // MARK: - Navigation
+    }
+    
+}
 
-    // In a storyboard-based application, you will often want to do a little preparation before navigation
-    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
-        // Get the new view controller using segue.destination.
-        // Pass the selected object to the new view controller.
+extension UserPersonalCenterViewController : JXSegmentedViewDelegate {
+    //点击选中或者滚动选中都会调用该方法。适用于只关心选中事件,而不关心具体是点击还是滚动选中的情况。
+    func segmentedView(_ segmentedView: JXSegmentedView, didSelectedItemAt index: Int) {
+//        self.shoppingMallListVCType = index
+    }
+    
+    // 点击选中的情况才会调用该方法
+    func segmentedView(_ segmentedView: JXSegmentedView, didClickSelectedItemAt index: Int) {
     }
-    */
+    
+    // 滚动选中的情况才会调用该方法
+    func segmentedView(_ segmentedView: JXSegmentedView, didScrollSelectedItemAt index: Int) {
+    }
+    
+    // 正在滚动中的回调
+    func segmentedView(_ segmentedView: JXSegmentedView, scrollingFrom leftIndex: Int, to rightIndex: Int, percent: CGFloat) {
+    }
+    
+    /// 是否允许点击选中目标index的item
+    func segmentedView(_ segmentedView: JXSegmentedView, canClickItemAt index: Int) -> Bool {
+        return true
+    }
+}
 
+extension UserPersonalCenterViewController: JXPagingViewDelegate {
+    
+    func tableHeaderViewHeight(in pagingView: JXPagingView) -> Int {
+        return JXTableHeaderViewHeight
+    }
+    
+    func tableHeaderView(in pagingView: JXPagingView) -> UIView {
+        return userHeaderContainerView
+    }
+    
+    func heightForPinSectionHeader(in pagingView: JXPagingView) -> Int {
+        return JXheightForHeaderInSection
+    }
+    
+    func viewForPinSectionHeader(in pagingView: JXPagingView) -> UIView {
+        pagingView.pinSectionHeaderVerticalOffset = kNavBarTotalHeight
+        return segmentedView
+    }
+    
+    func numberOfLists(in pagingView: JXPagingView) -> Int {
+        return cmsTemplateTitles.count
+    }
+    
+    func pagingView(_ pagingView: JXPagingView, initListAtIndex index: Int) -> JXPagingViewListViewDelegate {
+        let list = PersonViewUserAndOtherListView()
+        return list
+    }
+    
+    func mainTableViewDidScroll(_ scrollView: UIScrollView) {
+        userHeaderView.personViewUserAndOtherHeaderView.scrollViewDidScroll(contentOffsetY: scrollView.contentOffset.y)
+    }
 }
+

二进制
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/NavigationBarIcons/navbar_back_black.imageset/navbar_back_black@2x.png


二进制
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/NavigationBarIcons/navbar_back_black.imageset/navbar_back_black@3x.png


二进制
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/NavigationBarIcons/navbar_back_white.imageset/navbar_back_white@2x.png


二进制
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/NavigationBarIcons/navbar_back_white.imageset/navbar_back_white@3x.png


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

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

二进制
RainbowPlanet/RainbowPlanet/Supporting Files/CommunityModule.xcassets/center_values.imageset/center_values@2x.png


二进制
RainbowPlanet/RainbowPlanet/Supporting Files/CommunityModule.xcassets/center_values.imageset/center_values@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_comment.imageset/Contents.json

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

二进制
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_comment.imageset/center_comment@2x.png


二进制
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_comment.imageset/center_comment@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_customer.imageset/Contents.json

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

二进制
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_customer.imageset/center_customer@2x.png


二进制
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_customer.imageset/center_customer@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_harvested.imageset/Contents.json

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

二进制
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_harvested.imageset/center_harvested@2x.png


二进制
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_harvested.imageset/center_harvested@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_overhang.imageset/Contents.json

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

二进制
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_overhang.imageset/center_overhang@2x.png


二进制
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_overhang.imageset/center_overhang@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_payment.imageset/Contents.json

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

二进制
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_payment.imageset/center_payment@2x.png


二进制
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_payment.imageset/center_payment@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_peas.imageset/Contents.json

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

二进制
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_peas.imageset/center_peas@2x.png


二进制
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_peas.imageset/center_peas@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_video.imageset/Contents.json

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

二进制
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_video.imageset/center_video@2x.png


二进制
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/center_video.imageset/center_video@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/personage_dou.imageset/Contents.json

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

二进制
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/personage_dou.imageset/personage_dou@2x.png


二进制
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/personage_dou.imageset/personage_dou@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/personage_vit.imageset/Contents.json

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

二进制
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/personage_vit.imageset/personage_vit@2x.png


二进制
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/personage_vit.imageset/personage_vit@3x.png