HF_Q 5 years ago
parent
commit
dd533f2870
39 changed files with 1682 additions and 246 deletions
  1. 52 0
      smartRhino.xcodeproj/project.pbxproj
  2. BIN
      smartRhino.xcworkspace/xcuserdata/niuzhen.xcuserdatad/UserInterfaceState.xcuserstate
  3. BIN
      smartRhino/Assets.xcassets/首页/Book_icongary.imageset/Book_icongary@2x.png
  4. BIN
      smartRhino/Assets.xcassets/首页/Book_icongary.imageset/Book_icongary@3x.png
  5. 22 0
      smartRhino/Assets.xcassets/首页/Book_icongary.imageset/Contents.json
  6. 22 0
      smartRhino/Assets.xcassets/首页/home_hot_icon.imageset/Contents.json
  7. BIN
      smartRhino/Assets.xcassets/首页/home_hot_icon.imageset/home_hot_icon@2x.png
  8. BIN
      smartRhino/Assets.xcassets/首页/home_hot_icon.imageset/home_hot_icon@3x.png
  9. 5 2
      smartRhino/Project/VCModel/ChatMessage/Controller/ChatMsgListVC.m
  10. 1 1
      smartRhino/Project/VCModel/ChatMessage/Controller/TDInternalLeter/contoller/TDInterLeterDetailVC.m
  11. 4 4
      smartRhino/Project/VCModel/Home/OtherHomeVC/ClickOK/AddChannel/View/MyChanelCollectionReusableViewTop.xib
  12. 188 4
      smartRhino/Project/VCModel/Home/VC/BookStore/BookStore.storyboard
  13. 6 5
      smartRhino/Project/VCModel/Home/VC/BookStore/VC/BookAllLookVC.m
  14. 17 0
      smartRhino/Project/VCModel/Home/VC/BookStore/VC/BookChanelVC.h
  15. 138 0
      smartRhino/Project/VCModel/Home/VC/BookStore/VC/BookChanelVC.m
  16. 17 0
      smartRhino/Project/VCModel/Home/VC/BookStore/VC/BookDetailVC.h
  17. 151 0
      smartRhino/Project/VCModel/Home/VC/BookStore/VC/BookDetailVC.m
  18. 2 2
      smartRhino/Project/VCModel/Home/VC/BookStore/VC/BookStoreHome.m
  19. 2 1
      smartRhino/Project/VCModel/Home/VC/BookStore/VC/BookWeiCourseListVC.h
  20. 2 0
      smartRhino/Project/VCModel/Home/VC/BookStore/VC/BookWeiCourseListVC.m
  21. 18 0
      smartRhino/Project/VCModel/Home/VC/BookStore/View/BookChanelCell.h
  22. 18 0
      smartRhino/Project/VCModel/Home/VC/BookStore/View/BookChanelCell.m
  23. 54 0
      smartRhino/Project/VCModel/Home/VC/BookStore/View/BookChanelCell.xib
  24. 31 0
      smartRhino/Project/VCModel/Home/VC/BookStore/View/BookDetailCell.h
  25. 50 0
      smartRhino/Project/VCModel/Home/VC/BookStore/View/BookDetailCell.m
  26. 200 0
      smartRhino/Project/VCModel/Home/VC/BookStore/View/BookDetailCell.xib
  27. 63 28
      smartRhino/Project/VCModel/Home/VC/HomeViewController.m
  28. 24 0
      smartRhino/Project/VCModel/Home/VC/View/Cell/HomeGoodBookCell.h
  29. 103 0
      smartRhino/Project/VCModel/Home/VC/View/Cell/HomeGoodBookCell.m
  30. 110 0
      smartRhino/Project/VCModel/Home/VC/View/Cell/HomeGoodBookCell.xib
  31. 20 0
      smartRhino/Project/VCModel/Home/VC/View/Cell/HomeGoodBookCollectCell.h
  32. 18 0
      smartRhino/Project/VCModel/Home/VC/View/Cell/HomeGoodBookCollectCell.m
  33. 64 0
      smartRhino/Project/VCModel/Home/VC/View/Cell/HomeGoodBookCollectCell.xib
  34. 31 2
      smartRhino/Project/VCModel/My_Center/Controller/ColletionVC/Cell/MyFavoriteCell.m
  35. 29 0
      smartRhino/Project/VCModel/My_Center/Controller/ColletionVC/Cell/MyFavoriteViewCell.m
  36. 85 73
      smartRhino/Project/VCModel/My_Center/Controller/ColletionVC/Controller/MyFavoriteVC.m
  37. 110 102
      smartRhino/Project/VCModel/My_Center/Controller/NoteBook/Controller/NoteBookVC.m
  38. 24 21
      smartRhino/Project/VCModel/My_Center/Controller/NoteBook/View/NoteBookCell.m
  39. 1 1
      smartRhino/Project/VCModel/My_Center/Controller/NoteBook/View/NoteBookCell.xib

+ 52 - 0
smartRhino.xcodeproj/project.pbxproj

@@ -825,6 +825,16 @@
 		EB581CF623A0F72000C451B0 /* WaitWork.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = EB581CF523A0F72000C451B0 /* WaitWork.storyboard */; };
 		EB5A587023AB512100B93149 /* MyTDTopicDetailVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EB5A586F23AB512100B93149 /* MyTDTopicDetailVC.m */; };
 		EB5A587323AB7D5800B93149 /* MyTDTopicSearchVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EB5A587223AB7D5800B93149 /* MyTDTopicSearchVC.m */; };
+		EB5F44F42474BFAD008D316D /* HomeGoodBookCell.m in Sources */ = {isa = PBXBuildFile; fileRef = EB5F44F22474BFAD008D316D /* HomeGoodBookCell.m */; };
+		EB5F44F52474BFAD008D316D /* HomeGoodBookCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = EB5F44F32474BFAD008D316D /* HomeGoodBookCell.xib */; };
+		EB5F44F92474C52C008D316D /* HomeGoodBookCollectCell.m in Sources */ = {isa = PBXBuildFile; fileRef = EB5F44F72474C52C008D316D /* HomeGoodBookCollectCell.m */; };
+		EB5F44FA2474C52C008D316D /* HomeGoodBookCollectCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = EB5F44F82474C52C008D316D /* HomeGoodBookCollectCell.xib */; };
+		EB5F44FD2474CCCA008D316D /* BookDetailVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EB5F44FC2474CCCA008D316D /* BookDetailVC.m */; };
+		EB5F45012474CE0E008D316D /* BookDetailCell.m in Sources */ = {isa = PBXBuildFile; fileRef = EB5F44FF2474CE0E008D316D /* BookDetailCell.m */; };
+		EB5F45022474CE0E008D316D /* BookDetailCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = EB5F45002474CE0E008D316D /* BookDetailCell.xib */; };
+		EB5F450524750765008D316D /* BookChanelVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EB5F450424750765008D316D /* BookChanelVC.m */; };
+		EB5F45092475093C008D316D /* BookChanelCell.m in Sources */ = {isa = PBXBuildFile; fileRef = EB5F45072475093C008D316D /* BookChanelCell.m */; };
+		EB5F450A2475093C008D316D /* BookChanelCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = EB5F45082475093C008D316D /* BookChanelCell.xib */; };
 		EB629DFC2415E28900A5E0EE /* MeetingDataModel.m in Sources */ = {isa = PBXBuildFile; fileRef = EB629DFB2415E28900A5E0EE /* MeetingDataModel.m */; };
 		EB629DFF2416206200A5E0EE /* _NoInputAccessoryView.m in Sources */ = {isa = PBXBuildFile; fileRef = EB629DFE2416206200A5E0EE /* _NoInputAccessoryView.m */; };
 		EB674D07242E126C003FEC6D /* MoveSearchVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EB674D06242E126C003FEC6D /* MoveSearchVC.m */; };
@@ -2671,6 +2681,22 @@
 		EB5A586F23AB512100B93149 /* MyTDTopicDetailVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MyTDTopicDetailVC.m; sourceTree = "<group>"; };
 		EB5A587123AB7D5800B93149 /* MyTDTopicSearchVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MyTDTopicSearchVC.h; sourceTree = "<group>"; };
 		EB5A587223AB7D5800B93149 /* MyTDTopicSearchVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MyTDTopicSearchVC.m; sourceTree = "<group>"; };
+		EB5F44F12474BFAD008D316D /* HomeGoodBookCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeGoodBookCell.h; sourceTree = "<group>"; };
+		EB5F44F22474BFAD008D316D /* HomeGoodBookCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeGoodBookCell.m; sourceTree = "<group>"; };
+		EB5F44F32474BFAD008D316D /* HomeGoodBookCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeGoodBookCell.xib; sourceTree = "<group>"; };
+		EB5F44F62474C52C008D316D /* HomeGoodBookCollectCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeGoodBookCollectCell.h; sourceTree = "<group>"; };
+		EB5F44F72474C52C008D316D /* HomeGoodBookCollectCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeGoodBookCollectCell.m; sourceTree = "<group>"; };
+		EB5F44F82474C52C008D316D /* HomeGoodBookCollectCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeGoodBookCollectCell.xib; sourceTree = "<group>"; };
+		EB5F44FB2474CCCA008D316D /* BookDetailVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BookDetailVC.h; sourceTree = "<group>"; };
+		EB5F44FC2474CCCA008D316D /* BookDetailVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BookDetailVC.m; sourceTree = "<group>"; };
+		EB5F44FE2474CE0E008D316D /* BookDetailCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BookDetailCell.h; sourceTree = "<group>"; };
+		EB5F44FF2474CE0E008D316D /* BookDetailCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BookDetailCell.m; sourceTree = "<group>"; };
+		EB5F45002474CE0E008D316D /* BookDetailCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BookDetailCell.xib; sourceTree = "<group>"; };
+		EB5F450324750765008D316D /* BookChanelVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BookChanelVC.h; sourceTree = "<group>"; };
+		EB5F450424750765008D316D /* BookChanelVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BookChanelVC.m; sourceTree = "<group>"; };
+		EB5F45062475093C008D316D /* BookChanelCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BookChanelCell.h; sourceTree = "<group>"; };
+		EB5F45072475093C008D316D /* BookChanelCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BookChanelCell.m; sourceTree = "<group>"; };
+		EB5F45082475093C008D316D /* BookChanelCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BookChanelCell.xib; sourceTree = "<group>"; };
 		EB629DFA2415E28900A5E0EE /* MeetingDataModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MeetingDataModel.h; sourceTree = "<group>"; };
 		EB629DFB2415E28900A5E0EE /* MeetingDataModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MeetingDataModel.m; sourceTree = "<group>"; };
 		EB629DFD2416206200A5E0EE /* _NoInputAccessoryView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = _NoInputAccessoryView.h; sourceTree = "<group>"; };
@@ -5411,6 +5437,12 @@
 				EB6E84D2246FB90300BE0524 /* HomeUserPrivilegeCell.h */,
 				EB6E84D3246FB90300BE0524 /* HomeUserPrivilegeCell.m */,
 				EB6E84D4246FB90300BE0524 /* HomeUserPrivilegeCell.xib */,
+				EB5F44F12474BFAD008D316D /* HomeGoodBookCell.h */,
+				EB5F44F22474BFAD008D316D /* HomeGoodBookCell.m */,
+				EB5F44F32474BFAD008D316D /* HomeGoodBookCell.xib */,
+				EB5F44F62474C52C008D316D /* HomeGoodBookCollectCell.h */,
+				EB5F44F72474C52C008D316D /* HomeGoodBookCollectCell.m */,
+				EB5F44F82474C52C008D316D /* HomeGoodBookCollectCell.xib */,
 				EB6E84D7246FD1BF00BE0524 /* HomeWeiCousreCell.h */,
 				EB6E84D8246FD1BF00BE0524 /* HomeWeiCousreCell.m */,
 				EB6E84D9246FD1BF00BE0524 /* HomeWeiCousreCell.xib */,
@@ -6927,6 +6959,8 @@
 			children = (
 				EB41513C246BC71500030371 /* BookStoreHome.h */,
 				EB41513D246BC71500030371 /* BookStoreHome.m */,
+				EB5F450324750765008D316D /* BookChanelVC.h */,
+				EB5F450424750765008D316D /* BookChanelVC.m */,
 				EB41514F246C001D00030371 /* BookMingVC.h */,
 				EB415150246C001D00030371 /* BookMingVC.m */,
 				EB415152246C071300030371 /* BookAllLookVC.h */,
@@ -6939,6 +6973,8 @@
 				EBF7175624722D4B00ED1838 /* BookWCDetailVC.m */,
 				EB6F002B2473B19300808484 /* BookWeiCourseListVC.h */,
 				EB6F002C2473B19300808484 /* BookWeiCourseListVC.m */,
+				EB5F44FB2474CCCA008D316D /* BookDetailVC.h */,
+				EB5F44FC2474CCCA008D316D /* BookDetailVC.m */,
 			);
 			path = VC;
 			sourceTree = "<group>";
@@ -6979,6 +7015,12 @@
 				EBF717582472355700ED1838 /* PayBookAlertCell.h */,
 				EBF717592472355700ED1838 /* PayBookAlertCell.m */,
 				EBF7175A2472355700ED1838 /* PayBookAlertCell.xib */,
+				EB5F44FE2474CE0E008D316D /* BookDetailCell.h */,
+				EB5F44FF2474CE0E008D316D /* BookDetailCell.m */,
+				EB5F45002474CE0E008D316D /* BookDetailCell.xib */,
+				EB5F45062475093C008D316D /* BookChanelCell.h */,
+				EB5F45072475093C008D316D /* BookChanelCell.m */,
+				EB5F45082475093C008D316D /* BookChanelCell.xib */,
 			);
 			path = View;
 			sourceTree = "<group>";
@@ -7919,6 +7961,7 @@
 			files = (
 				EB8E2D14239666A900CDFBDA /* alert_error@2x.png in Resources */,
 				EB8E2D19239666A900CDFBDA /* alert_success@2x.png in Resources */,
+				EB5F45022474CE0E008D316D /* BookDetailCell.xib in Resources */,
 				EB8E2D46239666A900CDFBDA /* icon_024.gif in Resources */,
 				EB96B89923BF56C900EE09D7 /* TDGroupInfoListCell.xib in Resources */,
 				C69A8E39237546310098FA26 /* ChatSearchFindbyPhotoCell.xib in Resources */,
@@ -7945,6 +7988,7 @@
 				EB8E2CDC239666A900CDFBDA /* uncheck@3x.png in Resources */,
 				EB8E2CE6239666A900CDFBDA /* group_avatar@2x.png in Resources */,
 				EB8E2D95239666A900CDFBDA /* msg_file@3x.png in Resources */,
+				EB5F44F52474BFAD008D316D /* HomeGoodBookCell.xib in Resources */,
 				C7743FA323A8C03D00973D70 /* WorkFlowSearchItemCell.xib in Resources */,
 				EB8E2D56239666A900CDFBDA /* chat_audio_blue@2x.png in Resources */,
 				EB8E2D40239666A900CDFBDA /* icon_021.gif in Resources */,
@@ -8058,6 +8102,7 @@
 				EBE96EC1245ABEB6008BDBA8 /* PayAlert.xib in Resources */,
 				C7D6BC9E235DA1CE00770E7C /* MyDetailViewController.xib in Resources */,
 				EB8E2D84239666A900CDFBDA /* msg_bg_send@3x.png in Resources */,
+				EB5F450A2475093C008D316D /* BookChanelCell.xib in Resources */,
 				EB8E2D3A239666A900CDFBDA /* icon_022_cover.png in Resources */,
 				EB8E2D15239666A900CDFBDA /* alert_error@3x.png in Resources */,
 				EB8E2D53239666A900CDFBDA /* chat_audio_red@3x.png in Resources */,
@@ -8239,6 +8284,7 @@
 				C7D6BC87235DA1CE00770E7C /* NoticeTableViewCell.xib in Resources */,
 				EB8E2D4D239666A900CDFBDA /* icon_013_cover.png in Resources */,
 				C7525DF023890A8B004B9D71 /* MyWorkSpaceCell.xib in Resources */,
+				EB5F44FA2474C52C008D316D /* HomeGoodBookCollectCell.xib in Resources */,
 				C74E72EB23D2FF2B00BD1271 /* DepartureController.xib in Resources */,
 				EB8E2D90239666A900CDFBDA /* msg_recv_audio01@2x.png in Resources */,
 				EB8E2D45239666A900CDFBDA /* icon_030.gif in Resources */,
@@ -8514,9 +8560,11 @@
 				EBB6887B23C9C0C300E24DD9 /* UITextView+RCSBackWord.m in Sources */,
 				EB56DA0723BB31AF00FE7262 /* EMChatFileShowVC.m in Sources */,
 				324F176A239B3B4D0025CAE7 /* NoticeSelectCell.m in Sources */,
+				EB5F45012474CE0E008D316D /* BookDetailCell.m in Sources */,
 				C7D6BB9C235DA18A00770E7C /* ZYCTool.m in Sources */,
 				C7D6BBA8235DA18A00770E7C /* TDSearchBar.m in Sources */,
 				EB0F64D023A9EE5900AD56A0 /* TopicGroupManageModel.m in Sources */,
+				EB5F45092475093C008D316D /* BookChanelCell.m in Sources */,
 				C62270A4236C09FC00E2E3BF /* WQNavigationBar.m in Sources */,
 				EBF64A79241C810A0074FD55 /* FecordSearchVC.m in Sources */,
 				C59D0C2023825DE1007D0760 /* UIPasteboard+YYText.m in Sources */,
@@ -8583,6 +8631,7 @@
 				C7B8646B23C9CE810090F2A3 /* SwipeTableCell.m in Sources */,
 				C7743F8723A86A8600973D70 /* WorkFlowHomeListController.m in Sources */,
 				C6F2E1AB236C528E009E6903 /* MyQRCodeVC.m in Sources */,
+				EB5F44F92474C52C008D316D /* HomeGoodBookCollectCell.m in Sources */,
 				C6F2E1E3236D126B009E6903 /* NSObject+XTExtension.m in Sources */,
 				C69A8DFB2374FBBE0098FA26 /* DetailChatInfoAllUserVC.m in Sources */,
 				EB820ADF23BC97BA00B96C6C /* MyTDTopicUserSearchVC.m in Sources */,
@@ -8722,6 +8771,7 @@
 				C783741223AA46730096AFE2 /* HistoricalWorkFlowDetailsContentCell.m in Sources */,
 				C7954B4C237E799200EDC479 /* Department.m in Sources */,
 				324D960423A1139300C7D9E8 /* ChatMsgSearchModel.m in Sources */,
+				EB5F450524750765008D316D /* BookChanelVC.m in Sources */,
 				EBF2D54A23C2E76600EC35C4 /* MHTopicCommentCell.m in Sources */,
 				C6F2E1D9236D126B009E6903 /* NSString+XTExtension.m in Sources */,
 				C7D6BB9E235DA18A00770E7C /* ZDChatroomAlertView.m in Sources */,
@@ -8850,6 +8900,7 @@
 				EB41514A246BD58F00030371 /* BookHomeSubCell.m in Sources */,
 				C7D6BBB1235DA18A00770E7C /* SurfaceSearchView.m in Sources */,
 				C703801123701018008EA3E4 /* MyApprovalDetailCell.m in Sources */,
+				EB5F44F42474BFAD008D316D /* HomeGoodBookCell.m in Sources */,
 				C622709F236C09FC00E2E3BF /* XLDot.m in Sources */,
 				C7D6BC8F235DA1CE00770E7C /* MyClubApplicationTableViewCell.m in Sources */,
 				C59D0C4123825DE1007D0760 /* CALayer+YYAdd.m in Sources */,
@@ -8920,6 +8971,7 @@
 				C69A8DE423740AB80098FA26 /* ChatMsgDetailChatCell.m in Sources */,
 				C7D6BB99235DA18A00770E7C /* TDFileStorage.m in Sources */,
 				C7743FB223A9078100973D70 /* historicalRecordCell.m in Sources */,
+				EB5F44FD2474CCCA008D316D /* BookDetailVC.m in Sources */,
 				C7973958237BB5AB008BA2DF /* APIPOPOPO.m in Sources */,
 				EBCFA0F723AC6CBC00A62645 /* MyTDTopicUserMoveVC.m in Sources */,
 				C7D6BBB3235DA18A00770E7C /* TDButton.m in Sources */,

BIN
smartRhino.xcworkspace/xcuserdata/niuzhen.xcuserdatad/UserInterfaceState.xcuserstate


BIN
smartRhino/Assets.xcassets/首页/Book_icongary.imageset/Book_icongary@2x.png


BIN
smartRhino/Assets.xcassets/首页/Book_icongary.imageset/Book_icongary@3x.png


+ 22 - 0
smartRhino/Assets.xcassets/首页/Book_icongary.imageset/Contents.json

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

+ 22 - 0
smartRhino/Assets.xcassets/首页/home_hot_icon.imageset/Contents.json

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

BIN
smartRhino/Assets.xcassets/首页/home_hot_icon.imageset/home_hot_icon@2x.png


BIN
smartRhino/Assets.xcassets/首页/home_hot_icon.imageset/home_hot_icon@3x.png


+ 5 - 2
smartRhino/Project/VCModel/ChatMessage/Controller/ChatMsgListVC.m

@@ -217,7 +217,6 @@ static int kConversation_AtAll = 2;
         ChatMsgTopSearchVC *vc = [[ChatMsgTopSearchVC alloc] init];
         [weakSelf.navigationController pushViewController:vc animated:YES];
     }];
