Ver código fonte

星球活动详情,用户协议,为彩虹星球评分,投诉与建议,分享彩虹星球App,关注,内容页面,缺省页面,内容页面,内容页面,缺省页面

南鑫林 5 anos atrás
pai
commit
bf0e2ff0eb
77 arquivos alterados com 891 adições e 991 exclusões
  1. 8 8
      RainbowPlanet/Podfile.lock
  2. 80 84
      RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj
  3. 1 2
      RainbowPlanet/RainbowPlanet/Base/BaseTabbarViewController/BaseTabbarViewController.swift
  4. 9 11
      RainbowPlanet/RainbowPlanet/Base/BaseWebViewController/BaseWebViewController.swift
  5. 0 2
      RainbowPlanet/RainbowPlanet/Macro/HTMLURLMacro.swift
  6. 1 1
      RainbowPlanet/RainbowPlanet/Modules/CommonModules/LocationModule/Location/ViewController/LocationViewController.swift
  7. 1 1
      RainbowPlanet/RainbowPlanet/Modules/CommonModules/LocationModule/SelfRecommendation/View/SelfRecommendationView.swift
  8. 1 1
      RainbowPlanet/RainbowPlanet/Modules/CommonModules/SearchModule/SearchResult/View/SearchResultView.swift
  9. 1 1
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/ViewController/CommunityListViewController.swift
  10. 62 0
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityFindFriends/View/CommunityFindFriendsView.swift
  11. 84 0
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityFindFriends/ViewController/CommunityFindFriendsViewController.swift
  12. 2 2
      RainbowPlanet/RainbowPlanet/Modules/MessageModule/MessageFollowNoti/MessageFollowNotiTableCell.swift
  13. 2 2
      RainbowPlanet/RainbowPlanet/Modules/MessageModule/MessageMain/View/MessagePlanetTableCell.swift
  14. 3 1
      RainbowPlanet/RainbowPlanet/Modules/MessageModule/MessagePlanetActivity/Controller/MessagePlanetActivityController.swift
  15. 1 1
      RainbowPlanet/RainbowPlanet/Modules/MessageModule/MessagePlanetThumb/MessageThumbTableCell.swift
  16. 1 1
      RainbowPlanet/RainbowPlanet/Modules/MineModule/ExpressAddressList/View/ExpressAddressListView.swift
  17. 0 95
      RainbowPlanet/RainbowPlanet/Modules/MineModule/Message/View/MessageNoticeHeaderCollectionReusableView.swift
  18. 0 65
      RainbowPlanet/RainbowPlanet/Modules/MineModule/Message/View/MessageOneCollectionViewCell.swift
  19. 0 108
      RainbowPlanet/RainbowPlanet/Modules/MineModule/Message/View/MessageTwoCollectionViewCell.swift
  20. 0 202
      RainbowPlanet/RainbowPlanet/Modules/MineModule/Message/View/MessageView.swift
  21. 0 64
      RainbowPlanet/RainbowPlanet/Modules/MineModule/Message/ViewController/MessageViewController.swift
  22. 0 155
      RainbowPlanet/RainbowPlanet/Modules/MineModule/MessageDetailes/View/MessageDetailesTableViewCell.swift
  23. 0 37
      RainbowPlanet/RainbowPlanet/Modules/MineModule/MessageDetailes/View/MessageDetailesTimeView.swift
  24. 0 70
      RainbowPlanet/RainbowPlanet/Modules/MineModule/MessageDetailes/View/MessageDetailesView.swift
  25. 0 36
      RainbowPlanet/RainbowPlanet/Modules/MineModule/MessageDetailes/ViewController/MessageDetailesViewController.swift
  26. 1 1
      RainbowPlanet/RainbowPlanet/Modules/MineModule/Mine/ViewController/MineViewController.swift
  27. 35 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/MyFollowAndFan/View/MyFollowAndFanHeaderView.swift
  28. 163 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/MyFollowAndFan/View/MyFollowAndFanTableViewCell.swift
  29. 131 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/MyFollowAndFan/ViewController/MyFollowAndFanViewController.swift
  30. 47 18
      RainbowPlanet/RainbowPlanet/Modules/MineModule/PersonalCenter/PersonalCenterView/PersonViewUserAndOtherHeaderView.swift
  31. 6 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/PersonalCenter/UserPersonalCenter/ViewController/UserPersonalCenterViewController.swift
  32. 1 1
      RainbowPlanet/RainbowPlanet/Modules/MineModule/SelfMentionContactsList/View/SelfMentionContactsListView.swift
  33. 3 4
      RainbowPlanet/RainbowPlanet/Modules/MineModule/Set/View/SetView.swift
  34. 28 3
      RainbowPlanet/RainbowPlanet/Modules/MineModule/Set/ViewController/SetViewController.swift
  35. 1 1
      RainbowPlanet/RainbowPlanet/Modules/OrderModule/Order/View/OrderListView.swift
  36. 1 1
      RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderApplyRefund/ViewController/OrderApplyRefundController.swift
  37. 1 1
      RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderComment/ViewController/OrderCommentController.swift
  38. 1 1
      RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderFinishPay/View/OrderFinishPayView.swift
  39. 1 1
      RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderLogistics/ViewController/OrderLogisticsController.swift
  40. 1 1
      RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderPayOrder/View/ShoppingCartOrderPayView.swift
  41. 1 1
      RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/Category/View/CategoryView.swift
  42. 1 1
      RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ProductAllComment/View/ProductAllCommentView.swift
  43. 1 1
      RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ProductDetail/View/ProductDetailView.swift
  44. 1 1
      RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ShoppingCart/View/ShoppingCartView.swift
  45. 1 1
      RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ShoppingMall/View/MainView/ShoppingMallListView.swift
  46. 1 1
      RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ShoppingMall/View/MainView/ShoppingMallView.swift
  47. 1 1
      RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/Special/View/SpecialView.swift
  48. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_content.imageset/Contents.json
  49. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_content.imageset/default_page_content@2x.png
  50. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_content.imageset/default_page_content@3x.png
  51. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_data.imageset/Contents.json
  52. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_data.imageset/page04@2x.png
  53. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_data.imageset/page04@3x.png
  54. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_fans.imageset/Contents.json
  55. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_fans.imageset/default_page_fans@2x.png
  56. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_fans.imageset/default_page_fans@3x.png
  57. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_kept.imageset/Contents.json
  58. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_kept.imageset/default_page_kept@2x.png
  59. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_kept.imageset/default_page_kept@3x.png
  60. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_location.imageset/Contents.json
  61. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_location.imageset/page01@2x.png
  62. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_location.imageset/page01@3x.png
  63. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_outage.imageset/Contents.json
  64. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_outage.imageset/default_page_outage@2x.png
  65. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_outage.imageset/default_page_outage@3x.png
  66. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_search.imageset/Contents.json
  67. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_search.imageset/page02@2x.png
  68. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_search.imageset/page02@3x.png
  69. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_shopping_cart.imageset/Contents.json
  70. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_shopping_cart.imageset/page05@2x.png
  71. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_shopping_cart.imageset/page05@3x.png
  72. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_topic.imageset/Contents.json
  73. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_topic.imageset/default_page_topic@2x.png
  74. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_topic.imageset/default_page_topic@3x.png
  75. 63 0
      RainbowPlanet/RainbowPlanet/Tools/AppStoreReview/AppStoreReview.swift
  76. 23 0
      RainbowPlanet/RainbowPlanet/Tools/Extension/Extension+UIView.swift
  77. 10 1
      RainbowPlanet/RainbowPlanet/Tools/WKWebView/WebView.swift

+ 8 - 8
RainbowPlanet/Podfile.lock

@@ -13,10 +13,10 @@ PODS:
     - FMDB/standard (= 2.7.5)
   - FMDB/standard (2.7.5)
   - FSPagerView (0.8.2)
-  - FWPopupView (4.0.6):
+  - FWPopupView (4.0.7):
     - SnapKit
-  - IQKeyboardManagerSwift (6.3.0)
-  - JXSegmentedView (0.0.13)
+  - IQKeyboardManagerSwift (6.4.0)
+  - JXSegmentedView (0.0.18)
   - KeychainAccess (3.2.0)
   - Kingfisher (4.10.1)
   - LYEmptyView (1.2.3)
@@ -28,7 +28,7 @@ PODS:
   - Moya/RxSwift (13.0.1):
     - Moya/Core
     - RxSwift (~> 4.0)
-  - ObjectMapper (3.4.2)
+  - ObjectMapper (3.5.0)
   - pop (1.0.12)
   - PPBadgeViewSwift (3.1.0)
   - QuCore-ThirdParty (3.8.0)
@@ -150,16 +150,16 @@ SPEC CHECKSUMS:
   DeviceKit: 72d36709552d4b3582abd76a53949148acad9811
   FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
   FSPagerView: 816a18842306973cc7cc6df8a5332272f7815c30
-  FWPopupView: 50e0db3245879b9b73552c897b17a215ac0f9199
-  IQKeyboardManagerSwift: a8228c257614af98743b4cd8584637025f36358f
-  JXSegmentedView: adb975e3af18ba9934e9fd3740e536173eb468ab
+  FWPopupView: c1dbb33fbe4d223f619f28a7e5e5a00f08c10342
+  IQKeyboardManagerSwift: ed9b04ee0e3067ffba543283462d619f944b05e5
+  JXSegmentedView: 2358f1335409659c7e7e79d6ff7532c014e21fe1
   KeychainAccess: 3b1bf8a77eb4c6ea1ce9404c292e48f948954c6b
   Kingfisher: c148cd7b47ebde9989f6bc7c27dcaa79d81279a0
   LYEmptyView: ea5827f3f81fcbec427f990005501991477bdae8
   MBProgressHUD: e7baa36a220447d8aeb12769bf0585582f3866d9
   MJRefresh: ed450d6eb9d3346a2cb033ab7eb6de090aeef437
   Moya: f4a4b80ff2f8a4ffc208dfb31cd91636622fee6e
-  ObjectMapper: 0d4402610f4e468903ae64629eec4784531e5c51
+  ObjectMapper: 078b564ed25c6578b62588e306bf1da3924636d4
   pop: d582054913807fd11fd50bfe6a539d91c7e1a55a
   PPBadgeViewSwift: 18a219a9897f418342c22dd1a54f7b18ac56546b
   QuCore-ThirdParty: 4856aa9d5b642fc6ae9375c5c8f9c760f5051142

+ 80 - 84
RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj

@@ -159,6 +159,12 @@
 		A739121D229F75F50033177E /* JXPagingListContainerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7391216229F75F50033177E /* JXPagingListContainerView.swift */; };
 		A73D7C682268A032002A4CE3 /* SwiftyStarRatingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A73D7C672268A032002A4CE3 /* SwiftyStarRatingView.swift */; };
 		A743229422B88ED30017C367 /* EnumMacro.swift in Sources */ = {isa = PBXBuildFile; fileRef = A743229322B88ED30017C367 /* EnumMacro.swift */; };
+		A743229B22B8C1510017C367 /* AppStoreReview.swift in Sources */ = {isa = PBXBuildFile; fileRef = A743229A22B8C1510017C367 /* AppStoreReview.swift */; };
+		A74322A022B8D1F30017C367 /* MyFollowAndFanViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A743229F22B8D1F30017C367 /* MyFollowAndFanViewController.swift */; };
+		A74322A222B8D5A90017C367 /* MyFollowAndFanTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A74322A122B8D5A90017C367 /* MyFollowAndFanTableViewCell.swift */; };
+		A74322A422B8E7F60017C367 /* MyFollowAndFanHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A74322A322B8E7F60017C367 /* MyFollowAndFanHeaderView.swift */; };
+		A74322A922B900180017C367 /* CommunityFindFriendsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A74322A822B900180017C367 /* CommunityFindFriendsViewController.swift */; };
+		A74322AB22B900F00017C367 /* CommunityFindFriendsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A74322AA22B900F00017C367 /* CommunityFindFriendsView.swift */; };
 		A75414FD224B5F28002480B5 /* MobileLoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A75414FB224B5F28002480B5 /* MobileLoginViewController.swift */; };
 		A7541502224C5ECB002480B5 /* BaiduMapManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7541501224C5ECA002480B5 /* BaiduMapManager.swift */; };
 		A754150F224CACF9002480B5 /* SwiftSign.swift in Sources */ = {isa = PBXBuildFile; fileRef = A754150B224CACF9002480B5 /* SwiftSign.swift */; };
@@ -298,15 +304,6 @@
 		A7CC74E0227042A4003C4F38 /* MineServiceTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CC74DF227042A4003C4F38 /* MineServiceTableViewCell.swift */; };
 		A7CC74E222704429003C4F38 /* MineServiceCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CC74E122704429003C4F38 /* MineServiceCollectionViewCell.swift */; };
 		A7CC74E62270628B003C4F38 /* DeliveryMethodTypeModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CC74E52270628B003C4F38 /* DeliveryMethodTypeModel.swift */; };
