Преглед на файлове

我的页面布局完成,设置,地址管理

南鑫林 преди 6 години
родител
ревизия
75be772ded
променени са 100 файла, в които са добавени 3948 реда и са изтрити 4 реда
  1. 392 0
      RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj
  2. 0 2
      RainbowPlanet/RainbowPlanet/AppDelegate/AppDelegate.swift
  3. 10 0
      RainbowPlanet/RainbowPlanet/Macro/ColorMacro.swift
  4. 77 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/AccountSecurity/View/AccountSecuritySetTableViewCell.swift
  5. 109 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/AccountSecurity/View/AccountSecurityTableViewCell.swift
  6. 101 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/AccountSecurity/View/AccountSecurityView.swift
  7. 51 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/AccountSecurity/ViewController/AccountSecurityViewController.swift
  8. 89 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/AddressManager/View/AddressManagerAddTableViewCell.swift
  9. 139 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/AddressManager/View/AddressManagerExpressTableViewCell.swift
  10. 84 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/AddressManager/View/AddressManagerSelfMentionExpressHeaderView.swift
  11. 84 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/AddressManager/View/AddressManagerSelfMentionTableViewCell.swift
  12. 106 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/AddressManager/View/AddressManagerView.swift
  13. 50 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/AddressManager/ViewController/AddressManagerViewController.swift
  14. 100 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/EditExpressAddress/View/EditExpressAddressView.swift
  15. 40 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/EditExpressAddress/ViewController/EditExpressAddressViewController.swift
  16. 41 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/EditSelfMentionAddress/View/EditAddressFooterView.swift
  17. 97 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/EditSelfMentionAddress/View/EditAddressTableViewCell.swift
  18. 99 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/EditSelfMentionAddress/View/EditSelfMentionAddressView.swift
  19. 80 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/EditSelfMentionAddress/View/EditSetDefaultTableViewCell.swift
  20. 42 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/EditSelfMentionAddress/ViewController/EditSelfMentionAddressViewController.swift
  21. 153 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/ExpressAddressList/View/ExpressAddressListTableViewCell.swift
  22. 81 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/ExpressAddressList/View/ExpressAddressListView.swift
  23. 41 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/ExpressAddressList/ViewController/ExpressAddressListViewController.swift
  24. 44 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/Message/View/MessageCollectionViewCell.swift
  25. 76 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/Message/View/MessageNoticeHeaderCollectionReusableView.swift
  26. 65 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/Message/View/MessageOneCollectionViewCell.swift
  27. 108 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/Message/View/MessageTwoCollectionViewCell.swift
  28. 151 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/Message/View/MessageView.swift
  29. 59 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/Message/ViewController/MessageViewController.swift
  30. 154 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/MessageDetailes/View/MessageDetailesTableViewCell.swift
  31. 37 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/MessageDetailes/View/MessageDetailesTimeView.swift
  32. 70 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/MessageDetailes/View/MessageDetailesView.swift
  33. 36 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/MessageDetailes/ViewController/MessageDetailesViewController.swift
  34. 8 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/Mine/View/MineTableViewHeaderView.swift
  35. 9 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/Mine/View/MineView.swift
  36. 15 2
      RainbowPlanet/RainbowPlanet/Modules/MineModule/Mine/ViewController/MineViewController.swift
  37. 134 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/SelfMentionAddressList/View/SelfMentionAddressListTableViewCell.swift
  38. 81 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/SelfMentionAddressList/View/SelfMentionAddressListView.swift
  39. 42 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/SelfMentionAddressList/ViewController/SelfMentionAddressListViewController.swift
  40. 61 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/Set/View/SetLogoutTableViewCell.swift
  41. 74 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/Set/View/SetTableViewCell.swift
  42. 98 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/Set/View/SetView.swift
  43. 54 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/Set/ViewController/SetViewController.swift
  44. 148 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/SetPassword/View/SetPasswordView.swift
  45. 36 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/SetPassword/ViewController/SetPasswordViewController.swift
  46. 23 0
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_add.imageset/Contents.json
  47. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_add.imageset/my_address_add.png
  48. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_add.imageset/my_address_add@2x.png
  49. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_add.imageset/my_address_add@3x.png
  50. 23 0
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_check.imageset/Contents.json
  51. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_check.imageset/my_address_check.png
  52. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_check.imageset/my_address_check@2x.png
  53. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_check.imageset/my_address_check@3x.png
  54. 23 0
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_delete.imageset/Contents.json
  55. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_delete.imageset/my_address_delete.png
  56. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_delete.imageset/my_address_delete@2x.png
  57. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_delete.imageset/my_address_delete@3x.png
  58. 23 0
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_uncheck.imageset/Contents.json
  59. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_uncheck.imageset/my_address_uncheck.png
  60. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_uncheck.imageset/my_address_uncheck@2x.png
  61. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_uncheck.imageset/my_address_uncheck@3x.png
  62. 23 0
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_active.imageset/Contents.json
  63. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_active.imageset/my_message_active.png
  64. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_active.imageset/my_message_active@2x.png
  65. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_active.imageset/my_message_active@3x.png
  66. 23 0
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_attention.imageset/Contents.json
  67. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_attention.imageset/my_message_attention.png
  68. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_attention.imageset/my_message_attention@2x.png
  69. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_attention.imageset/my_message_attention@3x.png
  70. 23 0
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_comment.imageset/Contents.json
  71. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_comment.imageset/my_message_comment.png
  72. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_comment.imageset/my_message_comment@2x.png
  73. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_comment.imageset/my_message_comment@3x.png
  74. 23 0
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_indent.imageset/Contents.json
  75. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_indent.imageset/my_message_indent.png
  76. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_indent.imageset/my_message_indent@2x.png
  77. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_indent.imageset/my_message_indent@3x.png
  78. 23 0
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_letter.imageset/Contents.json
  79. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_letter.imageset/my_message_letter.png
  80. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_letter.imageset/my_message_letter@2x.png
  81. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_letter.imageset/my_message_letter@3x.png
  82. 23 0
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_like.imageset/Contents.json
  83. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_like.imageset/my_message_like.png
  84. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_like.imageset/my_message_like@2x.png
  85. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_like.imageset/my_message_like@3x.png
  86. 23 0
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_system.imageset/Contents.json
  87. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_system.imageset/my_message_system.png
  88. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_system.imageset/my_message_system@2x.png
  89. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_system.imageset/my_message_system@3x.png
  90. 23 0
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_set_phonenumber.imageset/Contents.json
  91. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_set_phonenumber.imageset/my_set_phonenumber.png
  92. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_set_phonenumber.imageset/my_set_phonenumber@2x.png
  93. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_set_phonenumber.imageset/my_set_phonenumber@3x.png
  94. 23 0
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_set_wechat.imageset/Contents.json
  95. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_set_wechat.imageset/my_set_wechat.png
  96. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_set_wechat.imageset/my_set_wechat@2x.png
  97. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_set_wechat.imageset/my_set_wechat@3x.png
  98. 23 0
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_switch_off.imageset/Contents.json
  99. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_switch_off.imageset/my_switch_off.png
  100. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_switch_off.imageset/my_switch_off@2x.png

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

@@ -9,6 +9,12 @@
 /* Begin PBXBuildFile section */
 		0A110C4CD931995B8E8BF7C5 /* Pods_RainbowPlanet.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D469F6C3768252BCB7001EDD /* Pods_RainbowPlanet.framework */; };
 		A70EBBC022561179000AD74F /* Extension+UITableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70EBBBF22561179000AD74F /* Extension+UITableView.swift */; };
+		A71AA50C2272126A008FF1A5 /* EditAddressFooterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A71AA50B2272126A008FF1A5 /* EditAddressFooterView.swift */; };
+		A71AA5102272156A008FF1A5 /* ExpressAddressListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A71AA50F2272156A008FF1A5 /* ExpressAddressListViewController.swift */; };
+		A71AA513227215B5008FF1A5 /* ExpressAddressListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A71AA512227215B5008FF1A5 /* ExpressAddressListView.swift */; };
+		A71AA5152272160A008FF1A5 /* ExpressAddressListTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A71AA5142272160A008FF1A5 /* ExpressAddressListTableViewCell.swift */; };
+		A71AA519227219D7008FF1A5 /* EditExpressAddressViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A71AA518227219D7008FF1A5 /* EditExpressAddressViewController.swift */; };
+		A71AA51C227219EF008FF1A5 /* EditExpressAddressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A71AA51B227219EF008FF1A5 /* EditExpressAddressView.swift */; };
 		A71AF0A6226EDDC8001730FE /* SearchViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A71AF0A5226EDDC8001730FE /* SearchViewController.swift */; };
 		A71AF0AA226EDDF5001730FE /* SearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A71AF0A9226EDDF5001730FE /* SearchView.swift */; };
 		A71AF0AC226EDE37001730FE /* SearchNavigationbarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A71AF0AB226EDE37001730FE /* SearchNavigationbarView.swift */; };
@@ -132,6 +138,12 @@
 		A77F2CC722320627001BD3F6 /* WRNavigationBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = A77F2CC522320627001BD3F6 /* WRNavigationBar.swift */; };
 		A77F2CC822320627001BD3F6 /* WRCustomNavigationBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = A77F2CC622320627001BD3F6 /* WRCustomNavigationBar.swift */; };
 		A77F2CCA223209F2001BD3F6 /* BaseTabbarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A77F2CC9223209F2001BD3F6 /* BaseTabbarViewController.swift */; };
+		A7824AFB2271EA2600ABA381 /* SelfMentionAddressListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7824AFA2271EA2600ABA381 /* SelfMentionAddressListView.swift */; };
+		A7824AFD2271EAC900ABA381 /* SelfMentionAddressListTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7824AFC2271EAC900ABA381 /* SelfMentionAddressListTableViewCell.swift */; };
+		A7824B002271F0DD00ABA381 /* EditSelfMentionAddressViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7824AFF2271F0DD00ABA381 /* EditSelfMentionAddressViewController.swift */; };
+		A7824B042271F10300ABA381 /* EditSelfMentionAddressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7824B032271F10300ABA381 /* EditSelfMentionAddressView.swift */; };
+		A7824B062271F25400ABA381 /* EditAddressTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7824B052271F25400ABA381 /* EditAddressTableViewCell.swift */; };
+		A7824B082271F53A00ABA381 /* EditSetDefaultTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7824B072271F53A00ABA381 /* EditSetDefaultTableViewCell.swift */; };
 		A7A97FDA2238FBAD0070F84D /* VerticalListSectionModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7A97FD62238FBAC0070F84D /* VerticalListSectionModel.swift */; };
 		A7A97FDB2238FBAD0070F84D /* VerticalListCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7A97FD72238FBAC0070F84D /* VerticalListCellModel.swift */; };
 		A7A97FDC2238FBAD0070F84D /* VerticalListCellCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7A97FD82238FBAC0070F84D /* VerticalListCellCollectionViewCell.swift */; };
@@ -153,6 +165,32 @@
 		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 */; };