-    
     if (@available(iOS 11.0, *)) {
         self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
     } else {
@@ -1339,6 +1338,11 @@ static int kConversation_AtAll = 2;
             }
             [weakSelf.tableView reloadData];
         }];
+        [self.tableView mas_remakeConstraints:^(MASConstraintMaker *make) {
+            make.left.right.mas_equalTo(self.view);
+            make.top.mas_equalTo(self.HeadView.mas_bottom);
+            make.bottom.equalTo(self.operationBottomBgView.mas_top);
+        }];
         self.tabBarController.tabBar.hidden = YES;
         self.operationBottomBgView.hidden = NO;
     }else{
@@ -1352,7 +1356,6 @@ static int kConversation_AtAll = 2;
         self.operationAllSelectButton.hidden = YES;
         self.menuBtn.hidden = NO;
         self.tabBarController.tabBar.hidden = NO;
-         
         self.operationBottomBgView.hidden = YES;
     }
     [self.tableView reloadData];

+ 1 - 1
smartRhino/Project/VCModel/ChatMessage/Controller/TDInternalLeter/contoller/TDInterLeterDetailVC.m

@@ -1065,7 +1065,7 @@
 - (void)setCellLabel:(UILabel *)label withText:(NSString *)text indexPath:(NSIndexPath *)indexPath isShow:(BOOL)isShow
 {
     NSArray * stringArr = [self getLinesArrayOfStringInText:text width:label.frame.size.width];
-    if (stringArr.count > 2) {
+    if (stringArr.count > 3) {
         if (isShow) {
             NSString *upStr = @" 收起";
             NSString *string1 = stringArr[0];

+ 4 - 4
smartRhino/Project/VCModel/Home/OtherHomeVC/ClickOK/AddChannel/View/MyChanelCollectionReusableViewTop.xib

@@ -40,10 +40,10 @@
                     <nil key="highlightedColor"/>
                 </label>
                 <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Gzd-sY-BVU">
-                    <rect key="frame" x="2" y="39" width="316" height="1"/>
+                    <rect key="frame" x="0.0" y="38.5" width="320" height="1.5"/>
                     <color key="backgroundColor" red="0.93725490196078431" green="0.93725490196078431" blue="0.93725490196078431" alpha="1" colorSpace="calibratedRGB"/>
                     <constraints>
-                        <constraint firstAttribute="height" constant="1" id="V4z-o8-0jE"/>
+                        <constraint firstAttribute="height" constant="1.5" id="V4z-o8-0jE"/>
                     </constraints>
                 </view>
             </subviews>
@@ -52,8 +52,8 @@
                 <constraint firstItem="lDV-VD-ERu" firstAttribute="bottom" secondItem="EcY-h1-YIV" secondAttribute="bottom" constant="-1" id="0wK-04-Jck"/>
                 <constraint firstAttribute="trailing" secondItem="VYn-kO-3BM" secondAttribute="trailing" id="3bb-6G-rP6"/>
                 <constraint firstItem="EcY-h1-YIV" firstAttribute="leading" secondItem="9Gg-ye-v9C" secondAttribute="leading" constant="5" id="3nM-8f-4UX"/>
-                <constraint firstItem="9Gg-ye-v9C" firstAttribute="trailing" secondItem="Gzd-sY-BVU" secondAttribute="trailing" constant="2" id="OYh-rz-iAh"/>
-                <constraint firstItem="Gzd-sY-BVU" firstAttribute="leading" secondItem="9Gg-ye-v9C" secondAttribute="leading" constant="2" id="Zdr-e0-oNN"/>
+                <constraint firstItem="9Gg-ye-v9C" firstAttribute="trailing" secondItem="Gzd-sY-BVU" secondAttribute="trailing" id="OYh-rz-iAh"/>
+                <constraint firstItem="Gzd-sY-BVU" firstAttribute="leading" secondItem="9Gg-ye-v9C" secondAttribute="leading" id="Zdr-e0-oNN"/>
                 <constraint firstItem="EcY-h1-YIV" firstAttribute="centerY" secondItem="U6b-Vx-4bR" secondAttribute="centerY" id="e6m-GA-44b"/>
                 <constraint firstItem="VYn-kO-3BM" firstAttribute="top" secondItem="9Gg-ye-v9C" secondAttribute="top" id="g75-sY-BF8"/>
                 <constraint firstItem="VYn-kO-3BM" firstAttribute="leading" secondItem="U6b-Vx-4bR" secondAttribute="leading" id="hci-fB-qKv"/>

+ 188 - 4
smartRhino/Project/VCModel/Home/VC/BookStore/BookStore.storyboard

@@ -313,8 +313,15 @@
                                     <outlet property="height" destination="6YE-Gq-oWm" id="qRT-gB-XZy"/>
                                 </connections>
                             </view>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="efC-5F-5Wb">
+                                <rect key="frame" x="0.0" y="64" width="414" height="40"/>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="40" id="2kR-sb-8UH"/>
+                                </constraints>
+                            </view>
                             <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="T7Z-F3-Qyb">
-                                <rect key="frame" x="0.0" y="64" width="414" height="672"/>
+                                <rect key="frame" x="0.0" y="104" width="414" height="632"/>
                                 <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
                                 <collectionViewFlowLayout key="collectionViewLayout" automaticEstimatedItemSize="YES" minimumLineSpacing="10" minimumInteritemSpacing="10" id="cNO-W5-GVu">
                                     <size key="itemSize" width="50" height="50"/>
@@ -336,18 +343,22 @@
                         </subviews>
                         <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
                         <constraints>
+                            <constraint firstItem="T7Z-F3-Qyb" firstAttribute="bottom" secondItem="Vrj-GD-fcK" secondAttribute="bottom" id="1Jr-K2-7l2"/>
                             <constraint firstItem="egX-5m-hg8" firstAttribute="top" secondItem="7zZ-Ei-75G" secondAttribute="top" id="441-dt-GMQ"/>
-                            <constraint firstItem="Vrj-GD-fcK" firstAttribute="bottom" secondItem="T7Z-F3-Qyb" secondAttribute="bottom" id="APv-Sj-yZV"/>
-                            <constraint firstItem="T7Z-F3-Qyb" firstAttribute="top" secondItem="egX-5m-hg8" secondAttribute="bottom" id="QNM-NS-jaa"/>
+                            <constraint firstItem="efC-5F-5Wb" firstAttribute="leading" secondItem="Vrj-GD-fcK" secondAttribute="leading" id="GsN-Rn-Xso"/>
+                            <constraint firstItem="T7Z-F3-Qyb" firstAttribute="top" secondItem="efC-5F-5Wb" secondAttribute="bottom" id="LQp-Ra-lQ4"/>
+                            <constraint firstItem="Vrj-GD-fcK" firstAttribute="trailing" secondItem="efC-5F-5Wb" secondAttribute="trailing" id="RWz-nx-iBE"/>
                             <constraint firstItem="T7Z-F3-Qyb" firstAttribute="leading" secondItem="Vrj-GD-fcK" secondAttribute="leading" id="aKl-7f-0ij"/>
                             <constraint firstItem="egX-5m-hg8" firstAttribute="leading" secondItem="Vrj-GD-fcK" secondAttribute="leading" id="mLX-nD-YlJ"/>
                             <constraint firstItem="egX-5m-hg8" firstAttribute="trailing" secondItem="Vrj-GD-fcK" secondAttribute="trailing" id="n7D-df-srN"/>
+                            <constraint firstItem="efC-5F-5Wb" firstAttribute="top" secondItem="egX-5m-hg8" secondAttribute="bottom" id="qlm-qf-g01"/>
                             <constraint firstItem="Vrj-GD-fcK" firstAttribute="trailing" secondItem="T7Z-F3-Qyb" secondAttribute="trailing" id="w58-Sp-0xv"/>
                         </constraints>
                         <viewLayoutGuide key="safeArea" id="Vrj-GD-fcK"/>
                     </view>
                     <navigationItem key="navigationItem" id="BbI-iV-j6z"/>
                     <connections>
+                        <outlet property="HeadView" destination="efC-5F-5Wb" id="OBt-C4-Ybg"/>
                         <outlet property="TitleL" destination="hm5-b0-bGy" id="C6M-BJ-qDA"/>
                         <outlet property="collectionView" destination="T7Z-F3-Qyb" id="hc5-Pp-SQZ"/>
                     </connections>
@@ -359,7 +370,6 @@
         <!--Book Content NavVC-->
         <scene sceneID="yQT-ue-5Rm">
             <objects>
-                <placeholder placeholderIdentifier="IBFirstResponder" id="kLd-si-DdZ" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
                 <viewController storyboardIdentifier="BookContentNavVC" id="hJI-SY-M4N" customClass="BookContentNavVC" sceneMemberID="viewController">
                     <view key="view" contentMode="scaleToFill" id="A6a-7S-1Uq">
                         <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
@@ -521,6 +531,7 @@
                         <outlet property="showBtn" destination="ixV-1L-FUX" id="Ow6-tr-Lj0"/>
                     </connections>
                 </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="kLd-si-DdZ" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
             </objects>
             <point key="canvasLocation" x="-968.11594202898561" y="827.44565217391312"/>
         </scene>
@@ -1079,12 +1090,185 @@
                         <outlet property="HeadView" destination="oW3-nG-TfH" id="R5g-dD-u3t"/>
                         <outlet property="leftTableV" destination="huj-97-wP6" id="RDx-rG-wVW"/>
                         <outlet property="rightTableV" destination="Yxd-Gf-hH9" id="7T6-DL-WYW"/>
+                        <outlet property="titleL" destination="J9C-DU-7Mo" id="S9e-yq-8JS"/>
                     </connections>
                 </viewController>
                 <placeholder placeholderIdentifier="IBFirstResponder" id="Ggb-Zt-nFk" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
             </objects>
             <point key="canvasLocation" x="1151" y="827"/>
         </scene>
+        <!--Book DetailVC-->
+        <scene sceneID="Sag-WB-a1f">
+            <objects>
+                <viewController storyboardIdentifier="BookDetailVC" id="q5R-bm-NWw" customClass="BookDetailVC" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="Mtv-Ju-eWy">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="mZn-Ng-PtG" customClass="WQNavigationBar">
+                                <rect key="frame" x="0.0" y="0.0" width="414" height="64"/>
+                                <subviews>
+                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kix-gL-JMD">
+                                        <rect key="frame" x="0.0" y="20" width="414" height="44"/>
+                                        <subviews>
+                                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="VfJ-J1-edc">
+                                                <rect key="frame" x="0.0" y="0.0" width="50" height="44"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="width" constant="50" id="MsP-PW-pof"/>
+                                                    <constraint firstAttribute="height" constant="44" id="VAq-iU-yF4"/>
+                                                </constraints>
+                                                <state key="normal" image="back_black_icon"/>
+                                                <connections>
+                                                    <action selector="backAction:" destination="q5R-bm-NWw" eventType="touchUpInside" id="pqO-kX-WAg"/>
+                                                </connections>
+                                            </button>
+                                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="8ml-b8-wVG">
+                                                <rect key="frame" x="50" y="0.0" width="35" height="44"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="width" constant="35" id="Lfv-R1-m33"/>
+                                                    <constraint firstAttribute="height" constant="44" id="zxQ-fM-nAG"/>
+                                                </constraints>
+                                                <state key="normal" image="menu_black_icon"/>
+                                                <connections>
+                                                    <action selector="menuAction:" destination="q5R-bm-NWw" eventType="touchUpInside" id="Bk6-8e-6AP"/>
+                                                </connections>
+                                            </button>
+                                        </subviews>
+                                        <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                        <constraints>
+                                            <constraint firstItem="8ml-b8-wVG" firstAttribute="leading" secondItem="VfJ-J1-edc" secondAttribute="trailing" id="58X-Hv-6G6"/>
+                                            <constraint firstAttribute="bottom" secondItem="VfJ-J1-edc" secondAttribute="bottom" id="CXZ-2t-itS"/>
+                                            <constraint firstAttribute="height" constant="44" id="IPN-4y-sjU"/>
+                                            <constraint firstItem="VfJ-J1-edc" firstAttribute="leading" secondItem="kix-gL-JMD" secondAttribute="leading" id="Ve9-mF-pg9"/>
+                                            <constraint firstItem="8ml-b8-wVG" firstAttribute="top" secondItem="VfJ-J1-edc" secondAttribute="top" id="gBZ-aH-n4X"/>
+                                            <constraint firstItem="8ml-b8-wVG" firstAttribute="bottom" secondItem="VfJ-J1-edc" secondAttribute="bottom" id="ypL-Jt-VhF"/>
+                                        </constraints>
+                                    </view>
+                                </subviews>
+                                <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                <constraints>
+                                    <constraint firstItem="kix-gL-JMD" firstAttribute="leading" secondItem="jcx-Ci-b6c" secondAttribute="leading" id="9v6-qh-klt"/>
+                                    <constraint firstItem="jcx-Ci-b6c" firstAttribute="bottom" secondItem="kix-gL-JMD" secondAttribute="bottom" id="aOC-IZ-jAP"/>
+                                    <constraint firstItem="kix-gL-JMD" firstAttribute="trailing" secondItem="jcx-Ci-b6c" secondAttribute="trailing" id="e9n-dr-R9A"/>
+                                    <constraint firstAttribute="height" constant="64" id="iul-ry-TKe"/>
+                                </constraints>
+                                <viewLayoutGuide key="safeArea" id="jcx-Ci-b6c"/>
+                                <connections>
+                                    <outlet property="height" destination="iul-ry-TKe" id="Aho-jF-SDF"/>
+                                </connections>
+                            </view>
+                            <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="X5p-vq-Opy">
+                                <rect key="frame" x="0.0" y="64" width="414" height="672"/>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+                            </tableView>
+                        </subviews>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+                        <constraints>
+                            <constraint firstItem="mZn-Ng-PtG" firstAttribute="trailing" secondItem="uXX-hj-Iam" secondAttribute="trailing" id="MUw-zJ-cTA"/>
+                            <constraint firstItem="uXX-hj-Iam" firstAttribute="trailing" secondItem="X5p-vq-Opy" secondAttribute="trailing" id="Ors-IQ-jek"/>
+                            <constraint firstItem="X5p-vq-Opy" firstAttribute="leading" secondItem="uXX-hj-Iam" secondAttribute="leading" id="TU5-M5-4Mr"/>
+                            <constraint firstItem="uXX-hj-Iam" firstAttribute="bottom" secondItem="X5p-vq-Opy" secondAttribute="bottom" id="TdJ-eB-rcA"/>
+                            <constraint firstItem="X5p-vq-Opy" firstAttribute="top" secondItem="mZn-Ng-PtG" secondAttribute="bottom" id="Yia-x2-0cT"/>
+                            <constraint firstItem="mZn-Ng-PtG" firstAttribute="top" secondItem="Mtv-Ju-eWy" secondAttribute="top" id="aeG-tU-1Wx"/>
+                            <constraint firstItem="mZn-Ng-PtG" firstAttribute="leading" secondItem="uXX-hj-Iam" secondAttribute="leading" id="mFx-85-lIl"/>
+                        </constraints>
+                        <viewLayoutGuide key="safeArea" id="uXX-hj-Iam"/>
+                    </view>
+                    <navigationItem key="navigationItem" id="4lW-ub-8Vo"/>
+                    <connections>
+                        <outlet property="tableView" destination="X5p-vq-Opy" id="0hi-65-GvG"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="wzW-J1-Tyn" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="1151" y="827"/>
+        </scene>
+        <!--Book ChanelVC-->
+        <scene sceneID="CFI-mY-TJl">
+            <objects>
+                <viewController storyboardIdentifier="BookChanelVC" id="N6F-rY-HDa" customClass="BookChanelVC" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="ccl-2T-7Fk">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="w6N-Ia-ajc" customClass="WQNavigationBar">
+                                <rect key="frame" x="0.0" y="0.0" width="414" height="64"/>
+                                <subviews>
+                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="qc2-nO-40e">
+                                        <rect key="frame" x="0.0" y="20" width="414" height="44"/>
+                                        <subviews>
+                                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="频  道" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ntp-AZ-Qdt">
+                                                <rect key="frame" x="184" y="11.666666666666668" width="46" height="21.000000000000004"/>
+                                                <fontDescription key="fontDescription" type="system" pointSize="18"/>
+                                                <color key="textColor" red="0.039215686270000001" green="0.039215686270000001" blue="0.039215686270000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                <nil key="highlightedColor"/>
+                                            </label>
+                                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Ctn-0y-UJk">
+                                                <rect key="frame" x="0.0" y="0.0" width="50" height="44"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="width" constant="50" id="F75-5R-6fY"/>
+                                                    <constraint firstAttribute="height" constant="44" id="HMl-wk-nFs"/>
+                                                </constraints>
+                                                <state key="normal" image="back_black_icon"/>
+                                                <connections>
+                                                    <action selector="backAction:" destination="N6F-rY-HDa" eventType="touchUpInside" id="8Y8-cl-xWn"/>
+                                                </connections>
+                                            </button>
+                                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="zF4-5q-VSk">
+                                                <rect key="frame" x="50" y="0.0" width="35" height="44"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="height" constant="44" id="J19-ao-7gM"/>
+                                                    <constraint firstAttribute="width" constant="35" id="ta2-Wm-Dol"/>
+                                                </constraints>
+                                                <state key="normal" image="menu_black_icon"/>
+                                                <connections>
+                                                    <action selector="menuAction:" destination="N6F-rY-HDa" eventType="touchUpInside" id="sc7-fb-BwG"/>
+                                                </connections>
+                                            </button>
+                                        </subviews>
+                                        <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                        <constraints>
+                                            <constraint firstItem="zF4-5q-VSk" firstAttribute="bottom" secondItem="Ctn-0y-UJk" secondAttribute="bottom" id="2P1-zE-UOJ"/>
+                                            <constraint firstAttribute="bottom" secondItem="Ctn-0y-UJk" secondAttribute="bottom" id="45v-fz-MvM"/>
+                                            <constraint firstItem="Ctn-0y-UJk" firstAttribute="leading" secondItem="qc2-nO-40e" secondAttribute="leading" id="5oq-zr-6lu"/>
+                                            <constraint firstItem="Ntp-AZ-Qdt" firstAttribute="centerY" secondItem="qc2-nO-40e" secondAttribute="centerY" id="Amn-sQ-6lM"/>
+                                            <constraint firstItem="zF4-5q-VSk" firstAttribute="leading" secondItem="Ctn-0y-UJk" secondAttribute="trailing" id="BVo-Ha-u7K"/>
+                                            <constraint firstItem="Ntp-AZ-Qdt" firstAttribute="centerX" secondItem="qc2-nO-40e" secondAttribute="centerX" id="UwP-kK-2js"/>
+                                            <constraint firstItem="zF4-5q-VSk" firstAttribute="top" secondItem="Ctn-0y-UJk" secondAttribute="top" id="b6Y-Jq-aDp"/>
+                                            <constraint firstAttribute="height" constant="44" id="y5D-rS-cH4"/>
+                                        </constraints>
+                                    </view>
+                                </subviews>
+                                <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="64" id="M4p-aA-tec"/>
+                                    <constraint firstItem="jWJ-vS-1yY" firstAttribute="bottom" secondItem="qc2-nO-40e" secondAttribute="bottom" id="SjS-c3-f4Q"/>
+                                    <constraint firstItem="qc2-nO-40e" firstAttribute="leading" secondItem="jWJ-vS-1yY" secondAttribute="leading" id="Vwp-KU-pKc"/>
+                                    <constraint firstItem="qc2-nO-40e" firstAttribute="trailing" secondItem="jWJ-vS-1yY" secondAttribute="trailing" id="fiH-kJ-MsS"/>
+                                </constraints>
+                                <viewLayoutGuide key="safeArea" id="jWJ-vS-1yY"/>
+                                <connections>
+                                    <outlet property="height" destination="M4p-aA-tec" id="lD0-df-z0i"/>
+                                </connections>
+                            </view>
+                        </subviews>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+                        <constraints>
+                            <constraint firstItem="w6N-Ia-ajc" firstAttribute="top" secondItem="ccl-2T-7Fk" secondAttribute="top" id="3It-nk-7em"/>
+                            <constraint firstItem="w6N-Ia-ajc" firstAttribute="leading" secondItem="usI-Pd-Ojq" secondAttribute="leading" id="8iL-Ep-pZd"/>
+                            <constraint firstItem="w6N-Ia-ajc" firstAttribute="trailing" secondItem="usI-Pd-Ojq" secondAttribute="trailing" id="q1V-wg-sQ6"/>
+                        </constraints>
+                        <viewLayoutGuide key="safeArea" id="usI-Pd-Ojq"/>
+                    </view>
+                    <navigationItem key="navigationItem" id="mxV-Hf-gJr"/>
+                    <connections>
+                        <outlet property="navBar" destination="qc2-nO-40e" id="g0O-OP-0Uc"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="kgA-Zd-YqX" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="-968" y="1524"/>
+        </scene>
     </scenes>
     <resources>
         <image name="Book_shaisuan_right" width="17" height="15.666666984558105"/>

+ 6 - 5
smartRhino/Project/VCModel/Home/VC/BookStore/VC/BookAllLookVC.m

@@ -35,6 +35,7 @@
 
 @interface BookAllLookVC ()<UICollectionViewDelegate,UICollectionViewDataSource>
 @property (weak, nonatomic) IBOutlet UICollectionView *collectionView;
+@property (weak, nonatomic) IBOutlet UIView      *HeadView;
 @property (weak, nonatomic) IBOutlet UILabel     *TitleL;
 @property (strong, nonatomic) MyTDGroupView             *SearchView;
 @property (strong, nonatomic) NSMutableArray            *dataArray;
@@ -74,11 +75,11 @@
     layout.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0);
     [self.collectionView setCollectionViewLayout:layout];
     self.collectionView.backgroundColor = [UIColor whiteColor];
-//    [self.HeadView addSubview:self.SearchView];
-//    [self.SearchView  mas_makeConstraints:^(MASConstraintMaker *make) {
-//        make.left.top.right.mas_equalTo(self.HeadView);
-//        make.height.mas_offset(36);
-//    }];
+    [self.HeadView addSubview:self.SearchView];
+    [self.SearchView  mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.top.right.mas_equalTo(self.HeadView);
+        make.height.mas_offset(36);
+    }];
     [self.collectionView registerNib:[UINib nibWithNibName:@"BookAllLookCell" bundle:nil] forCellWithReuseIdentifier:@"BookAllLookCell"];
     self.TitleL.text = self.titleStr;
     [self setDataModel];

+ 17 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/VC/BookChanelVC.h

@@ -0,0 +1,17 @@
+//
+//  BookChanelVC.h
+//  smartRhino
+//
+//  Created by niuzhen on 2020/5/20.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "BaseViewController.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BookChanelVC : BaseViewController
++(BookChanelVC *)initBookChanelVC;
+@end
+
+NS_ASSUME_NONNULL_END

+ 138 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/VC/BookChanelVC.m

@@ -0,0 +1,138 @@
+//
+//  BookChanelVC.m
+//  smartRhino
+//
+//  Created by niuzhen on 2020/5/20.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "BookChanelVC.h"
+#import "FootCollectionReusableView.h"
+#import "MyChanelCollectionReusableViewTop.h"
+#import "BookChanelCell.h"
+#import "BookWeiCourseListVC.h"
+
+
+@interface BookChanelVC ()<UICollectionViewDelegate, UICollectionViewDataSource,UICollectionViewDelegateFlowLayout>
+@property (weak, nonatomic) IBOutlet UIView    *navBar;
+@property (strong, nonatomic) UICollectionView *collectionView;
+@property (strong, nonatomic) NSMutableArray   *dataArray;
+@end
+
+@implementation BookChanelVC
++(BookChanelVC *)initBookChanelVC{
+    BookChanelVC *controller = [StoryboardManager.shared.Book instantiateViewControllerWithIdentifier:@"BookChanelVC"];
+    return controller;
+}
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    self.fd_prefersNavigationBarHidden = YES;
+    self.view.backgroundColor = UIColorHex(F7F7F7);
+    [self createCollectionView];
+    [self layoutSubviews];
+    [self setArray];
+    [self.collectionView reloadData];
+    
+}
+- (void)setArray
+{
+    self.dataArray = [NSMutableArray arrayWithArray:@[@"微课",@"工具书",@"历史",@"心理",@"文学",@"社会",@"艺术",@"经济",@"历史"]];
+}
+- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{
+    return 3;
+}
+- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
+    return self.dataArray.count;
+}
+- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath{
+    if (kind == UICollectionElementKindSectionFooter){
+        FootCollectionReusableView *footerView = [self.collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"FootCollectionReusableView" forIndexPath:indexPath];
+        return footerView;
+    }else{
+        MyChanelCollectionReusableViewTop *headerView = [self.collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"MyChanelCollectionReusableViewTop" forIndexPath:indexPath];
+        headerView.bottomLineView.hidden = NO;
+        headerView.labelTitle.text = @"视频";
+        headerView.labelDetail.text = @"";
+        headerView.left.constant = 15.f;
+        headerView.labelTitle.font = [UIFont systemFontOfSize:16.f];
+        headerView.labelTitle.textColor = UIColorHex(0x0a0a0a);
+        return headerView;
+    }
+}
+- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section {
+    return CGSizeMake(kGXScreenWidth-14, 36);
+}
+- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForFooterInSection:(NSInteger)section{
+    return CGSizeMake(kGXScreenWidth-14, 8);
+}
+
+- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
+    return CGSizeMake((kGXScreenWidth -17)/3 ,122.f);
+}
+-(UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
+    return UIEdgeInsetsMake(0, 0, 0, 0);
+}
+- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
+    BookChanelCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"BookChanelCell" forIndexPath:indexPath];
+    cell.titleL.text = [self.dataArray objectAtIndex:indexPath.item];
+    return cell;
+}
+- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
+    [collectionView deselectItemAtIndexPath:indexPath animated:YES];
+    switch (indexPath.item) {
+        case 0:
+        {
+            BookWeiCourseListVC * vc = [BookWeiCourseListVC initBookWeiCourseListVC];
+            vc.titleStr = @"微  课";
+            [self.navigationController pushViewController:vc animated:YES];
+        }
+            break;
+        case 1:
+        {
+            BookWeiCourseListVC * vc = [BookWeiCourseListVC initBookWeiCourseListVC];
+            vc.titleStr = @"工具书";
+            [self.navigationController pushViewController:vc animated:YES];
+        }
+            break;
+        default:
+            break;
+    }
+}
+#pragma mark - Setter
+
+- (void)createCollectionView {
+    UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
+    layout.minimumLineSpacing = 1.5f;
+    layout.minimumInteritemSpacing = 1.5f;
+    self.collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];
+    self.collectionView.dataSource = self;
+    self.collectionView.delegate = self;
+    self.collectionView.layer.cornerRadius = 2;
+    self.collectionView.layer.masksToBounds = YES;
+    self.collectionView.backgroundColor = UIColorHex(F7F7F7);
+    [self.collectionView registerNib:[UINib nibWithNibName:@"BookChanelCell" bundle:nil] forCellWithReuseIdentifier:@"BookChanelCell"];
+    [self.collectionView registerNib:[UINib nibWithNibName:@"MyChanelCollectionReusableViewTop" bundle:nil] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"MyChanelCollectionReusableViewTop"];
+    [self.collectionView registerNib:[UINib nibWithNibName:@"FootCollectionReusableView" bundle:nil] forSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"FootCollectionReusableView"];
+    self.collectionView.backgroundColor = [UIColor whiteColor];
+    [self.collectionView setShowsVerticalScrollIndicator:NO];
+    [self.collectionView setShowsHorizontalScrollIndicator:NO];
+    [self.view addSubview:self.collectionView];
+    self.collectionView.backgroundColor = UIColorHex(F7F7F7);
+}
+
+#pragma mark - 布局
+-(void)layoutSubviews{
+    [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.mas_offset(7);
+        make.right.mas_offset(-7);
+        make.top.mas_equalTo(self.navBar.mas_bottom).offset(7);
+        if (@available(iOS 11.0, *)) {
+            make.bottom.equalTo(self.view.mas_safeAreaLayoutGuideBottom);
+        } else {
+            make.bottom.equalTo(self.view.mas_bottom);
+        }
+    }];
+}
+
+
+@end