-		A7CC74EA22706ACD003C4F38 /* MessageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CC74E922706ACD003C4F38 /* MessageViewController.swift */; };
-		A7CC74EF22706CCA003C4F38 /* MessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CC74EE22706CCA003C4F38 /* MessageView.swift */; };
-		A7CC74F122706FE3003C4F38 /* MessageOneCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CC74F022706FE3003C4F38 /* MessageOneCollectionViewCell.swift */; };
-		A7CC74F3227070D2003C4F38 /* MessageTwoCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CC74F2227070D2003C4F38 /* MessageTwoCollectionViewCell.swift */; };
-		A7CC750622714306003C4F38 /* MessageNoticeHeaderCollectionReusableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CC750522714306003C4F38 /* MessageNoticeHeaderCollectionReusableView.swift */; };
-		A7CC750A22715755003C4F38 /* MessageDetailesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CC750922715755003C4F38 /* MessageDetailesViewController.swift */; };
-		A7CC750D227157DA003C4F38 /* MessageDetailesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CC750C227157DA003C4F38 /* MessageDetailesView.swift */; };
-		A7CC750F22715AAC003C4F38 /* MessageDetailesTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CC750E22715AAC003C4F38 /* MessageDetailesTableViewCell.swift */; };
-		A7CC751122715AE3003C4F38 /* MessageDetailesTimeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CC751022715AE3003C4F38 /* MessageDetailesTimeView.swift */; };
 		A7CC7516227161D5003C4F38 /* SetViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CC7515227161D5003C4F38 /* SetViewController.swift */; };
 		A7CC751822716202003C4F38 /* SetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CC751722716202003C4F38 /* SetView.swift */; };
 		A7CC751A22716254003C4F38 /* SetTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CC751922716254003C4F38 /* SetTableViewCell.swift */; };