+		A7CC751C22716426003C4F38 /* SetLogoutTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CC751B22716426003C4F38 /* SetLogoutTableViewCell.swift */; };
+		A7CC751F227190C5003C4F38 /* AccountSecurityViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CC751E227190C5003C4F38 /* AccountSecurityViewController.swift */; };
+		A7CC7524227190FB003C4F38 /* AccountSecurityView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CC7523227190FB003C4F38 /* AccountSecurityView.swift */; };
+		A7CC7526227196A8003C4F38 /* AccountSecurityTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CC7525227196A8003C4F38 /* AccountSecurityTableViewCell.swift */; };
+		A7CC7528227196C4003C4F38 /* AccountSecuritySetTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CC7527227196C4003C4F38 /* AccountSecuritySetTableViewCell.swift */; };
+		A7CC752C2271A1AE003C4F38 /* SetPasswordViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CC752B2271A1AE003C4F38 /* SetPasswordViewController.swift */; };
+		A7CC752F2271A1F2003C4F38 /* SetPasswordView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CC752E2271A1F2003C4F38 /* SetPasswordView.swift */; };
+		A7CC75332271ABB0003C4F38 /* AddressManagerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CC75322271ABB0003C4F38 /* AddressManagerViewController.swift */; };
+		A7CC75362271AC14003C4F38 /* AddressManagerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CC75352271AC14003C4F38 /* AddressManagerView.swift */; };
+		A7CC75382271ADD6003C4F38 /* AddressManagerSelfMentionExpressHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CC75372271ADD6003C4F38 /* AddressManagerSelfMentionExpressHeaderView.swift */; };
+		A7CC753A2271B98B003C4F38 /* AddressManagerAddTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CC75392271B98B003C4F38 /* AddressManagerAddTableViewCell.swift */; };
+		A7CC753C2271C177003C4F38 /* AddressManagerSelfMentionTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CC753B2271C177003C4F38 /* AddressManagerSelfMentionTableViewCell.swift */; };
+		A7CC753E2271C4C2003C4F38 /* AddressManagerExpressTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CC753D2271C4C2003C4F38 /* AddressManagerExpressTableViewCell.swift */; };
+		A7CC75432271E038003C4F38 /* SelfMentionAddressListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CC75422271E038003C4F38 /* SelfMentionAddressListViewController.swift */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXContainerItemProxy section */
@@ -176,6 +214,12 @@
 		57C497E128081597F165C771 /* Pods-RainbowPlanet.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RainbowPlanet.release.xcconfig"; path = "Pods/Target Support Files/Pods-RainbowPlanet/Pods-RainbowPlanet.release.xcconfig"; sourceTree = "<group>"; };
 		88DF1EFD2E202DA7C627E8A7 /* Pods_RainbowPlanetUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RainbowPlanetUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
 		A70EBBBF22561179000AD74F /* Extension+UITableView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Extension+UITableView.swift"; sourceTree = "<group>"; };
+		A71AA50B2272126A008FF1A5 /* EditAddressFooterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditAddressFooterView.swift; sourceTree = "<group>"; };
+		A71AA50F2272156A008FF1A5 /* ExpressAddressListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExpressAddressListViewController.swift; sourceTree = "<group>"; };
+		A71AA512227215B5008FF1A5 /* ExpressAddressListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExpressAddressListView.swift; sourceTree = "<group>"; };
+		A71AA5142272160A008FF1A5 /* ExpressAddressListTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExpressAddressListTableViewCell.swift; sourceTree = "<group>"; };
+		A71AA518227219D7008FF1A5 /* EditExpressAddressViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditExpressAddressViewController.swift; sourceTree = "<group>"; };
+		A71AA51B227219EF008FF1A5 /* EditExpressAddressView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditExpressAddressView.swift; sourceTree = "<group>"; };
 		A71AF0A5226EDDC8001730FE /* SearchViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchViewController.swift; sourceTree = "<group>"; };
 		A71AF0A9226EDDF5001730FE /* SearchView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchView.swift; sourceTree = "<group>"; };
 		A71AF0AB226EDE37001730FE /* SearchNavigationbarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchNavigationbarView.swift; sourceTree = "<group>"; };
@@ -312,6 +356,12 @@
 		A77F2CC522320627001BD3F6 /* WRNavigationBar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WRNavigationBar.swift; sourceTree = "<group>"; };
 		A77F2CC622320627001BD3F6 /* WRCustomNavigationBar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WRCustomNavigationBar.swift; sourceTree = "<group>"; };
 		A77F2CC9223209F2001BD3F6 /* BaseTabbarViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BaseTabbarViewController.swift; sourceTree = "<group>"; };
+		A7824AFA2271EA2600ABA381 /* SelfMentionAddressListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelfMentionAddressListView.swift; sourceTree = "<group>"; };
+		A7824AFC2271EAC900ABA381 /* SelfMentionAddressListTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelfMentionAddressListTableViewCell.swift; sourceTree = "<group>"; };
+		A7824AFF2271F0DD00ABA381 /* EditSelfMentionAddressViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditSelfMentionAddressViewController.swift; sourceTree = "<group>"; };
+		A7824B032271F10300ABA381 /* EditSelfMentionAddressView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditSelfMentionAddressView.swift; sourceTree = "<group>"; };
+		A7824B052271F25400ABA381 /* EditAddressTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditAddressTableViewCell.swift; sourceTree = "<group>"; };
+		A7824B072271F53A00ABA381 /* EditSetDefaultTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditSetDefaultTableViewCell.swift; sourceTree = "<group>"; };
 		A7A59A7722363CCB00417FA4 /* RainbowPlanet.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = RainbowPlanet.entitlements; sourceTree = "<group>"; };
 		A7A97FD62238FBAC0070F84D /* VerticalListSectionModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VerticalListSectionModel.swift; sourceTree = "<group>"; };
 		A7A97FD72238FBAC0070F84D /* VerticalListCellModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VerticalListCellModel.swift; sourceTree = "<group>"; };
@@ -334,6 +384,32 @@
 		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>"; };
+		A7CC751B22716426003C4F38 /* SetLogoutTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetLogoutTableViewCell.swift; sourceTree = "<group>"; };
+		A7CC751E227190C5003C4F38 /* AccountSecurityViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountSecurityViewController.swift; sourceTree = "<group>"; };
+		A7CC7523227190FB003C4F38 /* AccountSecurityView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountSecurityView.swift; sourceTree = "<group>"; };
+		A7CC7525227196A8003C4F38 /* AccountSecurityTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountSecurityTableViewCell.swift; sourceTree = "<group>"; };
+		A7CC7527227196C4003C4F38 /* AccountSecuritySetTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountSecuritySetTableViewCell.swift; sourceTree = "<group>"; };
+		A7CC752B2271A1AE003C4F38 /* SetPasswordViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetPasswordViewController.swift; sourceTree = "<group>"; };
+		A7CC752E2271A1F2003C4F38 /* SetPasswordView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetPasswordView.swift; sourceTree = "<group>"; };
+		A7CC75322271ABB0003C4F38 /* AddressManagerViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddressManagerViewController.swift; sourceTree = "<group>"; };
+		A7CC75352271AC14003C4F38 /* AddressManagerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddressManagerView.swift; sourceTree = "<group>"; };
+		A7CC75372271ADD6003C4F38 /* AddressManagerSelfMentionExpressHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddressManagerSelfMentionExpressHeaderView.swift; sourceTree = "<group>"; };
+		A7CC75392271B98B003C4F38 /* AddressManagerAddTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddressManagerAddTableViewCell.swift; sourceTree = "<group>"; };
+		A7CC753B2271C177003C4F38 /* AddressManagerSelfMentionTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddressManagerSelfMentionTableViewCell.swift; sourceTree = "<group>"; };
+		A7CC753D2271C4C2003C4F38 /* AddressManagerExpressTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddressManagerExpressTableViewCell.swift; sourceTree = "<group>"; };
+		A7CC75422271E038003C4F38 /* SelfMentionAddressListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelfMentionAddressListViewController.swift; sourceTree = "<group>"; };
 		A7E03A30F40582782EC5DA89 /* Pods_RainbowPlanetTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RainbowPlanetTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
 		BD9052C044FD3AE4E62D3929 /* Pods-RainbowPlanet.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RainbowPlanet.debug.xcconfig"; path = "Pods/Target Support Files/Pods-RainbowPlanet/Pods-RainbowPlanet.debug.xcconfig"; sourceTree = "<group>"; };
 		D469F6C3768252BCB7001EDD /* Pods_RainbowPlanet.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RainbowPlanet.framework; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -388,6 +464,57 @@
 			name = Pods;
 			sourceTree = "<group>";
 		};
+		A71AA50D22721537008FF1A5 /* ExpressAddressList */ = {
+			isa = PBXGroup;
+			children = (
+				A71AA511227215A9008FF1A5 /* View */,
+				A71AA50E22721559008FF1A5 /* ViewController */,
+			);
+			path = ExpressAddressList;
+			sourceTree = "<group>";
+		};
+		A71AA50E22721559008FF1A5 /* ViewController */ = {
+			isa = PBXGroup;
+			children = (
+				A71AA50F2272156A008FF1A5 /* ExpressAddressListViewController.swift */,
+			);
+			path = ViewController;
+			sourceTree = "<group>";
+		};
+		A71AA511227215A9008FF1A5 /* View */ = {
+			isa = PBXGroup;
+			children = (
+				A71AA512227215B5008FF1A5 /* ExpressAddressListView.swift */,
+				A71AA5142272160A008FF1A5 /* ExpressAddressListTableViewCell.swift */,
+			);
+			path = View;
+			sourceTree = "<group>";
+		};
+		A71AA51622721980008FF1A5 /* EditExpressAddress */ = {
+			isa = PBXGroup;
+			children = (
+				A71AA51A227219DA008FF1A5 /* View */,
+				A71AA517227219B7008FF1A5 /* ViewController */,
+			);
+			path = EditExpressAddress;
+			sourceTree = "<group>";
+		};
+		A71AA517227219B7008FF1A5 /* ViewController */ = {
+			isa = PBXGroup;
+			children = (
+				A71AA518227219D7008FF1A5 /* EditExpressAddressViewController.swift */,
+			);
+			path = ViewController;
+			sourceTree = "<group>";
+		};
+		A71AA51A227219DA008FF1A5 /* View */ = {
+			isa = PBXGroup;
+			children = (
+				A71AA51B227219EF008FF1A5 /* EditExpressAddressView.swift */,
+			);
+			path = View;
+			sourceTree = "<group>";
+		};
 		A71AF0A3226E9D8A001730FE /* SearchModule */ = {
 			isa = PBXGroup;
 			children = (
@@ -1172,6 +1299,16 @@
 		A77F2CA92232010F001BD3F6 /* MineModule */ = {
 			isa = PBXGroup;
 			children = (
+				A71AA51622721980008FF1A5 /* EditExpressAddress */,
+				A71AA50D22721537008FF1A5 /* ExpressAddressList */,
+				A7824AFE2271F0C500ABA381 /* EditSelfMentionAddress */,
+				A7CC753F2271DFF3003C4F38 /* SelfMentionAddressList */,
+				A7CC75302271AB6C003C4F38 /* AddressManager */,
+				A7CC75292271A169003C4F38 /* SetPassword */,
+				A7CC751D22719091003C4F38 /* AccountSecurity */,
+				A7CC751222716194003C4F38 /* Set */,
+				A7CC7507227151C7003C4F38 /* MessageDetailes */,
+				A7CC74E722706A06003C4F38 /* Message */,
 				A77F2CAA2232010F001BD3F6 /* Mine */,
 			);
 			path = MineModule;
@@ -1275,6 +1412,34 @@
 			path = WRNavigationBar;
 			sourceTree = "<group>";
 		};
+		A7824AFE2271F0C500ABA381 /* EditSelfMentionAddress */ = {
+			isa = PBXGroup;
+			children = (
+				A7824B022271F0E900ABA381 /* View */,
+				A7824B012271F0E000ABA381 /* ViewController */,
+			);
+			path = EditSelfMentionAddress;
+			sourceTree = "<group>";
+		};
+		A7824B012271F0E000ABA381 /* ViewController */ = {
+			isa = PBXGroup;
+			children = (
+				A7824AFF2271F0DD00ABA381 /* EditSelfMentionAddressViewController.swift */,
+			);
+			path = ViewController;
+			sourceTree = "<group>";
+		};
+		A7824B022271F0E900ABA381 /* View */ = {
+			isa = PBXGroup;
+			children = (
+				A7824B032271F10300ABA381 /* EditSelfMentionAddressView.swift */,
+				A7824B052271F25400ABA381 /* EditAddressTableViewCell.swift */,
+				A7824B072271F53A00ABA381 /* EditSetDefaultTableViewCell.swift */,
+				A71AA50B2272126A008FF1A5 /* EditAddressFooterView.swift */,
+			);
+			path = View;
+			sourceTree = "<group>";
+		};
 		A7BB68512268DCF800AB07A2 /* SelfRecommendation */ = {
 			isa = PBXGroup;
 			children = (
@@ -1351,6 +1516,195 @@
 			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 = (
+				A7CC7513227161B1003C4F38 /* View */,
+				A7CC7514227161B8003C4F38 /* ViewController */,
+			);
+			path = Set;
+			sourceTree = "<group>";
+		};
+		A7CC7513227161B1003C4F38 /* View */ = {
+			isa = PBXGroup;
+			children = (
+				A7CC751722716202003C4F38 /* SetView.swift */,
+				A7CC751922716254003C4F38 /* SetTableViewCell.swift */,
+				A7CC751B22716426003C4F38 /* SetLogoutTableViewCell.swift */,
+			);
+			path = View;
+			sourceTree = "<group>";
+		};
+		A7CC7514227161B8003C4F38 /* ViewController */ = {
+			isa = PBXGroup;
+			children = (
+				A7CC7515227161D5003C4F38 /* SetViewController.swift */,
+			);
+			path = ViewController;
+			sourceTree = "<group>";
+		};
+		A7CC751D22719091003C4F38 /* AccountSecurity */ = {
+			isa = PBXGroup;
+			children = (
+				A7CC7522227190EF003C4F38 /* View */,
+				A7CC7521227190E8003C4F38 /* ViewController */,
+			);
+			path = AccountSecurity;
+			sourceTree = "<group>";
+		};
+		A7CC7521227190E8003C4F38 /* ViewController */ = {
+			isa = PBXGroup;
+			children = (
+				A7CC751E227190C5003C4F38 /* AccountSecurityViewController.swift */,
+			);
+			path = ViewController;
+			sourceTree = "<group>";
+		};
+		A7CC7522227190EF003C4F38 /* View */ = {
+			isa = PBXGroup;
+			children = (
+				A7CC7523227190FB003C4F38 /* AccountSecurityView.swift */,
+				A7CC7525227196A8003C4F38 /* AccountSecurityTableViewCell.swift */,
+				A7CC7527227196C4003C4F38 /* AccountSecuritySetTableViewCell.swift */,
+			);
+			path = View;
+			sourceTree = "<group>";
+		};
+		A7CC75292271A169003C4F38 /* SetPassword */ = {
+			isa = PBXGroup;
+			children = (
+				A7CC752D2271A1E5003C4F38 /* View */,
+				A7CC752A2271A184003C4F38 /* ViewController */,
+			);
+			path = SetPassword;
+			sourceTree = "<group>";
+		};
+		A7CC752A2271A184003C4F38 /* ViewController */ = {
+			isa = PBXGroup;
+			children = (
+				A7CC752B2271A1AE003C4F38 /* SetPasswordViewController.swift */,
+			);
+			path = ViewController;
+			sourceTree = "<group>";
+		};
+		A7CC752D2271A1E5003C4F38 /* View */ = {
+			isa = PBXGroup;
+			children = (
+				A7CC752E2271A1F2003C4F38 /* SetPasswordView.swift */,
+			);
+			path = View;
+			sourceTree = "<group>";
+		};
+		A7CC75302271AB6C003C4F38 /* AddressManager */ = {
+			isa = PBXGroup;
+			children = (
+				A7CC75342271ABFB003C4F38 /* View */,
+				A7CC75312271AB83003C4F38 /* ViewController */,
+			);
+			path = AddressManager;
+			sourceTree = "<group>";
+		};
+		A7CC75312271AB83003C4F38 /* ViewController */ = {
+			isa = PBXGroup;
+			children = (
+				A7CC75322271ABB0003C4F38 /* AddressManagerViewController.swift */,
+			);
+			path = ViewController;
+			sourceTree = "<group>";
+		};
+		A7CC75342271ABFB003C4F38 /* View */ = {
+			isa = PBXGroup;
+			children = (
+				A7CC75352271AC14003C4F38 /* AddressManagerView.swift */,
+				A7CC75392271B98B003C4F38 /* AddressManagerAddTableViewCell.swift */,
+				A7CC753B2271C177003C4F38 /* AddressManagerSelfMentionTableViewCell.swift */,
+				A7CC753D2271C4C2003C4F38 /* AddressManagerExpressTableViewCell.swift */,
+				A7CC75372271ADD6003C4F38 /* AddressManagerSelfMentionExpressHeaderView.swift */,
+			);
+			path = View;
+			sourceTree = "<group>";
+		};
+		A7CC753F2271DFF3003C4F38 /* SelfMentionAddressList */ = {
+			isa = PBXGroup;
+			children = (
+				A7CC75412271E023003C4F38 /* View */,
+				A7CC75402271E01D003C4F38 /* ViewController */,
+			);
+			path = SelfMentionAddressList;
+			sourceTree = "<group>";
+		};
+		A7CC75402271E01D003C4F38 /* ViewController */ = {
+			isa = PBXGroup;
+			children = (
+				A7CC75422271E038003C4F38 /* SelfMentionAddressListViewController.swift */,
+			);
+			path = ViewController;
+			sourceTree = "<group>";
+		};
+		A7CC75412271E023003C4F38 /* View */ = {
+			isa = PBXGroup;
+			children = (
+				A7824AFA2271EA2600ABA381 /* SelfMentionAddressListView.swift */,
+				A7824AFC2271EAC900ABA381 /* SelfMentionAddressListTableViewCell.swift */,
+			);
+			path = View;
+			sourceTree = "<group>";
+		};
 		FA8AAFBADE8BD144A5C36FDB /* Frameworks */ = {
 			isa = PBXGroup;
 			children = (
@@ -1648,11 +2002,15 @@
 				A77F2C9E2231FDDC001BD3F6 /* BaseViewController.swift in Sources */,
 				A7284A75225465DD000BAEC4 /* SwiftMoyaNetWorkServicePay.swift in Sources */,
 				A77F2CC722320627001BD3F6 /* WRNavigationBar.swift in Sources */,
+				A71AA51C227219EF008FF1A5 /* EditExpressAddressView.swift in Sources */,
+				A7CC751122715AE3003C4F38 /* MessageDetailesTimeView.swift in Sources */,
 				A7BB684F2268DCEC00AB07A2 /* SelfRecommendationViewController.swift in Sources */,
 				A72A72BE22321DE000B21995 /* Extension+RxTimer.swift in Sources */,
+				A7CC74EA22706ACD003C4F38 /* MessageViewController.swift in Sources */,
 				A72A72C422321DE000B21995 /* Extension+CAGradientLayer.swift in Sources */,
 				A7778CA72243A05400C7C47A /* IQKeyboardManagerSwiftManager.swift in Sources */,
 				A7CC74D4226FF1AA003C4F38 /* MineView.swift in Sources */,
+				A71AA5152272160A008FF1A5 /* ExpressAddressListTableViewCell.swift in Sources */,
 				A72A72B722321DE000B21995 /* Extension+NSMutableAttributedString.swift in Sources */,
 				A7BB6857226965C100AB07A2 /* SelfRecommendationHeaderCollectionReusableView.swift in Sources */,
 				A7BB68672269B1DD00AB07A2 /* AddressPOIViewController.swift in Sources */,
@@ -1662,6 +2020,7 @@
 				A7CC74D822700359003C4F38 /* MineTableViewHeaderView.swift in Sources */,
 				A71D2A602265673A00A55D16 /* RegisterLoginView.swift in Sources */,
 				A73D7C682268A032002A4CE3 /* SwiftyStarRatingView.swift in Sources */,
+				A71AA5102272156A008FF1A5 /* ExpressAddressListViewController.swift in Sources */,
 				A71AF0AE226EF0A3001730FE /* SearchHeaderCollectionReusableView.swift in Sources */,
 				A7636AC52268139C00374F9E /* LocationViewController.swift in Sources */,
 				A7C3DD1C226422D200FA262E /* SwiftMoyaNetWorkServiceSMS.swift in Sources */,
@@ -1669,10 +2028,16 @@
 				A72A7386223396CB00B21995 /* SwiftMoyaNetWorkManager.swift in Sources */,
 				A71AF0B0226EF185001730FE /* SearchCollectionViewCell.swift in Sources */,
 				A77F2CCA223209F2001BD3F6 /* BaseTabbarViewController.swift in Sources */,
+				A7CC75332271ABB0003C4F38 /* AddressManagerViewController.swift in Sources */,
+				A7CC750D227157DA003C4F38 /* MessageDetailesView.swift in Sources */,
+				A71AA519227219D7008FF1A5 /* EditExpressAddressViewController.swift in Sources */,
 				A729B5B022671310004AE098 /* MobileLoginView.swift in Sources */,
+				A71AA50C2272126A008FF1A5 /* EditAddressFooterView.swift in Sources */,
+				A7CC7528227196C4003C4F38 /* AccountSecuritySetTableViewCell.swift in Sources */,
 				A72A726822321DBD00B21995 /* UMManager.swift in Sources */,
 				A729B5AD2266FF45004AE098 /* BindPhoneNumberView.swift in Sources */,
 				A7CC74E62270628B003C4F38 /* DeliveryMethodTypeModel.swift in Sources */,
+				A7824AFD2271EAC900ABA381 /* SelfMentionAddressListTableViewCell.swift in Sources */,
 				A7CC74DA22702E41003C4F38 /* MineOrderTableViewCell.swift in Sources */,
 				A77F2CB92232010F001BD3F6 /* ShoppingCartViewController.swift in Sources */,
 				A72A72B822321DE000B21995 /* Extension+UserDefaults.swift in Sources */,
@@ -1682,25 +2047,35 @@
 				A72A72D322321E2700B21995 /* CacheMacro.swift in Sources */,
 				A71AF0BA226F00F8001730FE /* SearchResultView.swift in Sources */,
 				A77F2CB52232010F001BD3F6 /* ShoppingMallViewController.swift in Sources */,
+				A71AA513227215B5008FF1A5 /* ExpressAddressListView.swift in Sources */,
+				A7824B082271F53A00ABA381 /* EditSetDefaultTableViewCell.swift in Sources */,
 				A77F2CC3223203BA001BD3F6 /* AppDelegate+Window.swift in Sources */,
+				A7824B062271F25400ABA381 /* EditAddressTableViewCell.swift in Sources */,
 				A70EBBC022561179000AD74F /* Extension+UITableView.swift in Sources */,
 				A72A72B022321DE000B21995 /* CGView.swift in Sources */,
 				A72A73142232475E00B21995 /* AlipayManager.swift in Sources */,
+				A7824B042271F10300ABA381 /* EditSelfMentionAddressView.swift in Sources */,
 				A71AF0B6226EF99A001730FE /* SearchResultViewController.swift in Sources */,
 				A72A72D522321E2700B21995 /* ColorMacro.swift in Sources */,
 				A72A7333223256E100B21995 /* PayManager.swift in Sources */,
 				A775CC00223774A300EBDCF8 /* ShoppingMallView.swift in Sources */,
+				A7CC7526227196A8003C4F38 /* AccountSecurityTableViewCell.swift in Sources */,
+				A7CC74F122706FE3003C4F38 /* MessageOneCollectionViewCell.swift in Sources */,
 				A72A72D622321E2700B21995 /* ThirdPartyMacro.swift in Sources */,
 				A7284401224DBB7700F82F30 /* SwiftMoyaNetWorkServiceUser.swift in Sources */,
 				A72843FC224DB6B800F82F30 /* SwiftMoyaServiceUserApi.swift in Sources */,
+				A7CC750622714306003C4F38 /* MessageNoticeHeaderCollectionReusableView.swift in Sources */,
 				A7C3DD1A226422BF00FA262E /* SwiftMoyaServiceSMSApi.swift in Sources */,
 				A7284A7722547333000BAEC4 /* AlipayResultModel.swift in Sources */,
 				A72A72B422321DE000B21995 /* Extension+UIImage.swift in Sources */,
 				A7BB68552268DE8600AB07A2 /* SelfRecommendationView.swift in Sources */,
 				A72A72AF22321DE000B21995 /* AppInfo.swift in Sources */,
 				A72A72D422321E2700B21995 /* EnumMacro.swift in Sources */,
+				A7CC753A2271B98B003C4F38 /* AddressManagerAddTableViewCell.swift in Sources */,
 				A71AF0AC226EDE37001730FE /* SearchNavigationbarView.swift in Sources */,
+				A7CC75432271E038003C4F38 /* SelfMentionAddressListViewController.swift in Sources */,
 				A7778CDF22461BAD00C7C47A /* PhoneCountryAreaSectionHeaderView.swift in Sources */,
+				A7CC751A22716254003C4F38 /* SetTableViewCell.swift in Sources */,
 				A775CC0322377C6500EBDCF8 /* EmptyView.swift in Sources */,
 				A72A72A922321DE000B21995 /* NumberKeyboard.swift in Sources */,
 				A72A72AA22321DE000B21995 /* Log.swift in Sources */,
@@ -1714,11 +2089,15 @@
 				A7778CB32244D73400C7C47A /* RegisterLoginViewController.swift in Sources */,
 				A7A97FDB2238FBAD0070F84D /* VerticalListCellModel.swift in Sources */,
 				A71D2A6522657D5900A55D16 /* UIScrollView+MJRefreshEX.m in Sources */,
+				A7CC752F2271A1F2003C4F38 /* SetPasswordView.swift in Sources */,
+				A7CC75362271AC14003C4F38 /* AddressManagerView.swift in Sources */,
 				A7BB685922696B9200AB07A2 /* SelfRecommendationCollectionViewCell.swift in Sources */,
 				A7636AC822682BAF00374F9E /* LocationView.swift in Sources */,
 				A738D205225AF90D00EEE860 /* WeChatpayOrderModel.swift in Sources */,
+				A7CC7524227190FB003C4F38 /* AccountSecurityView.swift in Sources */,
 				A72A72BD22321DE000B21995 /* Extension+UIColor.swift in Sources */,
 				A77F2CC822320627001BD3F6 /* WRCustomNavigationBar.swift in Sources */,
+				A7CC74EF22706CCA003C4F38 /* MessageView.swift in Sources */,
 				A7CC74E0227042A4003C4F38 /* MineServiceTableViewCell.swift in Sources */,
 				A72A72BC22321DE000B21995 /* Extension+UIAlertController.swift in Sources */,
 				A72A72B122321DE000B21995 /* UIScrollView+MJRefreshEX.m in Sources */,
@@ -1727,10 +2106,14 @@
 				A72A72C322321DE000B21995 /* Extension+Date.swift in Sources */,
 				A7778CAB2244B12500C7C47A /* CountDownManager.swift in Sources */,
 				A775CBFE2237493600EBDCF8 /* ShoppingMallNavigationBarView.swift in Sources */,
+				A7CC751822716202003C4F38 /* SetView.swift in Sources */,
 				A72A72C622321DE000B21995 /* WebView.swift in Sources */,
 				A72A72D122321E2700B21995 /* HTMLURLMacro.swift in Sources */,
 				A72A73162232481600B21995 /* WeChatpayManager.swift in Sources */,
+				A7CC750F22715AAC003C4F38 /* MessageDetailesTableViewCell.swift in Sources */,
+				A7CC7516227161D5003C4F38 /* SetViewController.swift in Sources */,
 				A7778CBA2244F14B00C7C47A /* Extension+UIViewController.swift in Sources */,
+				A7CC752C2271A1AE003C4F38 /* SetPasswordViewController.swift in Sources */,
 				A7CC74E222704429003C4F38 /* MineServiceCollectionViewCell.swift in Sources */,
 				A738D202225AD6AD00EEE860 /* Extension+UICollectionView.swift in Sources */,
 				A7CC74D6226FF421003C4F38 /* MineNavigationBarView.swift in Sources */,
@@ -1739,16 +2122,23 @@
 				A7284A542252FB5C000BAEC4 /* PaginationModel.swift in Sources */,
 				A72A72D022321E2700B21995 /* FontMacro.swift in Sources */,
 				A77F2C982231FD25001BD3F6 /* BaseNavigationViewController.swift in Sources */,
+				A7824AFB2271EA2600ABA381 /* SelfMentionAddressListView.swift in Sources */,
 				A72A72AB22321DE000B21995 /* SwiftProgressHUD.swift in Sources */,
+				A7CC751C22716426003C4F38 /* SetLogoutTableViewCell.swift in Sources */,
+				A7CC74F3227070D2003C4F38 /* MessageTwoCollectionViewCell.swift in Sources */,
 				A7778CD522460D8E00C7C47A /* PhoneCountryAreaTableViewCell.swift in Sources */,
+				A7CC750A22715755003C4F38 /* MessageDetailesViewController.swift in Sources */,
 				A71AF0B8226EF9EC001730FE /* SearchResultNavigationbarView.swift in Sources */,
 				A729B5B42267254B004AE098 /* PasswordLoginViewController.swift in Sources */,
 				A77F2C612231FB49001BD3F6 /* AppDelegate.swift in Sources */,
 				A729B5A82266F2E0004AE098 /* AlertSheetView.swift in Sources */,
+				A7CC75382271ADD6003C4F38 /* AddressManagerSelfMentionExpressHeaderView.swift in Sources */,
 				A738D66F225D9BD900EEE860 /* UMLoginModel.swift in Sources */,
 				A72A726722321DBD00B21995 /* LocationModel.swift in Sources */,
 				A72A72D222321E2700B21995 /* Common.swift in Sources */,
 				A71AF0A6226EDDC8001730FE /* SearchViewController.swift in Sources */,
+				A7824B002271F0DD00ABA381 /* EditSelfMentionAddressViewController.swift in Sources */,
+				A7CC751F227190C5003C4F38 /* AccountSecurityViewController.swift in Sources */,
 				A7284440224DFACD00F82F30 /* InfoModel.swift in Sources */,
 				A72A72B522321DE000B21995 /* Extension+UITextView.swift in Sources */,
 				A7541502224C5ECB002480B5 /* BaiduMapManager.swift in Sources */,
@@ -1756,12 +2146,14 @@
 				A7284A522252EE9A000BAEC4 /* RootModel.swift in Sources */,
 				A72A7388223396CB00B21995 /* ApiMacro.swift in Sources */,
 				A72A72B922321DE000B21995 /* Extension+Array.swift in Sources */,
+				A7CC753E2271C4C2003C4F38 /* AddressManagerExpressTableViewCell.swift in Sources */,
 				A7778CDD2246121500C7C47A /* PhoneCountryAreaListMdoel.swift in Sources */,
 				A72A733522325A4B00B21995 /* AppDelegate+HandleOpen.swift in Sources */,
 				A72A72AC22321DE000B21995 /* Regex.swift in Sources */,
 				A7778CC52246035700C7C47A /* PhoneCountryAreaViewController.swift in Sources */,
 				A72A72CF22321E2700B21995 /* NotificationCenterMacro.swift in Sources */,
 				A72A72BF22321DE000B21995 /* Extension+UIButton.swift in Sources */,
+				A7CC753C2271C177003C4F38 /* AddressManagerSelfMentionTableViewCell.swift in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};

+ 0 - 2
RainbowPlanet/RainbowPlanet/AppDelegate/AppDelegate.swift

@@ -15,8 +15,6 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
 
 
     func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
-        //初始化高德地图
-//        AMapManager.shared().initAMap()
         //初始化百度地图
         BaiduMapManager.shared().initBaiduMap()
         //初始化窗口

+ 10 - 0
RainbowPlanet/RainbowPlanet/Macro/ColorMacro.swift

@@ -76,6 +76,8 @@ let kf6f6f6Color = UIColor(hexString: "f6f6f6")
 
 let kf9f9f9Color = UIColor(hexString: "f9f9f9")
 
+let k9F9F9FColor = UIColor(hexString: "9F9F9F")
+
 let kfd6031Color = UIColor(hexString: "fd6031")
 
 let kffa500Color = UIColor(hexString: "ffa500")
@@ -93,3 +95,11 @@ let kfe352bColor = UIColor(hexString: "fe352b")
 let kbbbbbbColor = UIColor(hexString: "bbbbbb")
 
 let kFFAC33Color = UIColor(hexString: "FFAC33")
+
+let kEDEEF0Color = UIColor(hexString: "EDEEF0")
+
+let kFFAA20Color = UIColor(hexString: "FFAA20")
+
+let kFE5706Color = UIColor(hexString: "FE5706")
+
+let kFFF1EBColor = UIColor(hexString: "FFF1EB")

+ 77 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/AccountSecurity/View/AccountSecuritySetTableViewCell.swift

@@ -0,0 +1,77 @@
+//
+//  AccountSecuritySetTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/4/25.
+//  Copyright © 2019 南鑫林. All rights reserved.
+//
+
+import UIKit
+
+class AccountSecuritySetTableViewCell: UITableViewCell {
+    
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> AccountSecuritySetTableViewCell {
+        let ID = "AccountSecuritySetTableViewCell"
+        tableView.register(AccountSecuritySetTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : AccountSecuritySetTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! AccountSecuritySetTableViewCell
+        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
+        accessoryType = .disclosureIndicator
+        addSubview(titleLabel)
+        contentView.addSubview(detailsLabel)
+    }
+    
+    private func setupLayouts() {
+        titleLabel.snp.makeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.left.equalTo(14)
+        }
+        
+        detailsLabel.snp.makeConstraints { (make) in
+            make.centerY.right.equalToSuperview()
+        }
+        
+    }
+    
+    private lazy var titleLabel: UILabel = {
+        let titleLabel = UILabel()
+        titleLabel.textColor = k333333Color
+        titleLabel.font = kRegularFont16
+        return titleLabel
+    }()
+    
+    private lazy var detailsLabel: UILabel = {
+        let detailsLabel = UILabel()
+        detailsLabel.textColor = k999999Color
+        detailsLabel.font = kRegularFont14
+        detailsLabel.text = "未设置"
+        return detailsLabel
+    }()
+    
+    var titles : [String]? {
+        didSet {
+            titleLabel.text = titles?[(indexPath?.row)!]
+        }
+    }
+
+}

+ 109 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/AccountSecurity/View/AccountSecurityTableViewCell.swift

@@ -0,0 +1,109 @@
+//
+//  AccountSecurityTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/4/25.
+//  Copyright © 2019 南鑫林. All rights reserved.
+//
+
+import UIKit
+
+class AccountSecurityTableViewCell: UITableViewCell {
+    
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> AccountSecurityTableViewCell {
+        let ID = "AccountSecurityTableViewCell"
+        tableView.register(AccountSecurityTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : AccountSecurityTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! AccountSecurityTableViewCell
+        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
+        accessoryType = .disclosureIndicator
+        addSubview(iconImageView)
+        addSubview(titleLabel)
+        contentView.addSubview(detailsLabel)
+        addSubview(lineLabel)
+
+    }
+    
+    private func setupLayouts() {
+        iconImageView.snp.makeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.left.equalTo(14)
+            make.size.equalTo(40)
+        }
+        titleLabel.snp.remakeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.left.equalTo(iconImageView.snp.right).offset(10)
+        }
+        
+        detailsLabel.snp.remakeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.right.equalToSuperview()
+        }
+        lineLabel.snp.makeConstraints { (make) in
+            make.bottom.right.equalToSuperview()
+            make.left.equalTo(14)
+            make.height.equalTo(0.5)
+        }
+        
+    }
+    
+    private lazy var iconImageView: UIImageView = {
+        let iconImageView = UIImageView()
+        return iconImageView
+    }()
+    
+    private lazy var titleLabel: UILabel = {
+        let titleLabel = UILabel()
+        titleLabel.textColor = k333333Color
+        titleLabel.font = kRegularFont15
+        return titleLabel
+    }()
+    
+    private lazy var detailsLabel: UILabel = {
+        let detailsLabel = UILabel()
+        detailsLabel.textColor = k999999Color
+        detailsLabel.font = kRegularFont14
+        detailsLabel.text = "未绑定"
+        return detailsLabel
+    }()
+    
+    private lazy var lineLabel: UILabel = {
+        let lineLabel = UILabel()
+        lineLabel.backgroundColor = kf5f5f5Color
+        return lineLabel
+    }()
+    
+    var titles : [String]? {
+        didSet {
+            titleLabel.text = titles?[(indexPath?.row)!]
+        }
+    }
+    
+    var icons : [String]? {
+        didSet {
+            iconImageView.image = kImage(name: (icons?[(indexPath?.row)!])!)
+        }
+    }
+
+}

+ 101 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/AccountSecurity/View/AccountSecurityView.swift

@@ -0,0 +1,101 @@
+//
+//  AccountSecurityView.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/4/25.
+//  Copyright © 2019 南鑫林. All rights reserved.
+//
+
+import UIKit
+
+class AccountSecurityView: BaseView {
+
+    typealias DidSelectRowClosure = (_ indexPath: IndexPath) -> Void
+    var didSelectRowClosure : DidSelectRowClosure?
+    
+    let sectionTitles = [["手机号码","微信号"],["设置密码"]]
+    let sectionIcons = [["my_set_phonenumber","my_set_wechat"]]
+    
+    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.separatorStyle = .none
+        return tableView
+    }()
+}
+
+extension AccountSecurityView: UITableViewDelegate,UITableViewDataSource {
+    
+    
+    func numberOfSections(in tableView: UITableView) -> Int {
+        return sectionTitles.count
+    }
+    
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        return sectionTitles[section].count
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        switch indexPath.section {
+        case 0:
+            let cell = AccountSecurityTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+            cell.titles = sectionTitles[indexPath.section]
+            cell.icons = sectionIcons[indexPath.section]
+            return cell
+        default:
+            let cell = AccountSecuritySetTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+            cell.titles = sectionTitles[indexPath.section]
+            return cell
+        }
+        
+    }
+    
+    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+        if let didSelectRowClosure = self.didSelectRowClosure {
+            didSelectRowClosure(indexPath)
+        }
+    }
+    
+    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
+        switch indexPath.section {
+        case 0:
+            return 69
+        default:
+            return 48
+        }
+    }
+    
+    
+    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
+        return nil
+    }
+    
+    
+    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
+        return 10
+    }
+    
+    func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
+        return nil
+    }
+    
+    func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
+        return 0.0000001
+    }
+    
+}
+
+
+

+ 51 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/AccountSecurity/ViewController/AccountSecurityViewController.swift

@@ -0,0 +1,51 @@
+//
+//  AccountSecurityViewController.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/4/25.
+//  Copyright © 2019 南鑫林. All rights reserved.
+//
+
+import UIKit
+
+class AccountSecurityViewController: BaseViewController {
+
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        setupViews()
+        setupLayouts()
+    }
+    
+    override func setupViews() {
+        navigationBar.title = "账号安全"
+        view.addSubview(accountSecurityView)
+    }
+    
+    override func setupLayouts() {
+        accountSecurityView.snp.makeConstraints { (make) in
+            make.top.equalTo(kNavBarTotalHeight)
+            make.left.right.bottom.equalToSuperview()
+        }
+    }
+    
+    private lazy var accountSecurityView: AccountSecurityView = {
+        let accountSecurityView = AccountSecurityView()
+        accountSecurityView.didSelectRowClosure = {
+            [weak self] indexPath in
+            switch indexPath.section {
+            case 1:
+                switch indexPath.row {
+                case 0:
+                    self?.navigationController?.pushViewController(SetPasswordViewController(), animated: true)
+                    break
+                default:
+                    break
+                }
+                break
+            default:
+                break
+            }
+        }
+        return accountSecurityView
+    }()
+}

+ 89 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/AddressManager/View/AddressManagerAddTableViewCell.swift

@@ -0,0 +1,89 @@
+//
+//  AddressManagerAddTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/4/25.
+//  Copyright © 2019 南鑫林. All rights reserved.
+//
+
+import UIKit
+
+class AddressManagerAddTableViewCell: UITableViewCell {
+    
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> AddressManagerAddTableViewCell {
+        let ID = "AddressManagerAddTableViewCell"
+        tableView.register(AddressManagerAddTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : AddressManagerAddTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! AddressManagerAddTableViewCell
+        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(plusImageView)
+        addSubview(titleLabel)
+        addSubview(lineLabel)
+
+    }
+    
+    private func setupLayouts() {
+        titleLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(26)
+            make.left.equalTo(52)
+            make.bottom.equalTo(-26)
+            make.right.equalTo(14)
+        }
+        plusImageView.snp.makeConstraints { (make) in
+            make.centerY.equalTo(titleLabel)
+            make.left.equalTo(14)
+            make.size.equalTo(18)
+        }
+        lineLabel.snp.makeConstraints { (make) in
+            make.top.right.equalToSuperview()
+            make.left.equalTo(14)
+            make.height.equalTo(0.5)
+        }
+    }
+    
+    private lazy var plusImageView: UIImageView = {
+        let plusImageView = UIImageView()
+        plusImageView.image = kImage(name: "my_address_add")
+        return plusImageView
+    }()
+    
+    private lazy var titleLabel: UILabel = {
+        let titleLabel = UILabel()
+        titleLabel.textColor = k333333Color
+        titleLabel.font = kRegularFont15
+        return titleLabel
+    }()
+    
+    private lazy var lineLabel: UILabel = {
+        let lineLabel = UILabel()
+        lineLabel.backgroundColor = kf5f5f5Color
+        return lineLabel
+    }()
+    
+    var addAddresses : [String]? {
+        didSet {
+            titleLabel.text = addAddresses![(indexPath?.row)!]
+        }
+    }
+
+}

+ 139 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/AddressManager/View/AddressManagerExpressTableViewCell.swift

@@ -0,0 +1,139 @@
+//
+//  AddressManagerExpressTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/4/25.
+//  Copyright © 2019 南鑫林. All rights reserved.
+//
+
+import UIKit
+
+class AddressManagerExpressTableViewCell: UITableViewCell {
+
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> AddressManagerExpressTableViewCell {
+        let ID = "AddressManagerExpressTableViewCell"
+        tableView.register(AddressManagerExpressTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : AddressManagerExpressTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! AddressManagerExpressTableViewCell
+        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(nameLabel)
+        addSubview(moblieLabel)
+        addSubview(defalutLabel)
+        addSubview(addressLabel)
+        addSubview(selectedButton)
+        addSubview(lineLabel)
+    }
+    
+    private func setupLayouts() {
+        nameLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(15)
+            make.left.equalTo(52)
+            make.height.equalTo(23)
+        }
+        
+        moblieLabel.snp.makeConstraints { (make) in
+            make.left.equalTo(nameLabel.snp.right).offset(10)
+            make.centerY.equalTo(nameLabel)
+            make.height.equalTo(20)
+        }
+        
+        addressLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(nameLabel.snp.bottom).offset(5)
+            make.left.equalTo(92)
+            make.right.equalTo(-14)
+            make.bottom.equalTo(-15)
+        }
+        
+        defalutLabel.snp.makeConstraints { (make) in
+            make.left.equalTo(nameLabel)
+            make.top.equalTo(addressLabel)
+            make.width.equalTo(36)
+            make.height.equalTo(17)
+        }
+        
+        selectedButton.snp.makeConstraints { (make) in
+            make.left.equalTo(14)
+            make.top.equalTo(addressLabel.snp.top)
+            make.size.equalTo(16)
+        }
+        
+        lineLabel.snp.makeConstraints { (make) in
+            make.top.right.equalToSuperview()
+            make.left.equalTo(14)
+            make.height.equalTo(0.5)
+        }
+    }
+    
+    private lazy var nameLabel: UILabel = {
+        let nameLabel = UILabel()
+        nameLabel.text = "姓名"
+        nameLabel.textColor = k333333Color
+        nameLabel.font = kMediumFont16
+        return nameLabel
+    }()
+    
+    private lazy var moblieLabel: UILabel = {
+        let moblieLabel = UILabel()
+        moblieLabel.text = "18392056542"
+        moblieLabel.textColor = k999999Color
+        moblieLabel.font = kRegularFont14
+        return moblieLabel
+    }()
+    
+    private lazy var defalutLabel: UILabel = {
+        let defalutLabel = UILabel()
+        defalutLabel.backgroundColor = kFFF1EBColor
+        defalutLabel.text = "默认"
+        defalutLabel.textColor = kFE5706Color
+        defalutLabel.font = kRegularFont13
+        defalutLabel.cornerRadius = 17/2
+        defalutLabel.masksToBounds = true
+        defalutLabel.textAlignment = .center
+        return defalutLabel
+    }()
+    
+    private lazy var selectedButton: UIButton = {
+        let selectedButton = UIButton(type: UIButton.ButtonType.custom)
+        selectedButton.setImage(kImage(name: "my_address_uncheck"), for: UIControl.State.normal)
+        selectedButton.setImage(kImage(name: "my_address_check"), for: UIControl.State.selected)
+        return selectedButton
+    }()
+    
+    private lazy var addressLabel: UILabel = {
+        let addressLabel = UILabel()
+        addressLabel.text = "陕西省 西安市 雁塔区 曲江街道 翠华南路创意盒子"
+        addressLabel.textColor = k333333Color
+        addressLabel.font = kRegularFont14
+        addressLabel.numberOfLines = 0
+        return addressLabel
+    }()
+    
+    private lazy var lineLabel: UILabel = {
+        let lineLabel = UILabel()
+        lineLabel.backgroundColor = kf5f5f5Color
+        return lineLabel
+    }()
+    
+    
+
+}

+ 84 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/AddressManager/View/AddressManagerSelfMentionExpressHeaderView.swift

@@ -0,0 +1,84 @@
+//
+//  AddressManagerSelfMentionExpressHeaderView.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/4/25.
+//  Copyright © 2019 南鑫林. All rights reserved.
+//
+
+import UIKit
+
+class AddressManagerSelfMentionExpressHeaderView: BaseView {
+    
+    typealias ManagerClosure = (_ section:Int) -> Void
+    var managerClosure: ManagerClosure?
+    
+    override func setupViews() {
+        backgroundColor = kf7f8faColor
+        addSubview(bgView)
+        bgView.addSubview(titleLabel)
+        bgView.addSubview(managerButton)
+    }
+    
+    override func setupLayouts() {
+        bgView.snp.makeConstraints { (make) in
+            make.bottom.left.right.equalToSuperview()
+            make.height.equalTo(48)
+        }
+        titleLabel.snp.makeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.left.equalTo(14)
+        }
+        managerButton.snp.makeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.right.equalTo(-14)
+        }
+        managerButton.layoutButton(edgeInsetsStyle: ButtonEdgeInsetsStyle.right, imageTitleSpace: 4)
+
+        
+    }
+    
+    private lazy var bgView: UIView = {
+        let bgView = UIView()
+        bgView.backgroundColor = UIColor.white
+        return bgView
+    }()
+    
+    private lazy var titleLabel: UILabel = {
+        let titleLabel = UILabel()
+        titleLabel.textColor = k333333Color
+        titleLabel.font = kRegularFont16
+        return titleLabel
+    }()
+    
+    private lazy var managerButton: UIButton = {
+        let managerButton = UIButton(type: UIButton.ButtonType.custom)
+        managerButton.setTitle("管理", for: UIControl.State.normal)
+        managerButton.setTitleColor(k999999Color, for: UIControl.State.normal)
+        managerButton.titleLabel?.font = kRegularFont14
+        managerButton.setImage(kImage(name: "my_arrows_unfold"), for: UIControl.State.normal)
+        managerButton.rx.tap.subscribe(onNext: {
+            [weak self] (data) in
+            
+            if let managerClosure = self?.managerClosure {
+                managerClosure((self?.section!)!)
+            }
+            
+        }).disposed(by: disposeBag)
+        return managerButton
+    }()
+    
+    var section:Int? {
+        didSet {
+            
+        }
+    }
+    
+    var headerTitls:[String]? {
+        didSet {
+            titleLabel.text = headerTitls![section!]
+        }
+    }
+    
+    
+}

+ 84 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/AddressManager/View/AddressManagerSelfMentionTableViewCell.swift

@@ -0,0 +1,84 @@
+//
+//  AddressManagerSelfMentionTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/4/25.
+//  Copyright © 2019 南鑫林. All rights reserved.
+//
+
+import UIKit
+
+class AddressManagerSelfMentionTableViewCell: UITableViewCell {
+    
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> AddressManagerSelfMentionTableViewCell {
+        let ID = "AddressManagerSelfMentionTableViewCell"
+        tableView.register(AddressManagerSelfMentionTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : AddressManagerSelfMentionTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! AddressManagerSelfMentionTableViewCell
+        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(selectedButton)
+        addSubview(addressLabel)
+        addSubview(lineLabel)
+    }
+    
+    private func setupLayouts() {
+        addressLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(26)
+            make.left.equalTo(52)
+            make.right.equalTo(-14)
+            make.bottom.equalTo(-26)
+        }
+        selectedButton.snp.makeConstraints { (make) in
+            make.left.equalTo(14)
+            make.top.equalTo(addressLabel.snp.top).offset(3)
+            make.size.equalTo(16)
+        }
+        lineLabel.snp.makeConstraints { (make) in
+            make.top.right.equalToSuperview()
+            make.left.equalTo(14)
+            make.height.equalTo(0.5)
+        }
+    }
+    
+    private lazy var selectedButton: UIButton = {
+        let selectedButton = UIButton(type: UIButton.ButtonType.custom)
+        selectedButton.setImage(kImage(name: "my_address_uncheck"), for: UIControl.State.normal)
+        selectedButton.setImage(kImage(name: "my_address_check"), for: UIControl.State.selected)
+        return selectedButton
+    }()
+    
+    private lazy var addressLabel: UILabel = {
+        let addressLabel = UILabel()
+        addressLabel.text = "曲江华府智能柜机"
+        addressLabel.textColor = k333333Color
+        addressLabel.font = kMediumFont16
+        return addressLabel
+    }()
+    
+    private lazy var lineLabel: UILabel = {
+        let lineLabel = UILabel()
+        lineLabel.backgroundColor = kf5f5f5Color
+        return lineLabel
+    }()
+
+}

+ 106 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/AddressManager/View/AddressManagerView.swift

@@ -0,0 +1,106 @@
+//
+//  AddressManagerView.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/4/25.
+//  Copyright © 2019 南鑫林. All rights reserved.
+//
+
+import UIKit
+
+class AddressManagerView: BaseView {
+
+    typealias DidSelectRowClosure = (_ indexPath: IndexPath) -> Void
+    var didSelectRowClosure : DidSelectRowClosure?
+    
+    typealias ManagerClosur = (_ section: Int) -> Void
+    var managerClosur : ManagerClosur?
+    
+    
+    let headerTitls = ["自提地址","快递收货地址"]
+    let addAddresses = [["添加自提地址"],["添加快递收货地址"]]
+
+    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.separatorStyle = .none
+        tableView.estimatedRowHeight = 74
+        return tableView
+    }()
+
+}
+
+extension AddressManagerView: UITableViewDelegate,UITableViewDataSource {
+    
+    
+    func numberOfSections(in tableView: UITableView) -> Int {
+        return headerTitls.count
+    }
+    
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        return 1
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        let cell = AddressManagerExpressTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+//        cell.addAddresses = addAddresses[indexPath.section]
+        return cell
+        
+    }
+    
+    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+        if let didSelectRowClosure = self.didSelectRowClosure {
+            didSelectRowClosure(indexPath)
+        }
+    }
+    
+    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
+        return UITableView.automaticDimension
+    }
+    
+    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
+        let heaerView = AddressManagerSelfMentionExpressHeaderView(frame: CGRect(x: 0, y: 0, width: kScreenWidth, height: section == 0 ? 58 : 72))
+        heaerView.section = section
+        heaerView.headerTitls = headerTitls
+        heaerView.managerClosure = {
+            [weak self] section in
+            if let managerClosure = self?.managerClosur {
+                managerClosure(section)
+            }
+        }
+        return heaerView
+    }
+    
+    
+    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
+        switch section {
+        case 0:
+            return 58
+        case 1:
+            return 72
+        default:
+            return 0
+        }
+    }
+    
+    func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
+        return nil
+    }
+    
+    func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
+        return 0.0000001
+    }
+    
+}

+ 50 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/AddressManager/ViewController/AddressManagerViewController.swift

@@ -0,0 +1,50 @@
+//
+//  AddressManagerViewController.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/4/25.
+//  Copyright © 2019 南鑫林. All rights reserved.
+//
+
+import UIKit
+
+class AddressManagerViewController: BaseViewController {
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        setupViews()
+        setupLayouts()
+    }
+    
+    override func setupViews() {
+        navigationBar.title = "地址管理"
+        view.addSubview(addressManagerView)
+    }
+    
+    override func setupLayouts() {
+        addressManagerView.snp.makeConstraints { (make) in
+            make.top.equalTo(kNavBarTotalHeight)
+            make.left.right.bottom.equalToSuperview()
+        }
+    }
+    
+    private lazy var addressManagerView: AddressManagerView = {
+        let addressManagerView = AddressManagerView()
+        addressManagerView.managerClosur = {
+            [weak self] section in
+            switch section {
+            case 0:
+                self?.navigationController?.pushViewController(SelfMentionAddressListViewController(), animated: true)
+                break
+            case 1:
+                self?.navigationController?.pushViewController(ExpressAddressListViewController(), animated: true)
+                
+                break
+            default:
+                break
+            }
+        }
+        return addressManagerView
+    }()
+
+}

+ 100 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/EditExpressAddress/View/EditExpressAddressView.swift

@@ -0,0 +1,100 @@
+//
+//  EditExpressAddressView.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/4/26.
+//  Copyright © 2019 南鑫林. All rights reserved.
+//
+
+import UIKit
+
+class EditExpressAddressView: BaseView {
+
+    let titles = [["收货人","联系电话","所在地区","详细地址"],["设置为自提收货人"]]
+    
+    let placeholderTitles = ["姓名","收件人电话号码","省份、城市、区县","如道路、门牌号、小区、楼栋号等"]
+    
+    typealias DidSelectRowClosure = (_ indexPath: IndexPath) -> Void
+    var didSelectRowClosure : DidSelectRowClosure?
+    
+    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.separatorStyle = .none
+        tableView.rowHeight = 48
+        tableView.tableFooterView = editAddressFooterView
+        return tableView
+    }()
+    private lazy var editAddressFooterView: EditAddressFooterView = {
+        let editAddressFooterView = EditAddressFooterView(frame: CGRect(x: 0, y: 0, width: kScreenWidth, height: 44))
+        editAddressFooterView.title = "删除该地址"
+
+        return editAddressFooterView
+    }()
+}
+
+extension EditExpressAddressView: UITableViewDelegate,UITableViewDataSource {
+    
+    
+    func numberOfSections(in tableView: UITableView) -> Int {
+        return titles.count
+    }
+    
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        return titles[section].count
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        
+        
+        switch indexPath.section {
+        case 0:
+            let cell = EditAddressTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+            cell.titles = titles[indexPath.section]
+            cell.placeholderTitles = placeholderTitles
+            return cell
+        default:
+            let cell = EditSetDefaultTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+            cell.titles = titles[indexPath.section]
+            return cell
+        }
+        
+        
+    }
+    
+    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+        if let didSelectRowClosure = self.didSelectRowClosure {
+            didSelectRowClosure(indexPath)
+        }
+    }
+    
+    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
+        return nil
+    }
+    
+    
+    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
+        return 10
+    }
+    
+    func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
+        return nil
+    }
+    
+    func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
+        return 0.0000001
+    }
+    
+}

+ 40 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/EditExpressAddress/ViewController/EditExpressAddressViewController.swift

@@ -0,0 +1,40 @@
+//
+//  EditExpressAddressViewController.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/4/26.
+//  Copyright © 2019 南鑫林. All rights reserved.
+//
+
+import UIKit
+
+class EditExpressAddressViewController: BaseViewController {
+
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        setupViews()
+        setupLayouts()
+    }
+    
+    override func setupViews() {
+        navigationBar.title = "编辑收货地址"
+        navigationBar.wr_setRightButton(title: "保存", titleColor: k333333Color)
+        navigationBar.onClickRightButton = {
+            
+        }
+        view.addSubview(editExpressAddressView)
+    }
+    
+    override func setupLayouts() {
+        editExpressAddressView.snp.makeConstraints { (make) in
+            make.top.equalTo(kNavBarTotalHeight)
+            make.left.right.bottom.equalToSuperview()
+        }
+    }
+    
+    private lazy var editExpressAddressView: EditExpressAddressView = {
+        let editExpressAddressView = EditExpressAddressView()
+        return editExpressAddressView
+    }()
+
+}

+ 41 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/EditSelfMentionAddress/View/EditAddressFooterView.swift

@@ -0,0 +1,41 @@
+//
+//  EditAddressFooterView.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/4/26.
+//  Copyright © 2019 南鑫林. All rights reserved.
+//
+
+import UIKit
+
+class EditAddressFooterView: BaseView {
+    
+    override func setupViews() {
+        addSubview(deleteButton)
+    }
+    
+    override func setupLayouts() {
+        deleteButton.snp.makeConstraints { (make) in
+            make.bottom.equalToSuperview()
+            make.top.equalTo(12)
+            make.right.equalTo(-14)
+        }
+        
+    }
+    
+    lazy var deleteButton : UIButton = {
+        let deleteButton = UIButton(type: UIButton.ButtonType.custom)
+        deleteButton.setImage(kImage(name: "my_address_delete"), for: UIControl.State.normal)
+        deleteButton.setTitleColor(k999999Color, for: UIControl.State.normal)
+        deleteButton.titleLabel?.font = kRegularFont14
+        return deleteButton
+    }()
+    
+    var title:String? {
+        didSet {
+            deleteButton.setTitle(title, for: UIControl.State.normal)
+            deleteButton.layoutButton(edgeInsetsStyle: ButtonEdgeInsetsStyle.left, imageTitleSpace: 7)
+        }
+    }
+
+}

+ 97 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/EditSelfMentionAddress/View/EditAddressTableViewCell.swift

@@ -0,0 +1,97 @@
+//
+//  EditAddressTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/4/25.
+//  Copyright © 2019 南鑫林. All rights reserved.
+//
+
+import UIKit
+
+class EditAddressTableViewCell: UITableViewCell {
+    
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> EditAddressTableViewCell {
+        let ID = "EditAddressTableViewCell"
+        tableView.register(EditAddressTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : EditAddressTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! EditAddressTableViewCell
+        cell.indexPath = indexPath
+        return cell
+    }
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        setupViews()
+        setupLayouts()
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    var indexPath: IndexPath? {
+        didSet {
+            
+        }
+    }
+    //MRAK: - 设置View
+    private func setupViews() {
+        self.selectionStyle = .none
+        addSubview(titleLabel)
+        addSubview(editTextField)
+        addSubview(h_lineLabel)
+    }
+    
+    private func setupLayouts() {
+        titleLabel.snp.makeConstraints { (make) in
+            make.left.equalTo(14)
+            make.centerY.equalToSuperview()
+        }
+        editTextField.snp.makeConstraints { (make) in
+            make.left.equalTo(94)
+            make.top.bottom.equalToSuperview()
+            make.right.equalTo(-14)
+        }
+        h_lineLabel.snp.makeConstraints { (make) in
+            make.left.equalTo(14)
+            make.right.bottom.equalToSuperview()
+            make.height.equalTo(0.5)
+        }
+    }
+    
+    private lazy var titleLabel: UILabel = {
+        let titleLabel = UILabel()
+        titleLabel.textColor = k333333Color
+        titleLabel.font = kRegularFont16
+        return titleLabel
+    }()
+    
+    private lazy var editTextField: UITextField = {
+        let editTextField = UITextField()
+        editTextField.textColor = k333333Color
+        editTextField.font = kRegularFont16
+        editTextField.tintColor = kEnabledButtonColor
+        editTextField.clearButtonMode = .whileEditing
+        return editTextField
+    }()
+    
+    private lazy var h_lineLabel: UILabel = {
+        let h_lineLabel = UILabel()
+        h_lineLabel.backgroundColor = kf5f5f5Color
+        return h_lineLabel
+    }()
+    
+    var titles : [String]? {
+        didSet {
+            titleLabel.text = titles![(indexPath?.row)!]
+        }
+    }
+    
+    var placeholderTitles : [String]? {
+        didSet {
+            editTextField.placeholder = placeholderTitles![(indexPath?.row)!]
+        }
+    }
+    
+    
+
+}

+ 99 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/EditSelfMentionAddress/View/EditSelfMentionAddressView.swift

@@ -0,0 +1,99 @@
+//
+//  EditSelfMentionAddressView.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/4/25.
+//  Copyright © 2019 南鑫林. All rights reserved.
+//
+
+import UIKit
+
+class EditSelfMentionAddressView: BaseView {
+    
+    let titles = [["收货人","联系电话"],["设置为自提收货人"]]
+    
+    let placeholderTitles = ["姓名","收件人电话号码"]
+
+    typealias DidSelectRowClosure = (_ indexPath: IndexPath) -> Void
+    var didSelectRowClosure : DidSelectRowClosure?
+    
+    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.separatorStyle = .none
+        tableView.rowHeight = 48
+        tableView.tableFooterView = editAddressFooterView
+        return tableView
+    }()
+    private lazy var editAddressFooterView: EditAddressFooterView = {
+        let editAddressFooterView = EditAddressFooterView(frame: CGRect(x: 0, y: 0, width: kScreenWidth, height: 44))
+        editAddressFooterView.title = "删除该自提收货人信息"
+        return editAddressFooterView
+    }()
+}
+
+extension EditSelfMentionAddressView: UITableViewDelegate,UITableViewDataSource {
+    
+    
+    func numberOfSections(in tableView: UITableView) -> Int {
+        return titles.count
+    }
+    
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        return titles[section].count
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        
+        
+        switch indexPath.section {
+        case 0:
+            let cell = EditAddressTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+            cell.titles = titles[indexPath.section]
+            cell.placeholderTitles = placeholderTitles
+            return cell
+        default:
+            let cell = EditSetDefaultTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+            cell.titles = titles[indexPath.section]
+            return cell
+        }
+        
+        
+    }
+    
+    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+        if let didSelectRowClosure = self.didSelectRowClosure {
+            didSelectRowClosure(indexPath)
+        }
+    }
+    
+    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
+        return nil
+    }
+    
+    
+    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
+        return 10
+    }
+    
+    func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
+        return nil
+    }
+    
+    func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
+        return 0.0000001
+    }
+    
+}

+ 80 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/EditSelfMentionAddress/View/EditSetDefaultTableViewCell.swift

@@ -0,0 +1,80 @@
+//
+//  EditSetDefaultTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/4/25.
+//  Copyright © 2019 南鑫林. All rights reserved.
+//
+
+import UIKit
+
+class EditSetDefaultTableViewCell: UITableViewCell {
+    
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> EditSetDefaultTableViewCell {
+        let ID = "EditSetDefaultTableViewCell"
+        tableView.register(EditSetDefaultTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : EditSetDefaultTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! EditSetDefaultTableViewCell
+        cell.indexPath = indexPath
+        return cell
+    }
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        setupViews()
+        setupLayouts()
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    var indexPath: IndexPath? {
+        didSet {
+            
+        }
+    }
+    //MRAK: - 设置View
+    private func setupViews() {
+        self.selectionStyle = .none
+        addSubview(titleLabel)
+        addSubview(uiswitch)
+        
+    }
+    
+    private func setupLayouts() {
+        titleLabel.snp.makeConstraints { (make) in
+            make.left.equalTo(14)
+            make.centerY.equalToSuperview()
+        }
+        uiswitch.snp.makeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.right.equalTo(-19)
+        }
+    }
+    
+    private lazy var titleLabel: UILabel = {
+        let titleLabel = UILabel()
+        titleLabel.textColor = k333333Color
+        titleLabel.font = kRegularFont16
+        return titleLabel
+    }()
+    
+    private lazy var uiswitch: UISwitch = {
+        let uiswitch = UISwitch()
+        uiswitch.backgroundColor = kf1f1f1Color
+        uiswitch.onTintColor = kEnabledButtonColor
+        uiswitch.tintColor = kf1f1f1Color
+        uiswitch.thumbTintColor = .white
+        uiswitch.cornerRadius = 15.5
+        uiswitch.masksToBounds = true
+        return uiswitch
+    }()
+    
+    var titles : [String]? {
+        didSet {
+            titleLabel.text = titles![(indexPath?.row)!]
+        }
+    }
+    
+
+}

+ 42 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/EditSelfMentionAddress/ViewController/EditSelfMentionAddressViewController.swift

@@ -0,0 +1,42 @@
+//
+//  EditSelfMentionAddressViewController.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/4/25.
+//  Copyright © 2019 南鑫林. All rights reserved.
+//
+
+import UIKit
+
+class EditSelfMentionAddressViewController: BaseViewController {
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        setupViews()
+        setupLayouts()
+    }
+    
+    override func setupViews() {
+        navigationBar.title = "编辑自提收货信息"
+        navigationBar.wr_setRightButton(title: "保存", titleColor: k333333Color)
+        navigationBar.onClickRightButton = {
+            
+        }
+        view.addSubview(editSelfMentionAddressView)
+    }
+    
+    override func setupLayouts() {
+        editSelfMentionAddressView.snp.makeConstraints { (make) in
+            make.top.equalTo(kNavBarTotalHeight)
+            make.left.right.bottom.equalToSuperview()
+        }
+    }
+    
+    private lazy var editSelfMentionAddressView: EditSelfMentionAddressView = {
+        let editSelfMentionAddressView = EditSelfMentionAddressView()
+        return editSelfMentionAddressView
+    }()
+    
+    
+
+}

+ 153 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/ExpressAddressList/View/ExpressAddressListTableViewCell.swift

@@ -0,0 +1,153 @@
+//
+//  ExpressAddressListTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/4/26.
+//  Copyright © 2019 南鑫林. All rights reserved.
+//
+
+import UIKit
+
+class ExpressAddressListTableViewCell: UITableViewCell {
+    
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> UITableViewCell {
+        let ID = "ExpressAddressListTableViewCell"
+        tableView.register(ExpressAddressListTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : ExpressAddressListTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! ExpressAddressListTableViewCell
+        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(nameLabel)
+        addSubview(moblieLabel)
+        addSubview(defalutLabel)
+        addSubview(addressLabel)
+        addSubview(lineLabel)
+        addSubview(v_lineLabel)
+        addSubview(editButton)
+    }
+    
+    private func setupLayouts() {
+        nameLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(15)
+            make.left.equalTo(14)
+            make.height.equalTo(23)
+        }
+        
+        moblieLabel.snp.makeConstraints { (make) in
+            make.left.equalTo(nameLabel.snp.right).offset(10)
+            make.centerY.equalTo(nameLabel)
+            make.height.equalTo(20)
+        }
+        
+        addressLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(nameLabel.snp.bottom).offset(5)
+            make.left.equalTo(54)
+            make.right.equalTo(-60)
+            make.bottom.equalTo(-15)
+        }
+        
+        defalutLabel.snp.makeConstraints { (make) in
+            make.left.equalTo(nameLabel)
+            make.top.equalTo(addressLabel)
+            make.width.equalTo(36)
+            make.height.equalTo(17)
+        }
+        
+        lineLabel.snp.makeConstraints { (make) in
+            make.top.right.equalToSuperview()
+            make.left.equalTo(14)
+            make.height.equalTo(0.5)
+        }
+        
+        editButton.snp.makeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.size.equalTo(50)
+            make.right.equalToSuperview()
+        }
+        
+        v_lineLabel.snp.makeConstraints { (make) in
+            make.right.equalTo(editButton.snp.left)
+            make.height.centerY.equalTo(editButton)
+            make.width.equalTo(0.5)
+        }
+        
+        
+    }
+    
+    private lazy var nameLabel: UILabel = {
+        let nameLabel = UILabel()
+        nameLabel.text = "姓名"
+        nameLabel.textColor = k333333Color
+        nameLabel.font = kMediumFont16
+        return nameLabel
+    }()
+    
+    private lazy var moblieLabel: UILabel = {
+        let moblieLabel = UILabel()
+        moblieLabel.text = "18392056542"
+        moblieLabel.textColor = k999999Color
+        moblieLabel.font = kRegularFont14
+        return moblieLabel
+    }()
+    
+    private lazy var defalutLabel: UILabel = {
+        let defalutLabel = UILabel()
+        defalutLabel.backgroundColor = kFFF1EBColor
+        defalutLabel.text = "默认"
+        defalutLabel.textColor = kFE5706Color
+        defalutLabel.font = kRegularFont13
+        defalutLabel.cornerRadius = 17/2
+        defalutLabel.masksToBounds = true
+        defalutLabel.textAlignment = .center
+        return defalutLabel
+    }()
+    
+    private lazy var addressLabel: UILabel = {
+        let addressLabel = UILabel()
+        addressLabel.text = "陕西省 西安市 雁塔区 曲江街道 翠华南路创意盒子"
+        addressLabel.textColor = k333333Color
+        addressLabel.font = kRegularFont14
+        addressLabel.numberOfLines = 0
+        return addressLabel
+    }()
+    
+    private lazy var lineLabel: UILabel = {
+        let lineLabel = UILabel()
+        lineLabel.backgroundColor = kf5f5f5Color
+        return lineLabel
+    }()
+    
+    private lazy var v_lineLabel: UILabel = {
+        let v_lineLabel = UILabel()
+        v_lineLabel.backgroundColor = ke6e6e6Color
+        return v_lineLabel
+    }()
+    
+    private lazy var editButton : UIButton = {
+        let editButton = UIButton(type: UIButton.ButtonType.custom)
+        editButton.setTitle("编辑", for: UIControl.State.normal)
+        editButton.setTitleColor(k999999Color, for: UIControl.State.normal)
+        editButton.titleLabel?.font = kRegularFont14
+        return editButton
+    }()
+
+}

+ 81 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/ExpressAddressList/View/ExpressAddressListView.swift

@@ -0,0 +1,81 @@
+//
+//  ExpressAddressListView.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/4/26.
+//  Copyright © 2019 南鑫林. All rights reserved.
+//
+
+import UIKit
+
+class ExpressAddressListView: BaseView {
+
+    typealias DidSelectRowClosure = (_ indexPath: IndexPath) -> Void
+    var didSelectRowClosure : DidSelectRowClosure?
+    
+    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.separatorStyle = .none
+        tableView.estimatedRowHeight = 97
+        return tableView
+    }()
+}
+
+extension ExpressAddressListView: UITableViewDelegate,UITableViewDataSource {
+    
+    
+    func numberOfSections(in tableView: UITableView) -> Int {
+        return 1
+    }
+    
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        return 2
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        let cell = ExpressAddressListTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+        return cell
+        
+    }
+    
+    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+        if let didSelectRowClosure = self.didSelectRowClosure {
+            didSelectRowClosure(indexPath)
+        }
+    }
+    
+    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
+        return UITableView.automaticDimension
+    }
+    
+    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
+        return nil
+    }
+    
+    
+    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
+        return 10
+    }
+    
+    func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
+        return nil
+    }
+    
+    func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
+        return 0.0000001
+    }
+    
+}

+ 41 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/ExpressAddressList/ViewController/ExpressAddressListViewController.swift

@@ -0,0 +1,41 @@
+//
+//  ExpressAddressListViewController.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/4/26.
+//  Copyright © 2019 南鑫林. All rights reserved.
+//
+
+import UIKit
+
+class ExpressAddressListViewController: BaseViewController {
+
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        setupViews()
+        setupLayouts()
+    }
+    
+    override func setupViews() {
+        navigationBar.title = "快递地址管理"
+        navigationBar.wr_setRightButton(title: "添加新地址", titleColor: k333333Color)
+        navigationBar.rightButton.titleLabel!.font = kRegularFont14
+        navigationBar.onClickRightButton = {
+            [weak self] in
+            self?.navigationController?.pushViewController(EditExpressAddressViewController(), animated: true)
+        }
+        view.addSubview(expressAddressListView)
+    }
+    
+    override func setupLayouts() {
+        expressAddressListView.snp.makeConstraints { (make) in
+            make.top.equalTo(kNavBarTotalHeight)
+            make.left.right.bottom.equalToSuperview()
+        }
+    }
+    
+    private lazy var expressAddressListView: ExpressAddressListView = {
+        let expressAddressListView = ExpressAddressListView()
+        return expressAddressListView
+    }()
+}

+ 44 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/Message/View/MessageCollectionViewCell.swift

@@ -0,0 +1,44 @@
+//
+//  MessageCollectionViewCell.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() {
+        
+    }
+    
+    private func setupLayouts() {
+        
+    }
+}

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

@@ -0,0 +1,76 @@
+//
+//  MessageNoticeHeaderCollectionReusableView.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/4/25.
+//  Copyright © 2019 南鑫林. All rights reserved.
+//
+
+import UIKit
+
+class MessageNoticeHeaderCollectionReusableView: UICollectionReusableView {
+    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
+        return toOpenButton
+    }()
+}

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

@@ -0,0 +1,65 @@
+//
+//  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)
+    }
+}

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

@@ -0,0 +1,108 @@
+//
+//  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)!])
+    }
+}

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

@@ -0,0 +1,151 @@
+//
+//  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?
+    
+    override func setupViews() {
+        addSubview(collectionView)
+    }
+    
+    override func setupLayouts() {
+        collectionView.snp.makeConstraints { (make) in
+            make.edges.equalToSuperview()
+        }
+    }
+    
+    private lazy var collectionView: UICollectionView = {
+        let collectionView = UICollectionView.init(frame: CGRect.zero, collectionViewLayout: collectionViewLayout)
+        collectionView.backgroundColor = 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:
+            return UIEdgeInsets(top: 0, 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:
+            return CGSize(width: kScreenWidth, height: kScaleValue(value: 36))
+        default:
+            return CGSize(width: kScreenWidth, height: 0)
+        }
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
+        if let didSelectClosure = self.didSelectClosure {
+            didSelectClosure(indexPath)
+        }
+    }
+    
+}
+

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

@@ -0,0 +1,59 @@
+//
+//  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
+                default:
+                    break
+                }
+                break
+            default:
+                break
+            }
+        }
+        return messageView
+    }()
+
+}

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

@@ -0,0 +1,154 @@
+//
+//  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
+        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
+    }()
+
+}

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

@@ -0,0 +1,37 @@
+//
+//  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
+    }()
+    
+
+}

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

@@ -0,0 +1,70 @@
+//
+//  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
+    }
+    
+}

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

@@ -0,0 +1,36 @@
+//
+//  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
+    }()
+    
+}

+ 8 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/Mine/View/MineTableViewHeaderView.swift

@@ -10,6 +10,9 @@ import UIKit
 
 class MineTableViewHeaderView: BaseView {
 
+    typealias AddressClosure = () -> Void
+    var addressClosure : AddressClosure?
+    
     override func setupViews() {
         addSubview(bgView)
         addSubview(homepageView)
@@ -106,6 +109,11 @@ class MineTableViewHeaderView: BaseView {
     
     private lazy var addressBgButton: UIButton = {
         let avatarBgButton = UIButton(type: UIButton.ButtonType.custom)
+        avatarBgButton.rx.tap.subscribe(onNext: { [weak self] (data) in
+            if let addressClosure = self?.addressClosure {
+                addressClosure()
+            }
+        }).disposed(by: disposeBag)
         return avatarBgButton
     }()
     

+ 9 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/Mine/View/MineView.swift

@@ -13,6 +13,9 @@ class MineView: BaseView {
     typealias ScrollViewDidScrollBlock = (_ offsetY:CGFloat,_ alpha:CGFloat) -> Void
     var scrollViewDidScrollBlock : ScrollViewDidScrollBlock?
     
+    typealias AddressClosure = () -> Void
+    var addressClosure : AddressClosure?
+    
     override func setupViews() {
         addSubview(tableView)
         if #available(iOS 11.0, *) {
@@ -38,6 +41,12 @@ class MineView: BaseView {
     
     private lazy var mineTableViewHeaderView: MineTableViewHeaderView = {
         let mineTableViewHeaderView = MineTableViewHeaderView(frame: CGRect(x: 0, y: 0, width: kScreenWidth, height: kNavBarTotalHeight + 46+78))
+        mineTableViewHeaderView.addressClosure = {
+            [weak self] in
+            if let addressClosure = self?.addressClosure {
+                addressClosure()
+            }
+        }
         return mineTableViewHeaderView
     }()
     

+ 15 - 2
RainbowPlanet/RainbowPlanet/Modules/MineModule/Mine/ViewController/MineViewController.swift

@@ -40,15 +40,28 @@ class MineViewController: BaseViewController {
     
     private lazy var navigationBarView: MineNavigationBarView = {
         let navigationBarView = MineNavigationBarView()
+        navigationBarView.messageBlock = {
+            [weak self] in
+            self?.navigationController?.pushViewController(MessageViewController(), animated: true)
+        }
+        navigationBarView.setBlock = {
+            [weak self] in
+            self?.navigationController?.pushViewController(SetViewController(), animated: true)
+        }
         return navigationBarView
     }()
     
     private lazy var mineView: MineView = {
         let mineView = MineView()
-        mineView.scrollViewDidScrollBlock = {[weak self] (offsetY,alpha) in
+        mineView.scrollViewDidScrollBlock = {
+            [weak self] (offsetY,alpha) in
             self?.navigationBar.barBackgroundColor = kFFAC33Color.withAlphaComponent(alpha)
             self?.navigationBar.wr_setBackgroundAlpha(alpha: alpha)
-           self?.navigationBar.titleLabelColor = UIColor.white.withAlphaComponent(alpha)
+            self?.navigationBar.titleLabelColor = UIColor.white.withAlphaComponent(alpha)
+        }
+        mineView.addressClosure = {
+            [weak self] in
+            self?.navigationController?.pushViewController(AddressManagerViewController(), animated: true)
         }
         return mineView
     }()

+ 134 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/SelfMentionAddressList/View/SelfMentionAddressListTableViewCell.swift

@@ -0,0 +1,134 @@
+//
+//  SelfMentionAddressListTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/4/25.
+//  Copyright © 2019 南鑫林. All rights reserved.
+//
+
+import UIKit
+
+class SelfMentionAddressListTableViewCell: UITableViewCell {
+    
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> SelfMentionAddressListTableViewCell {
+        let ID = "SelfMentionAddressListTableViewCell"
+        tableView.register(SelfMentionAddressListTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : SelfMentionAddressListTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! SelfMentionAddressListTableViewCell
+        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(nameLabel)
+        addSubview(moblieLabel)
+        addSubview(defalutLabel)
+        addSubview(h_lineLabel)
+        addSubview(v_lineLabel)
+        addSubview(editButton)
+    }
+    
+    private func setupLayouts() {
+        nameLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(26)
+            make.bottom.equalTo(-26)
+            make.left.equalTo(66)
+        }
+        
+        moblieLabel.snp.makeConstraints { (make) in
+            make.left.equalTo(nameLabel.snp.right).offset(10)
+            make.centerY.equalTo(nameLabel)
+        }
+        
+        defalutLabel.snp.makeConstraints { (make) in
+            make.centerY.equalTo(nameLabel)
+            make.left.equalTo(14)
+            make.width.equalTo(36)
+            make.height.equalTo(17)
+        }
+        
+        h_lineLabel.snp.makeConstraints { (make) in
+            make.bottom.right.equalToSuperview()
+            make.left.equalTo(14)
+            make.height.equalTo(0.5)
+        }
+        
+        editButton.snp.makeConstraints { (make) in
+            make.centerY.equalTo(nameLabel)
+            make.size.equalTo(50)
+            make.right.equalToSuperview()
+        }
+        
+        v_lineLabel.snp.makeConstraints { (make) in
+            make.right.equalTo(editButton.snp.left)
+            make.height.centerY.equalTo(editButton)
+            make.width.equalTo(0.5)
+        }
+        
+    }
+    
+    private lazy var nameLabel: UILabel = {
+        let nameLabel = UILabel()
+        nameLabel.text = "姓名"
+        nameLabel.textColor = k333333Color
+        nameLabel.font = kMediumFont16
+        return nameLabel
+    }()
+    
+    private lazy var moblieLabel: UILabel = {
+        let moblieLabel = UILabel()
+        moblieLabel.text = "18392056542"
+        moblieLabel.textColor = k999999Color
+        moblieLabel.font = kRegularFont14
+        return moblieLabel
+    }()
+    
+    private lazy var defalutLabel: UILabel = {
+        let defalutLabel = UILabel()
+        defalutLabel.backgroundColor = kFFF1EBColor
+        defalutLabel.text = "默认"
+        defalutLabel.textColor = kFE5706Color
+        defalutLabel.font = kRegularFont13
+        defalutLabel.cornerRadius = 17/2
+        defalutLabel.masksToBounds = true
+        defalutLabel.textAlignment = .center
+        return defalutLabel
+    }()
+    
+    private lazy var h_lineLabel: UILabel = {
+        let h_lineLabel = UILabel()
+        h_lineLabel.backgroundColor = kf5f5f5Color
+        return h_lineLabel
+    }()
+    
+    private lazy var v_lineLabel: UILabel = {
+        let v_lineLabel = UILabel()
+        v_lineLabel.backgroundColor = ke6e6e6Color
+        return v_lineLabel
+    }()
+    
+    private lazy var editButton : UIButton = {
+        let editButton = UIButton(type: UIButton.ButtonType.custom)
+        editButton.setTitle("编辑", for: UIControl.State.normal)
+        editButton.setTitleColor(k999999Color, for: UIControl.State.normal)
+        editButton.titleLabel?.font = kRegularFont14
+        return editButton
+    }()
+    
+}

+ 81 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/SelfMentionAddressList/View/SelfMentionAddressListView.swift

@@ -0,0 +1,81 @@
+//
+//  SelfMentionAddressListView.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/4/25.
+//  Copyright © 2019 南鑫林. All rights reserved.
+//
+
+import UIKit
+
+class SelfMentionAddressListView: BaseView {
+    
+    typealias DidSelectRowClosure = (_ indexPath: IndexPath) -> Void
+    var didSelectRowClosure : DidSelectRowClosure?
+    
+    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.separatorStyle = .none
+        tableView.estimatedRowHeight = 74
+        return tableView
+    }()
+}
+
+extension SelfMentionAddressListView: UITableViewDelegate,UITableViewDataSource {
+    
+    
+    func numberOfSections(in tableView: UITableView) -> Int {
+        return 1
+    }
+    
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        return 2
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        let cell = SelfMentionAddressListTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+        return cell
+        
+    }
+    
+    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+        if let didSelectRowClosure = self.didSelectRowClosure {
+            didSelectRowClosure(indexPath)
+        }
+    }
+    
+    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
+        return UITableView.automaticDimension
+    }
+    
+    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
+        return nil
+    }
+    
+    
+    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
+        return 10
+    }
+    
+    func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
+        return nil
+    }
+    
+    func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
+        return 0.0000001
+    }
+    
+}

+ 42 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/SelfMentionAddressList/ViewController/SelfMentionAddressListViewController.swift

@@ -0,0 +1,42 @@
+//
+//  SelfMentionAddressListViewController.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/4/25.
+//  Copyright © 2019 南鑫林. All rights reserved.
+//
+
+import UIKit
+
+class SelfMentionAddressListViewController: BaseViewController {
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        setupViews()
+        setupLayouts()
+    }
+    
+    override func setupViews() {
+        navigationBar.title = "我的自提收货信息"
+        navigationBar.wr_setRightButton(title: "添加新收货人", titleColor: k333333Color)
+        navigationBar.rightButton.titleLabel!.font = kRegularFont14
+        navigationBar.onClickRightButton = {
+            [weak self] in
+            self?.navigationController?.pushViewController(EditSelfMentionAddressViewController(), animated: true)
+        }
+        view.addSubview(selfMentionAddressListView)
+    }
+    
+    override func setupLayouts() {
+        selfMentionAddressListView.snp.makeConstraints { (make) in
+            make.top.equalTo(kNavBarTotalHeight)
+            make.left.right.bottom.equalToSuperview()
+        }
+    }
+    
+    private lazy var selfMentionAddressListView: SelfMentionAddressListView = {
+        let selfMentionAddressListView = SelfMentionAddressListView()
+        return selfMentionAddressListView
+    }()
+
+}

+ 61 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/Set/View/SetLogoutTableViewCell.swift

@@ -0,0 +1,61 @@
+//
+//  SetLogoutTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/4/25.
+//  Copyright © 2019 南鑫林. All rights reserved.
+//
+
+import UIKit
+
+class SetLogoutTableViewCell: UITableViewCell {
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> SetLogoutTableViewCell {
+        let ID = "SetLogoutTableViewCell"
+        tableView.register(SetLogoutTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : SetLogoutTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! SetLogoutTableViewCell
+        cell.indexPath = indexPath
+        return cell
+    }
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        setupViews()
+        setupLayouts()
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    var indexPath: IndexPath? {
+        didSet {
+            
+        }
+    }
+    //MRAK: - 设置View
+    private func setupViews() {
+        self.selectionStyle = .none
+        addSubview(titleLabel)
+    }
+    
+    private func setupLayouts() {
+        titleLabel.snp.makeConstraints { (make) in
+            make.edges.equalToSuperview()
+        }
+    }
+    
+    private lazy var titleLabel: UILabel = {
+        let titleLabel = UILabel()
+        titleLabel.textColor = k333333Color
+        titleLabel.font = kMediumFont16
+        titleLabel.textAlignment = .center
+        return titleLabel
+    }()
+    
+    var titles : [String]? {
+        didSet {
+            titleLabel.text = titles?[(indexPath?.row)!]
+        }
+    }
+
+}

+ 74 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/Set/View/SetTableViewCell.swift

@@ -0,0 +1,74 @@
+//
+//  SetTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/4/25.
+//  Copyright © 2019 南鑫林. All rights reserved.
+//
+
+import UIKit
+
+class SetTableViewCell: UITableViewCell {
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> SetTableViewCell {
+        let ID = "SetTableViewCell"
+        tableView.register(SetTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : SetTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! SetTableViewCell
+        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
+        accessoryType = .disclosureIndicator
+        addSubview(titleLabel)
+        addSubview(lineLabel)
+    }
+    
+    private func setupLayouts() {
+        titleLabel.snp.makeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.left.equalTo(14)
+        }
+        lineLabel.snp.makeConstraints { (make) in
+            make.bottom.right.equalToSuperview()
+            make.left.equalTo(14)
+            make.height.equalTo(0.5)
+        }
+    }
+    
+    private lazy var titleLabel: UILabel = {
+        let titleLabel = UILabel()
+        titleLabel.textColor = k333333Color
+        titleLabel.font = kRegularFont16
+        return titleLabel
+    }()
+    
+    private lazy var lineLabel: UILabel = {
+        let lineLabel = UILabel()
+        lineLabel.backgroundColor = kf5f5f5Color
+        return lineLabel
+    }()
+    
+    var titles : [String]? {
+        didSet {
+            titleLabel.text = titles?[(indexPath?.row)!]
+        }
+    }
+    
+}

+ 98 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/Set/View/SetView.swift

@@ -0,0 +1,98 @@
+//
+//  SetView.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/4/25.
+//  Copyright © 2019 南鑫林. All rights reserved.
+//
+
+import UIKit
+
+class SetView: BaseView {
+    
+    typealias DidSelectRowClosure = (_ indexPath: IndexPath) -> Void
+    var didSelectRowClosure : DidSelectRowClosure?
+    
+    let sections = [["个人资料","账号与绑定","推送通知设置","通用"],
+                    ["用户协议","为彩虹星球评分","彩虹星球招聘"],
+                    ["投诉与建议","分享彩虹星球APP"],
+                    ["退出登录"]]
+    
+    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.rowHeight = 48
+        tableView.separatorStyle = .none
+        return tableView
+    }()
+}
+
+extension SetView: UITableViewDelegate,UITableViewDataSource {
+    
+    
+    func numberOfSections(in tableView: UITableView) -> Int {
+        return sections.count
+    }
+    
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        return sections[section].count
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        switch indexPath.section {
+        case 3:
+            let cell = SetLogoutTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+            cell.titles = sections[indexPath.section]
+            return cell
+        default:
+            let cell = SetTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+            cell.titles = sections[indexPath.section]
+            return cell
+        }
+       
+    }
+    
+    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+        if let didSelectRowClosure = self.didSelectRowClosure {
+            didSelectRowClosure(indexPath)
+        }
+    }
+    
+    
+    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
+        return nil
+    }
+    
+    
+    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
+        switch section {
+        case 3:
+            return 20
+        default:
+            return 10
+        }
+    }
+    
+    func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
+        return nil
+    }
+    
+    func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
+        return 0.0000001
+    }
+    
+}
+
+

+ 54 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/Set/ViewController/SetViewController.swift

@@ -0,0 +1,54 @@
+//
+//  SetViewController.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/4/25.
+//  Copyright © 2019 南鑫林. All rights reserved.
+//
+
+import UIKit
+
+class SetViewController: BaseViewController {
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        setupViews()
+        setupLayouts()
+    }
+    
+    override func setupViews() {
+        navigationBar.title = "设置"
+        statusBarStyle = .default
+        view.addSubview(setView)
+    }
+    
+    override func setupLayouts() {
+        setView.snp.makeConstraints { (make) in
+            make.top.equalTo(kNavBarTotalHeight)
+            make.left.right.bottom.equalToSuperview()
+        }
+    }
+    
+    private lazy var setView: SetView = {
+        let setView = SetView()
+        setView.didSelectRowClosure = {
+            [weak self] indexPath in
+            switch indexPath.section {
+            case 0:
+                switch indexPath.row {
+                case 1:
+                    self?.navigationController?.pushViewController(AccountSecurityViewController(), animated: true)
+                    break
+                default:
+                    break
+                }
+                break
+            default:
+                break
+            }
+        }
+        return setView
+    }()
+
+}
+

+ 148 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/SetPassword/View/SetPasswordView.swift

@@ -0,0 +1,148 @@
+//
+//  SetPasswordView.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/4/25.
+//  Copyright © 2019 南鑫林. All rights reserved.
+//
+
+import UIKit
+
+class SetPasswordView: BaseView {
+
+    override func setupViews() {
+        backgroundColor = kf7f8faColor
+        addSubview(passwordBgView)
+        passwordBgView.addSubview(passwordLabel)
+        passwordBgView.addSubview(passwordTextField)
+        addSubview(surePasswordBgView)
+        surePasswordBgView.addSubview(surePasswordLabel)
+        surePasswordBgView.addSubview(surePasswordTextField)
+        addSubview(lineLabel)
+        addSubview(tipsLabel)
+        addSubview(finishButton)
+    }
+    
+    override func setupLayouts() {
+        passwordBgView.snp.makeConstraints { (make) in
+            make.top.equalTo(10)
+            make.left.right.equalToSuperview()
+            make.height.equalTo(44)
+        }
+        passwordLabel.snp.makeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.left.equalTo(15)
+        }
+        passwordTextField.snp.makeConstraints { (make) in
+            make.top.bottom.equalToSuperview()
+            make.left.equalTo(110)
+            make.right.equalTo(-15)
+        }
+        lineLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(passwordBgView.snp.bottom)
+            make.left.right.equalToSuperview()
+            make.height.equalTo(0.5)
+        }
+        surePasswordBgView.snp.makeConstraints { (make) in
+            make.top.equalTo(lineLabel.snp.bottom)
+            make.left.right.equalToSuperview()
+            make.height.equalTo(44)
+        }
+        
+        surePasswordLabel.snp.makeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.left.equalTo(15)
+        }
+        surePasswordTextField.snp.makeConstraints { (make) in
+            make.top.bottom.equalToSuperview()
+            make.left.equalTo(110)
+            make.right.equalTo(-15)
+        }
+        tipsLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(surePasswordBgView.snp.bottom).offset(10)
+            make.left.equalTo(10)
+            make.right.equalTo(-10)
+            make.height.equalTo(20)
+        }
+        finishButton.snp.makeConstraints { (make) in
+            make.top.equalTo(tipsLabel.snp.bottom).offset(15)
+            make.left.equalTo(14)
+            make.right.equalTo(-14)
+            make.height.equalTo(44)
+        }
+    }
+    
+    private lazy var passwordBgView: UIView = {
+        let passwordBgView = UIView()
+        passwordBgView.backgroundColor = .white
+        return passwordBgView
+    }()
+    
+    private lazy var passwordLabel : UILabel = {
+        let passwordLabel = UILabel()
+        passwordLabel.text = "密码"
+        passwordLabel.textColor = k333333Color
+        passwordLabel.font = kRegularFont16
+        return passwordLabel
+    }()
+    
+    private lazy var passwordTextField : UITextField = {
+        let passwordTextField = UITextField()
+        passwordTextField.placeholder = "请输入密码"
+        passwordTextField.textColor = k333333Color
+        passwordTextField.font = kRegularFont14
+        passwordTextField.tintColor = kEnabledButtonColor
+        return passwordTextField
+    }()
+    
+    private lazy var surePasswordBgView: UIView = {
+        let passwordBgView = UIView()
+        passwordBgView.backgroundColor = .white
+        return passwordBgView
+    }()
+    
+    private lazy var surePasswordLabel : UILabel = {
+        let surePasswordLabel = UILabel()
+        surePasswordLabel.text = "确认密码"
+        surePasswordLabel.textColor = k333333Color
+        surePasswordLabel.font = kRegularFont16
+        return surePasswordLabel
+    }()
+    
+    private lazy var surePasswordTextField : UITextField = {
+        let surePasswordTextField = UITextField()
+        surePasswordTextField.placeholder = "请再次输入密码"
+        surePasswordTextField.textColor = k333333Color
+        surePasswordTextField.font = kRegularFont14
+        surePasswordTextField.tintColor = kEnabledButtonColor
+        return surePasswordTextField
+    }()
+    
+    private lazy var lineLabel: UILabel = {
+        let lineLabel = UILabel()
+        lineLabel.backgroundColor = kf5f5f5Color
+        return lineLabel
+    }()
+    
+    private lazy var tipsLabel : UILabel = {
+        let tipsLabel = UILabel()
+        tipsLabel.text = "6-12位密码,数字或字母"
+        tipsLabel.textColor = k999999Color
+        tipsLabel.font = kRegularFont14
+        return tipsLabel
+    }()
+    
+    private lazy var finishButton : UIButton = {
+        let finishButton = UIButton(type: UIButton.ButtonType.custom)
+        finishButton.setBackgroundImage(UIImage.imageWithColor(color: kDisabledButtonColor), for: UIControl.State.disabled)
+        finishButton.setBackgroundImage(UIImage.imageWithColor(color: kEnabledButtonColor), for: UIControl.State.normal)
+        finishButton.setTitle("完成", for: UIControl.State.normal)
+        finishButton.setTitleColor(kffffffColor, for: UIControl.State.normal)
+        finishButton.titleLabel?.font = kMediumFont16
+        finishButton.isEnabled = false
+        finishButton.cornerRadius = 22
+        finishButton.masksToBounds = true
+        return finishButton
+    }()
+
+}

+ 36 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/SetPassword/ViewController/SetPasswordViewController.swift

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

+ 23 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_add.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_add.imageset/my_address_add.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_add.imageset/my_address_add@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_add.imageset/my_address_add@3x.png


+ 23 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_check.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_check.imageset/my_address_check.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_check.imageset/my_address_check@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_check.imageset/my_address_check@3x.png


+ 23 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_delete.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_delete.imageset/my_address_delete.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_delete.imageset/my_address_delete@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_delete.imageset/my_address_delete@3x.png


+ 23 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_uncheck.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_uncheck.imageset/my_address_uncheck.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_uncheck.imageset/my_address_uncheck@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_address_uncheck.imageset/my_address_uncheck@3x.png


+ 23 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_active.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_active.imageset/my_message_active.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_active.imageset/my_message_active@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_active.imageset/my_message_active@3x.png


+ 23 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_attention.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_attention.imageset/my_message_attention.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_attention.imageset/my_message_attention@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_attention.imageset/my_message_attention@3x.png


+ 23 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_comment.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_comment.imageset/my_message_comment.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_comment.imageset/my_message_comment@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_comment.imageset/my_message_comment@3x.png


+ 23 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_indent.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_indent.imageset/my_message_indent.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_indent.imageset/my_message_indent@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_indent.imageset/my_message_indent@3x.png


+ 23 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_letter.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_letter.imageset/my_message_letter.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_letter.imageset/my_message_letter@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_letter.imageset/my_message_letter@3x.png


+ 23 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_like.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_like.imageset/my_message_like.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_like.imageset/my_message_like@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_like.imageset/my_message_like@3x.png


+ 23 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_system.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_system.imageset/my_message_system.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_system.imageset/my_message_system@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_message_system.imageset/my_message_system@3x.png


+ 23 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_set_phonenumber.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_set_phonenumber.imageset/my_set_phonenumber.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_set_phonenumber.imageset/my_set_phonenumber@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_set_phonenumber.imageset/my_set_phonenumber@3x.png


+ 23 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_set_wechat.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_set_wechat.imageset/my_set_wechat.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_set_wechat.imageset/my_set_wechat@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_set_wechat.imageset/my_set_wechat@3x.png


+ 23 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_switch_off.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_switch_off.imageset/my_switch_off.png


+ 0 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/MineModule.xcassets/my_switch_off.imageset/my_switch_off@2x.png


Някои файлове не бяха показани, защото твърде много файлове са промени