+ 17 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/VC/BookDetailVC.h

@@ -0,0 +1,17 @@
+//
+//  BookDetailVC.h
+//  smartRhino
+//
+//  Created by niuzhen on 2020/5/20.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "BaseViewController.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BookDetailVC : BaseViewController
++(BookDetailVC *)initBookDetailVC;
+@end
+
+NS_ASSUME_NONNULL_END

+ 151 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/VC/BookDetailVC.m

@@ -0,0 +1,151 @@
+//
+//  BookDetailVC.m
+//  smartRhino
+//
+//  Created by niuzhen on 2020/5/20.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "BookDetailVC.h"
+#import "BookDetailCell.h"
+
+@interface BookDetailVC ()<UITableViewDelegate,UITableViewDataSource>
+@property (weak, nonatomic) IBOutlet UITableView *tableView;
+@property (assign,nonatomic)BOOL                  isShow;
+@end
+
+@implementation BookDetailVC
++(BookDetailVC *)initBookDetailVC{
+    BookDetailVC *controller = [StoryboardManager.shared.Book instantiateViewControllerWithIdentifier:@"BookDetailVC"];
+    return controller;
+}
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    self.fd_prefersNavigationBarHidden = YES;
+    self.tableView.delegate = self;
+    self.tableView.dataSource = self;
+    [self.tableView reloadData];
+}
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
+{
+    return 10;
+}
+- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    return UITableViewAutomaticDimension;
+}
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    if (indexPath.row == 0) {
+        BookDetailCell * cell = [BookDetailCell configCell0:tableView indexPath:indexPath];
+         NSString * str = @"《恶意》是东野圭吾挑战写作极限的长篇杰作,与白行》《嫌疑人X的献身》《解忧杂货店》并称东野圭大杰作。《恶意》深刻揭示人性,故事中无边的恶意见底,有如万丈深渊,让人不寒而栗。读完《恶意》算真正认识东野圭吾。《纽约时报》称“《恶意》再现了东野圭吾对小说的掌控,比起黄金周期间东京的公路,有更多的纠结、变道和反转。";
+        NSMutableAttributedString *mutableAttributedString = [[NSMutableAttributedString alloc] initWithString:str];
+        NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
+        [paragraphStyle setLineSpacing:8];
+        mutableAttributedString.alignment = NSTextAlignmentJustified;
+        [mutableAttributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [str length])];
+        [mutableAttributedString addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:15] range:NSMakeRange(0, str.length)];
+        [mutableAttributedString addAttribute:NSForegroundColorAttributeName value:UIColorHex(0x0A0A0A) range:NSMakeRange(0, str.length)];
+        cell.contentL.attributedText = mutableAttributedString;
+        if (self.isShow) {
+            cell.contentL.numberOfLines = 0;
+            [cell.ShowBtn setTitle:@"收起" forState:UIControlStateNormal];
+        }else{
+            cell.contentL.numberOfLines = 3;
+            [cell.ShowBtn setTitle:@"展开" forState:UIControlStateNormal];
+        }
+        WS(weakSelf);
+        [cell.ShowBtn setAction:^{
+            weakSelf.isShow = !weakSelf.isShow;
+            dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+                [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
+            });
+        }];
+        return cell;
+    }else{
+        BookDetailCell * cell = [BookDetailCell configCell1:tableView indexPath:indexPath];
+        [cell setDataW];
+        return cell;
+    }
+}
+//- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
+//{
+//
+//}
+
+- (BOOL)setCellLabel:(UILabel *)label withText:(NSString *)text isShow:(BOOL)isShow
+{
+    NSArray * stringArr = [self getLinesArrayOfStringInText:text width:(SCREEN_WIDTH - 30)];
+    if (stringArr.count > 3) {
+        if (isShow) {
+            NSString *upStr = @" 收起";
+            NSString *string1 = stringArr[0];
+            NSString *string2 = stringArr.lastObject;
+            NSString *string3 = [NSString stringWithFormat:@"%@%@",string2,upStr];
+            if (string3.length > string1.length) {
+                upStr = [NSString stringWithFormat:@"%@\n%@",text,upStr];
+            }else{
+                upStr = [NSString stringWithFormat:@"%@%@",text,upStr];
+            }
+            label.attributedText = [self AttributedwithText:upStr];
+            label.numberOfLines = 0;
+            return NO;
+        }else{
+            label.numberOfLines = 3;
+            NSString *string1 = stringArr[0];
+            NSString *string2 = stringArr[1];
+            NSString *string3 = stringArr[2];
+            string3 = [string3 substringToIndex:string3.length - 6];
+            NSString *string4 = [NSString stringWithFormat:@"%@%@%@...展开",string1,string2,string3];
+            label.attributedText = [self AttributedwithText:string4];
+            return NO;
+        }
+    }else{
+        label.numberOfLines = 0;
+        label.attributedText = [self AttributedwithText:text];
+        return YES;
+    }
+}
+- (NSAttributedString *)AttributedwithText:(NSString *)text
+{
+    NSMutableAttributedString *mutableAttributedString = [[NSMutableAttributedString alloc] initWithString:text];
+    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
+    [paragraphStyle setLineSpacing:8];
+    [mutableAttributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [text length])];
+    [mutableAttributedString addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:15] range:NSMakeRange(0, text.length)];
+    [mutableAttributedString addAttribute:NSForegroundColorAttributeName value:UIColorHex(0x0A0A0A) range:NSMakeRange(0, text.length - 2)];
+    [mutableAttributedString addAttribute:NSForegroundColorAttributeName value:UIColorHex(0x1F87DB) range:NSMakeRange(text.length - 2, 2)];
+    return mutableAttributedString;
+}
+- (NSArray *)getLinesArrayOfStringInText:(NSString *)text width:(CGFloat)width{
+    UIFont *font = [UIFont systemFontOfSize:15];
+    CTFontRef myFont = CTFontCreateWithName((CFStringRef)([font fontName]), [font pointSize], NULL);
+    NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc] initWithString:text];
+    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
+    [paragraphStyle setLineSpacing:8];
+    [attStr addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [text length])];
+    [attStr addAttribute:NSForegroundColorAttributeName value:UIColorHex(0x0A0A0A) range:NSMakeRange(0, text.length)];
+    [attStr addAttribute:(NSString *)kCTFontAttributeName value:(__bridge  id)myFont range:NSMakeRange(0, attStr.length)];
+    CFRelease(myFont);
+    CTFramesetterRef frameSetter = CTFramesetterCreateWithAttributedString(( CFAttributedStringRef)attStr);
+    CGMutablePathRef path = CGPathCreateMutable();
+    CGPathAddRect(path, NULL, CGRectMake(0,0,width,100000));
+    CTFrameRef frame = CTFramesetterCreateFrame(frameSetter, CFRangeMake(0, 0), path, NULL);
+    NSArray *lines = ( NSArray *)CTFrameGetLines(frame);
+    NSMutableArray *linesArray = [[NSMutableArray alloc]init];
+    for (id line in lines) {
+        CTLineRef lineRef = (__bridge  CTLineRef )line;
+        CFRange lineRange = CTLineGetStringRange(lineRef);
+        NSRange range = NSMakeRange(lineRange.location, lineRange.length);
+        NSString *lineString = [text substringWithRange:range];
+        CFAttributedStringSetAttribute((CFMutableAttributedStringRef)attStr, lineRange, kCTKernAttributeName, (CFTypeRef)([NSNumber numberWithFloat:0.0]));
+        CFAttributedStringSetAttribute((CFMutableAttributedStringRef)attStr, lineRange, kCTKernAttributeName, (CFTypeRef)([NSNumber numberWithInt:0.0]));
+        [linesArray addObject:lineString];
+    }
+    CGPathRelease(path);
+    CFRelease( frame );
+    CFRelease(frameSetter);
+    return (NSArray *)linesArray;
+}
+@end