@@ -680,6 +677,12 @@
 		A7391216229F75F50033177E /* JXPagingListContainerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JXPagingListContainerView.swift; sourceTree = "<group>"; };
 		A73D7C672268A032002A4CE3 /* SwiftyStarRatingView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SwiftyStarRatingView.swift; sourceTree = "<group>"; };
 		A743229322B88ED30017C367 /* EnumMacro.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnumMacro.swift; sourceTree = "<group>"; };
+		A743229A22B8C1510017C367 /* AppStoreReview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppStoreReview.swift; sourceTree = "<group>"; };
+		A743229F22B8D1F30017C367 /* MyFollowAndFanViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyFollowAndFanViewController.swift; sourceTree = "<group>"; };
+		A74322A122B8D5A90017C367 /* MyFollowAndFanTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyFollowAndFanTableViewCell.swift; sourceTree = "<group>"; };
+		A74322A322B8E7F60017C367 /* MyFollowAndFanHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyFollowAndFanHeaderView.swift; sourceTree = "<group>"; };
+		A74322A822B900180017C367 /* CommunityFindFriendsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommunityFindFriendsViewController.swift; sourceTree = "<group>"; };
+		A74322AA22B900F00017C367 /* CommunityFindFriendsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommunityFindFriendsView.swift; sourceTree = "<group>"; };
 		A75414FB224B5F28002480B5 /* MobileLoginViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MobileLoginViewController.swift; sourceTree = "<group>"; };
 		A7541501224C5ECA002480B5 /* BaiduMapManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaiduMapManager.swift; sourceTree = "<group>"; };
 		A754150B224CACF9002480B5 /* SwiftSign.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SwiftSign.swift; sourceTree = "<group>"; };
@@ -830,15 +833,6 @@
 		A7CC74DF227042A4003C4F38 /* MineServiceTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MineServiceTableViewCell.swift; sourceTree = "<group>"; };
 		A7CC74E122704429003C4F38 /* MineServiceCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MineServiceCollectionViewCell.swift; sourceTree = "<group>"; };
 		A7CC74E52270628B003C4F38 /* DeliveryMethodTypeModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeliveryMethodTypeModel.swift; sourceTree = "<group>"; };
-		A7CC74E922706ACD003C4F38 /* MessageViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageViewController.swift; sourceTree = "<group>"; };
-		A7CC74EE22706CCA003C4F38 /* MessageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageView.swift; sourceTree = "<group>"; };
-		A7CC74F022706FE3003C4F38 /* MessageOneCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageOneCollectionViewCell.swift; sourceTree = "<group>"; };
-		A7CC74F2227070D2003C4F38 /* MessageTwoCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageTwoCollectionViewCell.swift; sourceTree = "<group>"; };
-		A7CC750522714306003C4F38 /* MessageNoticeHeaderCollectionReusableView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageNoticeHeaderCollectionReusableView.swift; sourceTree = "<group>"; };
-		A7CC750922715755003C4F38 /* MessageDetailesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageDetailesViewController.swift; sourceTree = "<group>"; };
-		A7CC750C227157DA003C4F38 /* MessageDetailesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageDetailesView.swift; sourceTree = "<group>"; };
-		A7CC750E22715AAC003C4F38 /* MessageDetailesTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageDetailesTableViewCell.swift; sourceTree = "<group>"; };
-		A7CC751022715AE3003C4F38 /* MessageDetailesTimeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageDetailesTimeView.swift; sourceTree = "<group>"; };
 		A7CC7515227161D5003C4F38 /* SetViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetViewController.swift; sourceTree = "<group>"; };
 		A7CC751722716202003C4F38 /* SetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetView.swift; sourceTree = "<group>"; };
 		A7CC751922716254003C4F38 /* SetTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetTableViewCell.swift; sourceTree = "<group>"; };
@@ -1445,6 +1439,7 @@
 		A719EE6622AF4374001AAC98 /* CommunityModule */ = {
 			isa = PBXGroup;
 			children = (
+				A74322A522B8FE5F0017C367 /* CommunityFindFriends */,
 				A719EE6722AF438E001AAC98 /* Community */,
 				A7C0FDFC22B66B3C00BC1E86 /* CommunityFeaturedTopics */,
 				BD1FC18222B09F4700D55081 /* CommunitySubComment */,
@@ -2040,6 +2035,65 @@
 			path = SwiftyStarRatingView;
 			sourceTree = "<group>";
 		};
+		A743229922B8C1440017C367 /* AppStoreReview */ = {
+			isa = PBXGroup;
+			children = (
+				A743229A22B8C1510017C367 /* AppStoreReview.swift */,
+			);
+			path = AppStoreReview;
+			sourceTree = "<group>";
+		};
+		A743229C22B8D13B0017C367 /* MyFollowAndFan */ = {
+			isa = PBXGroup;
+			children = (
+				A743229E22B8D1D50017C367 /* View */,
+				A743229D22B8D1C40017C367 /* ViewController */,
+			);
+			path = MyFollowAndFan;
+			sourceTree = "<group>";
+		};
+		A743229D22B8D1C40017C367 /* ViewController */ = {
+			isa = PBXGroup;
+			children = (
+				A743229F22B8D1F30017C367 /* MyFollowAndFanViewController.swift */,
+			);
+			path = ViewController;
+			sourceTree = "<group>";
+		};
+		A743229E22B8D1D50017C367 /* View */ = {
+			isa = PBXGroup;
+			children = (
+				A74322A122B8D5A90017C367 /* MyFollowAndFanTableViewCell.swift */,
+				A74322A322B8E7F60017C367 /* MyFollowAndFanHeaderView.swift */,
+			);
+			path = View;
+			sourceTree = "<group>";
+		};
+		A74322A522B8FE5F0017C367 /* CommunityFindFriends */ = {
+			isa = PBXGroup;
+			children = (
+				A74322A722B8FF050017C367 /* View */,
+				A74322A622B8FEFA0017C367 /* ViewController */,
+			);
+			path = CommunityFindFriends;
+			sourceTree = "<group>";
+		};
+		A74322A622B8FEFA0017C367 /* ViewController */ = {
+			isa = PBXGroup;
+			children = (
+				A74322A822B900180017C367 /* CommunityFindFriendsViewController.swift */,
+			);
+			path = ViewController;
+			sourceTree = "<group>";
+		};
+		A74322A722B8FF050017C367 /* View */ = {
+			isa = PBXGroup;
+			children = (
+				A74322AA22B900F00017C367 /* CommunityFindFriendsView.swift */,
+			);
+			path = View;
+			sourceTree = "<group>";
+		};
 		A75414F9224B5EFC002480B5 /* MobileLogin */ = {
 			isa = PBXGroup;
 			children = (
@@ -2413,6 +2467,7 @@
 			isa = PBXGroup;
 			children = (
 				A7D07CB822B73E5500186014 /* PersonalCenter */,
+				A743229C22B8D13B0017C367 /* MyFollowAndFan */,
 				A77F2CAA2232010F001BD3F6 /* Mine */,
 				A7CC75302271AB6C003C4F38 /* AddressManager */,
 				A71AA50D22721537008FF1A5 /* ExpressAddressList */,
@@ -2422,8 +2477,6 @@
 				A7CC75292271A169003C4F38 /* SetPassword */,
 				A7CC751D22719091003C4F38 /* AccountSecurity */,
 				A7CC751222716194003C4F38 /* Set */,
-				A7CC7507227151C7003C4F38 /* MessageDetailes */,
-				A7CC74E722706A06003C4F38 /* Message */,
 			);
 			path = MineModule;
 			sourceTree = "<group>";
@@ -2496,6 +2549,7 @@
 		A77F2CBC2232022A001BD3F6 /* Tools */ = {
 			isa = PBXGroup;
 			children = (
+				A743229922B8C1440017C367 /* AppStoreReview */,
 				BD1FC19022B1075E00D55081 /* CommentKeyboard */,
 				A7931DF422AF827600297D0A /* ESTabBarController-swift */,
 				BD108C8D22A60A2000837DAB /* HGImagePicker */,
@@ -2973,61 +3027,6 @@
 			path = View;
 			sourceTree = "<group>";
 		};
-		A7CC74E722706A06003C4F38 /* Message */ = {
-			isa = PBXGroup;
-			children = (
-				A7CC74EB22706CA9003C4F38 /* View */,
-				A7CC74E822706AAC003C4F38 /* ViewController */,
-			);
-			path = Message;
-			sourceTree = "<group>";
-		};
-		A7CC74E822706AAC003C4F38 /* ViewController */ = {
-			isa = PBXGroup;
-			children = (
-				A7CC74E922706ACD003C4F38 /* MessageViewController.swift */,
-			);
-			path = ViewController;
-			sourceTree = "<group>";
-		};
-		A7CC74EB22706CA9003C4F38 /* View */ = {
-			isa = PBXGroup;
-			children = (
-				A7CC74EE22706CCA003C4F38 /* MessageView.swift */,
-				A7CC750522714306003C4F38 /* MessageNoticeHeaderCollectionReusableView.swift */,
-				A7CC74F022706FE3003C4F38 /* MessageOneCollectionViewCell.swift */,
-				A7CC74F2227070D2003C4F38 /* MessageTwoCollectionViewCell.swift */,
-			);
-			path = View;
-			sourceTree = "<group>";
-		};
-		A7CC7507227151C7003C4F38 /* MessageDetailes */ = {
-			isa = PBXGroup;
-			children = (
-				A7CC750B2271578F003C4F38 /* View */,
-				A7CC7508227151D0003C4F38 /* ViewController */,
-			);
-			path = MessageDetailes;
-			sourceTree = "<group>";
-		};
-		A7CC7508227151D0003C4F38 /* ViewController */ = {
-			isa = PBXGroup;
-			children = (
-				A7CC750922715755003C4F38 /* MessageDetailesViewController.swift */,
-			);
-			path = ViewController;
-			sourceTree = "<group>";
-		};
-		A7CC750B2271578F003C4F38 /* View */ = {
-			isa = PBXGroup;
-			children = (
-				A7CC750C227157DA003C4F38 /* MessageDetailesView.swift */,
-				A7CC750E22715AAC003C4F38 /* MessageDetailesTableViewCell.swift */,
-				A7CC751022715AE3003C4F38 /* MessageDetailesTimeView.swift */,
-			);
-			path = View;
-			sourceTree = "<group>";
-		};
 		A7CC751222716194003C4F38 /* Set */ = {
 			isa = PBXGroup;
 			children = (
@@ -4343,13 +4342,12 @@
 				BD1FC1A822B1075F00D55081 /* LXTextView.m in Sources */,
 				BDAA40FB228E9CC300CF841D /* OrderApplyRefundNoteInfoCell.swift in Sources */,
 				A7DF50D622A4E8B400998908 /* OrderDetailProductTableViewCell.swift in Sources */,
-				A7CC751122715AE3003C4F38 /* MessageDetailesTimeView.swift in Sources */,
+				A74322A422B8E7F60017C367 /* MyFollowAndFanHeaderView.swift in Sources */,
 				A73911AD229CD62F0033177E /* AlamofireReachabilityManager.swift in Sources */,
 				A7BB684F2268DCEC00AB07A2 /* SelfRecommendationViewController.swift in Sources */,
 				A7B4E7352281907A0012914A /* CMSModel.swift in Sources */,
 				A72A72BE22321DE000B21995 /* Extension+RxTimer.swift in Sources */,
 				A7F2D6CB22B0E4270093000B /* CommunityRecommendFollowCollectionViewCell.swift in Sources */,
-				A7CC74EA22706ACD003C4F38 /* MessageViewController.swift in Sources */,
 				A7931E1622AFAEF500297D0A /* TopicSelectionModel.swift in Sources */,
 				BDF47D7E22827C3F00941AB9 /* ProductSlidingTopBottomCollectionViewCell.swift in Sources */,
 				BD108C9522A60C2100837DAB /* HGImageCollectionViewCell.swift in Sources */,
@@ -4422,7 +4420,6 @@
 				A70B2C1D2286B52400B2449F /* ProductDetailViewController.swift in Sources */,
 				A7CC75332271ABB0003C4F38 /* AddressManagerViewController.swift in Sources */,
 				A7FF158C228C911C00A85748 /* OrderRefunddetailsViewController.swift in Sources */,
-				A7CC750D227157DA003C4F38 /* MessageDetailesView.swift in Sources */,
 				BD12B67D22B4EE6D00AEB10B /* KSMediaPickerItemModel.swift in Sources */,
 				A7F2D6DD22B2536F0093000B /* CardContentPicVideoCollectionViewCell.swift in Sources */,
 				BD7AB83622841A8B0030646A /* ShoppingCartPayOrderItemCell.swift in Sources */,
@@ -4438,6 +4435,7 @@
 				A7CC7528227196C4003C4F38 /* AccountSecuritySetTableViewCell.swift in Sources */,
 				A7F2D6E122B25EF30093000B /* CardContentPicVideoModel.swift in Sources */,
 				A70B2C292286D77200B2449F /* ProductDetailProductInfoTableViewCell.swift in Sources */,
+				A74322A922B900180017C367 /* CommunityFindFriendsViewController.swift in Sources */,
 				BD1FC1A922B1075F00D55081 /* LXKeyBoard.m in Sources */,
 				A72A726822321DBD00B21995 /* UMManager.swift in Sources */,
 				A70B2C042283D06B00B2449F /* ProductFloorFullLeftHeaderCollectionReusableView.swift in Sources */,
@@ -4449,6 +4447,7 @@
 				BD12B67822B4ED9200AEB10B /* KSMediaPickerOutputModel.swift in Sources */,
 				A7CC74E62270628B003C4F38 /* DeliveryMethodTypeModel.swift in Sources */,
 				BD12B68322B4EFF000AEB10B /* KSMediaPickerView.swift in Sources */,
+				A743229B22B8C1510017C367 /* AppStoreReview.swift in Sources */,
 				BDAF83A222B330540004BCC3 /* RecommendSimilarCell.swift in Sources */,
 				BDAA40FD228E9CD600CF841D /* OrderApplyRefundPhoneCell.swift in Sources */,
 				BD2FCBE222B21CF70006D974 /* CommunityRecommendController.swift in Sources */,
@@ -4497,6 +4496,7 @@
 				BD12204622AF997E0051C7C2 /* MessageCommentTableCell.swift in Sources */,
 				BDF862AA228E43A4000DEF84 /* OrderCommentTableViewCell.swift in Sources */,
 				A7B4E754228278320012914A /* ShoppingMallFloorTableViewCell.swift in Sources */,
+				A74322AB22B900F00017C367 /* CommunityFindFriendsView.swift in Sources */,
 				BD3474F522857B85000908C5 /* CommonPayHeader.swift in Sources */,
 				BD1FC1A322B1075F00D55081 /* UIView+LX_Frame.m in Sources */,
 				A71AF0B6226EF99A001730FE /* SearchResultViewController.swift in Sources */,
@@ -4509,7 +4509,6 @@
 				A775CC00223774A300EBDCF8 /* ShoppingMallView.swift in Sources */,
 				A7FF1555228AC27600A85748 /* ProductAllCommentView.swift in Sources */,
 				A7CC7526227196A8003C4F38 /* AccountSecurityTableViewCell.swift in Sources */,
-				A7CC74F122706FE3003C4F38 /* MessageOneCollectionViewCell.swift in Sources */,
 				BDF47D80228288F900941AB9 /* ShoppingCartAccountView.swift in Sources */,
 				A7284401224DBB7700F82F30 /* SwiftMoyaNetWorkServiceUser.swift in Sources */,
 				A7B4E728228160BA0012914A /* ProductRightSideleftPictureCollectionViewCell.swift in Sources */,
@@ -4521,7 +4520,6 @@
 				A72843FC224DB6B800F82F30 /* SwiftMoyaServiceUserApi.swift in Sources */,
 				A7931DF122AF4C9100297D0A /* BaseIrregularityBasicContentView.swift in Sources */,
 				A7931DEF22AF4C9100297D0A /* BaseBasicContentView.swift in Sources */,
-				A7CC750622714306003C4F38 /* MessageNoticeHeaderCollectionReusableView.swift in Sources */,
 				A7C3DD1A226422BF00FA262E /* SwiftMoyaServiceSMSApi.swift in Sources */,
 				A7284A7722547333000BAEC4 /* AlipayResultModel.swift in Sources */,
 				A72A72B422321DE000B21995 /* Extension+UIImage.swift in Sources */,
@@ -4543,6 +4541,7 @@
 				A70B2C6D2288815E00B2449F /* PickViewOneComponentsView.swift in Sources */,
 				BDD4FB1422840954006FE833 /* ShoppingCartOrderPayView.swift in Sources */,
 				A70B2C222286BF5900B2449F /* ProductDetailTableViewHeaderView.swift in Sources */,
+				A74322A222B8D5A90017C367 /* MyFollowAndFanTableViewCell.swift in Sources */,
 				A7CC75432271E038003C4F38 /* SelfMentionContactsListViewController.swift in Sources */,
 				BDF47D872282C92200941AB9 /* ShoppingCartListTableViewHeader.swift in Sources */,
 				A70B2C46228840B100B2449F /* ProductDetailHotSellTableViewCell.swift in Sources */,
@@ -4615,7 +4614,6 @@
 				A77F2CC822320627001BD3F6 /* WRCustomNavigationBar.swift in Sources */,
 				BD12B6A322B4FC9B00AEB10B /* KSButton.swift in Sources */,
 				A7FF1564228C696B00A85748 /* OrderListView.swift in Sources */,
-				A7CC74EF22706CCA003C4F38 /* MessageView.swift in Sources */,
 				A70B2C072284305400B2449F /* ProductModel.swift in Sources */,
 				A7CC74E0227042A4003C4F38 /* MineServiceTableViewCell.swift in Sources */,
 				A72A72BC22321DE000B21995 /* Extension+UIAlertController.swift in Sources */,
@@ -4642,7 +4640,6 @@
 				BD12B66922B47D4800AEB10B /* RecommendSubCommentCollectionCell.swift in Sources */,
 				BDF862A1228E41CC000DEF84 /* OrderLogisticsController.swift in Sources */,
 				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 */,
@@ -4673,6 +4670,7 @@
 				A7B4E72F2281773F0012914A /* ProductFloorCenterTitleView.swift in Sources */,
 				A7284A542252FB5C000BAEC4 /* PaginationModel.swift in Sources */,
 				A72A72D022321E2700B21995 /* FontMacro.swift in Sources */,
+				A74322A022B8D1F30017C367 /* MyFollowAndFanViewController.swift in Sources */,
 				BD2FCBE622B2586C0006D974 /* CommunityTagCollectionCell.swift in Sources */,
 				A743229422B88ED30017C367 /* EnumMacro.swift in Sources */,
 				BD1DC6C9228D005000B89C57 /* OrderCreateParameterModel.swift in Sources */,
@@ -4689,10 +4687,8 @@
 				A72A72AB22321DE000B21995 /* SwiftProgressHUD.swift in Sources */,
 				BDF862B1228E6690000DEF84 /* OrderApplyRefundProductCell.swift in Sources */,
 				A7CC751C22716426003C4F38 /* SetLogoutTableViewCell.swift in Sources */,
-				A7CC74F3227070D2003C4F38 /* MessageTwoCollectionViewCell.swift in Sources */,
 				A7778CD522460D8E00C7C47A /* PhoneCountryAreaTableViewCell.swift in Sources */,
 				A70B2C5C22886B0000B2449F /* ShopView.swift in Sources */,
-				A7CC750A22715755003C4F38 /* MessageDetailesViewController.swift in Sources */,
 				BDAA40F7228E947500CF841D /* OrderApplyRefundAccountCell.swift in Sources */,
 				A71AF0B8226EF9EC001730FE /* SearchResultNavigationbarView.swift in Sources */,
 				BD108C9722A60C2100837DAB /* HGImagePickerController.swift in Sources */,

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

@@ -50,8 +50,7 @@ class BaseTabbarViewController: ESTabBarController {
         let v4 = MessageMainViewController()
         /// 我的
 //        let v5 = MineViewController()
-//        let v5 = UserPersonalCenterViewController()
-        let v5 = OtherPersonalCenterViewController()
+        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"))

+ 9 - 11
RainbowPlanet/RainbowPlanet/Base/BaseWebViewController/BaseWebViewController.swift

@@ -11,11 +11,11 @@ import WebKit
 
 class BaseWebViewController: BaseViewController {
     
-    
     override func viewDidLoad() {
         super.viewDidLoad()
         setupViews()
         setupLayouts()
+        setupData()
     }
     
     override func didReceiveMemoryWarning() {
@@ -38,19 +38,17 @@ class BaseWebViewController: BaseViewController {
     }
     override func setupLayouts() {
     }
-    
-    //MARK: -  action
-    @objc private func backAction() {
-        
-        self.wkWebView.webView.stopLoading()
-        if self.wkWebView.webView.canGoBack {
-            self.wkWebView.webView.goBack()
-        }else {
-            self.navigationController?.popViewController(animated: true)
+    override func setupData() {
+        navigationBar.onClickLeftButton = {
+            self.wkWebView.webView.stopLoading()
+            if self.wkWebView.webView.canGoBack {
+                self.wkWebView.webView.goBack()
+            }else {
+                self.navigationController?.popViewController(animated: true)
+            }
         }
     }
     
-    
     //MARK: - lazy
     
     lazy var wkWebView: WebView = {

+ 0 - 2
RainbowPlanet/RainbowPlanet/Macro/HTMLURLMacro.swift

@@ -8,7 +8,5 @@
 
 import Foundation
 
-/// 给我们我们评分
-let kAppStoreReview = "https://itunes.apple.com/cn/app/1455804911?action=write-review"
 
 

+ 1 - 1
RainbowPlanet/RainbowPlanet/Modules/CommonModules/LocationModule/Location/ViewController/LocationViewController.swift

@@ -38,7 +38,7 @@ class LocationViewController: BaseViewController {
             [weak self] in//快递
             self?.setDeliveryMethodType()
         }
-        let emptyView = DIYEmptyView.emptyActionView(withImageStr: "page01", titleStr: "选择了自提点才能享受支持到店自提服务哦", detailStr: nil, btnTitleStr: "去设置") {
+        let emptyView = DIYEmptyView.emptyActionView(withImageStr: "default_page_location", titleStr: "选择了自提点才能享受支持到店自提服务哦", detailStr: nil, btnTitleStr: "去设置") {
             BaiduMapManager.shared.loacationAlertView()
         }
         emptyView?.subViewMargin = 25

+ 1 - 1
RainbowPlanet/RainbowPlanet/Modules/CommonModules/LocationModule/SelfRecommendation/View/SelfRecommendationView.swift

@@ -45,7 +45,7 @@ class SelfRecommendationView: BaseView {
         locationBgImageView.addSubview(changeLocationButton)
         
         addSubview(collectionView)
-        let emptyView = DIYEmptyView.emptyActionView(withImageStr: "page01", titleStr: "当前位置没有自提点,先进商城逛逛吧", detailStr: nil, btnTitleStr: "去商城") {
+        let emptyView = DIYEmptyView.emptyActionView(withImageStr: "default_page_location", titleStr: "当前位置没有自提点,先进商城逛逛吧", detailStr: nil, btnTitleStr: "去商城") {
             [weak self] in
             /// 跳转到商场
             if let goShoppingBlock = self?.goShoppingBlock {

+ 1 - 1
RainbowPlanet/RainbowPlanet/Modules/CommonModules/SearchModule/SearchResult/View/SearchResultView.swift

@@ -25,7 +25,7 @@ class SearchResultView: BaseView {
     override func setupViews() {
         backgroundColor = kf7f8faColor
         addSubview(tableView)
-        let emptyView = DIYEmptyView.empty(with: kImage(name: "page02"), titleStr: "当前暂无搜索记录,换个姿势试试吧", detailStr: nil)
+        let emptyView = DIYEmptyView.empty(with: kImage(name: "default_page_search"), titleStr: "当前暂无搜索记录,换个姿势试试吧", detailStr: nil)
         emptyView!.contentViewY = kScaleValue(value: 182)
         tableView.ly_emptyView = emptyView
         tableView.ly_startLoading()

+ 1 - 1
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/ViewController/CommunityListViewController.swift

@@ -32,7 +32,7 @@ class CommunityListViewController: UIViewController {
     func setupViews() {
         view.backgroundColor = kf7f8faColor
         view.addSubview(tableView)
-        let emptyView = DIYEmptyView.empty(with: kImage(name: "page04"), titleStr: nil, detailStr: "当前暂无数据")
+        let emptyView = DIYEmptyView.empty(with: kImage(name: "default_page_data"), titleStr: nil, detailStr: "当前暂无数据")
         emptyView!.contentViewY = kScaleValue(value: 182)
         switch communityListVCType {
         case .follow?:

+ 62 - 0
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityFindFriends/View/CommunityFindFriendsView.swift

@@ -0,0 +1,62 @@
+//
+//  CommunityFindFriendsView.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/6/18.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class CommunityFindFriendsView: BaseView {
+
+    override func setupViews() {
+        self.backgroundColor = kf7f8faColor
+        addSubview(bgView)
+        bgView.addSubview(picButton)
+        bgView.addSubview(titleLabel)
+    }
+    
+    override func setupLayouts() {
+        bgView.snp_makeConstraints { (make) in
+            make.top.equalTo(10)
+            make.left.right.bottom.equalToSuperview()
+        }
+        picButton.snp_makeConstraints { (make) in
+            make.top.equalTo(20)
+            make.left.equalTo(15)
+            make.right.equalTo(-15)
+            make.height.equalTo(100 * kScaleWidth)
+        }
+        titleLabel.snp_makeConstraints { (make) in
+            make.top.equalTo(picButton.snp_bottom).offset(20)
+            make.left.equalTo(14)
+            make.right.equalTo(-14)
+            make.height.equalTo(25)
+        }
+    }
+    
+    lazy var bgView: UIView = {
+        let bgView = UIView()
+        bgView.backgroundColor = .white
+        return bgView
+    }()
+    
+    lazy var picButton: UIButton = {
+        let picButton = UIButton(type: UIButton.ButtonType.custom)
+        picButton.setBackgroundImage(kImage(name: "pic_preload"), for: UIControl.State.normal)
+        picButton.cornerRadius = 5
+        picButton.masksToBounds = true
+        return picButton
+    }()
+    
+    lazy var titleLabel: UILabel = {
+        let titleLabel = UILabel()
+        titleLabel.font = kBoldFont18
+        titleLabel.textColor = k333333Color
+        titleLabel.text = "推荐关注"
+        return titleLabel
+    }()
+    
+
+}

+ 84 - 0
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityFindFriends/ViewController/CommunityFindFriendsViewController.swift

@@ -0,0 +1,84 @@
+//
+//  CommunityFindFriendsViewController.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/6/18.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class CommunityFindFriendsViewController: BaseViewController {
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        setupViews()
+        setupLayouts()
+        setupData()
+    }
+    
+    override func setupViews() {
+        navigationBar.title = "找朋友"
+        view.backgroundColor = kf7f8faColor
+        view.addSubview(tableView)
+    }
+    
+    override func setupLayouts() {
+        tableView.snp.makeConstraints { (make) in
+            make.top.equalToSuperview().offset(kNavBarTotalHeight)
+            make.left.right.bottom.equalTo(0)
+        }
+    }
+    
+    override func setupData() {
+        tableView.tableHeaderView = communityFindFriendsView
+    }
+    
+    private lazy var tableView: UITableView = {
+        let tableView = UITableView(frame: CGRect.zero, style: UITableView.Style.grouped)
+        tableView.separatorStyle = .none
+        tableView.backgroundColor = kf7f8faColor
+        tableView.rowHeight = 81
+        tableView.dataSource = self
+        tableView.delegate = self
+        return tableView
+    }()
+    
+    private lazy var communityFindFriendsView: CommunityFindFriendsView = {
+        let communityFindFriendsView = CommunityFindFriendsView(frame: CGRect(x: 0, y: 0, width: kScreenWidth, height: 83 + 100 * kScaleWidth))
+        communityFindFriendsView.titleLabel.isHidden = false
+        return communityFindFriendsView
+    }()
+    
+}
+
+// MARK: - tableView dataSource && delegate
+extension CommunityFindFriendsViewController: UITableViewDataSource, UITableViewDelegate {
+    
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        return 10
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        let cell = MyFollowAndFanTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+        cell.followType = .alreadyFollow
+        return cell
+    }
+    
+    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
+        return 0
+    }
+    
+    func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
+        return 0
+    }
+    
+    func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
+        return nil
+    }
+    
+    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
+        return nil
+    }
+    
+}
+

+ 2 - 2
RainbowPlanet/RainbowPlanet/Modules/MessageModule/MessageFollowNoti/MessageFollowNotiTableCell.swift

@@ -85,7 +85,7 @@ class MessageFollowNotiTableCell: UITableViewCell {
     
     lazy var typeImageView : UIImageView = {
         let typeImageView = UIImageView()
-        typeImageView.image = kImage(name: "page05")
+        typeImageView.image = kImage(name: "defaul_tavatar")
         return typeImageView
     }()
     
@@ -119,7 +119,7 @@ class MessageFollowNotiTableCell: UITableViewCell {
     
     lazy var contentImageView : UIImageView = {
         let contentImageView = UIImageView()
-        contentImageView.image = kImage(name: "page05")
+        contentImageView.image = kImage(name: "defaul_tavatar")
         return contentImageView
     }()
     

+ 2 - 2
RainbowPlanet/RainbowPlanet/Modules/MessageModule/MessageMain/View/MessagePlanetTableCell.swift

@@ -14,10 +14,10 @@ class MessagePlanetTableCell: UITableViewCell {
         didSet{
             switch self.cellRow {
             case 0:
-                iconImageView.image = kImage(name: "page05")
+                iconImageView.image = kImage(name: "defaul_tavatar")
                 titleLabel.text = "星球通知"
             case 1:
-                iconImageView.image = kImage(name: "page05")
+                iconImageView.image = kImage(name: "defaul_tavatar")
                 titleLabel.text = "星球活动"
             default:
                 return

+ 3 - 1
RainbowPlanet/RainbowPlanet/Modules/MessageModule/MessagePlanetActivity/Controller/MessagePlanetActivityController.swift

@@ -59,7 +59,9 @@ extension MessagePlanetActivityController: UITableViewDataSource, UITableViewDel
         let cell = MessageActivityTableCell.cellWith(tableView: tableView, indexPath: indexPath)
         cell.activityClosure = {
             [weak self] in
-            print("点击了--\(indexPath.row)")
+            let vc = BaseWebViewController()
+            vc.URLString = "https://www.baidu.com"
+            self?.navigationController?.pushViewController(vc, animated: true)
         }
         return cell
     }

+ 1 - 1
RainbowPlanet/RainbowPlanet/Modules/MessageModule/MessagePlanetThumb/MessageThumbTableCell.swift

@@ -119,7 +119,7 @@ class MessageThumbTableCell: UITableViewCell {
     
     lazy var contentImageView : UIImageView = {
         let contentImageView = UIImageView()
-        contentImageView.image = kImage(name: "page05")
+        contentImageView.image = kImage(name: "defaul_tavatar")
         contentImageView.cornerRadius = 4
         contentImageView.masksToBounds = true
         return contentImageView

+ 1 - 1
RainbowPlanet/RainbowPlanet/Modules/MineModule/ExpressAddressList/View/ExpressAddressListView.swift

@@ -24,7 +24,7 @@ class ExpressAddressListView: BaseView {
     
     override func setupViews() {
         addSubview(tableView)
-        let emptyView = DIYEmptyView.empty(with: kImage(name: "page04"), titleStr: nil, detailStr: "当前暂无数据,请添加新地址")
+        let emptyView = DIYEmptyView.empty(with: kImage(name: "default_page_data"), titleStr: nil, detailStr: "当前暂无数据,请添加新地址")
         emptyView!.contentViewY = kScaleValue(value: 182)
         tableView.ly_emptyView = emptyView
         tableView.ly_startLoading()

+ 0 - 95
RainbowPlanet/RainbowPlanet/Modules/MineModule/Message/View/MessageNoticeHeaderCollectionReusableView.swift

@@ -1,95 +0,0 @@
-//
-//  MessageNoticeHeaderCollectionReusableView.swift
-//  RainbowPlanet
-//
-//  Created by 南鑫林 on 2019/4/25.
-//  Copyright © 2019 南鑫林. All rights reserved.
-//
-
-import UIKit
-import RxSwift
-import RxCocoa
-class MessageNoticeHeaderCollectionReusableView: UICollectionReusableView {
-    let disposeBag = DisposeBag()
-    
-    class func headerWith(collectionView:UICollectionView,kind: String,indexPath: IndexPath) -> UICollectionReusableView {
-        let ID = "MessageNoticeHeaderCollectionReusableView"
-        collectionView.register(MessageNoticeHeaderCollectionReusableView.self, forSupplementaryViewOfKind: kind, withReuseIdentifier: ID)
-        let headerView : MessageNoticeHeaderCollectionReusableView = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: ID, for: indexPath) as! MessageNoticeHeaderCollectionReusableView
-        headerView.indexPath = indexPath
-        return headerView
-    }
-    
-    var indexPath : IndexPath? {
-        didSet {
-            
-        }
-    }
-    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() {
-        addSubview(infoLabel)
-        addSubview(toOpenButton)
-    }
-    
-    private func setupLayouts() {
-        infoLabel.snp.makeConstraints { (make) in
-            make.left.equalTo(kScaleValue(value: 14))
-            make.right.equalTo(kScaleValue(value:-85))
-            make.top.equalTo(kScaleValue(value:10))
-            make.bottom.equalTo(kScaleValue(value:-10))
-        }
-        toOpenButton.snp.makeConstraints { (make) in
-            make.centerY.equalToSuperview()
-            make.right.equalTo(kScaleValue(value:-14))
-            make.width.equalTo(kScaleValue(value:50))
-            make.height.equalTo(kScaleValue(value:20))
-        }
-    }
-    
-    private lazy var infoLabel: UILabel = {
-        let infoLabel = UILabel()
-        infoLabel.text = "开启推送消息,以免错过订单、互动等彩虹星球信息"
-        infoLabel.textColor = k333333Color
-        infoLabel.font = kScaleMediumFont12
-        return infoLabel
-    }()
-    
-    private lazy var toOpenButton: UIButton = {
-        let toOpenButton = UIButton(type: UIButton.ButtonType.custom)
-        toOpenButton.setTitle("去开启", for: UIControl.State.normal)
-        toOpenButton.setTitleColor(k333333Color, for: UIControl.State.normal)
-        toOpenButton.titleLabel?.font = kScaleMediumFont12
-        toOpenButton.cornerRadius = kScaleValue(value:10)
-        toOpenButton.masksToBounds = true
-        toOpenButton.layer.borderColor = k9F9F9FColor.cgColor
-        toOpenButton.layer.borderWidth = 0.5
-        toOpenButton.backgroundColor = kf2f2f2Color
-        toOpenButton.rx.tap.subscribe(onNext: { (data) in
-            DispatchQueue.main.async(execute: { () -> Void in
-                let url = URL(string: UIApplication.openSettingsURLString)
-                if let url = url, UIApplication.shared.canOpenURL(url) {
-                    if #available(iOS 10.0, *) {
-                        UIApplication.shared.open(url, options: [:],
-                                                  completionHandler: {
-                                                    (success) in
-                        })
-                    }else {
-                        UIApplication.shared.openURL(url)
-                    }
-                }
-                
-            })
-        }).disposed(by: disposeBag)
-        return toOpenButton
-    }()
-}

+ 0 - 65
RainbowPlanet/RainbowPlanet/Modules/MineModule/Message/View/MessageOneCollectionViewCell.swift

@@ -1,65 +0,0 @@
-//
-//  MessageOneCollectionViewCell.swift
-//  RainbowPlanet
-//
-//  Created by 南鑫林 on 2019/4/24.
-//  Copyright © 2019 南鑫林. All rights reserved.
-//
-
-import UIKit
-
-class MessageOneCollectionViewCell: UICollectionViewCell {
-    class func cellWith(collectionView:UICollectionView,indexPath:IndexPath) -> MessageOneCollectionViewCell {
-        let ID = "MessageOneCollectionViewCell"
-        collectionView.register(MessageOneCollectionViewCell.self, forCellWithReuseIdentifier: ID)
-        let cell : MessageOneCollectionViewCell = collectionView.dequeueReusableCell(withReuseIdentifier: ID, for: indexPath) as! MessageOneCollectionViewCell
-        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() {
-        backgroundColor = .white
-        addSubview(iconButton)
-    }
-    
-    private func setupLayouts() {
-        iconButton.snp.makeConstraints { (make) in
-            make.top.equalTo(22)
-            make.centerX.equalToSuperview()
-            make.width.equalTo(kScreenWidth/3)
-            make.height.equalTo(kScaleValue(value: 40)+24)
-        }
-    }
-    
-    private lazy var iconButton: UIButton = {
-        let iconButton = UIButton(type: UIButton.ButtonType.custom)
-        iconButton.setTitleColor(k333333Color, for: UIControl.State.normal)
-        iconButton.titleLabel?.font = kMediumFont15
-        iconButton.titleLabel?.adjustsFontSizeToFitWidth = true
-        iconButton.isUserInteractionEnabled = false
-        return iconButton
-    }()
-    
-    func setCell(titles:Array<String>,images:Array<String>) {
-        iconButton.setImage(kImage(name: images[(indexPath?.row)!]), for: UIControl.State.normal)
-        iconButton.setTitle(titles[(indexPath?.row)!], for: UIControl.State.normal)
-        iconButton.layoutButton(edgeInsetsStyle: ButtonEdgeInsetsStyle.top, imageTitleSpace: 6)
-    }
-}

+ 0 - 108
RainbowPlanet/RainbowPlanet/Modules/MineModule/Message/View/MessageTwoCollectionViewCell.swift

@@ -1,108 +0,0 @@
-//
-//  MessageTwoCollectionViewCell.swift
-//  RainbowPlanet
-//
-//  Created by 南鑫林 on 2019/4/24.
-//  Copyright © 2019 南鑫林. All rights reserved.
-//
-
-import UIKit
-
-class MessageTwoCollectionViewCell: UICollectionViewCell {
-    class func cellWith(collectionView:UICollectionView,indexPath:IndexPath) -> MessageTwoCollectionViewCell {
-        let ID = "MessageTwoCollectionViewCell"
-        collectionView.register(MessageTwoCollectionViewCell.self, forCellWithReuseIdentifier: ID)
-        let cell : MessageTwoCollectionViewCell = collectionView.dequeueReusableCell(withReuseIdentifier: ID, for: indexPath) as! MessageTwoCollectionViewCell
-        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() {
-        backgroundColor = .white
-        addSubview(titleLabel)
-        addSubview(detailTitleLabel)
-        addSubview(iconImageView)
-        addSubview(goButton)
-        addSubview(lineLabel)
-    }
-    
-    private func setupLayouts() {
-        titleLabel.snp.makeConstraints { (make) in
-            make.top.equalTo(15)
-            make.left.equalTo(14)
-            make.height.equalTo(21)
-        }
-        goButton.snp.makeConstraints { (make) in
-            make.centerY.equalTo(titleLabel)
-            make.right.equalTo(-14)
-        }
-        iconImageView.snp.makeConstraints { (make) in
-            make.left.equalTo(titleLabel)
-            make.top.equalTo(titleLabel.snp.bottom).offset(8)
-            make.size.equalTo(32)
-        }
-        detailTitleLabel.snp.makeConstraints { (make) in
-            make.centerY.equalTo(iconImageView)
-            make.left.equalTo(iconImageView.snp.right).offset(15)
-            make.height.equalTo(18)
-        }
-        lineLabel.snp.makeConstraints { (make) in
-            make.bottom.left.right.equalToSuperview()
-            make.height.equalTo(0.5)
-        }
-    }
-    
-
-    private lazy var titleLabel: UILabel = {
-        let titleLabel = UILabel()
-        titleLabel.textColor = k333333Color
-        titleLabel.font = kMediumFont15
-        return titleLabel
-    }()
-    
-    private lazy var detailTitleLabel: UILabel = {
-        let detailTitleLabel = UILabel()
-        detailTitleLabel.textColor = k999999Color
-        detailTitleLabel.font = kRegularFont13
-        return detailTitleLabel
-    }()
-    
-    private lazy var iconImageView: UIImageView = {
-        let iconImageView = UIImageView()
-        return iconImageView
-    }()
-    
-    private lazy var goButton: UIButton = {
-        let goButton = UIButton(type: UIButton.ButtonType.custom)
-        goButton.setImage(kImage(name: "my_arrows_unfold"), for: UIControl.State.normal)
-        return goButton
-    }()
-    private lazy var lineLabel: UILabel = {
-        let lineLabel = UILabel()
-        lineLabel.backgroundColor = kf5f5f5Color
-        return lineLabel
-    }()
-    
-    func setCell(titles:Array<String>,detailTitles:Array<String>,images:Array<String>) {
-        titleLabel.text = titles[(indexPath?.row)!]
-        detailTitleLabel.text = detailTitles[(indexPath?.row)!]
-        iconImageView.image = kImage(name: images[(indexPath?.row)!])
-    }
-}

+ 0 - 202
RainbowPlanet/RainbowPlanet/Modules/MineModule/Message/View/MessageView.swift

@@ -1,202 +0,0 @@
-//
-//  MessageView.swift
-//  RainbowPlanet
-//
-//  Created by 南鑫林 on 2019/4/24.
-//  Copyright © 2019 南鑫林. All rights reserved.
-//
-
-import UIKit
-
-class MessageView: BaseView {
-    
-    let oneImages = ["my_message_system","my_message_active","my_message_indent"]
-    let oneTitles = ["星球通知","活动公告","订单消息"]
-    
-    let twoImages = ["my_message_comment","my_message_like","my_message_attention","my_message_letter"]
-    let twoTitles = ["评论和@","喜欢和赞","关注我的","私信"]
-    let twoDetailTitles = ["暂未收到评论和@,多去互动吧","暂未收到喜欢和赞,多去互动吧","暂无关注,多去互动吧","暂无私信"]
-    
-    typealias DidSelectClosure = (_ indexPath: IndexPath) -> Void
-    var didSelectClosure : DidSelectClosure?
-    
-    enum NotificationAuthorizationStatus {
-        case authorized
-        case notDetermined
-        case denied
-    }
-    
-    var authorizationStatus :NotificationAuthorizationStatus?
-    
-    
-    override func setupViews() {
-        addSubview(collectionView)
-        if #available(iOS 10.0, *) {
-            let unUserNotificationCenter = UNUserNotificationCenter.current()
-            unUserNotificationCenter.getNotificationSettings {
-                settings in
-                switch settings.authorizationStatus {
-                case .authorized:
-                   self.authorizationStatus = .authorized
-                    return
-                case .notDetermined:
-                     self.authorizationStatus = .notDetermined
-//                    //请求授权
-//                    UNUserNotificationCenter.current()
-//                        .requestAuthorization(options: [.alert, .sound, .badge]) {
-//                            (accepted, error) in
-//                            if !accepted {
-//                                print("用户不允许消息通知。")
-//                            }
-//                    }
-                    break
-                case .denied:
-                    self.authorizationStatus = .denied
-                    break
-                default:
-                    break
-                }
-            }
-             self.collectionView.reloadData()
-        } else {
-            // Fallback on earlier versions
-        }
-    }
-    
-    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 = kf7f8faColor
-        collectionView.delegate = self;
-        collectionView.dataSource = self;
-        collectionView.showsVerticalScrollIndicator = false
-        collectionView.showsHorizontalScrollIndicator = false
-        collectionView.cornerRadius = 2.5
-        collectionView.masksToBounds = true
-        return collectionView
-    }()
-    
-    private lazy var collectionViewLayout: UICollectionViewFlowLayout = {
-        let collectionViewLayout = UICollectionViewFlowLayout.init()
-//        collectionViewLayout.estimatedItemSize = CGSize(width: kScaleWidth, height: 10)
-        return collectionViewLayout
-    }()
-
-}
-
-extension MessageView: UICollectionViewDelegateFlowLayout,UICollectionViewDataSource {
-    func numberOfSections(in collectionView: UICollectionView) -> Int {
-        return 2
-    }
-    
-    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
-        switch section {
-        case 0:
-            return 3
-        case 1:
-            return 4
-        default:
-            return 0
-        }
-    }
-    
-    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
-        switch indexPath.section {
-        case 0:
-            let cell = MessageOneCollectionViewCell.cellWith(collectionView: collectionView, indexPath: indexPath)
-            cell.setCell(titles: oneTitles, images: oneImages)
-            return cell
-        case 1:
-            let cell = MessageTwoCollectionViewCell.cellWith(collectionView: collectionView, indexPath: indexPath)
-            cell.setCell(titles: twoTitles, detailTitles: twoDetailTitles, images: twoImages)
-            return cell
-        default:
-            return UICollectionViewCell()
-        }
-    }
-    
-    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
-        switch indexPath.section {
-        case 0:
-            return CGSize(width:kScreenWidth/3, height: kScaleValue(value: 40)+70)
-        case 1:
-            return CGSize(width:kScreenWidth, height: 91)
-        default:
-            return CGSize(width:0.0, height: 0.0)
-        }
-    }
-    
-    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
-        switch section {
-        case 0:
-            if self.authorizationStatus == .notDetermined || self.authorizationStatus == .denied {
-                return UIEdgeInsets(top: 0, left: 0, bottom: 10, right: 0)
-
-            }else if self.authorizationStatus == .authorized {
-                return UIEdgeInsets(top: 10, left: 0, bottom: 10, right: 0)
-
-            }
-            return UIEdgeInsets(top: 10, left: 0, bottom: 10, right: 0)
-        default:
-            return UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
-        }
-    }
-    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
-        switch section {
-        case 0:
-            return 10
-        default:
-            return 0
-        }
-    }
-    
-    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
-        switch section {
-        case 0:
-            return 0
-        default:
-            return 0
-        }
-    }
-    
-    func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
-        if kind == UICollectionView.elementKindSectionHeader {
-            switch indexPath.section {
-            case 0:
-                let headerView = MessageNoticeHeaderCollectionReusableView.headerWith(collectionView: collectionView, kind:  UICollectionView.elementKindSectionHeader, indexPath: indexPath)
-                return headerView
-            default:
-                return UICollectionReusableView()
-            }
-            
-        }
-        return UICollectionReusableView()
-    }
-    
-    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize {
-        switch section {
-        case 0:
-            if self.authorizationStatus == .notDetermined || self.authorizationStatus == .denied {
-                return CGSize(width: kScreenWidth, height: kScaleValue(value: 36))
-            }else if self.authorizationStatus == .authorized {
-                return CGSize(width: kScreenWidth, height: 0)
-            }
-            return CGSize(width: kScreenWidth, height: 0)
-        default:
-            return CGSize(width: kScreenWidth, height: 0)
-        }
-    }
-    
-    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
-        if let didSelectClosure = self.didSelectClosure {
-            didSelectClosure(indexPath)
-        }
-    }
-    
-}
-

+ 0 - 64
RainbowPlanet/RainbowPlanet/Modules/MineModule/Message/ViewController/MessageViewController.swift

@@ -1,64 +0,0 @@
-//
-//  MessageViewController.swift
-//  RainbowPlanet
-//
-//  Created by 南鑫林 on 2019/4/24.
-//  Copyright © 2019 南鑫林. All rights reserved.
-//
-
-import UIKit
-
-class MessageViewController: BaseViewController {
-    
-    override func viewDidLoad() {
-        super.viewDidLoad()
-        setupViews()
-        setupLayouts()
-    }
-    
-    override func setupViews() {
-        navigationBar.title = "消息中心"
-        statusBarStyle = .default
-        view.addSubview(messageView)
-    }
-    
-    override func setupLayouts() {
-        messageView.snp.makeConstraints { (make) in
-            make.top.equalTo(kNavBarTotalHeight)
-            make.left.right.bottom.equalToSuperview()
-        }
-    }
-    
-    private lazy var messageView: MessageView = {
-        let messageView = MessageView()
-        messageView.didSelectClosure = {
-            [weak self] indexPath in
-            switch indexPath.section {
-            case 0:
-                switch indexPath.row {
-                case 0,1:
-                    let vc = MessageDetailesViewController()
-                    if indexPath.row == 0 {
-                        vc.navigationBar.title = "星球通知"
-                    } else if indexPath.row == 1 {
-                        vc.navigationBar.title = "活动公告"
-                    }
-                    self?.navigationController?.pushViewController(vc, animated: true)
-                    break
-                case 2:
-                    let vc = OrderViewController()
-                    vc.orderVCType = .all
-                    self?.navigationController?.pushViewController(vc, animated: true)
-                    break
-                default:
-                    break
-                }
-                break
-            default:
-                break
-            }
-        }
-        return messageView
-    }()
-
-}

+ 0 - 155
RainbowPlanet/RainbowPlanet/Modules/MineModule/MessageDetailes/View/MessageDetailesTableViewCell.swift

@@ -1,155 +0,0 @@
-//
-//  MessageDetailesTableViewCell.swift
-//  RainbowPlanet
-//
-//  Created by 南鑫林 on 2019/4/25.
-//  Copyright © 2019 南鑫林. All rights reserved.
-//
-
-import UIKit
-import RxCocoa
-import RxSwift
-
-class MessageDetailesTableViewCell: UITableViewCell {
-    
-    let disposeBag = DisposeBag()
-    
-    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> UITableViewCell {
-        let ID = "MessageDetailesTableViewCell"
-        tableView.register(MessageDetailesTableViewCell.self, forCellReuseIdentifier: ID)
-        let cell : MessageDetailesTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! MessageDetailesTableViewCell
-        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
-        backgroundColor = kf7f8faColor
-        addSubview(bgView)
-        bgView.addSubview(titleLabel)
-        bgView.addSubview(detailsBgView)
-        bgView.addSubview(lookDetailsButton)
-        detailsBgView.addSubview(detailsIconImageView)
-        detailsBgView.addSubview(detailsTitleLabel)
-        
-    }
-    
-    private func setupLayouts() {
-        bgView.snp.remakeConstraints { (make) in
-            make.top.bottom.equalToSuperview()
-            make.left.equalTo(14)
-            make.right.equalTo(-14)
-        }
-        titleLabel.snp.makeConstraints { (make) in
-            make.top.left.equalTo(15)
-            make.right.equalTo(-15)
-            make.height.equalTo(22)
-        }
-        detailsBgView.snp.remakeConstraints { (make) in
-            make.left.equalTo(10)
-            make.right.equalTo(-10)
-            make.top.equalTo(titleLabel.snp.bottom).offset(10)
-            make.bottom.equalTo(-49)
-        }
-        lookDetailsButton.snp.makeConstraints { (make) in
-            make.bottom.equalTo(-15)
-            make.right.equalTo(-10)
-            make.height.equalTo(24)
-            make.width.equalTo(76)
-        }
-        
-        detailsIconImageView.snp.makeConstraints { (make) in
-            make.top.left.equalTo(10)
-            make.size.equalTo(40)
-        }
-        
-        detailsTitleLabel.snp.remakeConstraints { (make) in
-            make.left.equalTo(54)
-            make.top.equalTo(10)
-            make.bottom.right.equalTo(-6)
-        }
-    }
-    
-    private lazy var bgView: UIView = {
-        let bgView = UIView()
-        bgView.backgroundColor = UIColor.white
-        bgView.cornerRadius = 4
-        bgView.masksToBounds = true
-        bgView.layer.borderColor = keeeeeeColor.cgColor
-        bgView.layer.borderWidth = 1
-        return bgView
-    }()
-    
-    private lazy var titleLabel: UILabel = {
-        let titleLabel = UILabel()
-        titleLabel.text = "巨巨献蜜蜜甜的凤梨到货啦啦啦啦啦啦啦"
-        titleLabel.textColor = k333333Color
-        titleLabel.font = kMediumFont16
-        return titleLabel
-    }()
-    
-    private lazy var detailsBgView: UIView = {
-        let detailsBgView = UIView()
-        detailsBgView.backgroundColor = kf7f8faColor
-        detailsBgView.cornerRadius = 2
-        detailsBgView.masksToBounds = true
-        return detailsBgView
-    }()
-    
-    private lazy var detailsIconImageView: UIImageView = {
-        let detailsIconImageView = UIImageView()
-        detailsIconImageView.backgroundColor = kf7f8faColor
-        detailsIconImageView.cornerRadius = 2
-        detailsIconImageView.masksToBounds = true
-        detailsIconImageView.image = kImage(name: "pic_preload")
-        return detailsIconImageView
-    }()
-    
-    private lazy var detailsTitleLabel: UILabel = {
-        let titleLabel = UILabel()
-        titleLabel.textColor = k333333Color
-        titleLabel.numberOfLines = 2
-        let str = "这个季节的台湾金钻钻从果芯到变都甜到爆钻钻钻钻钻钻钻钻钻能用钻红包哦钻钻钻钻"
-        //通过富文本来设置行间距
-        let paraph = NSMutableParagraphStyle()
-        //将行间距设置为28
-        paraph.lineSpacing = 5
-        //样式属性集合
-        let attributes = [NSAttributedString.Key.font:kRegularFont14,
-                          NSAttributedString.Key.paragraphStyle: paraph]
-        titleLabel.attributedText = NSAttributedString(string: str, attributes: attributes as [NSAttributedString.Key : Any])
-        return titleLabel
-    }()
-    
-    private lazy var lookDetailsButton: UIButton = {
-        let lookDetailsButton = UIButton(type: UIButton.ButtonType.custom)
-        lookDetailsButton.setTitle("查看详情", for: UIControl.State.normal)
-        lookDetailsButton.setTitleColor(kFFAA20Color, for: UIControl.State.normal)
-        lookDetailsButton.titleLabel?.font = kBoldFont14
-        lookDetailsButton.layer.cornerRadius = 12
-        lookDetailsButton.layer.masksToBounds = true
-        lookDetailsButton.layer.borderColor = kFFAA20Color.cgColor
-        lookDetailsButton.layer.borderWidth = 1
-        lookDetailsButton.rx.tap.subscribe(onNext: { (data) in
-            
-        }).disposed(by: disposeBag)
-        return lookDetailsButton
-    }()
-
-}

+ 0 - 37
RainbowPlanet/RainbowPlanet/Modules/MineModule/MessageDetailes/View/MessageDetailesTimeView.swift

@@ -1,37 +0,0 @@
-//
-//  MessageDetailesTimeView.swift
-//  RainbowPlanet
-//
-//  Created by 南鑫林 on 2019/4/25.
-//  Copyright © 2019 南鑫林. All rights reserved.
-//
-
-import UIKit
-
-class MessageDetailesTimeView: BaseView {
-    
-    override func setupViews() {
-        addSubview(timeLabel)
-    }
-    
-    override func setupLayouts() {
-        timeLabel.snp.makeConstraints { (make) in
-            make.top.equalTo(20)
-            make.centerX.equalToSuperview()
-            make.height.equalTo(20)
-        }
-    }
-    
-    private lazy var timeLabel: UILabel = {
-        let timeLabel = UILabel()
-        timeLabel.text = "  2019年4月10日 08:00  "
-        timeLabel.textColor = k999999Color
-        timeLabel.font = kRegularFont12
-        timeLabel.backgroundColor = kEDEEF0Color
-        timeLabel.cornerRadius = 10
-        timeLabel.masksToBounds = true
-        return timeLabel
-    }()
-    
-
-}

+ 0 - 70
RainbowPlanet/RainbowPlanet/Modules/MineModule/MessageDetailes/View/MessageDetailesView.swift

@@ -1,70 +0,0 @@
-//
-//  MessageDetailesView.swift
-//  RainbowPlanet
-//
-//  Created by 南鑫林 on 2019/4/25.
-//  Copyright © 2019 南鑫林. All rights reserved.
-//
-
-import UIKit
-
-class MessageDetailesView: BaseView {
-    
-    override func setupViews() {
-        addSubview(tableView)
-    }
-    
-    override func setupLayouts() {
-        tableView.snp.makeConstraints { (make) in
-            make.edges.equalToSuperview()
-        }
-    }
-    
-    private lazy var tableView: UITableView = {
-        let tableView = UITableView(frame: CGRect.zero, style: UITableView.Style.grouped)
-        tableView.backgroundColor = kf7f8faColor
-        tableView.delegate = self
-        tableView.dataSource = self
-        tableView.estimatedRowHeight = 102
-        tableView.rowHeight = UITableView.automaticDimension
-        tableView.separatorStyle = .none
-        return tableView
-    }()
-
-}
-
-extension MessageDetailesView: UITableViewDelegate,UITableViewDataSource {
-
-    
-    func numberOfSections(in tableView: UITableView) -> Int {
-        return 5
-    }
-    
-    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
-        return 1
-    }
-    
-    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
-        let cell = MessageDetailesTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
-        return cell
-    }
-    
-    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
-        let headerView = MessageDetailesTimeView(frame: CGRect(x: 0, y: 0, width: kScreenWidth, height: 55))
-        return headerView
-    }
-    
-    
-    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
-        return 55
-    }
-    
-    func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
-        return nil
-    }
-    
-    func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
-        return 0.0000001
-    }
-    
-}

+ 0 - 36
RainbowPlanet/RainbowPlanet/Modules/MineModule/MessageDetailes/ViewController/MessageDetailesViewController.swift

@@ -1,36 +0,0 @@
-//
-//  MessageDetailesViewController.swift
-//  RainbowPlanet
-//
-//  Created by 南鑫林 on 2019/4/25.
-//  Copyright © 2019 南鑫林. All rights reserved.
-//
-
-import UIKit
-
-class MessageDetailesViewController: BaseViewController {
-    
-    override func viewDidLoad() {
-        super.viewDidLoad()
-        setupViews()
-        setupLayouts()
-    }
-    
-    override func setupViews() {
-        navigationBar.title = "活动公告"
-        view.addSubview(messageDetailesView)
-    }
-    
-    override func setupLayouts() {
-        messageDetailesView.snp.makeConstraints { (make) in
-            make.top.equalTo(kNavBarTotalHeight)
-            make.bottom.left.right.equalToSuperview()
-        }
-    }
-    
-    private lazy var messageDetailesView: MessageDetailesView = {
-        let messageDetailesView = MessageDetailesView()
-        return messageDetailesView
-    }()
-    
-}

+ 1 - 1
RainbowPlanet/RainbowPlanet/Modules/MineModule/Mine/ViewController/MineViewController.swift

@@ -48,7 +48,7 @@ class MineViewController: BaseViewController {
         }
         navigationBarView.messageBlock = {
             [weak self] in
-            self?.navigationController?.pushViewController(MessageViewController(), animated: true)
+//            self?.navigationController?.pushViewController(MessageViewController(), animated: true)
         }
         navigationBarView.setBlock = {
             [weak self] in

+ 35 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/MyFollowAndFan/View/MyFollowAndFanHeaderView.swift

@@ -0,0 +1,35 @@
+//
+//  MyFollowAndFanHeaderView.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/6/18.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class MyFollowAndFanHeaderView: BaseView {
+
+    override func setupViews() {
+        self.backgroundColor = kf7f8faColor
+        addSubview(titleLabel)
+    }
+    
+    override func setupLayouts() {
+        titleLabel.snp_makeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.left.equalTo(14)
+            make.right.equalTo(-14)
+        }
+    }
+    
+    lazy var titleLabel: UILabel = {
+        let titleLabel = UILabel()
+        titleLabel.font = kRegularFont12
+        titleLabel.textColor = k333333Color
+        let str = "已关注3511位彩虹居民"
+        titleLabel.attributedText = str.changeTextColor(rangStr: String("3511"), rangColor: kThemeColor)
+        return titleLabel
+    }()
+
+}

+ 163 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/MyFollowAndFan/View/MyFollowAndFanTableViewCell.swift

@@ -0,0 +1,163 @@
+//
+//  MyFollowAndFanTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/6/18.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+import RxSwift
+
+class MyFollowAndFanTableViewCell: UITableViewCell {
+    
+    let disposeBag = DisposeBag()
+
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> MyFollowAndFanTableViewCell {
+        let ID = "MyFollowAndFanTableViewCell"
+        tableView.register(MyFollowAndFanTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : MyFollowAndFanTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! MyFollowAndFanTableViewCell
+        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(topicLabel)
+        addSubview(followButton)
+        addSubview(lineLabel)
+    }
+    
+    private func setupLayouts() {
+        avatarButton.snp_makeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.left.equalTo(14)
+            make.size.equalTo(44)
+        }
+        titleButton.snp_makeConstraints { (make) in
+            make.top.equalTo(avatarButton).offset(-3)
+            make.left.equalTo(avatarButton.snp_right).offset(10)
+            make.right.equalTo(-90)
+            make.height.equalTo(23)
+        }
+        topicLabel.snp_makeConstraints { (make) in
+            make.bottom.equalTo(avatarButton).offset(3)
+            make.left.equalTo(avatarButton.snp_right).offset(10)
+            make.right.equalTo(-90)
+            make.height.equalTo(23)
+        }
+        followButton.snp_makeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.right.equalTo(-14)
+            make.height.equalTo(26)
+            make.width.equalTo(64)
+        }
+        lineLabel.snp_makeConstraints { (make) in
+            make.bottom.equalToSuperview()
+            make.left.equalTo(-14)
+            make.right.equalToSuperview()
+            make.height.equalTo(1)
+        }
+    }
+    
+    private lazy var avatarButton: UIButton = {
+        let avatarButton = UIButton(type: UIButton.ButtonType.custom)
+        avatarButton.setImage(kImage(name: "defaul_tavatar"), for: UIControl.State.normal)
+        avatarButton.imageView?.contentMode = .scaleAspectFit
+        avatarButton.cornerRadius = 22
+        avatarButton.masksToBounds = true
+        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 = kBoldFont16
+        titleButton.contentHorizontalAlignment = .left
+        titleButton.rx.tap.subscribe(onNext: { (data) in
+            
+        }).disposed(by: disposeBag)
+        return titleButton
+    }()
+    
+    private lazy var topicLabel: UILabel = {
+        let topicLabel = UILabel()
+        topicLabel.text = "#互联网 #UI设计 #室内设计"
+        topicLabel.textColor = k999999Color
+        topicLabel.font = kRegularFont13
+        return topicLabel
+    }()
+    
+    private lazy var followButton: UIButton = {
+        let followButton = UIButton(type: UIButton.ButtonType.custom)
+        followButton.titleLabel?.font = kBoldFont13
+        followButton.layer.cornerRadius = 13
+        followButton.layer.masksToBounds = true
+        followButton.layer.borderWidth = 1
+        followButton.rx.tap.subscribe(onNext: {[weak self] (data) in
+            
+        }).disposed(by: disposeBag)
+        return followButton
+    }()
+    
+    private lazy var lineLabel: UILabel = {
+        let lineLabel = UILabel()
+        lineLabel.backgroundColor = kf5f5f5Color
+        return lineLabel
+    }()
+    
+    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
+            }
+        }
+    }
+
+}

+ 131 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/MyFollowAndFan/ViewController/MyFollowAndFanViewController.swift

@@ -0,0 +1,131 @@
+//
+//  MyFollowAndFanViewController.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/6/18.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+enum MyFollowAndFanType {
+    case follow
+    case fan
+}
+
+class MyFollowAndFanViewController: BaseViewController {
+
+    var myfollowAndFanType : MyFollowAndFanType?
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        setupViews()
+        setupLayouts()
+        setupData()
+    }
+    
+    override func setupViews() {
+        view.backgroundColor = kf7f8faColor
+        view.addSubview(tableView)
+    }
+    
+    override func setupLayouts() {
+        tableView.snp.makeConstraints { (make) in
+            make.top.equalToSuperview().offset(kNavBarTotalHeight)
+            make.left.right.bottom.equalTo(0)
+        }
+    }
+    
+    override func setupData() {
+        
+        var emptyView : DIYEmptyView?
+    
+        if myfollowAndFanType == .follow {
+            tableView.tableHeaderView = followHeaderView
+            emptyView = DIYEmptyView.emptyActionView(withImageStr: "default_page_fans", titleStr: nil, detailStr: "发布动态,让更多人去认识你", btnTitleStr: "发布动态") {
+                [weak self] in
+                self?.tabBarController?.selectedIndex = 2
+                self?.navigationController?.popToRootViewController(animated: false)
+                
+            }
+            emptyView?.actionBtnHorizontalMargin = 58
+            emptyView?.contentViewY = kScaleValue(value: 164)
+
+        }else if myfollowAndFanType == .fan {
+            tableView.tableHeaderView = fanHeaderView
+            emptyView = DIYEmptyView.emptyActionView(withImageStr: "default_page_kept", titleStr: nil, detailStr: "关注其他彩虹居民后\n可以在这里浏览他们的美好瞬间!", btnTitleStr: "找朋友") {
+                [weak self] in
+                
+                let vc = CommunityFindFriendsViewController()
+                self?.navigationController?.pushViewController(vc, animated: true)
+                
+            }
+            emptyView?.actionBtnHorizontalMargin = 66
+            emptyView?.contentViewY = kScaleValue(value: 151)
+
+        }
+        
+        emptyView?.subViewMargin = 20
+        emptyView?.actionBtnFont = kBoldFont16
+        emptyView?.actionBtnHeight = 32
+        emptyView?.actionBtnCornerRadius = 32/2
+        emptyView?.actionBtnTitleColor = kffffffColor
+        emptyView?.actionBtnBackGroundColor = kThemeColor
+        tableView.ly_emptyView = emptyView
+        tableView.ly_startLoading()
+        
+    }
+    
+    private lazy var tableView: UITableView = {
+        let tableView = UITableView(frame: CGRect.zero, style: UITableView.Style.grouped)
+        tableView.separatorStyle = .none
+        tableView.backgroundColor = kf7f8faColor
+        tableView.rowHeight = 81
+        tableView.dataSource = self
+        tableView.delegate = self
+        return tableView
+    }()
+    
+    private lazy var followHeaderView: MyFollowAndFanHeaderView = {
+        let followHeaderView = MyFollowAndFanHeaderView(frame: CGRect(x: 0, y: 0, width: kScreenWidth, height: 36))
+        followHeaderView.titleLabel.isHidden = false
+        return followHeaderView
+    }()
+    
+    private lazy var fanHeaderView: MyFollowAndFanHeaderView = {
+        let fanHeaderView = MyFollowAndFanHeaderView(frame: CGRect(x: 0, y: 0, width: kScreenWidth, height: 10))
+        fanHeaderView.titleLabel.isHidden = true
+        return fanHeaderView
+    }()
+}
+
+// MARK: - tableView dataSource && delegate
+extension MyFollowAndFanViewController: UITableViewDataSource, UITableViewDelegate {
+    
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        return 0
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        let cell = MyFollowAndFanTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+        cell.followType = .alreadyFollow
+        return cell
+    }
+    
+    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
+        return 0
+    }
+    
+    func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
+        return 0
+    }
+    
+    func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
+        return nil
+    }
+    
+    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
+        return nil
+    }
+    
+}