+ 2 - 2
smartRhino/Project/VCModel/Home/VC/BookStore/VC/BookStoreHome.m

@@ -37,7 +37,7 @@
 #import "BookMingVC.h"
 #import "BookAllLookVC.h"
 #import "BookContentNavVC.h"
-#import "BookWeiCourseListVC.h"
+#import "BookChanelVC.h"
 
 @interface BookStoreHome ()<UITableViewDelegate,UITableViewDataSource,UICollectionViewDelegate,UICollectionViewDataSource>
 @property (weak, nonatomic) IBOutlet UITableView *tableView;
@@ -467,7 +467,7 @@
         }break;
         case 3:
         {
-            BookWeiCourseListVC * vc = [BookWeiCourseListVC initBookWeiCourseListVC];
+            BookChanelVC * vc = [BookChanelVC initBookChanelVC];
             [self.navigationController pushViewController:vc animated:YES];
         }
             break;

+ 2 - 1
smartRhino/Project/VCModel/Home/VC/BookStore/VC/BookWeiCourseListVC.h

@@ -7,10 +7,11 @@
 //
 
 #import "BaseViewController.h"
-
+#import "BaseViewController.h"
 NS_ASSUME_NONNULL_BEGIN
 
 @interface BookWeiCourseListVC : BaseViewController
+@property (nonatomic, copy) NSString    * titleStr;
 +(BookWeiCourseListVC *)initBookWeiCourseListVC;
 @end
 

+ 2 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/VC/BookWeiCourseListVC.m

@@ -16,6 +16,7 @@
 @property (weak, nonatomic) IBOutlet UIView *HeadView;
 @property (weak, nonatomic) IBOutlet UITableView *leftTableV;
 @property (weak, nonatomic) IBOutlet UITableView *rightTableV;
+@property (weak, nonatomic) IBOutlet UILabel     *titleL;
 @property (strong, nonatomic) MyTDGroupView      *SearchView;
 @property (assign,nonatomic) BOOL         isRow;
 @property (strong,nonatomic) NSMutableArray      *dataArray;
@@ -60,6 +61,7 @@
         make.left.top.right.mas_equalTo(self.HeadView);
         make.height.mas_offset(36);
     }];
+    self.titleL.text = self.titleStr;
     [self setArray];
     [self.leftTableV reloadData];
     [self.rightTableV reloadData];

+ 18 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/View/BookChanelCell.h

@@ -0,0 +1,18 @@
+//
+//  BookChanelCell.h
+//  smartRhino
+//
+//  Created by niuzhen on 2020/5/20.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BookChanelCell : UICollectionViewCell
+@property (weak, nonatomic) IBOutlet UIImageView *imagV;
+@property (weak, nonatomic) IBOutlet UILabel *titleL;
+@end
+
+NS_ASSUME_NONNULL_END

+ 18 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/View/BookChanelCell.m

@@ -0,0 +1,18 @@
+//
+//  BookChanelCell.m
+//  smartRhino
+//
+//  Created by niuzhen on 2020/5/20.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "BookChanelCell.h"
+
+@implementation BookChanelCell
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    // Initialization code
+}
+
+@end

+ 54 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/View/BookChanelCell.xib

@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="15705" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina6_1" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15706"/>
+        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" id="gTV-IL-0wX" customClass="BookChanelCell">
+            <rect key="frame" x="0.0" y="0.0" width="194" height="126"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
+                <rect key="frame" x="0.0" y="0.0" width="194" height="126"/>
+                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                <subviews>
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="img_placeHolder" translatesAutoresizingMaskIntoConstraints="NO" id="9Pu-EG-58o">
+                        <rect key="frame" x="70" y="15" width="54" height="70"/>
+                        <constraints>
+                            <constraint firstAttribute="width" constant="54" id="SYJ-Ab-OWB"/>
+                            <constraint firstAttribute="height" constant="70" id="uAq-ZA-5Hz"/>
+                        </constraints>
+                    </imageView>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="金融财经" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="LVY-zD-GZP">
+                        <rect key="frame" x="68" y="95" width="58" height="17"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                        <color key="textColor" red="0.039215686274509803" green="0.039215686274509803" blue="0.039215686274509803" alpha="1" colorSpace="calibratedRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                </subviews>
+            </view>
+            <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+            <constraints>
+                <constraint firstItem="9Pu-EG-58o" firstAttribute="centerX" secondItem="gTV-IL-0wX" secondAttribute="centerX" id="3GW-sS-yKk"/>
+                <constraint firstItem="9Pu-EG-58o" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" constant="15" id="KEr-dX-umy"/>
+                <constraint firstItem="LVY-zD-GZP" firstAttribute="top" secondItem="9Pu-EG-58o" secondAttribute="bottom" constant="10" id="aUg-uq-pCP"/>
+                <constraint firstItem="LVY-zD-GZP" firstAttribute="centerX" secondItem="gTV-IL-0wX" secondAttribute="centerX" id="mtq-p3-kpK"/>
+            </constraints>
+            <viewLayoutGuide key="safeArea" id="SEy-5g-ep8"/>
+            <size key="customSize" width="194" height="126"/>
+            <connections>
+                <outlet property="imagV" destination="9Pu-EG-58o" id="hbj-RA-eTm"/>
+                <outlet property="titleL" destination="LVY-zD-GZP" id="vI4-5p-Dvh"/>
+            </connections>
+            <point key="canvasLocation" x="242.0289855072464" y="178.125"/>
+        </collectionViewCell>
+    </objects>
+    <resources>
+        <image name="img_placeHolder" width="70" height="70"/>
+    </resources>
+</document>

+ 31 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/View/BookDetailCell.h

@@ -0,0 +1,31 @@
+//
+//  BookDetailCell.h
+//  smartRhino
+//
+//  Created by niuzhen on 2020/5/20.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BookDetailCell : UITableViewCell
+@property (weak, nonatomic) IBOutlet UILabel *contentL;
+@property (weak, nonatomic) IBOutlet UIImageView *imagV;
+@property (weak, nonatomic) IBOutlet UILabel *titleL;
+@property (weak, nonatomic) IBOutlet UILabel *nameL;
+@property (weak, nonatomic) IBOutlet UILabel *subTitleL;
+@property (weak, nonatomic) IBOutlet UILabel *numL;
+@property (weak, nonatomic) IBOutlet UIView *conView;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *constant;
+@property (weak, nonatomic) IBOutlet UIButton *ShowBtn;
+
++ (BookDetailCell *)configCell0:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;
++ (BookDetailCell *)configCell1:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;
+
+- (void)setDataW;
+- (void)setData;
+@end
+
+NS_ASSUME_NONNULL_END

+ 50 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/View/BookDetailCell.m

@@ -0,0 +1,50 @@
+//
+//  BookDetailCell.m
+//  smartRhino
+//
+//  Created by niuzhen on 2020/5/20.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "BookDetailCell.h"
+
+@implementation BookDetailCell
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    // Initialization code
+}
+
+- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
+    [super setSelected:selected animated:animated];
+
+    // Configure the view for the selected state
+}
++ (BookDetailCell *)configCell0:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath{
+    static NSString *cellIdentifer = @"BookDetailCell0";
+    BookDetailCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifer];
+    if (cell == nil) {
+        cell = [[[NSBundle mainBundle] loadNibNamed:@"BookDetailCell" owner:nil options:nil] objectAtIndex:0];
+    }
+    return cell;
+}
++ (BookDetailCell *)configCell1:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath{
+    static NSString *cellIdentifer = @"BookDetailCell1";
+    BookDetailCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifer];
+    if (cell == nil) {
+        cell = [[[NSBundle mainBundle] loadNibNamed:@"BookDetailCell" owner:nil options:nil] objectAtIndex:1];
+    }
+    return cell;
+}
+- (void)setDataW
+{
+    [self.subTitleL layoutIfNeeded];
+    [self.conView layoutIfNeeded];
+    self.constant.constant = CGRectGetMaxY(self.subTitleL.frame);
+}
+- (void)setData
+{
+
+}
+
+@end

+ 200 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/View/BookDetailCell.xib

@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="15705" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina6_1" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15706"/>
+        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <tableViewCell contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="BookDetailCell0" rowHeight="151" id="KGk-i7-Jjw" customClass="BookDetailCell">
+            <rect key="frame" x="0.0" y="0.0" width="320" height="151"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+            <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
+                <rect key="frame" x="0.0" y="0.0" width="320" height="151"/>
+                <autoresizingMask key="autoresizingMask"/>
+                <subviews>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="东野圭吾" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="uBk-LA-QHw">
+                        <rect key="frame" x="15" y="10" width="70" height="79.5"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                        <nil key="textColor"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="252" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="nds-Dh-LOT">
+                        <rect key="frame" x="15" y="104.5" width="290" height="18"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                        <nil key="textColor"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="trailing" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="cOs-rX-2KW">
+                        <rect key="frame" x="265" y="122.5" width="40" height="28"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="28" id="WU9-ue-OLJ"/>
+                            <constraint firstAttribute="width" constant="40" id="q5c-qB-CIR"/>
+                        </constraints>
+                        <state key="normal" title="展开">
+                            <color key="titleColor" red="0.22352941179999999" green="0.47450980390000003" blue="0.82745098039999998" alpha="1" colorSpace="calibratedRGB"/>
+                        </state>
+                    </button>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Ysz-Hj-Bio">
+                        <rect key="frame" x="15" y="150.5" width="290" height="0.5"/>
+                        <color key="backgroundColor" red="0.8980392157" green="0.8980392157" blue="0.8980392157" alpha="1" colorSpace="calibratedRGB"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="0.5" id="io1-cS-OLC"/>
+                        </constraints>
+                    </view>
+                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="UkB-VA-FI6">
+                        <rect key="frame" x="243" y="35" width="62" height="30"/>
+                        <state key="normal" title="查看百科">
+                            <color key="titleColor" red="0.22352941179999999" green="0.47450980390000003" blue="0.82745098039999998" alpha="1" colorSpace="calibratedRGB"/>
+                        </state>
+                    </button>
+                </subviews>
+                <constraints>
+                    <constraint firstItem="nds-Dh-LOT" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="15" id="2a9-dN-L7p"/>
+                    <constraint firstItem="uBk-LA-QHw" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="15" id="5zg-o5-CXT"/>
+                    <constraint firstAttribute="trailing" secondItem="Ysz-Hj-Bio" secondAttribute="trailing" constant="15" id="8OW-TG-gyG"/>
+                    <constraint firstItem="Ysz-Hj-Bio" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="15" id="DTL-6c-Xbg"/>
+                    <constraint firstItem="Ysz-Hj-Bio" firstAttribute="top" secondItem="nds-Dh-LOT" secondAttribute="bottom" constant="28" id="F2b-Uy-gyU"/>
+                    <constraint firstAttribute="bottom" secondItem="Ysz-Hj-Bio" secondAttribute="bottom" id="OSM-8i-hzI"/>
+                    <constraint firstItem="cOs-rX-2KW" firstAttribute="trailing" secondItem="nds-Dh-LOT" secondAttribute="trailing" id="czJ-0g-iI2"/>
+                    <constraint firstAttribute="trailing" secondItem="nds-Dh-LOT" secondAttribute="trailing" constant="15" id="gAh-Pw-0oe"/>
+                    <constraint firstItem="cOs-rX-2KW" firstAttribute="top" secondItem="nds-Dh-LOT" secondAttribute="bottom" id="jgP-Uj-BZb"/>
+                    <constraint firstItem="nds-Dh-LOT" firstAttribute="top" secondItem="uBk-LA-QHw" secondAttribute="bottom" constant="15" id="k1Y-CS-PF6"/>
+                    <constraint firstItem="UkB-VA-FI6" firstAttribute="centerY" secondItem="uBk-LA-QHw" secondAttribute="centerY" id="twb-lp-VhN"/>
+                    <constraint firstAttribute="trailing" secondItem="UkB-VA-FI6" secondAttribute="trailing" constant="15" id="ubH-y6-jG6"/>
+                    <constraint firstItem="uBk-LA-QHw" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="10" id="vZJ-Nl-fHP"/>
+                </constraints>
+            </tableViewCellContentView>
+            <viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
+            <connections>
+                <outlet property="ShowBtn" destination="cOs-rX-2KW" id="xqi-rf-nOs"/>
+                <outlet property="contentL" destination="nds-Dh-LOT" id="r2E-q8-yBm"/>
+                <outlet property="titleL" destination="uBk-LA-QHw" id="wtc-dV-GvH"/>
+            </connections>
+            <point key="canvasLocation" x="126.08695652173914" y="41.852678571428569"/>
+        </tableViewCell>
+        <tableViewCell contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="BookDetailCell1" id="QQX-I6-LeZ" customClass="BookDetailCell">
+            <rect key="frame" x="0.0" y="0.0" width="320" height="124"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+            <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="QQX-I6-LeZ" id="Pr8-nc-hSi">
+                <rect key="frame" x="0.0" y="0.0" width="320" height="124"/>
+                <autoresizingMask key="autoresizingMask"/>
+                <subviews>
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="img_placeHolder" translatesAutoresizingMaskIntoConstraints="NO" id="uTI-hF-AKF">
+                        <rect key="frame" x="15" y="15" width="60" height="90"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="90" id="YMK-3n-SFj"/>
+                            <constraint firstAttribute="width" constant="60" id="fXa-1A-5s1"/>
+                        </constraints>
+                    </imageView>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="QzJ-kp-QUC">
+                        <rect key="frame" x="89" y="15" width="216" height="90"/>
+                        <subviews>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="252" verticalCompressionResistancePriority="751" text="翻转教学11法" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5Et-ox-nyR">
+                                <rect key="frame" x="0.0" y="0.0" width="102" height="21"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="252" text="王德培等" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="F93-AU-HTc">
+                                <rect key="frame" x="0.0" y="31" width="216" height="15"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                                <color key="textColor" red="0.36470588240000001" green="0.3921568627" blue="0.43137254899999999" alpha="0.84705882349999995" colorSpace="calibratedRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" verticalCompressionResistancePriority="751" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="59c-4k-GhG">
+                                <rect key="frame" x="0.0" y="56" width="216" height="29"/>
+                                <string key="text">我们看重的是教给学生多少知识。在教育者眼中,学生就是一个装知识的容器,那个时候教育的成…
+                            </string>
+                                <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                                <color key="textColor" red="0.52156862749999999" green="0.54901960780000003" blue="0.58823529409999997" alpha="0.84705882349999995" colorSpace="calibratedRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7zB-Ig-PML">
+                                <rect key="frame" x="160" y="2" width="56" height="17"/>
+                                <subviews>
+                                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="252" verticalHuggingPriority="251" image="Book_icongary" translatesAutoresizingMaskIntoConstraints="NO" id="QVn-1K-wdc">
+                                        <rect key="frame" x="9" y="4" width="9" height="9"/>
+                                    </imageView>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="125" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rbz-FR-6hZ">
+                                        <rect key="frame" x="18" y="1.5" width="38" height="14"/>
+                                        <fontDescription key="fontDescription" type="system" pointSize="11"/>
+                                        <color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                </subviews>
+                                <color key="backgroundColor" red="0.89803921568627454" green="0.89803921568627454" blue="0.89803921568627454" alpha="1" colorSpace="calibratedRGB"/>
+                                <constraints>
+                                    <constraint firstAttribute="width" constant="56" id="cs2-mu-Nde"/>
+                                    <constraint firstItem="rbz-FR-6hZ" firstAttribute="leading" secondItem="QVn-1K-wdc" secondAttribute="trailing" id="ef7-Ic-WdB"/>
+                                    <constraint firstAttribute="trailing" secondItem="rbz-FR-6hZ" secondAttribute="trailing" id="gvg-ub-vPF"/>
+                                    <constraint firstItem="QVn-1K-wdc" firstAttribute="centerY" secondItem="7zB-Ig-PML" secondAttribute="centerY" id="gzc-am-DdT"/>
+                                    <constraint firstItem="QVn-1K-wdc" firstAttribute="leading" secondItem="7zB-Ig-PML" secondAttribute="leading" constant="9" id="msH-q1-0cq"/>
+                                    <constraint firstItem="rbz-FR-6hZ" firstAttribute="centerY" secondItem="7zB-Ig-PML" secondAttribute="centerY" id="of0-zQ-b7e"/>
+                                    <constraint firstAttribute="height" constant="17" id="zdh-0v-nWH"/>
+                                </constraints>
+                                <userDefinedRuntimeAttributes>
+                                    <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
+                                        <real key="value" value="8.5"/>
+                                    </userDefinedRuntimeAttribute>
+                                    <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
+                                </userDefinedRuntimeAttributes>
+                            </view>
+                        </subviews>
+                        <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                        <constraints>
+                            <constraint firstItem="7zB-Ig-PML" firstAttribute="centerY" secondItem="5Et-ox-nyR" secondAttribute="centerY" id="5PO-wM-fuU"/>
+                            <constraint firstItem="5Et-ox-nyR" firstAttribute="leading" secondItem="QzJ-kp-QUC" secondAttribute="leading" id="EDy-S8-e1t"/>
+                            <constraint firstAttribute="trailing" secondItem="7zB-Ig-PML" secondAttribute="trailing" id="V1H-GS-sX1"/>
+                            <constraint firstItem="F93-AU-HTc" firstAttribute="top" secondItem="5Et-ox-nyR" secondAttribute="bottom" constant="10" id="VqY-d1-fs0"/>
+                            <constraint firstAttribute="trailing" secondItem="F93-AU-HTc" secondAttribute="trailing" id="Zl1-lE-glp"/>
+                            <constraint firstItem="59c-4k-GhG" firstAttribute="top" secondItem="F93-AU-HTc" secondAttribute="bottom" constant="10" id="bUI-WS-PMd"/>
+                            <constraint firstItem="F93-AU-HTc" firstAttribute="leading" secondItem="QzJ-kp-QUC" secondAttribute="leading" id="bbR-Bm-voz"/>
+                            <constraint firstItem="59c-4k-GhG" firstAttribute="leading" secondItem="QzJ-kp-QUC" secondAttribute="leading" id="oMi-SH-aeu"/>
+                            <constraint firstItem="5Et-ox-nyR" firstAttribute="top" secondItem="QzJ-kp-QUC" secondAttribute="top" id="pTJ-hS-c8N"/>
+                            <constraint firstAttribute="trailing" secondItem="59c-4k-GhG" secondAttribute="trailing" id="vhq-xq-A3t"/>
+                            <constraint firstAttribute="height" constant="90" id="wwK-KS-3mG"/>
+                        </constraints>
+                    </view>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ETo-tb-aeK">
+                        <rect key="frame" x="15" y="123.5" width="290" height="0.5"/>
+                        <color key="backgroundColor" red="0.8980392157" green="0.8980392157" blue="0.8980392157" alpha="1" colorSpace="calibratedRGB"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="0.5" id="D26-f8-KTZ"/>
+                        </constraints>
+                    </view>
+                </subviews>
+                <constraints>
+                    <constraint firstItem="uTI-hF-AKF" firstAttribute="leading" secondItem="Pr8-nc-hSi" secondAttribute="leading" constant="15" id="ERj-dZ-Liw"/>
+                    <constraint firstItem="QzJ-kp-QUC" firstAttribute="leading" secondItem="uTI-hF-AKF" secondAttribute="trailing" constant="14" id="Hwc-JH-buu"/>
+                    <constraint firstItem="ETo-tb-aeK" firstAttribute="leading" secondItem="Pr8-nc-hSi" secondAttribute="leading" constant="15" id="IoT-rV-Ra2"/>
+                    <constraint firstAttribute="trailing" secondItem="ETo-tb-aeK" secondAttribute="trailing" constant="15" id="Qdr-wp-YJq"/>
+                    <constraint firstAttribute="bottom" secondItem="ETo-tb-aeK" secondAttribute="bottom" id="Yez-Nb-f5Q"/>
+                    <constraint firstItem="QzJ-kp-QUC" firstAttribute="centerY" secondItem="uTI-hF-AKF" secondAttribute="centerY" id="vJE-vM-Vta"/>
+                    <constraint firstItem="uTI-hF-AKF" firstAttribute="top" secondItem="Pr8-nc-hSi" secondAttribute="top" constant="15" id="wAE-7H-wmm"/>
+                    <constraint firstItem="ETo-tb-aeK" firstAttribute="top" secondItem="uTI-hF-AKF" secondAttribute="bottom" priority="750" constant="15" id="xkA-GZ-dAl"/>
+                    <constraint firstAttribute="trailing" secondItem="QzJ-kp-QUC" secondAttribute="trailing" constant="15" id="z7o-Ly-QI6"/>
+                </constraints>
+            </tableViewCellContentView>
+            <viewLayoutGuide key="safeArea" id="HMr-wG-BrL"/>
+            <connections>
+                <outlet property="conView" destination="QzJ-kp-QUC" id="MpT-ju-JJw"/>
+                <outlet property="constant" destination="wwK-KS-3mG" id="wfy-5Y-0Rp"/>
+                <outlet property="imagV" destination="uTI-hF-AKF" id="mHu-mm-uaW"/>
+                <outlet property="nameL" destination="F93-AU-HTc" id="DAr-tN-iWR"/>
+                <outlet property="numL" destination="rbz-FR-6hZ" id="Q04-su-671"/>
+                <outlet property="subTitleL" destination="59c-4k-GhG" id="NTH-8p-yaq"/>
+                <outlet property="titleL" destination="5Et-ox-nyR" id="1IR-Nx-vLi"/>
+            </connections>
+            <point key="canvasLocation" x="137.68115942028987" y="215.625"/>
+        </tableViewCell>
+    </objects>
+    <resources>
+        <image name="Book_icongary" width="9.5" height="9"/>
+        <image name="img_placeHolder" width="70" height="70"/>
+    </resources>
+</document>