+ 47 - 18
RainbowPlanet/RainbowPlanet/Modules/MineModule/PersonalCenter/PersonalCenterView/PersonViewUserAndOtherHeaderView.swift

@@ -114,6 +114,21 @@ class PersonViewUserAndOtherHeaderView: BaseView {
         followNumberButton.setTitle("283 关注", for: UIControl.State.normal)
         followNumberButton.setTitleColor(kf0f0f0Color, for: UIControl.State.normal)
         followNumberButton.titleLabel?.font = kBoldFont14
+        followNumberButton.rx.tap.subscribe(onNext: {
+            [weak self] (data) in
+            let vc = MyFollowAndFanViewController()
+            vc.myfollowAndFanType = .follow
+            let currentVC = followNumberButton.findViewController() as? BaseViewController
+            if self?.personViewUserAndOtherHeaderViewType == .user {
+
+                vc.navigationBar.title = "我的关注"
+            }else {
+                let vc = MyFollowAndFanViewController()
+                vc.navigationBar.title = "TA关注"
+            }
+            currentVC?.navigationController?.pushViewController(vc, animated: true)
+            
+        }).disposed(by: disposeBag)
         return followNumberButton
     }()
     
@@ -122,6 +137,19 @@ class PersonViewUserAndOtherHeaderView: BaseView {
         fanNumberButton.setTitle("240 粉丝", for: UIControl.State.normal)
         fanNumberButton.setTitleColor(kf0f0f0Color, for: UIControl.State.normal)
         fanNumberButton.titleLabel?.font = kBoldFont14
+        fanNumberButton.rx.tap.subscribe(onNext: {
+            [weak self] (data) in
+            let vc = MyFollowAndFanViewController()
+            vc.myfollowAndFanType = .fan
+            let currentVC = fanNumberButton.findViewController() as? BaseViewController
+            if self?.personViewUserAndOtherHeaderViewType == .user {
+                vc.navigationBar.title = "我的粉丝"
+            }else {
+                let vc = MyFollowAndFanViewController()
+                vc.navigationBar.title = "TA粉丝"
+            }
+            currentVC?.navigationController?.pushViewController(vc, animated: true)
+        }).disposed(by: disposeBag)
         return fanNumberButton
     }()
     