+ 63 - 28
smartRhino/Project/VCModel/Home/VC/HomeViewController.m

@@ -35,6 +35,8 @@
 #import "HomeWeiCousreCell.h"
 #import "BookWCDetailVC.h"
 #import "HomeProblemTopCell.h"
+#import "HomeGoodBookCell.h"
+#import "BookDetailVC.h"
 
 @interface HomeViewController () <UITableViewDataSource, UITableViewDelegate,SLBannerViewDelegate,AddChannelControllerDelegate>
 @property (nonatomic, strong) UILabel *titleLabel;
@@ -127,7 +129,7 @@
     [self.tableView.mj_header endRefreshing];
     [self.tableView.mj_footer endRefreshing];
     self.currentPage = 1;
-    if (self.currentChannel == 2 || self.currentChannel == 3 || self.currentChannel == 4 || self.currentChannel == 5 || self.currentChannel == 6) {
+    if (self.currentChannel == 2 || self.currentChannel == 3 || self.currentChannel == 4 || self.currentChannel == 5 || self.currentChannel == 6|| self.currentChannel == 7) {
         [self.tableView reloadData];
     }else{
         [self.dataSource removeAllObjects];
@@ -142,7 +144,7 @@
         [self.tableView.mj_footer resetNoMoreData];
         return;
     }
-    if (self.currentChannel == 2 || self.currentChannel == 3 || self.currentChannel == 4 || self.currentChannel == 5|| self.currentChannel == 6) {
+    if (self.currentChannel == 2 || self.currentChannel == 3 || self.currentChannel == 4 || self.currentChannel == 5|| self.currentChannel == 6|| self.currentChannel == 7) {
         [self.tableView.mj_footer resetNoMoreData];
     }else{
         [self ReGetHomeListData:self.currentChannel];
@@ -464,6 +466,11 @@
             return UITableViewAutomaticDimension;
         }
             break;
+        case 7:
+        {
+            return UITableViewAutomaticDimension;
+        }
+            break;
         default:
         {
             if (model.ImageUrls.count == 0) {
@@ -562,6 +569,19 @@
             }
         }
             break;
+        case 7:
+        {
+            HomeGoodBookCell * cell = [HomeGoodBookCell configCell:tableView indexPath:indexPath];
+            BOOL isEnd = self.dataSource.count - 1 == indexPath.row;
+            [cell setDataWithItem:indexPath.row isUnUser:isEnd];
+            cell.ClickIndexBlock = ^{
+                BookDetailVC * vc = [BookDetailVC initBookDetailVC];
+                vc.hidesBottomBarWhenPushed = YES;
+                [weakSelf.navigationController pushViewController:vc animated:YES];
+            };
+            return cell;
+        }
+            break;
         default:
         {
             if (model.ImageUrls.count == 0) {
@@ -584,32 +604,32 @@
         }
             break;
     }
-    if (self.currentChannel == 1) {
-        HomeListWorkCell *cell = (HomeListWorkCell *)[tableView dequeueReusableCellWithIdentifier:@"HomeListWorkCell"];
-        if (cell != nil && self.dataSource.count > 0) {
-            [cell loadSearchData:model];
-        }
-        return cell;
-    }else{
-        // 推荐
-        if (model.ImageUrls.count == 0) {
-            model.cellID = 1;
-        }else if(model.ImageUrls.count == 1 || model.ImageUrls.count == 2){
-            model.cellID = 2;
-        }else{
-            model.cellID = 3;
-        }
-        HomeTableViewCell *cell = [HomeTableViewCell cellWithTableView:tableView AndIndex:model.cellID];
-        if (cell != nil && self.dataSource.count > 0) {
-            [cell.deleteButton setCurrentButtonHotSize:CGSizeZero];
-            [cell loadCurrentItemModel:model];
-            cell.deleteButton.hidden = YES;
-            cell.buttonBlock = ^{
-                [weakSelf cellDidSelcet:model.Id];
-            };
-        }
-        return cell;
-    }
+//    if (self.currentChannel == 1) {
+//        HomeListWorkCell *cell = (HomeListWorkCell *)[tableView dequeueReusableCellWithIdentifier:@"HomeListWorkCell"];
+//        if (cell != nil && self.dataSource.count > 0) {
+//            [cell loadSearchData:model];
+//        }
+//        return cell;
+//    }else{
+//        // 推荐
+//        if (model.ImageUrls.count == 0) {
+//            model.cellID = 1;
+//        }else if(model.ImageUrls.count == 1 || model.ImageUrls.count == 2){
+//            model.cellID = 2;
+//        }else{
+//            model.cellID = 3;
+//        }
+//        HomeTableViewCell *cell = [HomeTableViewCell cellWithTableView:tableView AndIndex:model.cellID];
+//        if (cell != nil && self.dataSource.count > 0) {
+//            [cell.deleteButton setCurrentButtonHotSize:CGSizeZero];
+//            [cell loadCurrentItemModel:model];
+//            cell.deleteButton.hidden = YES;
+//            cell.buttonBlock = ^{
+//                [weakSelf cellDidSelcet:model.Id];
+//            };
+//        }
+//        return cell;
+//    }
 }
 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
 {
@@ -675,6 +695,11 @@
             }
         }
             break;
+        case 7:
+        {
+
+        }
+            break;
         default:
         {
             MyTDTopicDetailVC * vc = [MyTDTopicDetailVC initMyTDTopicDetailVC];
@@ -837,6 +862,16 @@
     cModel.ArticleGroupName = @"每日一题";
     cModel.IsSelect = NO;
     [self.myChannel addObject:cModel];
+    ChannelModel * dModel = [[ChannelModel alloc] init];
+    dModel.ArticleGroupId = 7;
+    dModel.ArticleGroupName = @"每日好书";
+    dModel.IsSelect = NO;
+    [self.myChannel addObject:dModel];
+//    ChannelModel * eModel = [[ChannelModel alloc] init];
+//    eModel.ArticleGroupId = 8;
+//    eModel.ArticleGroupName = @"每日好文";
+//    eModel.IsSelect = NO;
+//    [self.myChannel addObject:eModel];
 }
 - (UIView *)noDataView
 {

+ 24 - 0
smartRhino/Project/VCModel/Home/VC/View/Cell/HomeGoodBookCell.h

@@ -0,0 +1,24 @@
+//
+//  HomeGoodBookCell.h
+//  smartRhino
+//
+//  Created by niuzhen on 2020/5/20.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface HomeGoodBookCell : UITableViewCell<UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout>
+@property (weak, nonatomic) IBOutlet UILabel *TitleL;
+@property (weak, nonatomic) IBOutlet UIButton *huanBtn;
+@property (weak, nonatomic) IBOutlet UICollectionView *collectionView;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *collectH;
+@property (assign, nonatomic)NSInteger   type;
+@property (copy, nonatomic) void(^ClickIndexBlock)(void);
++ (HomeGoodBookCell *)configCell:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;
+- (void)setDataWithItem:(NSInteger)Item isUnUser:(BOOL)isUser;
+@end
+
+NS_ASSUME_NONNULL_END

+ 103 - 0
smartRhino/Project/VCModel/Home/VC/View/Cell/HomeGoodBookCell.m

@@ -0,0 +1,103 @@
+//
+//  HomeGoodBookCell.m
+//  smartRhino
+//
+//  Created by niuzhen on 2020/5/20.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "HomeGoodBookCell.h"
+#import "BookHomeSubCell.h"
+#import "HomeGoodBookCollectCell.h"
+
+@implementation HomeGoodBookCell
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    self.collectionView.delegate = self;
+    self.collectionView.dataSource = self;
+    self.collectionView.showsVerticalScrollIndicator = NO;
+    self.collectionView.showsHorizontalScrollIndicator = NO;
+    [self.collectionView registerNib:[UINib nibWithNibName:@"BookHomeSubCell" bundle:nil] forCellWithReuseIdentifier:@"BookHomeSubCell"];
+    [self.collectionView registerNib:[UINib nibWithNibName:@"HomeGoodBookCollectCell" bundle:nil] forCellWithReuseIdentifier:@"HomeGoodBookCollectCell"];
+}
+
+- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
+    [super setSelected:selected animated:animated];
+
+    // Configure the view for the selected state
+}
++ (HomeGoodBookCell *)configCell:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath{
+    static NSString *cellIdentifer = @"HomeGoodBookCell";
+    HomeGoodBookCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifer];
+    if (cell == nil) {
+        cell = [[[NSBundle mainBundle] loadNibNamed:@"HomeGoodBookCell" owner:nil options:nil] objectAtIndex:0];
+    }
+    return cell;
+}
+- (void)setDataWithItem:(NSInteger)Item isUnUser:(BOOL)isUser
+{
+    self.type = Item % 2 == 0 ? 0 : 1;
+    if (self.type == 0) {
+        self.collectH.constant = 101.f * 3;
+        UICollectionViewFlowLayout * layout = [[UICollectionViewFlowLayout alloc]init];
+        layout.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0);
+        [self.collectionView setCollectionViewLayout:layout];
+    }else{
+        self.collectH.constant = 170.f * 2;
+        UICollectionViewFlowLayout * layout = [[UICollectionViewFlowLayout alloc]init];
+        layout.sectionInset = UIEdgeInsetsMake(0, 15, 0, 15);
+        [self.collectionView setCollectionViewLayout:layout];
+    }
+    [self.collectionView setContentOffset:CGPointZero animated:NO];
+    [self.collectionView reloadData];
+
+    WS(weakSelf);
+    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+        [weakSelf.collectionView reloadData];
+    });
+}
+
+- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section
+{
+    return 0.f;
+}
+- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section
+{
+    return self.type == 0 ? 0.f : 15.f;
+}
+- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
+{
+    return self.type == 0 ? 3 : 6;
+}
+- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
+{
+    return 1;
+}
+-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
+{
+    if (self.type == 0) {
+        return CGSizeMake(SCREEN_WIDTH, 101);
+    }else{
+        return CGSizeMake((SCREEN_WIDTH - 60) / 3, 170);
+    }
+}
+
+- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
+{
+    if (self.type == 0) {
+        BookHomeSubCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"BookHomeSubCell" forIndexPath:indexPath];
+        [cell setData];
+        return cell;
+    }else{
+        HomeGoodBookCollectCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"HomeGoodBookCollectCell" forIndexPath:indexPath];
+        return cell;
+    }
+}
+- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
+{
+    if (self.ClickIndexBlock) {
+        self.ClickIndexBlock();
+    }
+}
+@end

+ 110 - 0
smartRhino/Project/VCModel/Home/VC/View/Cell/HomeGoodBookCell.xib

@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="15705" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina6_1" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15706"/>
+        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="230" id="63J-iM-Uir" customClass="HomeGoodBookCell">
+            <rect key="frame" x="0.0" y="0.0" width="320" height="200"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+            <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="63J-iM-Uir" id="wKr-lZ-aE8">
+                <rect key="frame" x="0.0" y="0.0" width="320" height="200"/>
+                <autoresizingMask key="autoresizingMask"/>
+                <subviews>
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" verticalCompressionResistancePriority="749" image="home_hot_icon" translatesAutoresizingMaskIntoConstraints="NO" id="LAe-q4-Na6">
+                        <rect key="frame" x="15" y="15" width="32" height="16"/>
+                    </imageView>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="精品推荐" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="kmx-3v-ANh">
+                        <rect key="frame" x="56" y="15" width="65.5" height="16"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="16"/>
+                        <nil key="textColor"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="ysF-Xb-9r9">
+                        <rect key="frame" x="0.0" y="46" width="320" height="100"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="100" id="Gf8-xE-dZW"/>
+                        </constraints>
+                        <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="8Au-5u-0Gd">
+                            <size key="itemSize" width="50" height="50"/>
+                            <size key="headerReferenceSize" width="0.0" height="0.0"/>
+                            <size key="footerReferenceSize" width="0.0" height="0.0"/>
+                            <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
+                        </collectionViewFlowLayout>
+                    </collectionView>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="r2y-Yb-UuW">
+                        <rect key="frame" x="0.0" y="190" width="320" height="10"/>
+                        <color key="backgroundColor" red="0.97254901960784312" green="0.97647058823529409" blue="0.98431372549019602" alpha="1" colorSpace="calibratedRGB"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="10" id="7KS-lS-bz3"/>
+                        </constraints>
+                    </view>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="tU7-ce-Bjd">
+                        <rect key="frame" x="0.0" y="146" width="320" height="44"/>
+                        <subviews>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="换一批" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bBp-0z-Vof">
+                                <rect key="frame" x="146.5" y="13.5" width="43" height="17"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                <color key="textColor" red="0.22352941179999999" green="0.47450980390000003" blue="0.82745098039999998" alpha="1" colorSpace="calibratedRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Book_huan_Btn" translatesAutoresizingMaskIntoConstraints="NO" id="NYx-Wu-Vty">
+                                <rect key="frame" x="131.5" y="16.5" width="11" height="11"/>
+                            </imageView>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="eXD-Mb-dOw">
+                                <rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
+                            </button>
+                        </subviews>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                        <constraints>
+                            <constraint firstItem="bBp-0z-Vof" firstAttribute="centerX" secondItem="tU7-ce-Bjd" secondAttribute="centerX" constant="8" id="1Lx-Kg-d2V"/>
+                            <constraint firstItem="eXD-Mb-dOw" firstAttribute="leading" secondItem="tU7-ce-Bjd" secondAttribute="leading" id="2zs-l8-hlz"/>
+                            <constraint firstAttribute="trailing" secondItem="eXD-Mb-dOw" secondAttribute="trailing" id="JF8-Mb-kwQ"/>
+                            <constraint firstAttribute="bottom" secondItem="eXD-Mb-dOw" secondAttribute="bottom" id="M52-g6-v78"/>
+                            <constraint firstAttribute="height" constant="44" id="N39-4v-3QW"/>
+                            <constraint firstItem="NYx-Wu-Vty" firstAttribute="trailing" secondItem="bBp-0z-Vof" secondAttribute="leading" constant="-4" id="RuQ-HI-v3F"/>
+                            <constraint firstItem="bBp-0z-Vof" firstAttribute="centerY" secondItem="tU7-ce-Bjd" secondAttribute="centerY" id="VMG-Lw-qh3"/>
+                            <constraint firstItem="NYx-Wu-Vty" firstAttribute="centerY" secondItem="bBp-0z-Vof" secondAttribute="centerY" id="Z0e-8R-brO"/>
+                            <constraint firstItem="eXD-Mb-dOw" firstAttribute="top" secondItem="tU7-ce-Bjd" secondAttribute="top" id="qea-ua-xtg"/>
+                        </constraints>
+                    </view>
+                </subviews>
+                <constraints>
+                    <constraint firstAttribute="trailing" secondItem="r2y-Yb-UuW" secondAttribute="trailing" id="8Ih-vS-kh1"/>
+                    <constraint firstItem="ysF-Xb-9r9" firstAttribute="top" secondItem="kmx-3v-ANh" secondAttribute="bottom" constant="15" id="Eau-iz-xh6"/>
+                    <constraint firstItem="tU7-ce-Bjd" firstAttribute="leading" secondItem="wKr-lZ-aE8" secondAttribute="leading" id="FYZ-UW-Gth"/>
+                    <constraint firstAttribute="trailing" secondItem="tU7-ce-Bjd" secondAttribute="trailing" id="Mo2-qn-0n6"/>
+                    <constraint firstItem="ysF-Xb-9r9" firstAttribute="leading" secondItem="wKr-lZ-aE8" secondAttribute="leading" id="QAL-fB-7kP"/>
+                    <constraint firstAttribute="bottom" secondItem="r2y-Yb-UuW" secondAttribute="bottom" id="Qhs-zf-1eq"/>
+                    <constraint firstItem="kmx-3v-ANh" firstAttribute="leading" secondItem="LAe-q4-Na6" secondAttribute="trailing" constant="9" id="RJO-pB-r4b"/>
+                    <constraint firstAttribute="trailing" secondItem="ysF-Xb-9r9" secondAttribute="trailing" id="Rkm-Q5-qae"/>
+                    <constraint firstItem="r2y-Yb-UuW" firstAttribute="top" secondItem="tU7-ce-Bjd" secondAttribute="bottom" id="RlV-dE-8lJ"/>
+                    <constraint firstItem="kmx-3v-ANh" firstAttribute="centerY" secondItem="LAe-q4-Na6" secondAttribute="centerY" id="Zuc-cI-qfG"/>
+                    <constraint firstItem="tU7-ce-Bjd" firstAttribute="top" secondItem="ysF-Xb-9r9" secondAttribute="bottom" id="dd6-Ot-ust"/>
+                    <constraint firstItem="LAe-q4-Na6" firstAttribute="leading" secondItem="wKr-lZ-aE8" secondAttribute="leading" constant="15" id="l1u-ku-QlY"/>
+                    <constraint firstItem="kmx-3v-ANh" firstAttribute="top" secondItem="wKr-lZ-aE8" secondAttribute="top" constant="15" id="m9c-up-lDO"/>
+                    <constraint firstItem="r2y-Yb-UuW" firstAttribute="leading" secondItem="wKr-lZ-aE8" secondAttribute="leading" id="t45-tH-1NM"/>
+                </constraints>
+            </tableViewCellContentView>
+            <viewLayoutGuide key="safeArea" id="goi-b5-DH9"/>
+            <connections>
+                <outlet property="TitleL" destination="kmx-3v-ANh" id="jhJ-lV-4mD"/>
+                <outlet property="collectH" destination="Gf8-xE-dZW" id="SZr-Cb-Vaa"/>
+                <outlet property="collectionView" destination="ysF-Xb-9r9" id="OdI-Jd-VWT"/>
+                <outlet property="huanBtn" destination="eXD-Mb-dOw" id="uT8-44-X7i"/>
+            </connections>
+            <point key="canvasLocation" x="0.0" y="150.66964285714286"/>
+        </tableViewCell>
+    </objects>
+    <resources>
+        <image name="Book_huan_Btn" width="11" height="11"/>
+        <image name="home_hot_icon" width="32" height="16"/>
+    </resources>
+</document>

+ 20 - 0
smartRhino/Project/VCModel/Home/VC/View/Cell/HomeGoodBookCollectCell.h

@@ -0,0 +1,20 @@
+//
+//  HomeGoodBookCollectCell.h
+//  smartRhino
+//
+//  Created by niuzhen on 2020/5/20.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface HomeGoodBookCollectCell : UICollectionViewCell
+@property (weak, nonatomic) IBOutlet UIImageView *imagV;
+@property (weak, nonatomic) IBOutlet UILabel *titleL;
+@property (weak, nonatomic) IBOutlet UILabel *subTitleL;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 18 - 0
smartRhino/Project/VCModel/Home/VC/View/Cell/HomeGoodBookCollectCell.m

@@ -0,0 +1,18 @@
+//
+//  HomeGoodBookCollectCell.m
+//  smartRhino
+//
+//  Created by niuzhen on 2020/5/20.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "HomeGoodBookCollectCell.h"
+
+@implementation HomeGoodBookCollectCell
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    // Initialization code
+}
+
+@end

+ 64 - 0
smartRhino/Project/VCModel/Home/VC/View/Cell/HomeGoodBookCollectCell.xib

@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="15705" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina6_1" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15706"/>
+        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" id="gTV-IL-0wX" customClass="HomeGoodBookCollectCell">
+            <rect key="frame" x="0.0" y="0.0" width="99" height="190"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
+                <rect key="frame" x="0.0" y="0.0" width="99" height="190"/>
+                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                <subviews>
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="img_placeHolder" translatesAutoresizingMaskIntoConstraints="NO" id="QPI-af-UiU">
+                        <rect key="frame" x="15" y="0.0" width="69" height="96"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="96" id="kC6-ZV-nYz"/>
+                        </constraints>
+                    </imageView>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="小故事大道理                      " textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3PU-UA-qB9">
+                        <rect key="frame" x="15" y="107" width="69" height="36"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                        <color key="textColor" red="0.039215686274509803" green="0.039215686274509803" blue="0.039215686274509803" alpha="1" colorSpace="calibratedRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="雷格厄姆" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Xqe-jW-XzD">
+                        <rect key="frame" x="15" y="149" width="69" height="15"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                        <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                </subviews>
+            </view>
+            <constraints>
+                <constraint firstAttribute="trailing" secondItem="Xqe-jW-XzD" secondAttribute="trailing" constant="15" id="9uK-Pp-DDa"/>
+                <constraint firstItem="QPI-af-UiU" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" constant="15" id="APZ-jR-4Uc"/>
+                <constraint firstItem="QPI-af-UiU" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" id="Eye-CK-jsg"/>
+                <constraint firstItem="Xqe-jW-XzD" firstAttribute="top" secondItem="3PU-UA-qB9" secondAttribute="bottom" constant="6" id="bFe-5x-6iY"/>
+                <constraint firstItem="3PU-UA-qB9" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" constant="15" id="cBz-sw-4be"/>
+                <constraint firstAttribute="trailing" secondItem="3PU-UA-qB9" secondAttribute="trailing" constant="15" id="gc5-ql-mco"/>
+                <constraint firstItem="3PU-UA-qB9" firstAttribute="top" secondItem="QPI-af-UiU" secondAttribute="bottom" constant="11" id="hnv-ZU-hRs"/>
+                <constraint firstAttribute="trailing" secondItem="QPI-af-UiU" secondAttribute="trailing" constant="15" id="px5-XR-Fd4"/>
+                <constraint firstItem="Xqe-jW-XzD" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" constant="15" id="yfD-mY-lpZ"/>
+            </constraints>
+            <viewLayoutGuide key="safeArea" id="SEy-5g-ep8"/>
+            <size key="customSize" width="99" height="190"/>
+            <connections>
+                <outlet property="imagV" destination="QPI-af-UiU" id="Ne7-1B-2tB"/>
+                <outlet property="subTitleL" destination="Xqe-jW-XzD" id="7Ma-Od-Nl1"/>
+                <outlet property="titleL" destination="3PU-UA-qB9" id="roD-LW-TqB"/>
+            </connections>
+            <point key="canvasLocation" x="173.18840579710147" y="199.55357142857142"/>
+        </collectionViewCell>
+    </objects>
+    <resources>
+        <image name="img_placeHolder" width="70" height="70"/>
+    </resources>
+</document>

+ 31 - 2
smartRhino/Project/VCModel/My_Center/Controller/ColletionVC/Cell/MyFavoriteCell.m

@@ -56,8 +56,37 @@
     cell.enterBtn.hidden = YES;
     return cell;
 }
-- (void)layoutSubviews {
+- (void)layoutSubviews
+{
     [super layoutSubviews];
+    self.sortBtn.hidden = YES;
+    CGRect rect = self.contentView.frame;
+    rect.size.width += rect.origin.x;
+    rect.origin.x = 0;
+    self.contentView.frame = rect;
+    for (UIView *supView in self.subviews){
+        if ([supView isKindOfClass:NSClassFromString(@"UITableViewCellReorderControl")]){
+            for (UIView *view in supView.subviews)
+            {
+                if ([view isKindOfClass: [UIImageView class]])
+                {
+                    UIImageView * imagV = (UIImageView *)view;
+                    [imagV setFrame:CGRectMake(0, 0, 22, 18)];
+                    imagV.center = supView.center;
+                    imagV.contentMode = UIViewContentModeCenter;
+                    imagV.image = [UIImage imageNamed: @"list_sort"];
+                    UILabel * label = [UILabel new];
+                    label.backgroundColor = UIColorHex(#EAEAEA);
+                    [supView addSubview:label];
+                    [label setFrame:CGRectMake(0, supView.frame.size.height - 0.5, supView.frame.size.width, 0.5)];
+                }else{
+                    [view removeFromSuperview];
+                }
+            }
+        }
+        if ([supView isKindOfClass:NSClassFromString(@"UITableViewCellEditControl")]){
+            [supView removeFromSuperview];
+        }
+    }
 }
-
 @end

+ 29 - 0
smartRhino/Project/VCModel/My_Center/Controller/ColletionVC/Cell/MyFavoriteViewCell.m

@@ -362,6 +362,35 @@
     [super layoutSubviews];
     [self.cell2IconImage setRadius:self.cell2IconImage.height / 2 corners:UIRectCornerAllCorners];
     [self.cell4IconImage setRadius:5 corners:UIRectCornerAllCorners];
+    self.moveButton.hidden = YES;
+    CGRect rect = self.contentView.frame;
+    rect.size.width += rect.origin.x;
+    rect.origin.x = 0;
+    self.contentView.frame = rect;
+    for (UIView *supView in self.subviews){
+        if ([supView isKindOfClass:NSClassFromString(@"UITableViewCellReorderControl")]){
+            for (UIView *view in supView.subviews)
+            {
+                if ([view isKindOfClass: [UIImageView class]])
+                {
+                    UIImageView * imagV = (UIImageView *)view;
+                    [imagV setFrame:CGRectMake(0, 0, 22, 18)];
+                    imagV.center = supView.center;
+                    imagV.contentMode = UIViewContentModeCenter;
+                    imagV.image = [UIImage imageNamed: @"list_sort"];
+                    UILabel * label = [UILabel new];
+                    label.backgroundColor = UIColorHex(#EAEAEA);
+                    [supView addSubview:label];
+                    [label setFrame:CGRectMake(0, supView.frame.size.height - 0.5, supView.frame.size.width, 0.5)];
+                }else{
+                    [view removeFromSuperview];
+                }
+            }
+        }
+        if ([supView isKindOfClass:NSClassFromString(@"UITableViewCellEditControl")]){
+            [supView removeFromSuperview];
+        }
+    }
 }
 
 

+ 85 - 73
smartRhino/Project/VCModel/My_Center/Controller/ColletionVC/Controller/MyFavoriteVC.m

@@ -35,7 +35,7 @@
 
 @interface MyFavoriteVC ()<UITableViewDataSource,UITableViewDelegate,NoteBookShareVCDelegate>
 @property (weak, nonatomic) IBOutlet UIButton *rightButton;
-@property (strong,nonatomic) ZFReOrderTableView *reOrderView;
+@property (strong,nonatomic) UITableView      *tableView;
 @property (weak, nonatomic) IBOutlet UIView             *HeadView;
 @property (strong, nonatomic) MyTDGroupView             *SearchView;
 
@@ -104,19 +104,19 @@
 - (void)addRefresh
 {
     WS(weakSelf);
-    self.reOrderView.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
+    self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
         [weakSelf headRefresh];
     }];
-    //    self.reOrderView.tableView.mj_footer = [MJRefreshBackStateFooter footerWithRefreshingBlock:^{
+    //    self.tableView.mj_footer = [MJRefreshBackStateFooter footerWithRefreshingBlock:^{
     //        [weakSelf footerRefresh];
     //    }];
 }
 - (void)removeRefresh
 {
-    [self.reOrderView.tableView.mj_header endRefreshing];
-    [self.reOrderView.tableView.mj_header removeFromSuperview];
-    [self.reOrderView.tableView.mj_footer endRefreshing];
-    [self.reOrderView.tableView.mj_footer removeFromSuperview];
+    [self.tableView.mj_header endRefreshing];
+    [self.tableView.mj_header removeFromSuperview];
+    [self.tableView.mj_footer endRefreshing];
+    [self.tableView.mj_footer removeFromSuperview];
     self.currentPage = 0;
     self.totalPage = 1;
     [self.shouCangArray removeAllObjects];
@@ -134,7 +134,7 @@
     self.currentPage += 1;
     if (self.totalPage == self.shouCangArray.count) {
         self.currentPage --;
-        [self.reOrderView.tableView.mj_footer resetNoMoreData];
+        [self.tableView.mj_footer resetNoMoreData];
         return ;
     }
     [self getDataList];
@@ -148,12 +148,11 @@
         //    [[HttpManager sharedHttpManager] POSTWithUrl:API_ShouCangList parameters:@{@"FolderId":@(self.FolderId),@"Page":@(self.currentPage),@"PerPage":@(99999999),@"VisitUserId":@(0)} success:^(id  _Nonnull responseObject) {
         REMOVESHOW
         NSLog(@"收藏列表数据 %@",responseObject);
-        [weakSelf.reOrderView.tableView.mj_header endRefreshing];
-        [weakSelf.reOrderView.tableView.mj_footer endRefreshing];
+        [weakSelf.tableView.mj_header endRefreshing];
+        [weakSelf.tableView.mj_footer endRefreshing];
         MyFavoriteModel *listModel = [[MyFavoriteModel alloc] initWithDictionary:responseObject error:nil];
         weakSelf.totalPage = listModel.Total;
         [weakSelf.shouCangArray addObjectsFromArray:listModel.Items];
-        weakSelf.reOrderView.dataArray = weakSelf.shouCangArray.mutableCopy;
         
         for (MyFavoriteSubModel *model in weakSelf.shouCangArray) {
             if (model.CollectionType == CollectModel_Text) {
@@ -170,23 +169,29 @@
         }
         [weakSelf changeMessageStatusWithNumber:weakSelf.shouCangArray.count];
         dispatch_async(dispatch_get_main_queue(), ^{
-            [weakSelf.reOrderView.tableView reloadData];
+            [weakSelf.tableView reloadData];
         });
     } failure:^(NSError * _Nonnull error) {
         REMOVESHOW
-        [weakSelf.reOrderView.tableView.mj_header endRefreshing];
-        [weakSelf.reOrderView.tableView.mj_footer endRefreshing];
+        [weakSelf.tableView.mj_header endRefreshing];
+        [weakSelf.tableView.mj_footer endRefreshing];
     }];
 }