@@ -133,6 +161,25 @@ class PersonViewUserAndOtherHeaderView: BaseView {
         return avatarButton
     }()
     
+    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 = 1
+        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
+    }()
+    
     private lazy var editButton : UIButton = {
         let editButton = UIButton(type: UIButton.ButtonType.custom)
         editButton.cornerRadius = 12
@@ -147,24 +194,6 @@ class PersonViewUserAndOtherHeaderView: BaseView {
         return editButton
     }()
     
-    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) {
         if contentOffsetY < 0 {

+ 6 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/PersonalCenter/UserPersonalCenter/ViewController/UserPersonalCenterViewController.swift

@@ -80,6 +80,12 @@ class UserPersonalCenterViewController: BaseViewController {
     
     override func setupData() {
         reloadData()
+        //设置
+        setButton.rx.tap.subscribe(onNext: {
+            [weak self] (data) in
+            let vc = SetViewController()
+            self?.navigationController?.pushViewController(vc, animated: true)
+        }).disposed(by: disposeBag)
     }
     
     

+ 1 - 1
RainbowPlanet/RainbowPlanet/Modules/MineModule/SelfMentionContactsList/View/SelfMentionContactsListView.swift

@@ -24,7 +24,7 @@ class SelfMentionContactsListView: BaseView {
     
     override func setupViews() {
         addSubview(tableView)
-        let emptyView = DIYEmptyView.empty(with: kImage(name: "page04"), titleStr: nil, detailStr: "当前暂无数据,请添加新收货人")
+        let emptyView = DIYEmptyView.empty(with: kImage(name: "default_page_data"), titleStr: nil, detailStr: "当前暂无数据,请添加新收货人")
         emptyView!.contentViewY = kScaleValue(value: 182)
         tableView.ly_emptyView = emptyView
         tableView.ly_startLoading()

+ 3 - 4
RainbowPlanet/RainbowPlanet/Modules/MineModule/Set/View/SetView.swift

@@ -13,9 +13,8 @@ class SetView: BaseView {
     typealias DidSelectRowClosure = (_ indexPath: IndexPath) -> Void
     var didSelectRowClosure : DidSelectRowClosure?
     
-    let sections = [["个人资料","账号与绑定","推送通知设置","通用"],
-                    ["用户协议","为彩虹星球评分","彩虹星球招聘"],
-                    ["投诉与建议","分享彩虹星球APP"],
+    let sections = [["账号与绑定","推送通知设置"],
+                    ["用户协议","为彩虹星球评分","投诉与建议","分享彩虹星球APP"],
                     ["退出登录"]]
     
     override func setupViews() {
@@ -52,7 +51,7 @@ extension SetView: UITableViewDelegate,UITableViewDataSource {
     
     func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
         switch indexPath.section {
-        case 3:
+        case 2:
             let cell = SetLogoutTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
             cell.titles = sections[indexPath.section]
             return cell

+ 28 - 3
RainbowPlanet/RainbowPlanet/Modules/MineModule/Set/ViewController/SetViewController.swift

@@ -36,15 +36,40 @@ class SetViewController: BaseViewController {
             switch indexPath.section {
             case 0:
                 switch indexPath.row {
-                case 1:
-                    self?.navigationController?.pushViewController(AccountSecurityViewController(), animated: true)
+                // 帐号绑定
+                case 0:
+                   let vc = AccountSecurityViewController()
+                   self?.navigationController?.pushViewController(vc, animated: true)
                     break
                 default:
                    showSwiftProgressHUDInfo()
                     break
                 }
                 break
-            case 3:
+            case 1:
+                switch indexPath.row {
+                // 用户协议
+                case 0:
+                    let vc = BaseWebViewController()
+                    vc.URLString = "https://www.baidu.com"
+                    self?.navigationController?.pushViewController(vc, animated: true)
+                    break
+                // AppStore
+                case 1:
+                    AppStore.shared.appStore()
+                    break
+                // 分享彩虹星球app
+                case 3:
+                    let vc = BaseWebViewController()
+                    vc.URLString = "https://www.baidu.com"
+                    self?.navigationController?.pushViewController(vc, animated: true)
+                    break
+                default:
+                    showSwiftProgressHUDInfo()
+                    break
+                }
+                break
+            case 2:
                 SwiftMoyaNetWorkServiceUser.shared().userLogoutApi()
                 break
             default:

+ 1 - 1
RainbowPlanet/RainbowPlanet/Modules/OrderModule/Order/View/OrderListView.swift

@@ -13,7 +13,7 @@ class OrderListView: BaseView {
     override func setupViews() {
         addSubview(tableView)
 
-        let emptyView = DIYEmptyView.empty(with: kImage(name: "page04"), titleStr: "无订单", detailStr: "忙里偷闲,去下一单")
+        let emptyView = DIYEmptyView.empty(with: kImage(name: "default_page_data"), titleStr: "无订单", detailStr: "忙里偷闲,去下一单")
         emptyView!.contentViewY = kScaleValue(value: 182)
         tableView.ly_emptyView = emptyView
         tableView.ly_startLoading()

+ 1 - 1
RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderApplyRefund/ViewController/OrderApplyRefundController.swift

@@ -64,7 +64,7 @@ class OrderApplyRefundController: BaseViewController {
         
         
         self.view.addSubview(tableView)
-        let emptyView = DIYEmptyView.empty(with: kImage(name: "page04"), titleStr: nil, detailStr: "当前暂无数据")
+        let emptyView = DIYEmptyView.empty(with: kImage(name: "default_page_data"), titleStr: nil, detailStr: "当前暂无数据")
         emptyView!.contentViewY = kScaleValue(value: 182)
         tableView.ly_emptyView = emptyView
         tableView.ly_startLoading()

+ 1 - 1
RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderComment/ViewController/OrderCommentController.swift

@@ -58,7 +58,7 @@ class OrderCommentController: BaseViewController {
         }
         
         self.view.addSubview(tableView)
-        let emptyView = DIYEmptyView.empty(with: kImage(name: "page04"), titleStr: nil, detailStr: "当前暂无数据")
+        let emptyView = DIYEmptyView.empty(with: kImage(name: "default_page_data"), titleStr: nil, detailStr: "当前暂无数据")
         emptyView!.contentViewY = kScaleValue(value: 182)
         tableView.ly_emptyView = emptyView
         tableView.ly_startLoading()

+ 1 - 1
RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderFinishPay/View/OrderFinishPayView.swift

@@ -40,7 +40,7 @@ class OrderFinishPayView: BaseView {
     override func setupViews() {
         self.backgroundColor = kf7f8faColor
         addSubview(tableView)
-        let emptyView = DIYEmptyView.empty(with: kImage(name: "page04"), titleStr: nil, detailStr: "当前暂无数据")
+        let emptyView = DIYEmptyView.empty(with: kImage(name: "default_page_data"), titleStr: nil, detailStr: "当前暂无数据")
         emptyView!.contentViewY = kScaleValue(value: 182)
         tableView.ly_emptyView = emptyView
         tableView.ly_startLoading()

+ 1 - 1
RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderLogistics/ViewController/OrderLogisticsController.swift

@@ -57,7 +57,7 @@ class OrderLogisticsController: BaseViewController {
         }
         
         self.view.addSubview(tableView)
-        let emptyView = DIYEmptyView.empty(with: kImage(name: "page04"), titleStr: nil, detailStr: "当前暂无数据")
+        let emptyView = DIYEmptyView.empty(with: kImage(name: "default_page_data"), titleStr: nil, detailStr: "当前暂无数据")
         emptyView!.contentViewY = kScaleValue(value: 182)
         tableView.ly_emptyView = emptyView
         tableView.ly_startLoading()

+ 1 - 1
RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderPayOrder/View/ShoppingCartOrderPayView.swift

@@ -87,7 +87,7 @@ class ShoppingCartOrderPayView: BaseView {
         addSubview(selfAddressView)
         selfAddressView.addSubview(selfAddressLabel)
         addSubview(tableView)
-        let emptyView = DIYEmptyView.empty(with: kImage(name: "page04"), titleStr: nil, detailStr: "当前暂无数据")
+        let emptyView = DIYEmptyView.empty(with: kImage(name: "default_page_data"), titleStr: nil, detailStr: "当前暂无数据")
         emptyView!.contentViewY = kScaleValue(value: 182)
         tableView.ly_emptyView = emptyView
         tableView.ly_startLoading()

+ 1 - 1
RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/Category/View/CategoryView.swift

@@ -50,7 +50,7 @@ class CategoryView: BaseView {
     override func setupViews() {
         addSubview(leftTableView)
         addSubview(rightTableView)
-        let emptyView = DIYEmptyView.empty(with: kImage(name: "page04"), titleStr: nil, detailStr: "当前暂无数据")
+        let emptyView = DIYEmptyView.empty(with: kImage(name: "default_page_data"), titleStr: nil, detailStr: "当前暂无数据")
         emptyView!.contentViewY = kScaleValue(value: 182)
         rightTableView.ly_emptyView = emptyView
         rightTableView.ly_startLoading()

+ 1 - 1
RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ProductAllComment/View/ProductAllCommentView.swift

@@ -32,7 +32,7 @@ class ProductAllCommentView: BaseView {
 //        bottomBgView.addSubview(addCartButton)
 //        bottomBgView.addSubview(buyButton)
         addSubview(tableView)
-        let emptyView = DIYEmptyView.empty(with: kImage(name: "page04"), titleStr: nil, detailStr: "当前暂无数据")
+        let emptyView = DIYEmptyView.empty(with: kImage(name: "default_page_data"), titleStr: nil, detailStr: "当前暂无数据")
         emptyView!.contentViewY = kScaleValue(value: 182)
         tableView.ly_emptyView = emptyView
     }

+ 1 - 1
RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ProductDetail/View/ProductDetailView.swift

@@ -28,7 +28,7 @@ class ProductDetailView: BaseView {
         if #available(iOS 11.0, *) {
             tableView.contentInsetAdjustmentBehavior = .never
         }
-        let emptyView = DIYEmptyView.empty(with: kImage(name: "page04"), titleStr: nil, detailStr: "当前暂无数据")
+        let emptyView = DIYEmptyView.empty(with: kImage(name: "default_page_data"), titleStr: nil, detailStr: "当前暂无数据")
         emptyView!.contentViewY = kScaleValue(value: 182)
         tableView.ly_emptyView = emptyView
     }

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

@@ -93,7 +93,7 @@ class ShoppingCartView: BaseView {
         self.backgroundColor = kf7f8faColor
         addSubview(accountView)
         addSubview(tableView)
-        let emptyView = DIYEmptyView.empty(with: kImage(name: "page04"), titleStr: nil, detailStr: "当前暂无数据")
+        let emptyView = DIYEmptyView.empty(with: kImage(name: "default_page_data"), titleStr: nil, detailStr: "当前暂无数据")
         emptyView!.contentViewY = kScaleValue(value: 182)
         tableView.ly_emptyView = emptyView
         tableView.ly_startLoading()

+ 1 - 1
RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ShoppingMall/View/MainView/ShoppingMallListView.swift

@@ -83,7 +83,7 @@ class ShoppingMallListView: BaseView {
     
     override func setupViews() {
         addSubview(tableView)
-        let emptyView = DIYEmptyView.empty(with: kImage(name: "page04"), titleStr: nil, detailStr: "当前暂无数据")
+        let emptyView = DIYEmptyView.empty(with: kImage(name: "default_page_data"), titleStr: nil, detailStr: "当前暂无数据")
         emptyView!.contentViewY = kScaleValue(value: 182)
         tableView.ly_emptyView = emptyView
         tableView.ly_startLoading()

+ 1 - 1
RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ShoppingMall/View/MainView/ShoppingMallView.swift

@@ -162,7 +162,7 @@ class ShoppingMallView: UIView {
     
     /// 7.加载空白图
     lazy var emptyView: LYEmptyView = {
-        let emptyView = DIYEmptyView.empty(with: kImage(name: "page04"), titleStr: nil, detailStr: "当前暂无数据,请下拉刷新")
+        let emptyView = DIYEmptyView.empty(with: kImage(name: "default_page_data"), titleStr: nil, detailStr: "当前暂无数据,请下拉刷新")
         emptyView!.contentViewY = kScaleValue(value: 182)
         return emptyView!
     }()

+ 1 - 1
RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/Special/View/SpecialView.swift

@@ -36,7 +36,7 @@ class SpecialView: BaseView {
     
     override func setupViews() {
         addSubview(tableView)
-        let emptyView = DIYEmptyView.empty(with: kImage(name: "page04"), titleStr: nil, detailStr: "当前暂无数据")
+        let emptyView = DIYEmptyView.empty(with: kImage(name: "default_page_data"), titleStr: nil, detailStr: "当前暂无数据")
         emptyView!.contentViewY = kScaleValue(value: 182)
         tableView.ly_emptyView = emptyView
         tableView.ly_startLoading()

+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_content.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_content.imageset/default_page_content@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_content.imageset/default_page_content@3x.png


RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/page04.imageset/Contents.json → RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_data.imageset/Contents.json


RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/page04.imageset/page04@2x.png → RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_data.imageset/page04@2x.png


RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/page04.imageset/page04@3x.png → RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_data.imageset/page04@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_fans.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_fans.imageset/default_page_fans@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_fans.imageset/default_page_fans@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_kept.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_kept.imageset/default_page_kept@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_kept.imageset/default_page_kept@3x.png


RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/page01.imageset/Contents.json → RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_location.imageset/Contents.json


RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/page01.imageset/page01@2x.png → RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_location.imageset/page01@2x.png


RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/page01.imageset/page01@3x.png → RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_location.imageset/page01@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_outage.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_outage.imageset/default_page_outage@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_outage.imageset/default_page_outage@3x.png


RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/page02.imageset/Contents.json → RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_search.imageset/Contents.json


RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/page02.imageset/page02@2x.png → RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_search.imageset/page02@2x.png


RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/page02.imageset/page02@3x.png → RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_search.imageset/page02@3x.png


RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/page05.imageset/Contents.json → RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_shopping_cart.imageset/Contents.json


RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/page05.imageset/page05@2x.png → RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_shopping_cart.imageset/page05@2x.png


RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/page05.imageset/page05@3x.png → RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_shopping_cart.imageset/page05@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_topic.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_topic.imageset/default_page_topic@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/Assets.xcassets/DefaultPage/default_page_topic.imageset/default_page_topic@3x.png


+ 63 - 0
RainbowPlanet/RainbowPlanet/Tools/AppStoreReview/AppStoreReview.swift

@@ -0,0 +1,63 @@
+//
+//  AppStoreReview.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/6/18.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+import StoreKit
+
+class AppStore: NSObject {
+    static let shared : AppStore = AppStore()
+    let kAppStoreAppId = "1166892045"
+    /// 跳转到appStoreUrl
+    let kAppStore = String(describing: "https://itunes.apple.com/cn/app/1166892045")
+    ///跳转到appStore评论
+    let kAppStoreReview = String(describing: "https://itunes.apple.com/cn/app/1166892045?action=write-review")
+    var viewController:UIViewController?
+    
+    /// 跳转到AppStore
+    func appStore() {
+        UIApplication.shared.openURL(URL(string: kAppStore)!)
+    }
+    
+    /// 跳转到AppStore评论
+    func appStoreReview() {
+        UIApplication.shared.openURL(URL(string: kAppStoreReview)!)
+    }
+    
+    ///只能评分,且一年只能使用三次弹框。
+    func storeReviewController() {
+        if #available(iOS 10.3, *) {
+            SKStoreReviewController.requestReview()
+        } else {
+            appStoreReview()
+        }
+    }
+    
+    ///内部加载AppStore
+    func webAppStore(viewController:UIViewController) {
+        self.viewController = viewController
+        let storeProductViewContorller = SKStoreProductViewController()
+        storeProductViewContorller.delegate = self
+        storeProductViewContorller.loadProduct(withParameters: [SKStoreProductParameterITunesItemIdentifier:kAppStoreAppId]) { (result, error) in
+            if result {
+                viewController.present(storeProductViewContorller, animated: true, completion: {
+                    
+                })
+            }else {
+                SwiftProgressHUD.shared().showWait("加载AppStore失败")
+            }
+        }
+    }
+}
+
+extension AppStore: SKStoreProductViewControllerDelegate {
+    func productViewControllerDidFinish(_ viewController: SKStoreProductViewController) {
+        self.viewController?.dismiss(animated: true) {
+            
+        }
+    }
+}

+ 23 - 0
RainbowPlanet/RainbowPlanet/Tools/Extension/Extension+UIView.swift

@@ -213,6 +213,29 @@ extension UIView {
         self.isUserInteractionEnabled = true
     }
     
+    func findViewController() -> UIViewController! {
+        return self.findControllerWithClass(UIViewController.self)
+    }
+    
+    func findNavigationController() -> UINavigationController! {
+        return self.findControllerWithClass(UINavigationController.self)
+    }
+    
+    func findTabBarController() -> UITabBarController! {
+        return self.findControllerWithClass(UITabBarController.self)
+    }
+    
+    func findControllerWithClass<T>(_ clzz: AnyClass) -> T? {
+        var responder = self.next
+        while(responder != nil) {
+            if (responder!.isKind(of: clzz)) {
+                return responder as? T
+            }
+            responder = responder?.next
+        }
+        return nil
+    }
+    
 }
 
 

+ 10 - 1
RainbowPlanet/RainbowPlanet/Tools/WKWebView/WebView.swift

@@ -71,12 +71,14 @@ class WebView: UIView {
         
         // 监听支持KVO的属性
         webView.addObserver(self, forKeyPath: "estimatedProgress", options: .new, context: nil)
+        webView.addObserver(self, forKeyPath: "title", options: .new, context: nil)
+
         //内容自适应
         webView.sizeToFit()
         self.addSubview(webView)
         
         progressView = UIProgressView(progressViewStyle: .default)
-        progressView.frame = CGRect(x: CGFloat(0.0), y: webView.y, width: CGFloat(webView.width), height: CGFloat(webConfig.progressHeight))
+        progressView.frame = CGRect(x: CGFloat(0.0), y:0, width: CGFloat(webView.width), height: CGFloat(webConfig.progressHeight))
         progressView.trackTintColor = webConfig.progressTrackTintColor
         progressView.progressTintColor = webConfig.progressTintColor
         webView.addSubview(progressView)
@@ -150,6 +152,7 @@ class WebView: UIView {
     /// 遗传webView
     public func removeWebView(){
         webView.removeObserver(self, forKeyPath: "estimatedProgress")
+        webView.removeObserver(self, forKeyPath: "title")
         if let scriptMessage = webConfig?.scriptMessageHandlerArray {
             _ = scriptMessage.map{webView.configuration.userContentController .removeScriptMessageHandler(forName: $0)}
         }
@@ -188,6 +191,12 @@ class WebView: UIView {
                 progressView .setProgress(0.0, animated: false)
             }
             NXLLog(webView.estimatedProgress)
+        } else if keyPath == "title" {
+            let vc = webView.findViewController() as? BaseViewController
+            _ = vc?.navigationBar.title = webView.title
+        }else {
+            super.observeValue(forKeyPath: keyPath, of: object, change: change, context: context)
+
         }
     }
 }