-
+- (UITableView *)tableView
+{
+    if (!_tableView) {
+        _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
+        _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
+    }
+    return _tableView;
+}
 - (void)viewDidLoad {
     [super viewDidLoad];
-    self.reOrderView = [[ZFReOrderTableView alloc] initWithFrame:CGRectZero withObjects:self.shouCangArray canReorder:NO];
-    self.reOrderView.tableView.delegate = self;
-    self.reOrderView.tableView.dataSource = self;
-    self.reOrderView.tableView.backgroundColor = [UIColor whiteColor];
-    [self.view addSubview:self.reOrderView];
-    [self.reOrderView mas_makeConstraints:^(MASConstraintMaker *make) {
+    self.tableView.delegate = self;
+    self.tableView.dataSource = self;
+    self.tableView.backgroundColor = [UIColor whiteColor];
+    [self.view addSubview:self.tableView];
+    [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
         make.left.right.mas_equalTo(self.view);
         make.top.mas_equalTo(self.searchTopView.mas_bottom);
         if (@available(iOS 11.0, *)) {
@@ -196,16 +201,9 @@
         }
     }];
     WS(weakSelf);
-    self.reOrderView.exchangeDataBlock = ^(NSInteger sourceId,NSInteger toId) {
-        [[HttpManager sharedHttpManager] POSTUrl:Host(API_Find_Sort) parameters:@{@"MiddleIdFirst":@(toId),@"MiddleIdSecond":@(sourceId)} responseStyle:DATA success:^(id  _Nonnull responseObject) {
-            [weakSelf getDataList];
-        } failure:^(NSError * _Nonnull error) {
-            
-        }];
-    };
     self.fd_prefersNavigationBarHidden = YES;
     
-    [self addNoDataMessageToViewCenter:self.reOrderView.tableView message:@"暂无收藏"];
+    [self addNoDataMessageToViewCenter:self.tableView message:@"暂无收藏"];
     self.view.backgroundColor = RGB(245, 246, 248);
     [self.operationAllSelectButton setTitle:@"全选" forState:UIControlStateNormal];
     [self.operationAllSelectButton setTitleColor:UIColorHex(#1F87DB) forState:UIControlStateNormal];
@@ -1431,16 +1429,32 @@
             break;
     }
 }
-- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath{
-    return YES;
+- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
+    return tableView.editing;
 }
-- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{
-    return UITableViewCellEditingStyleNone;
-}
-- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath{
-    [self.shouCangArray exchangeObjectAtIndex:sourceIndexPath.row withObjectAtIndex:destinationIndexPath.row];
-    [self.reOrderView.tableView moveRowAtIndexPath:sourceIndexPath toIndexPath:destinationIndexPath];
+- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath {
+    MyFavoriteSubModel *model  = self.shouCangArray[sourceIndexPath.row];
+    MyFavoriteSubModel *toModel  = self.shouCangArray[destinationIndexPath.row];
+    WS(weakSelf);
+    if (model.IsTop == toModel.IsTop) {
+        [[HttpManager sharedHttpManager] POSTUrl:Host(API_Find_Sort) parameters:@{@"MiddleIdFirst":@(model.Id),@"MiddleIdSecond":@(toModel.Id)} responseStyle:DATA success:^(id  _Nonnull responseObject) {
+            [weakSelf.shouCangArray removeObject:model];
+            [weakSelf.shouCangArray insertObject:model atIndex:destinationIndexPath.row];
+            dispatch_async(dispatch_get_main_queue(), ^{
+                [weakSelf.tableView reloadData];
+            });
+        } failure:^(NSError * _Nonnull error) {
+
+        }];
+    }else{
+        [weakSelf.shouCangArray removeObject:model];
+        [weakSelf.shouCangArray insertObject:model atIndex:sourceIndexPath.row];
+        dispatch_async(dispatch_get_main_queue(), ^{
+            [weakSelf.tableView reloadData];
+        });
+    }
 }
+
 #pragma mark - 检测check 是否可用
 - (void)checkMoveButtonEnabled{
     NSInteger foldInt = 0;
@@ -1474,7 +1488,6 @@
     if(operation){
         [[NSUserDefaults standardUserDefaults] setObject:@[] forKey:SELECTCOLLECT];
         [[NSUserDefaults standardUserDefaults] synchronize];
-        [self.reOrderView reloadCanReorder:YES];
         self.iSViewEditor = YES;
         self.rightButton.hidden = YES;
         self.vcTitleLabel.text = @"批量编辑";
@@ -1486,7 +1499,7 @@
         [self.operationAllSelectButton setTitleColor:UIColorHex(#0F88EB) forState:UIControlStateNormal];
         [self.operationAllSelectButton setImage:nil forState:UIControlStateNormal];
         self.operationBottomBgView.hidden = NO;
-        [self.reOrderView mas_updateConstraints:^(MASConstraintMaker *make) {
+        [self.tableView mas_updateConstraints:^(MASConstraintMaker *make) {
             if (@available(iOS 11.0, *)) {
                 make.bottom.equalTo(self.view.mas_safeAreaLayoutGuideBottom).offset(-self.tabBarController.tabBar.height + 30);
             } else {
@@ -1502,14 +1515,14 @@
         }
         [self.view layoutIfNeeded];
         [self removeRefresh];
-        [self.reOrderView.tableView layoutIfNeeded];
+        [self.tableView layoutIfNeeded];
         [self reSetSelect];
         self.threeLineView.hidden = NO;
-        
+        [self.tableView setEditing:YES];
     }else{
-        [self.reOrderView reloadCanReorder:NO];
+        [self.tableView setEditing:NO];
         self.vcTitleLabel.text = self.myTitle;
-        self.reOrderView.tableView.editing = NO;
+        self.tableView.editing = NO;
         self.rightButton.hidden = NO;
         [self.rightButton setImage:IMG(@"chatmsg_right_add_icon") forState:UIControlStateNormal];
         [self.rightButton setTitle:nil forState:UIControlStateNormal];
@@ -1523,7 +1536,7 @@
         [self.operationAllSelectButton setTitleColor:[UIColor clearColor] forState:UIControlStateNormal];
         self.tabBarController.tabBar.hidden = YES;
         
-        [self.reOrderView mas_updateConstraints:^(MASConstraintMaker *make) {
+        [self.tableView mas_updateConstraints:^(MASConstraintMaker *make) {
             if (@available(iOS 11.0, *)) {
                 make.bottom.equalTo(self.view.mas_safeAreaLayoutGuideBottom);
             } else {
@@ -1536,11 +1549,11 @@
             make.top.mas_equalTo(self.searchTopView.mas_top).offset(10);
         }];
         [self.view layoutIfNeeded];
-        [self.reOrderView.tableView layoutIfNeeded];
+        [self.tableView layoutIfNeeded];
         self.operationBottomBgView.hidden = YES;
         self.threeLineView.hidden = YES;
     }
-    [self.reOrderView.tableView reloadData];
+    [self.tableView reloadData];
 }
 - (void)reSetSelect{
     for (MyFavoriteSubModel *model in self.shouCangArray) {
@@ -1551,8 +1564,8 @@
 -(void)userDidMove:(BOOL)move isEdit:(BOOL)isEdit{
     //移动
     if(move){
-        self.reOrderView.tableView.allowsSelectionDuringEditing=YES;
-        self.reOrderView.tableView.editing = YES;
+        self.tableView.allowsSelectionDuringEditing=YES;
+        self.tableView.editing = YES;
         //默认操作状态为移动状态
         self.operationStateEnum = OperationStateEnum2;
         self.rightButton.hidden = NO;
@@ -1561,21 +1574,21 @@
         //隐藏tabBar - 并将TableView至底端
         self.tabBarController.tabBar.hidden = YES;
         self.view.height += self.tabBarController.tabBar.height;
-        self.reOrderView.tableView.height += self.tabBarController.tabBar.height;
+        self.tableView.height += self.tabBarController.tabBar.height;
         [self.view layoutIfNeeded];
-        [self.reOrderView.tableView layoutIfNeeded];
+        [self.tableView layoutIfNeeded];
         //隐藏operationBottomBgView
         self.operationBottomBgView.hidden = YES;
     }
     else{
-        self.reOrderView.tableView.editing = NO;
+        self.tableView.editing = NO;
         //隐藏tabBar - 并将TableView至底端有tabBar.height的高
-        self.reOrderView.tableView.allowsSelectionDuringEditing=NO;
+        self.tableView.allowsSelectionDuringEditing=NO;
         self.tabBarController.tabBar.hidden = YES;
         self.view.height -= self.tabBarController.tabBar.height;
-        self.reOrderView.tableView.height -= self.tabBarController.tabBar.height;
+        self.tableView.height -= self.tabBarController.tabBar.height;
         [self.view layoutIfNeeded];
-        [self.reOrderView.tableView layoutIfNeeded];
+        [self.tableView layoutIfNeeded];
         //显示operationBottomBgView
         self.operationBottomBgView.hidden = NO;
         if(isEdit){
@@ -1586,7 +1599,7 @@
             [self changeToOperation:NO];
         }
     }
-    [self.reOrderView.tableView reloadData];
+    [self.tableView reloadData];
 }
 -(UIView *)operationBottomBgView{
     if(!_operationBottomBgView){
@@ -1644,12 +1657,11 @@
     NSLog(@"%@",@{@"FolderId":@(self.FolderId),@"Page":@(self.currentPage),@"PerPage":@(10),@"VisitUserId":@(0)});
     [[HttpManager sharedHttpManager] POSTWithUrl:API_ShouCangList parameters:@{@"FolderId":@(self.FolderId),@"Page":@(self.currentPage),@"PerPage":@(10),@"VisitUserId":@(0)} success:^(id  _Nonnull responseObject) {
         NSLog(@"收藏列表数据 %@",responseObject);
-        [weakSelf.reOrderView.tableView.mj_header endRefreshing];
-        [weakSelf.reOrderView.tableView.mj_footer endRefreshing];
+        [weakSelf.tableView.mj_header endRefreshing];
+        [weakSelf.tableView.mj_footer endRefreshing];
         MyFavoriteModel *listModel = [[MyFavoriteModel alloc] initWithDictionary:responseObject error:nil];
         weakSelf.totalPage = listModel.Total;
         [weakSelf.shouCangArray addObjectsFromArray:listModel.Items];
-        weakSelf.reOrderView.dataArray = weakSelf.shouCangArray.mutableCopy;
         
         for (MyFavoriteSubModel *model in weakSelf.shouCangArray) {
             if (model.CollectionType == CollectModel_Text) {
@@ -1666,12 +1678,11 @@
         }
         [weakSelf changeMessageStatusWithNumber:weakSelf.shouCangArray.count];
         dispatch_async(dispatch_get_main_queue(), ^{
-            [weakSelf.reOrderView removeFromSuperview];
-            weakSelf.reOrderView = nil;
-            weakSelf.reOrderView.tableView.delegate = weakSelf;
-            weakSelf.reOrderView.tableView.dataSource = weakSelf;
-            [weakSelf.view addSubview:self.reOrderView];
-            [weakSelf.reOrderView mas_makeConstraints:^(MASConstraintMaker *make) {
+            [weakSelf.tableView removeFromSuperview];
+            weakSelf.tableView.delegate = weakSelf;
+            weakSelf.tableView.dataSource = weakSelf;
+            [weakSelf.view addSubview:self.tableView];
+            [weakSelf.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
                 make.left.right.mas_equalTo(weakSelf.view);
                 make.top.mas_equalTo(weakSelf.searchTopView.mas_bottom);
                 if (@available(iOS 11.0, *)) {
@@ -1680,11 +1691,11 @@
                     make.bottom.equalTo(weakSelf.view.mas_bottom);
                 }
             }];
-            [weakSelf.reOrderView.tableView reloadData];
+            [weakSelf.tableView reloadData];
         });
     } failure:^(NSError * _Nonnull error) {
-        [weakSelf.reOrderView.tableView.mj_header endRefreshing];
-        [weakSelf.reOrderView.tableView.mj_footer endRefreshing];
+        [weakSelf.tableView.mj_header endRefreshing];
+        [weakSelf.tableView.mj_footer endRefreshing];
     }];
 }
 /// 删除文件夹
@@ -1718,6 +1729,7 @@
     [alertVC addAction:noOk];
     [self presentViewController:alertVC animated:YES completion:nil];
 }
+
 - (void)backAction:(id)sender{
     if (self.iSViewEditor) {
         switch (self.operationStateEnum) {
@@ -1748,13 +1760,13 @@
                 model.IsSelect = YES;
             }
             [self checkMoveButtonEnabled];
-            [self.reOrderView.tableView reloadData];
+            [self.tableView reloadData];
             break;
         case OperationStateEnum3:
             for (MyFavoriteSubModel *model in self.shouCangArray) {
                 model.IsSelect = YES;
             }
-            [self.reOrderView.tableView reloadData];
+            [self.tableView reloadData];
             break;
         default:
             [super menuAction:sender];
@@ -1777,8 +1789,8 @@
     
     if (recognise.state==UIGestureRecognizerStateBegan) {
         _orignY=currentPoint.y;
-        _currentPath = [self.reOrderView.tableView indexPathForRowAtPoint:currentPoint];
-        _currentCell=[self.reOrderView.tableView cellForRowAtIndexPath:_currentPath];
+        _currentPath = [self.tableView indexPathForRowAtPoint:currentPoint];
+        _currentCell=[self.tableView cellForRowAtIndexPath:_currentPath];
         _currentCell.hidden=YES;
         _cellImage=[UIImageView new];
         _cellImage.image=[self getImageWithCell:_currentCell];
@@ -1793,7 +1805,7 @@
             if (currentPoint.y-_orignY>30) {
                 NSIndexPath *newIndexPath=[NSIndexPath indexPathForRow:_currentPath.row+1 inSection:0];
                 if(newIndexPath.row<self.shouCangArray.count){
-                    [self.reOrderView.tableView moveRowAtIndexPath:_currentPath toIndexPath:newIndexPath];
+                    [self.tableView moveRowAtIndexPath:_currentPath toIndexPath:newIndexPath];
                     _currentPath=newIndexPath;
                     _orignY+=60;
                 }
@@ -1801,7 +1813,7 @@
         }else{
             if (_orignY-currentPoint.y>30) {
                 NSIndexPath *newIndexPath=[NSIndexPath indexPathForRow:_currentPath.row-1 inSection:0];
-                [self.reOrderView.tableView moveRowAtIndexPath:_currentPath toIndexPath:newIndexPath];
+                [self.tableView moveRowAtIndexPath:_currentPath toIndexPath:newIndexPath];
                 _currentPath=newIndexPath;
                 _orignY-=60;
             }

+ 110 - 102
smartRhino/Project/VCModel/My_Center/Controller/NoteBook/Controller/NoteBookVC.m

@@ -38,7 +38,7 @@
 @interface NoteBookVC ()<UITableViewDataSource,UITableViewDelegate,NoteBookShareVCDelegate>
 @property (weak, nonatomic) IBOutlet UIButton *rightAddButton;
 @property (weak, nonatomic) IBOutlet UIButton *rightEditBtn;
-@property (strong, nonatomic) ZFReOrderTableView *reOrderView;
+@property (strong, nonatomic) UITableView     *tableView;
 @property (weak, nonatomic) IBOutlet UIView   *HeadView;
 @property (weak, nonatomic) IBOutlet UIButton *operationAllSelectButton;
 @property (strong, nonatomic) MyTDGroupView             *SearchView;
@@ -112,19 +112,19 @@
 - (void)addRefresh
 {
     WS(weakSelf);
-    self.reOrderView.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
+    self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
         [weakSelf headRefresh];
     }];
-    //    self.reOrderView.tableView.mj_footer = [MJRefreshBackStateFooter footerWithRefreshingBlock:^{
+    //    self.tableView.mj_footer = [MJRefreshBackStateFooter footerWithRefreshingBlock:^{
     //        [weakSelf footerRefresh];
     //    }];
 }
 - (void)removeRefresh
 {
-    [self.reOrderView.tableView.mj_header endRefreshing];
-    [self.reOrderView.tableView.mj_header removeFromSuperview];
-    [self.reOrderView.tableView.mj_footer endRefreshing];
-    [self.reOrderView.tableView.mj_footer removeFromSuperview];
+    [self.tableView.mj_header endRefreshing];
+    [self.tableView.mj_header removeFromSuperview];
+    [self.tableView.mj_footer endRefreshing];
+    [self.tableView.mj_footer removeFromSuperview];
     self.currentPage = 0;
     self.totalPage = 1;
     [self.noteBookArray removeAllObjects];
@@ -143,7 +143,7 @@
     self.currentPage += 1;
     if (self.totalPage == self.noteBookArray.count) {
         self.currentPage --;
-        [self.reOrderView.tableView.mj_footer resetNoMoreData];
+        [self.tableView.mj_footer resetNoMoreData];
         return ;
     }
     [self getDataList];
@@ -159,7 +159,7 @@
         MyNoteBookModel *listModel = [[MyNoteBookModel alloc] initWithDictionary:responseObject error:nil];
         weakSelf.totalPage = listModel.Total;
         [weakSelf.noteBookArray addObjectsFromArray:listModel.Items];
-        weakSelf.reOrderView.dataArray = weakSelf.noteBookArray.mutableCopy;
+//        weakSelf.dataArray = weakSelf.noteBookArray.mutableCopy;
         
         for (MyNoteBookSubModel * model in weakSelf.noteBookArray) {
             for (MyNoteBookSubModel * fModel in sArray) {
@@ -169,27 +169,28 @@
             }
         }
         dispatch_async(dispatch_get_main_queue(), ^{
-            [weakSelf.reOrderView.tableView.mj_header endRefreshing];
-            [weakSelf.reOrderView.tableView.mj_footer endRefreshing];
-            [weakSelf.reOrderView.tableView reloadData];
+            [weakSelf.tableView.mj_header endRefreshing];
+            [weakSelf.tableView.mj_footer endRefreshing];
+            [weakSelf.tableView reloadData];
         });
     } failure:^(NSError * _Nonnull error) {
         
     }];
 }
-- (ZFReOrderTableView *)reOrderView
+- (UITableView *)tableView
 {
-    if (!_reOrderView) {
-        _reOrderView = [[ZFReOrderTableView alloc] initWithFrame:CGRectZero withObjects:self.noteBookArray canReorder:YES];
+    if (!_tableView) {
+        _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
+        _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
     }
-    return _reOrderView;
+    return _tableView;
 }
 - (void)viewDidLoad {
     [super viewDidLoad];
-    self.reOrderView.tableView.delegate = self;
-    self.reOrderView.tableView.dataSource = self;
-    [self.view addSubview:self.reOrderView];
-    [self.reOrderView mas_makeConstraints:^(MASConstraintMaker *make) {
+    self.tableView.delegate = self;
+    self.tableView.dataSource = self;
+    [self.view addSubview:self.tableView];
+    [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
         make.left.right.mas_equalTo(self.view);
         make.top.mas_equalTo(self.searchTopView.mas_bottom);
         if (@available(iOS 11.0, *)) {
@@ -201,14 +202,14 @@
     }];
     
     WS(weakSelf);
-    self.reOrderView.tableView.showsVerticalScrollIndicator= NO;
-    self.reOrderView.exchangeDataBlock = ^(NSInteger sourceId,NSInteger toId) {
-        [[HttpManager sharedHttpManager] POSTUrl:Host(API_Find_Sort) parameters:@{@"MiddleIdFirst":@(sourceId),@"MiddleIdSecond":@(toId)} responseStyle:DATA success:^(id  _Nonnull responseObject) {
-            [weakSelf headRefresh];
-        } failure:^(NSError * _Nonnull error) {
-            
-        }];
-    };
+    self.tableView.showsVerticalScrollIndicator= NO;
+//    self.exchangeDataBlock = ^(NSInteger sourceId,NSInteger toId) {
+//        [[HttpManager sharedHttpManager] POSTUrl:Host(API_Find_Sort) parameters:@{@"MiddleIdFirst":@(sourceId),@"MiddleIdSecond":@(toId)} responseStyle:DATA success:^(id  _Nonnull responseObject) {
+//            [weakSelf headRefresh];
+//        } failure:^(NSError * _Nonnull error) {
+//
+//        }];
+//    };
     self.fd_prefersNavigationBarHidden = YES;
     
     [self.operationAllSelectButton setTitle:@"全选" forState:UIControlStateNormal];
@@ -226,7 +227,7 @@
     [self.operationAllSelectButton setTitleColor:UIColorHex(#1F87DB) forState:UIControlStateNormal];
     self.operationAllSelectButton.hidden = YES;
     self.currentPage = 1;
-    [self.reOrderView.tableView setAllowsSelectionDuringEditing:YES];
+    [self.tableView setAllowsSelectionDuringEditing:YES];
     
     [self.HeadView addSubview:self.SearchView];
     [self.SearchView  mas_makeConstraints:^(MASConstraintMaker *make) {
@@ -464,7 +465,7 @@
                 [weakSelf.navigationController pushViewController:vc animated:YES];
             }
             else if ([@"批量编辑" isEqualToString:action.title]){
-                [weakSelf.reOrderView.tableView setEditing:YES];
+                [weakSelf.tableView setEditing:YES];
                 [weakSelf changeToOperation:YES];
             }else if ([@"共享范围" isEqualToString:action.title]){
                 MyFavoriteNewFindVC *vc = [MyFavoriteNewFindVC initMyFavoriteNewFindVC];
@@ -538,7 +539,7 @@
                             cell.isShowList = YES;
                             [cell.noteSelectButton setAction:^{
                                 model.IsSelect = !model.IsSelect;
-                                [weakSelf.reOrderView.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
+                                [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                             }];
                             return cell;
                         }
@@ -561,7 +562,7 @@
                                     cell.isShowList = YES;
                                     [cell.noteSelectButton setAction:^{
                                         model.IsSelect = !model.IsSelect;
-                                        [weakSelf.reOrderView.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
+                                        [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
                                     return cell;
                                 }break;
@@ -581,7 +582,7 @@
                                     cell.isShowList = YES;
                                     [cell.noteSelectButton setAction:^{
                                         model.IsSelect = !model.IsSelect;
-                                        [weakSelf.reOrderView.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
+                                        [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
                                     return cell;
                                 }break;
@@ -603,7 +604,7 @@
                                     cell.isShowList = YES;
                                     [cell.noteSelectButton setAction:^{
                                         model.IsSelect = !model.IsSelect;
-                                        [weakSelf.reOrderView.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
+                                        [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
                                     return cell;
                                 }break;
@@ -626,7 +627,7 @@
                                     cell.isShowList = YES;
                                     [cell.noteSelectButton setAction:^{
                                         model.IsSelect = !model.IsSelect;
-                                        [weakSelf.reOrderView.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
+                                        [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
                                     return cell;
                                 }break;
@@ -653,7 +654,7 @@
                                     cell.isShowList = YES;
                                     [cell.noteSelectButton setAction:^{
                                         model.IsSelect = !model.IsSelect;
-                                        [weakSelf.reOrderView.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
+                                        [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
                                     return cell;
                                 }break;
@@ -681,7 +682,7 @@
                                     cell.isShowList = YES;
                                     [cell.noteSelectButton setAction:^{
                                         model.IsSelect = !model.IsSelect;
-                                        [weakSelf.reOrderView.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
+                                        [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
                                     return cell;
                                 }break;
@@ -713,7 +714,7 @@
                                     cell.isShowList = YES;
                                     [cell.noteSelectButton setAction:^{
                                         model.IsSelect = !model.IsSelect;
-                                        [weakSelf.reOrderView.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
+                                        [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
                                     return cell;
                                 }break;
@@ -746,7 +747,7 @@
                                     cell.isShowList = YES;
                                     [cell.noteSelectButton setAction:^{
                                         model.IsSelect = !model.IsSelect;
-                                        [weakSelf.reOrderView.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
+                                        [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
                                     return cell;
                                 }break;
@@ -780,7 +781,7 @@
                                     cell.isShowList = YES;
                                     [cell.noteSelectButton setAction:^{
                                         model.IsSelect = !model.IsSelect;
-                                        [weakSelf.reOrderView.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
+                                        [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
                                     return cell;
                                 }
@@ -804,7 +805,7 @@
                             cell.isShowList = YES;
                             [cell.noteSelectButton setAction:^{
                                 model.IsSelect = !model.IsSelect;
-                                [weakSelf.reOrderView.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
+                                [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                             }];
                             cell.selectionStyle = UITableViewCellSelectionStyleNone;
                             return cell;
@@ -840,7 +841,7 @@
                     cell.selectButton.selected = model.IsSelect;
                     [cell.selectButton setAction:^{
                         model.IsSelect = !model.IsSelect;
-                        [weakSelf.reOrderView.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
+                        [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                     }];
                     return cell;
                 }break;
@@ -1410,7 +1411,7 @@
                                 }else{
                                     [weakSelf delectSelelctData:model];
                                 }
-                                [weakSelf.reOrderView.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
+                                [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                             }];
                             return cell;
                         }
@@ -1437,7 +1438,7 @@
                                         }else{
                                             [weakSelf delectSelelctData:model];
                                         }
-                                        [weakSelf.reOrderView.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
+                                        [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
                                     return cell;
                                 }break;
@@ -1461,7 +1462,7 @@
                                         }else{
                                             [weakSelf delectSelelctData:model];
                                         }
-                                        [weakSelf.reOrderView.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
+                                        [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
                                     return cell;
                                 }break;
@@ -1487,7 +1488,7 @@
                                         }else{
                                             [weakSelf delectSelelctData:model];
                                         }
-                                        [weakSelf.reOrderView.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
+                                        [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
                                     return cell;
                                 }break;
@@ -1514,7 +1515,7 @@
                                         }else{
                                             [weakSelf delectSelelctData:model];
                                         }
-                                        [weakSelf.reOrderView.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
+                                        [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
                                     return cell;
                                 }break;
@@ -1545,7 +1546,7 @@
                                         }else{
                                             [weakSelf delectSelelctData:model];
                                         }
-                                        [weakSelf.reOrderView.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
+                                        [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
                                     return cell;
                                 }break;
@@ -1577,7 +1578,7 @@
                                         }else{
                                             [weakSelf delectSelelctData:model];
                                         }
-                                        [weakSelf.reOrderView.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
+                                        [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
                                     return cell;
                                 }break;
@@ -1613,7 +1614,7 @@
                                         }else{
                                             [weakSelf delectSelelctData:model];
                                         }
-                                        [weakSelf.reOrderView.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
+                                        [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
                                     return cell;
                                 }break;
@@ -1650,7 +1651,7 @@
                                         }else{
                                             [weakSelf delectSelelctData:model];
                                         }
-                                        [weakSelf.reOrderView.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
+                                        [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
                                     return cell;
                                 }break;
@@ -1688,7 +1689,7 @@
                                         }else{
                                             [weakSelf delectSelelctData:model];
                                         }
-                                        [weakSelf.reOrderView.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
+                                        [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
                                     return cell;
                                 }
@@ -1716,7 +1717,7 @@
                                 }else{
                                     [weakSelf delectSelelctData:model];
                                 }
-                                [weakSelf.reOrderView.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
+                                [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                             }];
                             cell.selectionStyle = UITableViewCellSelectionStyleNone;
                             return cell;
@@ -2017,12 +2018,31 @@
     }
 }
 #endif
-- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
-{
-    return YES;
+- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
+    
+    return tableView.editing;
 }
-- (void)tableView:(UITableView*)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath*)indexPath
-{
+- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath {
+    MyNoteBookSubModel *model  = self.noteBookArray[sourceIndexPath.row];
+    MyNoteBookSubModel *toModel  = self.noteBookArray[destinationIndexPath.row];
+    WS(weakSelf);
+    if (model.IsTop == toModel.IsTop) {
+        [[HttpManager sharedHttpManager] POSTUrl:Host(API_Find_Sort) parameters:@{@"MiddleIdFirst":@(model.Id),@"MiddleIdSecond":@(toModel.Id)} responseStyle:DATA success:^(id  _Nonnull responseObject) {
+            [weakSelf.noteBookArray removeObject:model];
+            [weakSelf.noteBookArray insertObject:model atIndex:destinationIndexPath.row];
+            dispatch_async(dispatch_get_main_queue(), ^{
+                [weakSelf.tableView reloadData];
+            });
+        } failure:^(NSError * _Nonnull error) {
+            
+        }];
+    }else{
+        [weakSelf.noteBookArray removeObject:model];
+        [weakSelf.noteBookArray insertObject:model atIndex:sourceIndexPath.row];
+        dispatch_async(dispatch_get_main_queue(), ^{
+            [weakSelf.tableView reloadData];
+        });
+    }
 }
 - (void)eidtorNoteBook:(MyNoteBookSubModel *)model{
     SHOWLOADING
@@ -2147,14 +2167,6 @@
     [self.navigationController pushViewController:vc animated:YES];
 }
 
-- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
-{
-    return UITableViewCellEditingStyleNone;
-}
-- (BOOL)tableView:(UITableView *)tableView shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath
-{ return NO;}
-- (BOOL)tableView:(UITableView *)tableView shouldShowMenuForRowAtIndexPath:(NSIndexPath *)indexPath
-{ return NO;}
 
 #pragma mark - 检测check 是否可用
 - (void)checkMoveButtonEnabled{
@@ -2189,8 +2201,8 @@
     if(operation){
         [[NSUserDefaults standardUserDefaults] setObject:@[] forKey:SELECTNOTE];
         [[NSUserDefaults standardUserDefaults] synchronize];
-        [self.reOrderView reloadCanReorder:YES];
         self.vcTitleLabel.text = @"批量编辑";
+        [self.tableView setEditing:YES];
         self.iSViewEditor = YES;
         self.rightAddButton.hidden = YES;
         self.rightEditBtn.hidden= YES;
@@ -2202,7 +2214,7 @@
         [self.operationAllSelectButton setImage:nil forState:UIControlStateNormal];
         self.tabBarController.tabBar.hidden = YES;
         self.operationBottomBgView.hidden = NO;
-        [self.reOrderView mas_updateConstraints:^(MASConstraintMaker *make) {
+        [self.tableView mas_updateConstraints:^(MASConstraintMaker *make) {
             if (@available(iOS 11.0, *)) {
                 make.bottom.equalTo(self.view.mas_safeAreaLayoutGuideBottom).offset(-self.tabBarController.tabBar.height + 30);
             } else {
@@ -2218,12 +2230,11 @@
         }
         [self.view layoutIfNeeded];
         [self removeRefresh];
-        [self.reOrderView.tableView layoutIfNeeded];
+        [self.tableView layoutIfNeeded];
         self.threeLIneView.hidden = NO;
         self.fd_interactivePopDisabled = YES;
     }else{
-        [self.reOrderView reloadCanReorder:NO];
-        self.reOrderView.tableView.editing = NO;
+        [self.tableView setEditing:NO];
         self.rightAddButton.hidden = NO;
         [self.rightAddButton setImage:IMG(@"chatmsg_right_add_icon") forState:UIControlStateNormal];
         [self.rightAddButton setTitle:nil forState:UIControlStateNormal];
@@ -2237,7 +2248,7 @@
         [self.operationAllSelectButton setTitleColor:[UIColor clearColor] forState:UIControlStateNormal];
         self.tabBarController.tabBar.hidden = YES;
         [self addRefresh];
-        [self.reOrderView mas_updateConstraints:^(MASConstraintMaker *make) {
+        [self.tableView mas_updateConstraints:^(MASConstraintMaker *make) {
             if (@available(iOS 11.0, *)) {
                 make.bottom.equalTo(self.view.mas_safeAreaLayoutGuideBottom);
             } else {
@@ -2250,19 +2261,19 @@
             make.top.mas_equalTo(self.searchTopView.mas_top).offset(10);
         }];
         [self.view layoutIfNeeded];
-        [self.reOrderView.tableView layoutIfNeeded];
+        [self.tableView layoutIfNeeded];
         self.operationBottomBgView.hidden = YES;
         self.threeLIneView.hidden = YES;
         self.fd_interactivePopDisabled = NO;
     }
-    [self.reOrderView.tableView reloadData];
+    [self.tableView reloadData];
 }
 #pragma mark 移动     isEdit:当前是否为编辑状态
 -(void)userDidMove:(BOOL)move isEdit:(BOOL)isEdit{
     //移动
     if(move){
-        self.reOrderView.tableView.allowsSelectionDuringEditing=YES;
-        self.reOrderView.tableView.editing = YES;
+        self.tableView.allowsSelectionDuringEditing=YES;
+        self.tableView.editing = YES;
         //默认操作状态为移动状态
         self.operationStateEnum = OperationStateEnum2;
         self.rightAddButton.hidden = NO;
@@ -2272,21 +2283,21 @@
         //隐藏tabBar - 并将TableView至底端
         self.tabBarController.tabBar.hidden = YES;
         self.view.height += self.tabBarController.tabBar.height;
-        self.reOrderView.tableView.height += self.tabBarController.tabBar.height;
+        self.tableView.height += self.tabBarController.tabBar.height;
         [self.view layoutIfNeeded];
-        [self.reOrderView.tableView layoutIfNeeded];
+        [self.tableView layoutIfNeeded];
         //隐藏operationBottomBgView
         self.operationBottomBgView.hidden = YES;
     }
     else{
-        self.reOrderView.tableView.editing = NO;
+        self.tableView.editing = NO;
         //隐藏tabBar - 并将TableView至底端有tabBar.height的高
-        self.reOrderView.tableView.allowsSelectionDuringEditing=NO;
+        self.tableView.allowsSelectionDuringEditing=NO;
         self.tabBarController.tabBar.hidden = YES;
         self.view.height -= self.tabBarController.tabBar.height;
-        self.reOrderView.tableView.height -= self.tabBarController.tabBar.height;
+        self.tableView.height -= self.tabBarController.tabBar.height;
         [self.view layoutIfNeeded];
-        [self.reOrderView.tableView layoutIfNeeded];
+        [self.tableView layoutIfNeeded];
         //显示operationBottomBgView
         self.operationBottomBgView.hidden = NO;
         
@@ -2299,7 +2310,7 @@
             [self changeToOperation:NO];
         }
     }
-    [self.reOrderView.tableView reloadData];
+    [self.tableView reloadData];
 }
 -(UIView *)operationBottomBgView{
     if(!_operationBottomBgView){
@@ -2372,7 +2383,6 @@
         MyNoteBookModel *listModel = [[MyNoteBookModel alloc] initWithDictionary:responseObject error:nil];
         weakSelf.totalPage = listModel.Total;
         [weakSelf.noteBookArray addObjectsFromArray:listModel.Items];
-        weakSelf.reOrderView.dataArray = weakSelf.noteBookArray.mutableCopy;
         
         for (MyNoteBookSubModel * model in weakSelf.noteBookArray) {
             for (MyNoteBookSubModel * fModel in sArray) {
@@ -2382,12 +2392,10 @@
             }
         }
         dispatch_async(dispatch_get_main_queue(), ^{
-            [weakSelf.reOrderView removeFromSuperview];
-            weakSelf.reOrderView = nil;
-            weakSelf.reOrderView.tableView.delegate = weakSelf;
-            weakSelf.reOrderView.tableView.dataSource = weakSelf;
-            [weakSelf.view addSubview:self.reOrderView];
-            [weakSelf.reOrderView mas_makeConstraints:^(MASConstraintMaker *make) {
+            weakSelf.tableView.delegate = weakSelf;
+            weakSelf.tableView.dataSource = weakSelf;
+            [weakSelf.view addSubview:self.tableView];
+            [weakSelf.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
                 make.left.right.mas_equalTo(weakSelf.view);
                 make.top.mas_equalTo(weakSelf.searchTopView.mas_bottom);
                 if (@available(iOS 11.0, *)) {
@@ -2396,9 +2404,9 @@
                     make.bottom.equalTo(weakSelf.view.mas_bottom);
                 }
             }];
-            [weakSelf.reOrderView.tableView.mj_header endRefreshing];
-            [weakSelf.reOrderView.tableView.mj_footer endRefreshing];
-            [weakSelf.reOrderView.tableView reloadData];
+            [weakSelf.tableView.mj_header endRefreshing];
+            [weakSelf.tableView.mj_footer endRefreshing];
+            [weakSelf.tableView reloadData];
         });
     } failure:^(NSError * _Nonnull error) {
         
@@ -2433,7 +2441,7 @@
             }
                 break;
             default:{
-                [self.reOrderView.tableView setEditing:NO];
+                [self.tableView setEditing:NO];
                 [super backAction:sender];
             } break;
         }
@@ -2450,7 +2458,7 @@
                 model.IsSelect = !self.isAllselect;
             }
             [self checkMoveButtonEnabled];
-            [self.reOrderView.tableView reloadData];
+            [self.tableView reloadData];
         }
             break;
         case OperationStateEnum3:
@@ -2459,7 +2467,7 @@
             for (MyNoteBookSubModel *model in self.noteBookArray) {
                 model.IsSelect = !self.isAllselect;
             }
-            [self.reOrderView.tableView reloadData];
+            [self.tableView reloadData];
         }
             break;
         default:
@@ -2508,8 +2516,8 @@
     CGPoint currentPoint = [recognise locationInView:self.view];
     if (recognise.state==UIGestureRecognizerStateBegan) {
         _orignY=currentPoint.y;
-        _currentPath = [self.reOrderView.tableView indexPathForRowAtPoint:currentPoint];
-        _currentCell=[self.reOrderView.tableView cellForRowAtIndexPath:_currentPath];
+        _currentPath = [self.tableView indexPathForRowAtPoint:currentPoint];
+        _currentCell=[self.tableView cellForRowAtIndexPath:_currentPath];
         _currentCell.hidden=YES;
         _cellImage=[UIImageView new];
         _cellImage.image=[self getImageWithCell:_currentCell];
@@ -2524,7 +2532,7 @@
             if (currentPoint.y-_orignY>30) {
                 NSIndexPath *newIndexPath=[NSIndexPath indexPathForRow:_currentPath.row+1 inSection:0];
                 if(newIndexPath.row<self.noteBookArray.count){
-                    [self.reOrderView.tableView moveRowAtIndexPath:_currentPath toIndexPath:newIndexPath];
+                    [self.tableView moveRowAtIndexPath:_currentPath toIndexPath:newIndexPath];
                     _currentPath=newIndexPath;
                     _orignY+=60;
                 }
@@ -2534,7 +2542,7 @@
         }else{
             if (_orignY-currentPoint.y>30) {
                 NSIndexPath *newIndexPath=[NSIndexPath indexPathForRow:_currentPath.row-1 inSection:0];
-                [self.reOrderView.tableView moveRowAtIndexPath:_currentPath toIndexPath:newIndexPath];
+                [self.tableView moveRowAtIndexPath:_currentPath toIndexPath:newIndexPath];
                 _currentPath=newIndexPath;
                 _orignY-=60;
             }
@@ -2591,7 +2599,7 @@
             -- mdoel.PraiseCount;
         }
         dispatch_async(dispatch_get_main_queue(), ^{
-            [weakSelf.reOrderView.tableView reloadRow:indexPath.row inSection:indexPath.section withRowAnimation:UITableViewRowAnimationNone];
+            [weakSelf.tableView reloadRow:indexPath.row inSection:indexPath.section withRowAnimation:UITableViewRowAnimationNone];
         });
     } failure:^(NSError * _Nonnull error) {
         SHOWERROR([ZYCTool handerResultData:error]);
@@ -2954,7 +2962,7 @@
 }
 - (void)makeSwipeButton
 {
-    for (UIView *subview in self.reOrderView.tableView.subviews)
+    for (UIView *subview in self.tableView.subviews)
     {
         if ([subview isKindOfClass:NSClassFromString(@"UISwipeActionPullView")] )
         {

+ 24 - 21
smartRhino/Project/VCModel/My_Center/Controller/NoteBook/View/NoteBookCell.m

@@ -396,31 +396,34 @@
 - (void)layoutSubviews
 {
     [super layoutSubviews];
-    if (self.isShowList) {
-        self.moveButton.hidden = NO;
-        for (UIView *supView in self.subviews){
-            if ([supView isKindOfClass:NSClassFromString(@"UITableViewCellReorderControl")]){
-                for (UIView *view in supView.subviews)
+    self.moveButton.hidden = YES;
+    CGRect rect = self.contentView.frame;
+    rect.size.width += rect.origin.x;
+    rect.origin.x = 0;
+    self.contentView.frame = rect;
+    for (UIView *supView in self.subviews){
+        if ([supView isKindOfClass:NSClassFromString(@"UITableViewCellReorderControl")]){
+            for (UIView *view in supView.subviews)
+            {
+                if ([view isKindOfClass: [UIImageView class]])
                 {
-                    if ([view isKindOfClass: [UIImageView class]])
-                    {
-                        UIImageView * imagV = (UIImageView *)view;
-                        [imagV setFrame:CGRectMake(0, 0, 22, 18)];
-                        imagV.center = supView.center;
-                        imagV.contentMode = UIViewContentModeCenter;
-                        imagV.image = [UIImage imageNamed: @"list_sort"];
-                        UILabel * label = [UILabel new];
-                        label.backgroundColor = UIColorHex(#EAEAEA);
-                        [supView addSubview:label];
-                        [label setFrame:CGRectMake(0, supView.frame.size.height - 0.5, supView.frame.size.width, 0.5)];
-                    }else{
-                        [view removeFromSuperview];
-                    }
+                    UIImageView * imagV = (UIImageView *)view;
+                    [imagV setFrame:CGRectMake(0, 0, 22, 18)];
+                    imagV.center = supView.center;
+                    imagV.contentMode = UIViewContentModeCenter;
+                    imagV.image = [UIImage imageNamed: @"list_sort"];
+                    UILabel * label = [UILabel new];
+                    label.backgroundColor = UIColorHex(#EAEAEA);
+                    [supView addSubview:label];
+                    [label setFrame:CGRectMake(0, supView.frame.size.height - 0.5, supView.frame.size.width, 0.5)];
+                }else{
+                    [view removeFromSuperview];
                 }
             }
         }
-    }else{
-        self.moveButton.hidden = YES;
+        if ([supView isKindOfClass:NSClassFromString(@"UITableViewCellEditControl")]){
+            [supView removeFromSuperview];
+        }
     }
 }
 @end

+ 1 - 1
smartRhino/Project/VCModel/My_Center/Controller/NoteBook/View/NoteBookCell.xib

@@ -2727,7 +2727,7 @@
                         </constraints>
                     </imageView>
                     <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="4KH-0U-ZDo">
-                        <rect key="frame" x="0.0" y="74" width="76" height="76"/>
+                        <rect key="frame" x="0.0" y="93" width="38" height="38"/>
                         <state key="normal" image="sendinfo_no"/>
                         <state key="selected" image="sendinfo_yes"/>
                     </button>