HF_Q 4 years ago
parent
commit
6b726fd4b7
52 changed files with 1998 additions and 115 deletions
  1. 80 2
      smartRhino.xcodeproj/project.pbxproj
  2. BIN
      smartRhino.xcworkspace/xcuserdata/niuzhen.xcuserdatad/UserInterfaceState.xcuserstate
  3. BIN
      smartRhino/Assets.xcassets/ChatMsg/Book_Select_no.imageset/Book_Select_no@2x.png
  4. BIN
      smartRhino/Assets.xcassets/ChatMsg/Book_Select_no.imageset/Book_Select_no@3x.png
  5. 22 0
      smartRhino/Assets.xcassets/ChatMsg/Book_Select_no.imageset/Contents.json
  6. BIN
      smartRhino/Assets.xcassets/ChatMsg/Book_Select_yes.imageset/Book_Select_yes@2x.png
  7. BIN
      smartRhino/Assets.xcassets/ChatMsg/Book_Select_yes.imageset/Book_Select_yes@3x.png
  8. 22 0
      smartRhino/Assets.xcassets/ChatMsg/Book_Select_yes.imageset/Contents.json
  9. BIN
      smartRhino/Assets.xcassets/ChatMsg/Book_jian_down.imageset/Book_jian_down@2x.png
  10. BIN
      smartRhino/Assets.xcassets/ChatMsg/Book_jian_down.imageset/Book_jian_down@3x.png
  11. 22 0
      smartRhino/Assets.xcassets/ChatMsg/Book_jian_down.imageset/Contents.json
  12. BIN
      smartRhino/Assets.xcassets/ChatMsg/Book_jian_up.imageset/Book_jian_up@2x.png
  13. BIN
      smartRhino/Assets.xcassets/ChatMsg/Book_jian_up.imageset/Book_jian_up@3x.png
  14. 22 0
      smartRhino/Assets.xcassets/ChatMsg/Book_jian_up.imageset/Contents.json
  15. 3 0
      smartRhino/Project/VCModel/ChatMessage/View/ChatMsgCollectionCell.h
  16. 7 4
      smartRhino/Project/VCModel/ChatMessage/View/ChatMsgCollectionCell.xib
  17. 130 14
      smartRhino/Project/VCModel/Home/VC/BookStore/BookStore.storyboard
  18. 25 0
      smartRhino/Project/VCModel/Home/VC/BookStore/Model/BookBillModel.h
  19. 13 0
      smartRhino/Project/VCModel/Home/VC/BookStore/Model/BookBillModel.m
  20. 2 0
      smartRhino/Project/VCModel/Home/VC/BookStore/Model/BookHomeSubModel.h
  21. 24 0
      smartRhino/Project/VCModel/Home/VC/BookStore/Model/BookSelectModel.h
  22. 13 0
      smartRhino/Project/VCModel/Home/VC/BookStore/Model/BookSelectModel.m
  23. 17 0
      smartRhino/Project/VCModel/Home/VC/BookStore/VC/BookBillboardVC.h
  24. 148 0
      smartRhino/Project/VCModel/Home/VC/BookStore/VC/BookBillboardVC.m
  25. 9 2
      smartRhino/Project/VCModel/Home/VC/BookStore/VC/BookChanelVC.m
  26. 387 52
      smartRhino/Project/VCModel/Home/VC/BookStore/VC/BookContentNavVC.m
  27. 9 1
      smartRhino/Project/VCModel/Home/VC/BookStore/VC/BookStoreHome.m
  28. 5 0
      smartRhino/Project/VCModel/Home/VC/BookStore/VC/BookWeiCourseListVC.m
  29. 23 0
      smartRhino/Project/VCModel/Home/VC/BookStore/View/BookBillBookCell.h
  30. 22 0
      smartRhino/Project/VCModel/Home/VC/BookStore/View/BookBillBookCell.m
  31. 100 0
      smartRhino/Project/VCModel/Home/VC/BookStore/View/BookBillBookCell.xib
  32. 23 0
      smartRhino/Project/VCModel/Home/VC/BookStore/View/BookBillCell.h
  33. 157 0
      smartRhino/Project/VCModel/Home/VC/BookStore/View/BookBillCell.m
  34. 73 0
      smartRhino/Project/VCModel/Home/VC/BookStore/View/BookBillCell.xib
  35. 24 0
      smartRhino/Project/VCModel/Home/VC/BookStore/View/BookBillCousreCell.h
  36. 22 0
      smartRhino/Project/VCModel/Home/VC/BookStore/View/BookBillCousreCell.m
  37. 100 0
      smartRhino/Project/VCModel/Home/VC/BookStore/View/BookBillCousreCell.xib
  38. 24 0
      smartRhino/Project/VCModel/Home/VC/BookStore/View/BookBillMusicCell.h
  39. 22 0
      smartRhino/Project/VCModel/Home/VC/BookStore/View/BookBillMusicCell.m
  40. 108 0
      smartRhino/Project/VCModel/Home/VC/BookStore/View/BookBillMusicCell.xib
  41. 18 18
      smartRhino/Project/VCModel/Home/VC/BookStore/View/BookContentCell.xib
  42. 1 0
      smartRhino/Project/VCModel/Home/VC/BookStore/View/BookContentLeftCell.h
  43. 23 20
      smartRhino/Project/VCModel/Home/VC/BookStore/View/BookContentLeftCell.m
  44. 1 0
      smartRhino/Project/VCModel/Home/VC/BookStore/View/BookContentLeftCell.xib
  45. 20 0
      smartRhino/Project/VCModel/Home/VC/BookStore/View/BookSelectCell.h
  46. 94 0
      smartRhino/Project/VCModel/Home/VC/BookStore/View/BookSelectCell.m
  47. 55 0
      smartRhino/Project/VCModel/Home/VC/BookStore/View/BookSelectCell.xib
  48. 19 0
      smartRhino/Project/VCModel/Home/VC/BookStore/View/BookSelectCollectCell.h
  49. 27 0
      smartRhino/Project/VCModel/Home/VC/BookStore/View/BookSelectCollectCell.m
  50. 77 0
      smartRhino/Project/VCModel/Home/VC/BookStore/View/BookSelectCollectCell.xib
  51. 1 1
      smartRhino/Project/VCModel/Login/Controller/LoginVC.m
  52. 4 1
      smartRhino/Project/VCModel/common/Controller/CommonHomeVC.m

+ 80 - 2
smartRhino.xcodeproj/project.pbxproj

@@ -732,6 +732,16 @@
 		EB05E109240CEDAF00D9E276 /* MyPcUpdata.m in Sources */ = {isa = PBXBuildFile; fileRef = EB05E108240CEDAF00D9E276 /* MyPcUpdata.m */; };
 		EB09BF2D23B1A32B001CCBC7 /* WaitWorkLabelModel.m in Sources */ = {isa = PBXBuildFile; fileRef = EB09BF2C23B1A32B001CCBC7 /* WaitWorkLabelModel.m */; };
 		EB09BF3023B1AA19001CCBC7 /* WaitWorkWarnAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = EB09BF2F23B1AA19001CCBC7 /* WaitWorkWarnAlert.m */; };
+		EB0A7391247B8B8B00DB75CB /* BookBillboardVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EB0A7390247B8B8B00DB75CB /* BookBillboardVC.m */; };
+		EB0A7395247B9F7600DB75CB /* BookBillCell.m in Sources */ = {isa = PBXBuildFile; fileRef = EB0A7393247B9F7600DB75CB /* BookBillCell.m */; };
+		EB0A7396247B9F7600DB75CB /* BookBillCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = EB0A7394247B9F7600DB75CB /* BookBillCell.xib */; };
+		EB0A7399247BA42500DB75CB /* BookBillModel.m in Sources */ = {isa = PBXBuildFile; fileRef = EB0A7398247BA42500DB75CB /* BookBillModel.m */; };
+		EB0A73A2247BC93800DB75CB /* BookBillBookCell.m in Sources */ = {isa = PBXBuildFile; fileRef = EB0A73A0247BC93800DB75CB /* BookBillBookCell.m */; };
+		EB0A73A3247BC93800DB75CB /* BookBillBookCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = EB0A73A1247BC93800DB75CB /* BookBillBookCell.xib */; };
+		EB0A73A7247BC95900DB75CB /* BookBillCousreCell.m in Sources */ = {isa = PBXBuildFile; fileRef = EB0A73A5247BC95900DB75CB /* BookBillCousreCell.m */; };
+		EB0A73A8247BC95900DB75CB /* BookBillCousreCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = EB0A73A6247BC95900DB75CB /* BookBillCousreCell.xib */; };
+		EB0A73AC247BC96C00DB75CB /* BookBillMusicCell.m in Sources */ = {isa = PBXBuildFile; fileRef = EB0A73AA247BC96C00DB75CB /* BookBillMusicCell.m */; };
+		EB0A73AD247BC96C00DB75CB /* BookBillMusicCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = EB0A73AB247BC96C00DB75CB /* BookBillMusicCell.xib */; };
 		EB0BBB7C23D2978F005C850C /* ChatMsgNoticeSearchVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EB0BBB7B23D2978E005C850C /* ChatMsgNoticeSearchVC.m */; };
 		EB0BDF4D244D49F1009F6434 /* MailListSortVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EB0BDF4C244D49F1009F6434 /* MailListSortVC.m */; };
 		EB0DBF0323ADA8A200E977ED /* MyTDTopicSelectExtentCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = EB0DBF0023ADA8A200E977ED /* MyTDTopicSelectExtentCell.xib */; };
@@ -1216,6 +1226,11 @@
 		EBFC605A23FE52DE00A6874B /* HomeCommentView.m in Sources */ = {isa = PBXBuildFile; fileRef = EBFC605923FE52DE00A6874B /* HomeCommentView.m */; };
 		EBFC605C23FE52EE00A6874B /* HomeCommentView.xib in Resources */ = {isa = PBXBuildFile; fileRef = EBFC605B23FE52EE00A6874B /* HomeCommentView.xib */; };
 		EBFDDADA241B9DA100875D8A /* ReadSearchVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EBFDDAD9241B9DA100875D8A /* ReadSearchVC.m */; };
+		EBFDFE472477610F0046E847 /* BookSelectCell.m in Sources */ = {isa = PBXBuildFile; fileRef = EBFDFE452477610F0046E847 /* BookSelectCell.m */; };
+		EBFDFE482477610F0046E847 /* BookSelectCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = EBFDFE462477610F0046E847 /* BookSelectCell.xib */; };
+		EBFDFE4C247762280046E847 /* BookSelectCollectCell.m in Sources */ = {isa = PBXBuildFile; fileRef = EBFDFE4A247762280046E847 /* BookSelectCollectCell.m */; };
+		EBFDFE4D247762280046E847 /* BookSelectCollectCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = EBFDFE4B247762280046E847 /* BookSelectCollectCell.xib */; };
+		EBFDFE50247778CC0046E847 /* BookSelectModel.m in Sources */ = {isa = PBXBuildFile; fileRef = EBFDFE4F247778CC0046E847 /* BookSelectModel.m */; };
 		EBFFE22924234238008D4312 /* OtherFavoriteVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EBFFE22824234238008D4312 /* OtherFavoriteVC.m */; };
 /* End PBXBuildFile section */
 
@@ -2515,6 +2530,22 @@
 		EB09BF2C23B1A32B001CCBC7 /* WaitWorkLabelModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = WaitWorkLabelModel.m; sourceTree = "<group>"; };
 		EB09BF2E23B1AA19001CCBC7 /* WaitWorkWarnAlert.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WaitWorkWarnAlert.h; sourceTree = "<group>"; };
 		EB09BF2F23B1AA19001CCBC7 /* WaitWorkWarnAlert.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = WaitWorkWarnAlert.m; sourceTree = "<group>"; };
+		EB0A738F247B8B8B00DB75CB /* BookBillboardVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BookBillboardVC.h; sourceTree = "<group>"; };
+		EB0A7390247B8B8B00DB75CB /* BookBillboardVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BookBillboardVC.m; sourceTree = "<group>"; };
+		EB0A7392247B9F7600DB75CB /* BookBillCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BookBillCell.h; sourceTree = "<group>"; };
+		EB0A7393247B9F7600DB75CB /* BookBillCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BookBillCell.m; sourceTree = "<group>"; };
+		EB0A7394247B9F7600DB75CB /* BookBillCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BookBillCell.xib; sourceTree = "<group>"; };
+		EB0A7397247BA42500DB75CB /* BookBillModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BookBillModel.h; sourceTree = "<group>"; };
+		EB0A7398247BA42500DB75CB /* BookBillModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BookBillModel.m; sourceTree = "<group>"; };
+		EB0A739F247BC93800DB75CB /* BookBillBookCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BookBillBookCell.h; sourceTree = "<group>"; };
+		EB0A73A0247BC93800DB75CB /* BookBillBookCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BookBillBookCell.m; sourceTree = "<group>"; };
+		EB0A73A1247BC93800DB75CB /* BookBillBookCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BookBillBookCell.xib; sourceTree = "<group>"; };
+		EB0A73A4247BC95900DB75CB /* BookBillCousreCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BookBillCousreCell.h; sourceTree = "<group>"; };
+		EB0A73A5247BC95900DB75CB /* BookBillCousreCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BookBillCousreCell.m; sourceTree = "<group>"; };
+		EB0A73A6247BC95900DB75CB /* BookBillCousreCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BookBillCousreCell.xib; sourceTree = "<group>"; };
+		EB0A73A9247BC96C00DB75CB /* BookBillMusicCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BookBillMusicCell.h; sourceTree = "<group>"; };
+		EB0A73AA247BC96C00DB75CB /* BookBillMusicCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BookBillMusicCell.m; sourceTree = "<group>"; };
+		EB0A73AB247BC96C00DB75CB /* BookBillMusicCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BookBillMusicCell.xib; sourceTree = "<group>"; };
 		EB0BBB7A23D2978E005C850C /* ChatMsgNoticeSearchVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChatMsgNoticeSearchVC.h; sourceTree = "<group>"; };
 		EB0BBB7B23D2978E005C850C /* ChatMsgNoticeSearchVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ChatMsgNoticeSearchVC.m; sourceTree = "<group>"; };
 		EB0BDF4A244D313A009F6434 /* 泰德信源.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = "泰德信源.entitlements"; sourceTree = "<group>"; };
@@ -3318,6 +3349,14 @@
 		EBFC605B23FE52EE00A6874B /* HomeCommentView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeCommentView.xib; sourceTree = "<group>"; };
 		EBFDDAD8241B9DA100875D8A /* ReadSearchVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ReadSearchVC.h; sourceTree = "<group>"; };
 		EBFDDAD9241B9DA100875D8A /* ReadSearchVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ReadSearchVC.m; sourceTree = "<group>"; };
+		EBFDFE442477610F0046E847 /* BookSelectCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BookSelectCell.h; sourceTree = "<group>"; };
+		EBFDFE452477610F0046E847 /* BookSelectCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BookSelectCell.m; sourceTree = "<group>"; };
+		EBFDFE462477610F0046E847 /* BookSelectCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BookSelectCell.xib; sourceTree = "<group>"; };
+		EBFDFE49247762280046E847 /* BookSelectCollectCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BookSelectCollectCell.h; sourceTree = "<group>"; };
+		EBFDFE4A247762280046E847 /* BookSelectCollectCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BookSelectCollectCell.m; sourceTree = "<group>"; };
+		EBFDFE4B247762280046E847 /* BookSelectCollectCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BookSelectCollectCell.xib; sourceTree = "<group>"; };
+		EBFDFE4E247778CC0046E847 /* BookSelectModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BookSelectModel.h; sourceTree = "<group>"; };
+		EBFDFE4F247778CC0046E847 /* BookSelectModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BookSelectModel.m; sourceTree = "<group>"; };
 		EBFFE22724234238008D4312 /* OtherFavoriteVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OtherFavoriteVC.h; sourceTree = "<group>"; };
 		EBFFE22824234238008D4312 /* OtherFavoriteVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OtherFavoriteVC.m; sourceTree = "<group>"; };
 /* End PBXFileReference section */
@@ -6950,6 +6989,10 @@
 				EB1E0F84246D100200D4C3DE /* BookContentModel.m */,
 				EBF7175D247237DF00ED1838 /* BookAlertModel.h */,
 				EBF7175E247237DF00ED1838 /* BookAlertModel.m */,
+				EBFDFE4E247778CC0046E847 /* BookSelectModel.h */,
+				EBFDFE4F247778CC0046E847 /* BookSelectModel.m */,
+				EB0A7397247BA42500DB75CB /* BookBillModel.h */,
+				EB0A7398247BA42500DB75CB /* BookBillModel.m */,
 			);
 			path = Model;
 			sourceTree = "<group>";
@@ -6975,6 +7018,8 @@
 				EB6F002C2473B19300808484 /* BookWeiCourseListVC.m */,
 				EB5F44FB2474CCCA008D316D /* BookDetailVC.h */,
 				EB5F44FC2474CCCA008D316D /* BookDetailVC.m */,
+				EB0A738F247B8B8B00DB75CB /* BookBillboardVC.h */,
+				EB0A7390247B8B8B00DB75CB /* BookBillboardVC.m */,
 			);
 			path = VC;
 			sourceTree = "<group>";
@@ -7021,6 +7066,24 @@
 				EB5F45062475093C008D316D /* BookChanelCell.h */,
 				EB5F45072475093C008D316D /* BookChanelCell.m */,
 				EB5F45082475093C008D316D /* BookChanelCell.xib */,
+				EBFDFE442477610F0046E847 /* BookSelectCell.h */,
+				EBFDFE452477610F0046E847 /* BookSelectCell.m */,
+				EBFDFE462477610F0046E847 /* BookSelectCell.xib */,
+				EBFDFE49247762280046E847 /* BookSelectCollectCell.h */,
+				EBFDFE4A247762280046E847 /* BookSelectCollectCell.m */,
+				EBFDFE4B247762280046E847 /* BookSelectCollectCell.xib */,
+				EB0A7392247B9F7600DB75CB /* BookBillCell.h */,
+				EB0A7393247B9F7600DB75CB /* BookBillCell.m */,
+				EB0A7394247B9F7600DB75CB /* BookBillCell.xib */,
+				EB0A739F247BC93800DB75CB /* BookBillBookCell.h */,
+				EB0A73A0247BC93800DB75CB /* BookBillBookCell.m */,
+				EB0A73A1247BC93800DB75CB /* BookBillBookCell.xib */,
+				EB0A73A4247BC95900DB75CB /* BookBillCousreCell.h */,
+				EB0A73A5247BC95900DB75CB /* BookBillCousreCell.m */,
+				EB0A73A6247BC95900DB75CB /* BookBillCousreCell.xib */,
+				EB0A73A9247BC96C00DB75CB /* BookBillMusicCell.h */,
+				EB0A73AA247BC96C00DB75CB /* BookBillMusicCell.m */,
+				EB0A73AB247BC96C00DB75CB /* BookBillMusicCell.xib */,
 			);
 			path = View;
 			sourceTree = "<group>";
@@ -7970,6 +8033,7 @@
 				324D962E23A24E3700C7D9E8 /* FindShareTypeCell.xib in Resources */,
 				EB8E2CEC239666A900CDFBDA /* checked@3x.png in Resources */,
 				C79C6D3C23BF16C500BE4156 /* MeetingDetailsTimeCell.xib in Resources */,
+				EBFDFE4D247762280046E847 /* BookSelectCollectCell.xib in Resources */,
 				EBF7177D24726A4500ED1838 /* HomeWeiCousreCollectCell.xib in Resources */,
 				EBF7177324725B7A00ED1838 /* BookCardPayAlertCell.xib in Resources */,
 				C7799F1D23AB99C500270988 /* WorkFlowPersonnelListHeadView.xib in Resources */,
@@ -8089,6 +8153,7 @@
 				EB8E2D96239666A900CDFBDA /* msg_img_broken@2x.png in Resources */,
 				32580E6323ADB814005DF500 /* NoteBookSelectFinderCell.xib in Resources */,
 				EB8E2CEE239666A900CDFBDA /* checked@2x.png in Resources */,
+				EB0A73A3247BC93800DB75CB /* BookBillBookCell.xib in Resources */,
 				C7D6BCA0235DA1CE00770E7C /* MyDetailTableViewCell.xib in Resources */,
 				EBC2E147243C70520054E422 /* msg_bg_app@2x.png in Resources */,
 				EB8E2D3E239666A900CDFBDA /* icon_027_cover.png in Resources */,
@@ -8119,6 +8184,7 @@
 				EB8E2D37239666A900CDFBDA /* icon_024_cover.png in Resources */,
 				C62215932372A32B006F5D7F /* NoticeUnreadCell.xib in Resources */,
 				EB8E2D4C239666A900CDFBDA /* icon_007_cover.png in Resources */,
+				EBFDFE482477610F0046E847 /* BookSelectCell.xib in Resources */,
 				EB8E2CDF239666A900CDFBDA /* user_avatar_blue@2x.png in Resources */,
 				327E375E23A9C86600842F47 /* NoteBookCell.xib in Resources */,
 				EB440FC623A32302006BCB95 /* TDGroupInfoDetailCell.xib in Resources */,
@@ -8138,6 +8204,7 @@
 				3220A0C723CC8F7C005A347C /* shoujianrenResultViewCell.xib in Resources */,
 				EB0FA5D1241F6DBD00BF8558 /* HomeScrCell.xib in Resources */,
 				C6227097236C09FC00E2E3BF /* mj_air_black@2x.png in Resources */,
+				EB0A73A8247BC95900DB75CB /* BookBillCousreCell.xib in Resources */,
 				EB568FC2239B40C7000827B0 /* FindResultViewCell.xib in Resources */,
 				C7743F8823A86A8600973D70 /* WorkFlowHomeListController.xib in Resources */,
 				EB96B8A323BF5ACB00EE09D7 /* MyTDTopic.storyboard in Resources */,
@@ -8199,6 +8266,7 @@
 				C7EE366A23BAFA71002EB3BF /* MeetingDetailsHeadCell.xib in Resources */,
 				EB8E2D3C239666A900CDFBDA /* icon_007.gif in Resources */,
 				EB3EAFDD23A1DAB400C38AB4 /* MenuListCell.xib in Resources */,
+				EB0A73AD247BC96C00DB75CB /* BookBillMusicCell.xib in Resources */,
 				C7743FAE23A9018200973D70 /* MyWorkFlowListCell.xib in Resources */,
 				C625AAAF236FF35B0010E967 /* ChatMsgSearchReseltContentCell.xib in Resources */,
 				C7CA60B2237312A50062B8B8 /* WorkFlowSelectCollectCell.xib in Resources */,
@@ -8247,6 +8315,7 @@
 				EB8E2CE5239666A900CDFBDA /* close_white@3x.png in Resources */,
 				C6227091236C09FC00E2E3BF /* mj_air@2x.png in Resources */,
 				EB2B5A73242B0CA40087E1E7 /* MyNewFindUserCell.xib in Resources */,
+				EB0A7396247B9F7600DB75CB /* BookBillCell.xib in Resources */,
 				C783740923AA42C00096AFE2 /* WorkFlowDetailsController.xib in Resources */,
 				C7D6BC9C235DA1CE00770E7C /* PersonalCertificationTableViewCell.xib in Resources */,
 				EB8E2D17239666A900CDFBDA /* alert_success@3x.png in Resources */,
@@ -8470,6 +8539,7 @@
 				C57264812382A6370054EE66 /* ArticleImageCell.m in Sources */,
 				C59D0C2823825DE1007D0760 /* UIApplication+YYAdd.m in Sources */,
 				C7D6BC7F235DA1CE00770E7C /* MyOrderModel.m in Sources */,
+				EB0A73AC247BC96C00DB75CB /* BookBillMusicCell.m in Sources */,
 				C7743F9823A86DAE00973D70 /* WorkFlowFecordController.m in Sources */,
 				EB8E2D24239666A900CDFBDA /* EMChineseToPinyin.m in Sources */,
 				C5598D2523869D2300BC7185 /* NoticeModel.m in Sources */,
@@ -8658,6 +8728,7 @@
 				EB85BF4A243DB566006C7A82 /* ChatMsgPersonInfoVC.m in Sources */,
 				C7819D5D23B0597500300297 /* TimeSourceModel.m in Sources */,
 				C78373FB23AA287C0096AFE2 /* FecordJoinWorkFlowListController.m in Sources */,
+				EB0A7399247BA42500DB75CB /* BookBillModel.m in Sources */,
 				EBB6888423C9E4DD00E24DD9 /* RichModel.m in Sources */,
 				C72351C12382907B0037E4F6 /* NSImage+WebCache.m in Sources */,
 				EB8E2D2E239666A900CDFBDA /* EMReadReceiptTableViewCell.m in Sources */,
@@ -8741,6 +8812,8 @@
 				C62215A42372CC89006F5D7F /* MailListByZuVC.m in Sources */,
 				C7D6BC85235DA1CE00770E7C /* NoticeViewController.m in Sources */,
 				C76DB42F236ACB4B00369F5C /* MyTDTopicViewController.m in Sources */,
+				EBFDFE4C247762280046E847 /* BookSelectCollectCell.m in Sources */,
+				EB0A73A7247BC95900DB75CB /* BookBillCousreCell.m in Sources */,
 				C69A8E1923753A150098FA26 /* CalenderView.m in Sources */,
 				EB38513F24652BA700E28172 /* TDGroupRoleVC.m in Sources */,
 				C7F6162B238C06F0008AF22D /* UserManager.m in Sources */,
@@ -8854,6 +8927,7 @@
 				C7D6BCAD235DA1CE00770E7C /* BlacklistModel.m in Sources */,
 				EB56DA0A23BB431500FE7262 /* ChatListMoveVC.m in Sources */,
 				C770405B23AC655700BFF1B0 /* UIView+BYIBInspectable.m in Sources */,
+				EB0A73A2247BC93800DB75CB /* BookBillBookCell.m in Sources */,
 				C7235186238244B20037E4F6 /* ArticleBlocks.m in Sources */,
 				EB09BF2D23B1A32B001CCBC7 /* WaitWorkLabelModel.m in Sources */,
 				C7D6BC92235DA1CE00770E7C /* ClubApplicationViewController.m in Sources */,
@@ -8884,6 +8958,7 @@
 				C7CA60AD237312680062B8B8 /* WorkFlowSelectView.m in Sources */,
 				C75049F2236027DA0096B15B /* HomeContentCell.m in Sources */,
 				C75ACED2236A842400CB6374 /* TDShareButtonView.m in Sources */,
+				EB0A7395247B9F7600DB75CB /* BookBillCell.m in Sources */,
 				C625AA71236FB2930010E967 /* ChatMsgCollectionModel.m in Sources */,
 				C72F2A58236D829D00F6ADE2 /* AddFileTableViewCell.m in Sources */,
 				C625AAA5236FEF130010E967 /* ZLCollectionViewLayoutAttributes.m in Sources */,
@@ -8941,6 +9016,7 @@
 				C7799EFE23AB2A1600270988 /* WorkFlowOrderItemCell.m in Sources */,
 				C783741723AA46900096AFE2 /* HistoricalWorkFlowDetailsMoreCell.m in Sources */,
 				32580E6623ADCF35005DF500 /* NoteBooKSelectNoteBookVC.m in Sources */,
+				EBFDFE50247778CC0046E847 /* BookSelectModel.m in Sources */,
 				EB8E2D76239666A900CDFBDA /* EMMessageStatusView.m in Sources */,
 				EB41514E246BDEB900030371 /* BookHomeSubModel.m in Sources */,
 				C69A8E1A23753A150098FA26 /* CalenderCollectionCell.m in Sources */,
@@ -9091,6 +9167,7 @@
 				EBE36C3723A7208E002BE674 /* NewTopicCell.m in Sources */,
 				C76745152373A6C4001675FA /* BYHLabelsLayout.m in Sources */,
 				C625AAA7236FEF130010E967 /* SPPageMenu.m in Sources */,
+				EB0A7391247B8B8B00DB75CB /* BookBillboardVC.m in Sources */,
 				C69A8DF32374455C0098FA26 /* ChatInfoUserModel.m in Sources */,
 				EB7DD23C2462B62600C6048F /* GroupSquareCell.m in Sources */,
 				EB0F64D323AA096A00AD56A0 /* MyTDTopicGroupUserVC.m in Sources */,
@@ -9134,6 +9211,7 @@
 				C7235185238244B20037E4F6 /* DatasModel.m in Sources */,
 				C7D6BB44235DA18A00770E7C /* ReplyDetailController.m in Sources */,
 				C622711F236C0BBC00E2E3BF /* ShowtipTool.m in Sources */,
+				EBFDFE472477610F0046E847 /* BookSelectCell.m in Sources */,
 				C78373F023A9D82E0096AFE2 /* HistoricalWorkFlowListController.m in Sources */,
 				C6F2E199236C334A009E6903 /* LYLPhotoTailoringViewController.m in Sources */,
 				C76CC9E623BCA6B6003B23DC /* MeetingRecordContentCell.m in Sources */,
@@ -9462,7 +9540,7 @@
 				SWIFT_OBJC_BRIDGING_HEADER = "smartRhino/smartRhino-Bridging-Header.h";
 				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
 				SWIFT_VERSION = 5.0;
-				TARGETED_DEVICE_FAMILY = "1,2";
+				TARGETED_DEVICE_FAMILY = 1;
 			};
 			name = Debug;
 		};
@@ -9559,7 +9637,7 @@
 				PROVISIONING_PROFILE_SPECIFIER = "";
 				SWIFT_OBJC_BRIDGING_HEADER = "smartRhino/smartRhino-Bridging-Header.h";
 				SWIFT_VERSION = 5.0;
-				TARGETED_DEVICE_FAMILY = "1,2";
+				TARGETED_DEVICE_FAMILY = 1;
 			};
 			name = Release;
 		};

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


BIN
smartRhino/Assets.xcassets/ChatMsg/Book_Select_no.imageset/Book_Select_no@2x.png


BIN
smartRhino/Assets.xcassets/ChatMsg/Book_Select_no.imageset/Book_Select_no@3x.png


+ 22 - 0
smartRhino/Assets.xcassets/ChatMsg/Book_Select_no.imageset/Contents.json

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

BIN
smartRhino/Assets.xcassets/ChatMsg/Book_Select_yes.imageset/Book_Select_yes@2x.png


BIN
smartRhino/Assets.xcassets/ChatMsg/Book_Select_yes.imageset/Book_Select_yes@3x.png


+ 22 - 0
smartRhino/Assets.xcassets/ChatMsg/Book_Select_yes.imageset/Contents.json

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

BIN
smartRhino/Assets.xcassets/ChatMsg/Book_jian_down.imageset/Book_jian_down@2x.png


BIN
smartRhino/Assets.xcassets/ChatMsg/Book_jian_down.imageset/Book_jian_down@3x.png


+ 22 - 0
smartRhino/Assets.xcassets/ChatMsg/Book_jian_down.imageset/Contents.json

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

BIN
smartRhino/Assets.xcassets/ChatMsg/Book_jian_up.imageset/Book_jian_up@2x.png


BIN
smartRhino/Assets.xcassets/ChatMsg/Book_jian_up.imageset/Book_jian_up@3x.png


+ 22 - 0
smartRhino/Assets.xcassets/ChatMsg/Book_jian_up.imageset/Contents.json

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

+ 3 - 0
smartRhino/Project/VCModel/ChatMessage/View/ChatMsgCollectionCell.h

@@ -17,6 +17,9 @@ NS_ASSUME_NONNULL_BEGIN
 @property (weak, nonatomic) IBOutlet UILabel *cell0TitleLabel;
 @property (weak, nonatomic) IBOutlet NSLayoutConstraint *constant;
 @property (weak, nonatomic) IBOutlet UIView *cell0MengCengView;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *imagH;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *imagW;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *titleConstant;
 @end
 
 NS_ASSUME_NONNULL_END

+ 7 - 4
smartRhino/Project/VCModel/ChatMessage/View/ChatMsgCollectionCell.xib

@@ -21,14 +21,14 @@
                         <rect key="frame" x="0.0" y="0.0" width="70" height="98"/>
                         <subviews>
                             <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="chatmsg_ht_icon" translatesAutoresizingMaskIntoConstraints="NO" id="UcK-Mt-u7p">
-                                <rect key="frame" x="20" y="8" width="30" height="30"/>
+                                <rect key="frame" x="20" y="12" width="30" height="30"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="30" id="UON-XY-NG0"/>
                                     <constraint firstAttribute="width" constant="30" id="YeZ-VL-YeK"/>
                                 </constraints>
                             </imageView>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="KnF-GQ-hHW">
-                                <rect key="frame" x="42" y="0.0" width="16" height="16"/>
+                                <rect key="frame" x="42" y="4" width="16" height="16"/>
                                 <color key="backgroundColor" systemColor="systemRedColor" red="1" green="0.23137254900000001" blue="0.18823529410000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="16" id="JRf-LS-RCh"/>
@@ -45,7 +45,7 @@
                                 </userDefinedRuntimeAttributes>
                             </label>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4EX-kh-Sh3">
-                                <rect key="frame" x="16.5" y="46" width="37.5" height="18"/>
+                                <rect key="frame" x="16.5" y="50" width="37.5" height="18"/>
                                 <fontDescription key="fontDescription" type="system" pointSize="15"/>
                                 <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <nil key="highlightedColor"/>
@@ -60,7 +60,7 @@
                             <constraint firstItem="KnF-GQ-hHW" firstAttribute="centerY" secondItem="UcK-Mt-u7p" secondAttribute="top" id="3h8-j7-NY1"/>
                             <constraint firstItem="KnF-GQ-hHW" firstAttribute="centerX" secondItem="UcK-Mt-u7p" secondAttribute="trailing" id="EpX-Sb-UmR"/>
                             <constraint firstItem="UcK-Mt-u7p" firstAttribute="centerX" secondItem="1l4-pu-UQi" secondAttribute="centerX" id="Joh-85-wgI"/>
-                            <constraint firstItem="UcK-Mt-u7p" firstAttribute="top" secondItem="1l4-pu-UQi" secondAttribute="top" constant="8" id="KWq-iY-GpP"/>
+                            <constraint firstItem="UcK-Mt-u7p" firstAttribute="top" secondItem="1l4-pu-UQi" secondAttribute="top" constant="12" id="KWq-iY-GpP"/>
                             <constraint firstItem="4EX-kh-Sh3" firstAttribute="top" secondItem="UcK-Mt-u7p" secondAttribute="bottom" constant="8" id="Nbx-kl-FJO"/>
                             <constraint firstAttribute="bottom" secondItem="T0P-rv-gzb" secondAttribute="bottom" id="Qfu-58-p91"/>
                             <constraint firstItem="T0P-rv-gzb" firstAttribute="top" secondItem="1l4-pu-UQi" secondAttribute="top" id="WP2-v0-hib"/>
@@ -84,6 +84,9 @@
                 <outlet property="cell0ReadNumLabel" destination="KnF-GQ-hHW" id="7cd-tA-qWl"/>
                 <outlet property="cell0TitleLabel" destination="4EX-kh-Sh3" id="saM-2C-exy"/>
                 <outlet property="constant" destination="yH5-yX-Ho1" id="swQ-uU-fwt"/>
+                <outlet property="imagH" destination="UON-XY-NG0" id="14c-vi-UCJ"/>
+                <outlet property="imagW" destination="YeZ-VL-YeK" id="h7B-Ud-8IH"/>
+                <outlet property="titleConstant" destination="Nbx-kl-FJO" id="AMC-RL-0zF"/>
             </connections>
             <point key="canvasLocation" x="63.768115942028992" y="137.27678571428569"/>
         </collectionViewCell>

+ 130 - 14
smartRhino/Project/VCModel/Home/VC/BookStore/BookStore.storyboard

@@ -443,7 +443,7 @@
                                 </constraints>
                             </view>
                             <tableView clipsSubviews="YES" contentMode="scaleToFill" bounces="NO" alwaysBounceVertical="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="ALj-0X-ei3">
-                                <rect key="frame" x="0.0" y="104" width="80" height="632"/>
+                                <rect key="frame" x="0.0" y="124" width="80" height="612"/>
                                 <color key="backgroundColor" red="0.92156862745098034" green="0.92156862745098034" blue="0.92156862745098034" alpha="1" colorSpace="calibratedRGB"/>
                                 <constraints>
                                     <constraint firstAttribute="width" constant="80" id="7H5-jZ-ncS"/>
@@ -457,14 +457,14 @@
                                 </constraints>
                             </tableView>
                             <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="cUG-yW-Hh1">
-                                <rect key="frame" x="160" y="151" width="254" height="585"/>
+                                <rect key="frame" x="160" y="164" width="254" height="572"/>
                                 <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
                             </tableView>
                             <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="AwI-E2-DTb">
-                                <rect key="frame" x="160" y="104" width="207" height="47"/>
+                                <rect key="frame" x="160" y="104" width="207" height="60"/>
                                 <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
                                 <constraints>
-                                    <constraint firstAttribute="height" constant="47" id="PAE-BO-npc"/>
+                                    <constraint firstAttribute="height" constant="60" id="PAE-BO-npc"/>
                                 </constraints>
                                 <collectionViewFlowLayout key="collectionViewLayout" automaticEstimatedItemSize="YES" minimumLineSpacing="10" minimumInteritemSpacing="10" id="jNH-mV-Wig">
                                     <size key="itemSize" width="50" height="50"/>
@@ -484,10 +484,10 @@
                                 </cells>
                             </collectionView>
                             <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ixV-1L-FUX">
-                                <rect key="frame" x="367" y="104" width="47" height="47"/>
+                                <rect key="frame" x="367" y="104" width="47" height="60"/>
                                 <constraints>
                                     <constraint firstAttribute="width" constant="47" id="b9f-11-kco"/>
-                                    <constraint firstAttribute="height" constant="47" id="fHn-FY-7b2"/>
+                                    <constraint firstAttribute="height" constant="60" id="fHn-FY-7b2"/>
                                 </constraints>
                                 <state key="normal" image="Book_shaisuan_right"/>
                             </button>
@@ -509,7 +509,7 @@
                             <constraint firstItem="37l-Mm-J9n" firstAttribute="leading" secondItem="zhq-BA-y66" secondAttribute="leading" id="aYm-yx-T3y"/>
                             <constraint firstItem="AwI-E2-DTb" firstAttribute="top" secondItem="RCI-he-2Y3" secondAttribute="bottom" id="o7h-lI-OZC"/>
                             <constraint firstItem="ixV-1L-FUX" firstAttribute="top" secondItem="RCI-he-2Y3" secondAttribute="bottom" id="pEe-YQ-eIj"/>
-                            <constraint firstItem="ALj-0X-ei3" firstAttribute="top" secondItem="RCI-he-2Y3" secondAttribute="bottom" id="pc6-DH-uqx"/>
+                            <constraint firstItem="ALj-0X-ei3" firstAttribute="top" secondItem="RCI-he-2Y3" secondAttribute="bottom" constant="20" id="pc6-DH-uqx"/>
                             <constraint firstItem="zhq-BA-y66" firstAttribute="trailing" secondItem="ixV-1L-FUX" secondAttribute="trailing" id="rwc-TK-7Y0"/>
                             <constraint firstItem="37l-Mm-J9n" firstAttribute="trailing" secondItem="zhq-BA-y66" secondAttribute="trailing" id="vve-4F-EBd"/>
                             <constraint firstItem="zhq-BA-y66" firstAttribute="bottom" secondItem="cUG-yW-Hh1" secondAttribute="bottom" id="xro-mK-4iQ"/>
@@ -1056,15 +1056,15 @@
                                     <constraint firstAttribute="height" constant="40" id="jPg-Cf-di9"/>
                                 </constraints>
                             </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="huj-97-wP6">
-                                <rect key="frame" x="0.0" y="104" width="80" height="632"/>
-                                <color key="backgroundColor" red="0.92156862745098034" green="0.92156862745098034" blue="0.92156862745098034" alpha="1" colorSpace="calibratedRGB"/>
+                            <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="huj-97-wP6">
+                                <rect key="frame" x="0.0" y="124" width="80" height="612"/>
+                                <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                 <constraints>
                                     <constraint firstAttribute="width" constant="80" id="aeX-mX-57K"/>
                                 </constraints>
                             </tableView>
-                            <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="Yxd-Gf-hH9">
-                                <rect key="frame" x="80" y="104" width="334" height="632"/>
+                            <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="Yxd-Gf-hH9">
+                                <rect key="frame" x="80" y="114" width="334" height="622"/>
                             </tableView>
                         </subviews>
                         <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
@@ -1078,10 +1078,10 @@
                             <constraint firstItem="88V-hJ-g5e" firstAttribute="trailing" secondItem="Brz-rD-XBo" secondAttribute="trailing" id="Z7d-IL-iVN"/>
                             <constraint firstItem="oW3-nG-TfH" firstAttribute="top" secondItem="88V-hJ-g5e" secondAttribute="bottom" id="c3V-J0-EZz"/>
                             <constraint firstItem="Brz-rD-XBo" firstAttribute="bottom" secondItem="huj-97-wP6" secondAttribute="bottom" id="kHN-o1-uL6"/>
-                            <constraint firstItem="Yxd-Gf-hH9" firstAttribute="top" secondItem="oW3-nG-TfH" secondAttribute="bottom" id="kbp-CZ-LiI"/>
+                            <constraint firstItem="Yxd-Gf-hH9" firstAttribute="top" secondItem="oW3-nG-TfH" secondAttribute="bottom" constant="10" id="kbp-CZ-LiI"/>
                             <constraint firstItem="Yxd-Gf-hH9" firstAttribute="leading" secondItem="huj-97-wP6" secondAttribute="trailing" id="s9S-rV-7Uq"/>
                             <constraint firstItem="Yxd-Gf-hH9" firstAttribute="bottom" secondItem="Brz-rD-XBo" secondAttribute="bottom" id="uYo-5J-Y7l"/>
-                            <constraint firstItem="huj-97-wP6" firstAttribute="top" secondItem="oW3-nG-TfH" secondAttribute="bottom" id="xYa-t7-itt"/>
+                            <constraint firstItem="huj-97-wP6" firstAttribute="top" secondItem="oW3-nG-TfH" secondAttribute="bottom" constant="20" id="xYa-t7-itt"/>
                         </constraints>
                         <viewLayoutGuide key="safeArea" id="Brz-rD-XBo"/>
                     </view>
@@ -1269,6 +1269,122 @@
             </objects>
             <point key="canvasLocation" x="-968" y="1524"/>
         </scene>
+        <!--Book BillboardVC-->
+        <scene sceneID="F6H-G8-BUR">
+            <objects>
+                <viewController storyboardIdentifier="BookBillboardVC" id="zfK-lK-ckI" customClass="BookBillboardVC" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="Jfu-yF-I9K">
+                        <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="DLe-SB-ecj" customClass="WQNavigationBar">
+                                <rect key="frame" x="0.0" y="0.0" width="414" height="64"/>
+                                <subviews>
+                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Wrz-Ho-EKW">
+                                        <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="46z-8F-Sjr">
+                                                <rect key="frame" x="188.66666666666666" y="11.666666666666668" width="37" 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="MXd-dZ-hRc">
+                                                <rect key="frame" x="0.0" y="0.0" width="50" height="44"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="width" constant="50" id="FZF-3g-ep9"/>
+                                                    <constraint firstAttribute="height" constant="44" id="jjC-vn-EDT"/>
+                                                </constraints>
+                                                <state key="normal" image="back_black_icon"/>
+                                                <connections>
+                                                    <action selector="backAction:" destination="zfK-lK-ckI" eventType="touchUpInside" id="uIo-Iv-qZb"/>
+                                                </connections>
+                                            </button>
+                                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="da6-JI-aRI">
+                                                <rect key="frame" x="50" y="0.0" width="35" height="44"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="height" constant="44" id="BdU-i6-hOI"/>
+                                                    <constraint firstAttribute="width" constant="35" id="dI6-z3-mrl"/>
+                                                </constraints>
+                                                <state key="normal" image="menu_black_icon"/>
+                                                <connections>
+                                                    <action selector="menuAction:" destination="zfK-lK-ckI" eventType="touchUpInside" id="Pdm-OO-77D"/>
+                                                </connections>
+                                            </button>
+                                        </subviews>
+                                        <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                        <constraints>
+                                            <constraint firstItem="MXd-dZ-hRc" firstAttribute="leading" secondItem="Wrz-Ho-EKW" secondAttribute="leading" id="1EV-yW-wn3"/>
+                                            <constraint firstItem="da6-JI-aRI" firstAttribute="bottom" secondItem="MXd-dZ-hRc" secondAttribute="bottom" id="4NF-Jd-QYj"/>
+                                            <constraint firstItem="da6-JI-aRI" firstAttribute="top" secondItem="MXd-dZ-hRc" secondAttribute="top" id="Fnc-EX-LhN"/>
+                                            <constraint firstAttribute="height" constant="44" id="FvS-dC-GXy"/>
+                                            <constraint firstItem="da6-JI-aRI" firstAttribute="leading" secondItem="MXd-dZ-hRc" secondAttribute="trailing" id="GE1-ln-XGV"/>
+                                            <constraint firstItem="46z-8F-Sjr" firstAttribute="centerY" secondItem="Wrz-Ho-EKW" secondAttribute="centerY" id="dZB-Ze-Mkw"/>
+                                            <constraint firstAttribute="bottom" secondItem="MXd-dZ-hRc" secondAttribute="bottom" id="fID-2o-65a"/>
+                                            <constraint firstItem="46z-8F-Sjr" firstAttribute="centerX" secondItem="Wrz-Ho-EKW" secondAttribute="centerX" id="tch-Zi-lkB"/>
+                                        </constraints>
+                                    </view>
+                                </subviews>
+                                <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                <constraints>
+                                    <constraint firstItem="Wrz-Ho-EKW" firstAttribute="leading" secondItem="Obv-23-b1W" secondAttribute="leading" id="521-gs-opf"/>
+                                    <constraint firstItem="Wrz-Ho-EKW" firstAttribute="trailing" secondItem="Obv-23-b1W" secondAttribute="trailing" id="gNd-qh-ntH"/>
+                                    <constraint firstAttribute="height" constant="64" id="hRg-4A-fBg"/>
+                                    <constraint firstItem="Obv-23-b1W" firstAttribute="bottom" secondItem="Wrz-Ho-EKW" secondAttribute="bottom" id="idL-8b-qNM"/>
+                                </constraints>
+                                <viewLayoutGuide key="safeArea" id="Obv-23-b1W"/>
+                                <connections>
+                                    <outlet property="height" destination="hRg-4A-fBg" id="6pH-xB-QXj"/>
+                                </connections>
+                            </view>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="TDs-mT-cQw">
+                                <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="tVf-nQ-Y0H"/>
+                                </constraints>
+                            </view>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="PYT-Vv-Pqz">
+                                <rect key="frame" x="0.0" y="104" width="414" height="86"/>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="86" id="4hq-XT-lN4"/>
+                                </constraints>
+                            </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="zTW-J1-Pqe">
+                                <rect key="frame" x="0.0" y="190" width="414" height="546"/>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+                            </tableView>
+                        </subviews>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+                        <constraints>
+                            <constraint firstItem="DLe-SB-ecj" firstAttribute="trailing" secondItem="d2k-MB-oLO" secondAttribute="trailing" id="0aJ-5q-Pfs"/>
+                            <constraint firstItem="PYT-Vv-Pqz" firstAttribute="leading" secondItem="d2k-MB-oLO" secondAttribute="leading" id="3UH-VB-kwD"/>
+                            <constraint firstItem="zTW-J1-Pqe" firstAttribute="top" secondItem="PYT-Vv-Pqz" secondAttribute="bottom" id="3Wh-rS-DTy"/>
+                            <constraint firstItem="TDs-mT-cQw" firstAttribute="leading" secondItem="d2k-MB-oLO" secondAttribute="leading" id="4ym-TF-Asp"/>
+                            <constraint firstItem="DLe-SB-ecj" firstAttribute="leading" secondItem="d2k-MB-oLO" secondAttribute="leading" id="5xl-SX-Suq"/>
+                            <constraint firstItem="PYT-Vv-Pqz" firstAttribute="top" secondItem="TDs-mT-cQw" secondAttribute="bottom" id="7Nr-Tp-KU3"/>
+                            <constraint firstItem="d2k-MB-oLO" firstAttribute="trailing" secondItem="zTW-J1-Pqe" secondAttribute="trailing" id="DHM-Xd-DaY"/>
+                            <constraint firstItem="d2k-MB-oLO" firstAttribute="bottom" secondItem="zTW-J1-Pqe" secondAttribute="bottom" id="K3i-4K-4RY"/>
+                            <constraint firstItem="zTW-J1-Pqe" firstAttribute="leading" secondItem="d2k-MB-oLO" secondAttribute="leading" id="P9a-0J-dQY"/>
+                            <constraint firstItem="TDs-mT-cQw" firstAttribute="trailing" secondItem="d2k-MB-oLO" secondAttribute="trailing" id="ffV-bl-oKH"/>
+                            <constraint firstItem="DLe-SB-ecj" firstAttribute="top" secondItem="Jfu-yF-I9K" secondAttribute="top" id="gjp-bW-DDo"/>
+                            <constraint firstItem="TDs-mT-cQw" firstAttribute="top" secondItem="DLe-SB-ecj" secondAttribute="bottom" id="sEx-IP-aSf"/>
+                            <constraint firstItem="d2k-MB-oLO" firstAttribute="trailing" secondItem="PYT-Vv-Pqz" secondAttribute="trailing" id="sqQ-2D-m3r"/>
+                        </constraints>
+                        <viewLayoutGuide key="safeArea" id="d2k-MB-oLO"/>
+                    </view>
+                    <navigationItem key="navigationItem" id="GOI-ob-DE9"/>
+                    <connections>
+                        <outlet property="BtnView" destination="PYT-Vv-Pqz" id="otT-5H-Vho"/>
+                        <outlet property="HeadView" destination="TDs-mT-cQw" id="zY4-Tn-Y2K"/>
+                        <outlet property="tableView" destination="zTW-J1-Pqe" id="0rU-Yo-8j6"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="6WE-54-Jee" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="-968.11594202898561" y="1523.6413043478262"/>
+        </scene>
     </scenes>
     <resources>
         <image name="Book_shaisuan_right" width="17" height="15.666666984558105"/>

+ 25 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/Model/BookBillModel.h

@@ -0,0 +1,25 @@
+//
+//  BookBillModel.h
+//  smartRhino
+//
+//  Created by niuzhen on 2020/5/25.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "BaseModel.h"
+
+typedef enum BookBillType{
+    BookBillBook = 0,
+    BookBillVideo = 1,
+    BookBillCourse = 2,
+    BookBillMusic = 3,
+}BookBillType;
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BookBillModel : BaseModel
+@property (nonatomic, copy) NSString             * title;
+@property (nonatomic, assign) BookBillType         type;
+@property (nonatomic, strong) NSMutableArray     * dataArray;
+@end
+
+NS_ASSUME_NONNULL_END

+ 13 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/Model/BookBillModel.m

@@ -0,0 +1,13 @@
+//
+//  BookBillModel.m
+//  smartRhino
+//
+//  Created by niuzhen on 2020/5/25.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "BookBillModel.h"
+
+@implementation BookBillModel
+
+@end

+ 2 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/Model/BookHomeSubModel.h

@@ -15,6 +15,8 @@ NS_ASSUME_NONNULL_BEGIN
 @property (nonatomic, copy) NSString   * img;
 @property (nonatomic, copy) NSString   * name;
 @property (nonatomic, copy) NSString   * subtitle;
+@property (nonatomic, copy) NSString   * num;
+@property (nonatomic, copy) NSString   * time;
 @property (nonatomic, assign) BookHomeType   type;
 @end
 

+ 24 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/Model/BookSelectModel.h

@@ -0,0 +1,24 @@
+//
+//  BookSelectModel.h
+//  smartRhino
+//
+//  Created by niuzhen on 2020/5/22.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "BaseModel.h"
+typedef enum BaseSelectType{
+    BookSelectCommon = 0,
+    BookSelectTime = 1,
+    BookSelectSort = 2,
+}BaseSelectType;
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BookSelectModel : BaseModel
+@property (nonatomic, copy) NSString             * title;
+@property (nonatomic, assign) BaseSelectType       type;
+@property (nonatomic, strong) NSMutableArray     * sortArray;
+@property (nonatomic, assign) BOOL                 isSelect;
+@end
+
+NS_ASSUME_NONNULL_END

+ 13 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/Model/BookSelectModel.m

@@ -0,0 +1,13 @@
+//
+//  BookSelectModel.m
+//  smartRhino
+//
+//  Created by niuzhen on 2020/5/22.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "BookSelectModel.h"
+
+@implementation BookSelectModel
+
+@end

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

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

+ 148 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/VC/BookBillboardVC.m

@@ -0,0 +1,148 @@
+//
+//  BookBillboardVC.m
+//  smartRhino
+//
+//  Created by niuzhen on 2020/5/25.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "BookBillboardVC.h"
+#import "MyTDGroupView.h"
+#import "BookBillCell.h"
+#import "BookBillModel.h"
+#import "BookHomeSubModel.h"
+#import "BookAllLookVC.h"
+
+@interface BookBillboardVC ()<UITableViewDelegate,UITableViewDataSource>
+@property (weak, nonatomic) IBOutlet UIView *HeadView;
+@property (weak, nonatomic) IBOutlet UIView *BtnView;
+@property (weak, nonatomic) IBOutlet UITableView *tableView;
+@property (strong, nonatomic) MyTDGroupView      *SearchView;
+@property (strong, nonatomic) NSMutableArray     *dataArray;
+@end
+
+@implementation BookBillboardVC
++(BookBillboardVC *)initBookBillboardVC{
+    BookBillboardVC *controller = [StoryboardManager.shared.Book instantiateViewControllerWithIdentifier:@"BookBillboardVC"];
+    return controller;
+}
+- (MyTDGroupView *)SearchView
+{
+    if (!_SearchView) {
+        _SearchView = [[MyTDGroupView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 36)];
+    }
+    return _SearchView;
+}
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    self.fd_prefersNavigationBarHidden = YES;
+    self.tableView.delegate = self;
+    self.tableView.dataSource = self;
+    [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 addViewWithButton];
+    [self setArray];
+}
+- (void)addViewWithButton
+{
+    NSArray * array = @[@[@"热搜榜",@"热书榜",@"课程榜",@"Top 100 新书"],@[@"文献头条",@"视听榜",@"大众热评",@"Top 100 专著"]];
+    CGFloat W = (SCREEN_WIDTH - 100) / 18;
+    for (NSInteger i = 0; i < array.count; i ++) {
+        NSArray * subarray = array[i];
+        for (NSInteger j = 0; j < [subarray count]; j ++) {
+            UIButton * btn = [UIButton new];
+            [btn setTitle:subarray[j] forState:UIControlStateNormal];
+            [btn setTitleColor:UIColorHex(0x0A0A0A) forState:UIControlStateNormal];
+            btn.titleLabel.font = [UIFont systemFontOfSize:14];
+            btn.tag = i * 4 + j;
+            btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
+            [btn addTarget:self action:@selector(clickBtnAction:) forControlEvents:UIControlEventTouchUpInside];
+            [self.BtnView addSubview:btn];
+            [btn mas_makeConstraints:^(MASConstraintMaker *make) {
+                make.top.mas_offset(i == 0 ? 6 : 39);
+                switch (j) {
+                    case 0:
+                    {
+                        make.size.mas_offset(CGSizeMake(W * 4, 33));
+                        make.left.mas_offset(j * 25 + 25);
+                    }
+                        break;
+                    case 1:
+                    {
+                        make.size.mas_offset(CGSizeMake(W * 3, 33));
+                        make.left.mas_offset(j * 25 + 25 + W * 4);
+                    }
+                        break;
+                    case 2:
+                    {
+                        make.size.mas_offset(CGSizeMake(W * 4, 33));
+                        make.left.mas_offset(j * 25 + 25 + W * 7);
+                    }
+                        break;
+                    default:
+                    {
+                        make.size.mas_offset(CGSizeMake(W * 7, 33));
+                        make.left.mas_offset(j * 25 + 25 + W * 11);
+                    }
+                        break;
+                }
+            }];
+        }
+    }
+}
+- (void)clickBtnAction:(UIButton *)sender
+{
+    NSLog(@"%ld",sender.tag);
+    switch (sender.tag) {
+        case 0:
+        {
+            
+        }
+            break;
+            
+        default:
+            break;
+    }
+}
+- (void)setArray
+{
+    self.dataArray = [NSMutableArray array];
+    NSArray * array = @[@"热搜榜",@"热书榜",@"课程榜",@"Top 100 新书"];
+    for (NSInteger i = 0; i < array.count; i ++) {
+        BookBillModel * model = [[BookBillModel alloc] init];
+        model.title = array[i];
+        model.type = (BookBillType *)i;
+        [self.dataArray addObject:model];
+    }
+    [self.tableView beginUpdates];
+    [self.tableView reloadData];
+    WS(weakSelf);
+    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+        [weakSelf.tableView endUpdates];
+    });
+}
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
+{
+    return self.dataArray.count;
+}
+- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    return UITableViewAutomaticDimension;
+}
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    BookBillCell * cell = [BookBillCell configCell:tableView indexPath:indexPath];
+    BookBillModel * model = [self.dataArray objectAtIndex:indexPath.row];
+    [cell setDataWithModel:model Item:indexPath.row];
+    WS(weakSelf);
+    [cell.lookAllBtn setAction:^{
+        BookAllLookVC * vc = [BookAllLookVC initBookAllLookVC];
+        vc.titleStr = model.title;
+        [weakSelf.navigationController pushViewController:vc animated:YES];
+    }];
+    return cell;
+}
+@end

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

@@ -36,7 +36,7 @@
 }
 - (void)setArray
 {
-    self.dataArray = [NSMutableArray arrayWithArray:@[@"微课",@"工具书",@"历史",@"心理",@"文学",@"社会",@"艺术",@"经济",@"历史"]];
+    self.dataArray = [NSMutableArray arrayWithArray:@[@"微课",@"工具书",@"课程",@"心理",@"文学",@"社会",@"艺术",@"经济",@"历史"]];
 }
 - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{
     return 3;
@@ -83,7 +83,7 @@
         case 0:
         {
             BookWeiCourseListVC * vc = [BookWeiCourseListVC initBookWeiCourseListVC];
-            vc.titleStr = @"微  课";
+            vc.titleStr = @"微课";
             [self.navigationController pushViewController:vc animated:YES];
         }
             break;
@@ -94,6 +94,13 @@
             [self.navigationController pushViewController:vc animated:YES];
         }
             break;
+        case 2:
+        {
+            BookWeiCourseListVC * vc = [BookWeiCourseListVC initBookWeiCourseListVC];
+            vc.titleStr = @"课程";
+            [self.navigationController pushViewController:vc animated:YES];
+        }
+            break;
         default:
             break;
     }

+ 387 - 52
smartRhino/Project/VCModel/Home/VC/BookStore/VC/BookContentNavVC.m

@@ -37,23 +37,33 @@
 #import "BookContentTopModel.h"
 #import "BookContentModel.h"
 #import "BookContentTopCell.h"
+#import "BookSelectCell.h"
+#import "BookSelectModel.h"
+#import "MOFSPickerManager.h"
 
 @interface BookContentNavVC ()<UITableViewDelegate,UITableViewDataSource,UICollectionViewDelegate,UICollectionViewDataSource>
 @property (weak, nonatomic) IBOutlet UITableView *leftTableV;
 @property (weak, nonatomic) IBOutlet UITableView *middleTableV;
 @property (weak, nonatomic) IBOutlet UITableView *rightTableV;
 @property (weak, nonatomic) IBOutlet UICollectionView *collectionView;
-@property (weak, nonatomic) IBOutlet UIButton *showBtn;
+@property (weak, nonatomic) IBOutlet UIButton    *showBtn;
 @property (weak, nonatomic) IBOutlet UIView      *HeadView;
 @property (weak, nonatomic) IBOutlet UILabel     *TitleL;
 @property (weak, nonatomic) IBOutlet NSLayoutConstraint *leftW;
 @property (weak, nonatomic) IBOutlet NSLayoutConstraint *middleW;
 @property (strong, nonatomic) MyTDGroupView             *SearchView;
 @property (strong, nonatomic) NSMutableArray            *dataArray;
+@property (strong, nonatomic) NSMutableArray            *selectArray;
 @property (assign, nonatomic) NSInteger                  leftRow;
 @property (assign, nonatomic) NSInteger                  middleRow;
 @property (assign, nonatomic) BOOL                  leftHidden;
 @property (assign, nonatomic) BOOL                  middleHidden;
+@property (strong, nonatomic) UIView               *selectView;
+@property (strong, nonatomic) UITableView          *selectTableV;
+@property (strong, nonatomic) UIButton             *reSetBtn;
+@property (strong, nonatomic) UIButton             *doneBtn;
+@property (strong, nonatomic) UIButton             *beginBtn;
+@property (strong, nonatomic) UIButton             *endBtn;
 @end
 
 @implementation BookContentNavVC
@@ -69,14 +79,61 @@
     }
     return _SearchView;
 }
-
--(NSMutableArray *)dataArray{
+- (UIView *)selectView
+{
+    if (!_selectView) {
+        _selectView = [UIView new];
+        _selectView.hidden = YES;
+    }
+    return _selectView;
+}
+- (UITableView *)selectTableV
+{
+    if (!_selectTableV) {
+        _selectTableV = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];
+        _selectTableV.backgroundColor = UIColorHex(0xFFFFFF);
+        _selectTableV.delegate = self;
+        _selectTableV.dataSource = self;
+        _selectTableV.separatorStyle = UITableViewCellSeparatorStyleNone;
+    }
+    return _selectTableV;
+}
+- (UIButton *)reSetBtn
+{
+    if (!_reSetBtn) {
+        _reSetBtn = [UIButton new];
+        [_reSetBtn setTitle:@"重置" forState:UIControlStateNormal];
+        _reSetBtn.titleLabel.font = [UIFont systemFontOfSize:17];
+        [_reSetBtn setTitleColor:UIColorHex(0x666666) forState:UIControlStateNormal];
+        _reSetBtn.backgroundColor = UIColorHex(0xF9F9F9);
+    }
+    return _reSetBtn;
+}
+- (UIButton *)doneBtn
+{
+    if (!_doneBtn) {
+        _doneBtn = [UIButton new];
+        [_doneBtn setTitle:@"完成" forState:UIControlStateNormal];
+        _doneBtn.titleLabel.font = [UIFont systemFontOfSize:17];
+        [_doneBtn setTitleColor:UIColorHex(0xFFFFFF) forState:UIControlStateNormal];
+        _doneBtn.backgroundColor = UIColorHex(0x3979D3);
+    }
+    return _doneBtn;
+}
+-(NSMutableArray *)dataArray
+{
     if(!_dataArray){
         _dataArray = [[NSMutableArray alloc] init];
     }
     return _dataArray;
 }
-
+-(NSMutableArray *)selectArray
+{
+    if(!_selectArray){
+        _selectArray = [[NSMutableArray alloc] init];
+    }
+    return _selectArray;
+}
 - (void)viewDidLoad {
     [super viewDidLoad];
     self.fd_prefersNavigationBarHidden = YES;
@@ -99,14 +156,21 @@
     layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
     layout.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0);
     [self.collectionView setCollectionViewLayout:layout];
-    [self.collectionView registerNib:[UINib nibWithNibName:@"BookContentTopCell" bundle:nil] forCellWithReuseIdentifier:@"BookContentTopCell"];
+    [self.collectionView registerNib:[UINib nibWithNibName:@"BookContentTopCell" bundle:nil] forCellWithReuseIdentifier:@"BookContentTopCell"];\
+    
+    WS(weakSelf);
+    [self.view addSubview:self.selectView];
+    [self setSelectData];
+    [self.showBtn setAction:^{
+        weakSelf.selectView.hidden = NO;
+    }];
     [self setDataModel];
 }
 
 - (void)setDataModel
 {
     [self.dataArray removeAllObjects];
-    NSArray * array = @[@"大众",@"教育",@"文化传媒",@"大众",@"教育",@"文化传媒",@"大众",@"教育",@"文化传媒",@"大众",@"教育",@"文化传媒"];
+    NSArray * array = @[@"推荐",@"大众",@"教育",@"文化传媒",@"大众",@"教育",@"文化传媒",@"大众",@"教育",@"文化传媒",@"大众",@"教育",@"文化传媒"];
     NSArray * subArray = @[@"时尚生活",@"财经商业",@"文化传媒",@"文学艺术"];
     NSArray * topArray = @[@"全部",@"最热",@"最新",@"好评",@"全部",@"最热",@"最新",@"好评",@"全部",@"最热",@"最新",@"好评"];
     for (NSInteger i= 0; i < array.count; i ++) {
@@ -132,7 +196,7 @@
                 BookContentModel * model = [[BookContentModel alloc] init];
                 model.title = @"翻转教学11法";
                 model.name = @"叶龙";
-                model.subtitle = @"畅销书从优秀教师的改善学生课堂表及";
+                model.subtitle = @"我们看重的是教给学生多少知识。在教育者眼中,学生就是一个装知识的容器,那个时候教育的成…";
                 model.time = @"";
                 switch (k) {
                     case 0:
@@ -160,6 +224,9 @@
 }
 #pragma mark - UITableViewDelegate
 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
+    if (tableView == self.selectTableV) {
+        return self.selectArray.count;
+    }
     return 1;
 }
 
@@ -169,49 +236,42 @@
     }else if(tableView == self.middleTableV){
         BookContentLeftModel * model = [self.dataArray objectAtIndex:self.leftRow];
         return model.dataArray.count;
-    }else{
+    }else if(tableView == self.rightTableV){
         BookContentLeftModel * model = [self.dataArray objectAtIndex:self.leftRow];
         BookContentLeftModel * subModel = [model.dataArray objectAtIndex:self.middleRow];
         return subModel.dataArray.count;
+    }else{
+        BookSelectModel * model = [self.selectArray objectAtIndex:section];
+        return model.isSelect ? 1 : 0;
     }
 }
 
 
 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
-//    if (tableView == self.leftTableV) {
-//        return UITableViewAutomaticDimension;
-//    }else if(tableView == self.middleTableV){
-//        return UITableViewAutomaticDimension;
-//    }else{
-//        BookContentLeftModel * model = [self.dataArray objectAtIndex:self.leftRow];
-//        BookContentLeftModel * subModel = [model.dataArray objectAtIndex:self.middleRow];
-//        BookContentModel * cModel = [subModel.dataArray objectAtIndex:indexPath.row];
-//        switch (cModel.type) {
-//            case BookContentBook:
-//                return 120.f;
-//                break;
-//            case BookContentVideo:
-//                return 110.f;
-//                break;
-//            case BookContentCourse:
-//                return 110.f;
-//                break;
-//            case BookContentMusic:
-//                return 88.f;
-//                break;
-//            default:
-//                return UITableViewAutomaticDimension;
-//                break;
-//        }
-//    }
+    if (tableView == self.selectTableV) {
+        return 70 * 4 + 36;
+    }
     return UITableViewAutomaticDimension;
 }
 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
 {
     if (tableView == self.leftTableV) {
-        return 47.f;
+        return 0.01f;
     }else if(tableView == self.middleTableV){
-        return 47.f;
+        return 62.f;
+    }else if(tableView == self.selectTableV){
+        BookSelectModel * model = [self.selectArray objectAtIndex:section];
+        switch (model.type) {
+            case BookSelectCommon:
+                return 47.f;
+                break;
+            case BookSelectTime:
+                return 72.f;
+                break;
+            default:
+                return 220.f;
+                break;
+        }
     }else{
         return 0.01f;
     }
@@ -224,24 +284,25 @@
 {
     UIView * headerView = [[UIView alloc] init];
     if (tableView == self.leftTableV) {
-        [headerView setFrame:CGRectMake(0, 0, SCREEN_WIDTH, 47)];
-        UILabel * label = [UILabel new];
-        [headerView addSubview:label];
-        label.font = [UIFont systemFontOfSize:16];
-        label.textColor = UIColorHex(0x0A0A0A);
-        [label mas_makeConstraints:^(MASConstraintMaker *make) {
-            make.center.mas_equalTo(headerView);
-        }];
-        label.text = @"推荐";
-        headerView.backgroundColor = UIColorHex(0xEBEBEB);
+//        [headerView setFrame:CGRectMake(0, 0, SCREEN_WIDTH, 47)];
+//        UILabel * label = [UILabel new];
+//        [headerView addSubview:label];
+//        label.font = [UIFont systemFontOfSize:16];
+//        label.textColor = UIColorHex(0x0A0A0A);
+//        [label mas_makeConstraints:^(MASConstraintMaker *make) {
+//            make.center.mas_equalTo(headerView);
+//        }];
+//        label.text = @"推荐";
+//        headerView.backgroundColor = UIColorHex(0xEBEBEB);
     }else if(tableView == self.middleTableV){
-        [headerView setFrame:CGRectMake(0, 0, SCREEN_WIDTH, 47)];
+        [headerView setFrame:CGRectMake(0, 0, SCREEN_WIDTH, 62)];
         UILabel * label = [UILabel new];
         [headerView addSubview:label];
         label.font = [UIFont systemFontOfSize:16];
         label.textColor = UIColorHex(0x0A0A0A);
         [label mas_makeConstraints:^(MASConstraintMaker *make) {
-            make.center.mas_equalTo(headerView);
+            make.centerX.mas_equalTo(headerView);
+            make.centerY.mas_equalTo(headerView);
         }];
         NSMutableAttributedString * attStr = [[NSMutableAttributedString alloc] init];
         NSTextAttachment *attach = [[NSTextAttachment alloc] init];
@@ -249,7 +310,7 @@
         attach.bounds = CGRectMake(0, 0, 11, 11);
         NSAttributedString *collegeStr = [NSAttributedString attributedStringWithAttachment:attach];
         [attStr appendAttributedString:collegeStr];
-        NSAttributedString *placeStr = [[NSAttributedString alloc] initWithString:@" 大众" attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:16],NSForegroundColorAttributeName:UIColorHex(0x999999)}];
+        NSAttributedString *placeStr = [[NSAttributedString alloc] initWithString:@" 大众" attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:18],NSForegroundColorAttributeName:UIColorHex(0x999999)}];
         [attStr appendAttributedString:placeStr];
         label.attributedText = attStr;
         headerView.backgroundColor = UIColorHex(0xFFFFFF);
@@ -259,15 +320,26 @@
             [weakSelf reloadData];
         }];
         [headerView addGestureRecognizer:tap];
+    }else if(tableView == self.selectTableV){
+        return [self selectHeadViewSection:section];
     }else{}
     return headerView;
 }
-
+- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
+{
+    return [UIView new];
+}
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
     if (tableView == self.leftTableV) {
         BookContentLeftModel * model = [self.dataArray objectAtIndex:indexPath.row];
         BookContentLeftCell * cell = [BookContentLeftCell configCell:tableView indexPath:indexPath];
-        [cell setDataWithModel:model middleHidden:self.middleHidden];
+//        [cell setDataWithModel:model middleHidden:self.middleHidden];
+        [cell setDataModel:model];
+        if (indexPath.row == 0) {
+            cell.height.constant = 42.f;
+        }else{
+            cell.height.constant = 62.f;
+        }
         return cell;
     }else if(tableView == self.middleTableV){
         BookContentLeftCell * cell = [BookContentLeftCell configCell:tableView indexPath:indexPath];
@@ -275,7 +347,7 @@
         BookContentLeftModel * subModel = [model.dataArray objectAtIndex:indexPath.row];
         [cell setDataWithsubModel:subModel leftHidden:self.leftHidden];
         return cell;
-    }else{
+    }else if(tableView == self.rightTableV){
         BookContentLeftModel * model = [self.dataArray objectAtIndex:self.leftRow];
         BookContentLeftModel * subModel = [model.dataArray objectAtIndex:self.middleRow];
         BookContentModel * cModel = [subModel.dataArray objectAtIndex:indexPath.row];
@@ -310,6 +382,11 @@
             }
                 break;
         }
+    }else{
+        BookSelectCell * cell = [BookSelectCell configCell:tableView indexPath:indexPath];
+        BookSelectModel * model = [self.selectArray objectAtIndex:indexPath.section];
+        [cell setCollData:model.isSelect];
+        return cell;
     }
 }
 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
@@ -417,4 +494,262 @@
         [weakSelf.collectionView scrollToItemAtIndexPath:indexPath atScrollPosition:UICollectionViewScrollPositionLeft animated:YES];
     });
 }
+
+#pragma mark - SelectView
+- (void)setSelectData
+{
+    [self.selectView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.right.mas_equalTo(self.view);
+        make.top.mas_equalTo(self.HeadView.mas_top);
+        if (@available(iOS 11.0, *)) {
+            make.bottom.equalTo(self.view.mas_safeAreaLayoutGuideBottom);
+        } else {
+            make.bottom.equalTo(self.view.mas_bottom);
+        }
+    }];
+    UIView * view = [UIView new];
+    view.backgroundColor = UIColorHex(0x000000);
+    view.alpha = 0.5f;
+    [self.selectView addSubview:view];
+    [view mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.width.mas_offset(80);
+        make.top.left.bottom.mas_equalTo(self.selectView);
+    }];
+    
+    [self.selectView addSubview:self.reSetBtn];
+    [self.selectView addSubview:self.doneBtn];
+    [self.selectView addSubview:self.selectTableV];
+    [self.reSetBtn mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.bottom.mas_equalTo(self.selectView);
+        make.left.mas_equalTo(view.mas_right);
+        make.width.mas_offset((SCREEN_WIDTH - 80) * 0.5);
+        make.height.mas_offset(50);
+    }];
+    [self.doneBtn mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.right.bottom.mas_equalTo(self.selectView);
+        make.width.mas_offset((SCREEN_WIDTH - 80) * 0.5);
+        make.height.mas_offset(50);
+    }];
+    [self.selectTableV mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.top.right.mas_equalTo(self.selectView);
+        make.left.mas_equalTo(view.mas_right);
+        make.bottom.mas_equalTo(self.reSetBtn.mas_top);
+    }];
+    WS(weakSelf);
+    [self.reSetBtn setAction:^{
+        [weakSelf addSelectArray];
+    }];
+    [self.doneBtn setAction:^{
+        weakSelf.selectView.hidden = YES;
+    }];
+    [self addSelectArray];
+}
+- (void)addSelectArray
+{
+    [self.selectArray removeAllObjects];
+    NSArray * array = @[@"作者",@"作者单位",@"出版单位",@"关键词",@"基金",@"时间",@"排序方式"];
+    NSArray * sortArray = @[@"默认",@"学术性",@"相关性",@"出版时间降序",@"出版时间升序"];
+
+    for (NSInteger i = 0; i < array.count; i ++) {
+        BookSelectModel * model = [[BookSelectModel alloc] init];
+        model.title = array[i];
+        model.isSelect = i == 0 ? YES : NO;
+        if ([array[i] isEqualToString:@"时间"]) {
+            model.type = BookSelectTime;
+            model.isSelect = YES;
+            model.sortArray = [NSMutableArray array];
+        }else if ([array[i] isEqualToString:@"排序方式"]) {
+            model.type = BookSelectSort;
+            model.sortArray = [NSMutableArray array];
+            for (NSInteger j = 0; j < sortArray.count; j ++) {
+                BookSelectModel * smodel = [[BookSelectModel alloc] init];
+                smodel.title = sortArray[j];
+                smodel.isSelect = j == 0 ? YES : NO;
+                [model.sortArray addObject:smodel];
+            }
+        }else{
+            model.type = BookSelectCommon;
+            model.sortArray = [NSMutableArray array];
+        }
+        [self.selectArray addObject:model];
+    }
+    [self.selectTableV reloadData];
+}
+- (UIView *)selectHeadViewSection:(NSInteger)section
+{
+    BookSelectModel * model = [self.selectArray objectAtIndex:section];
+    UIView * view = [UIView new];
+    switch (model.type) {
+        case BookSelectCommon:
+        {
+            [view setFrame:CGRectMake(0, 0, SCREEN_WIDTH, 47)];
+            view.backgroundColor = UIColorHex(0xFFFFFF);
+
+            UILabel * label = [UILabel new];
+            [view addSubview:label];
+            label.font = [UIFont systemFontOfSize:16];
+            label.textColor = UIColorHex(0x0A0A0A);
+            [label mas_makeConstraints:^(MASConstraintMaker *make) {
+                make.centerY.mas_equalTo(view);
+                make.left.mas_offset(20);
+            }];
+            label.text = model.title;
+            UIView * lineV = [UIView new];
+            [view addSubview:lineV];
+            lineV.backgroundColor = LINEBGCOLOR;
+            [lineV mas_makeConstraints:^(MASConstraintMaker *make) {
+                make.left.bottom.mas_equalTo(view);
+                make.right.mas_offset(-15);
+                make.height.mas_offset(0.5);
+            }];
+            UIButton * btn = [UIButton new];
+            [view addSubview:btn];
+            [btn mas_makeConstraints:^(MASConstraintMaker *make) {
+                make.top.right.bottom.mas_equalTo(view);
+                make.width.mas_offset(47);
+            }];
+            if (model.isSelect) {
+                [btn setImage:IMG(@"Book_jian_up") forState:UIControlStateNormal];
+                lineV.hidden = YES;
+            }else{
+                [btn setImage:IMG(@"Book_jian_down") forState:UIControlStateNormal];
+                lineV.hidden = NO;
+            }
+            WS(weakSelf);
+            [btn setAction:^{
+                model.isSelect = !model.isSelect;
+                NSIndexSet *set = [NSIndexSet indexSetWithIndex:section];
+                dispatch_async(dispatch_get_main_queue(), ^{
+                    [weakSelf.selectTableV reloadSections:set withRowAnimation:UITableViewRowAnimationAutomatic];//刷新某个section
+                });
+            }];
+            return view;
+        }
+            break;
+        case BookSelectTime:
+        {
+            [view setFrame:CGRectMake(0, 0, SCREEN_WIDTH, 72)];
+            view.backgroundColor = UIColorHex(0xFFFFFF);
+            UILabel * label = [UILabel new];
+            [view addSubview:label];
+            label.font = [UIFont systemFontOfSize:16];
+            label.textColor = UIColorHex(0x0A0A0A);
+            [label mas_makeConstraints:^(MASConstraintMaker *make) {
+                make.centerY.mas_equalTo(view);
+                make.left.mas_offset(20);
+            }];
+            label.text = model.title;
+            self.beginBtn = [self setTimeButton];
+            [view addSubview:self.beginBtn];
+            [self.beginBtn setTitle:@"2018-01-01" forState:UIControlStateNormal];
+            [self.beginBtn mas_makeConstraints:^(MASConstraintMaker *make) {
+                make.left.mas_offset(60);
+                make.centerY.mas_equalTo(label);
+                make.size.mas_offset(CGSizeMake((SCREEN_WIDTH - 185) * 0.5, 32));
+            }];
+            UIView * lineV = [UIView new];
+            [view addSubview:lineV];
+            lineV.backgroundColor = LINEBGCOLOR;
+            [lineV mas_makeConstraints:^(MASConstraintMaker *make) {
+                make.left.mas_equalTo(self.beginBtn.mas_right).offset(6.5);
+                make.centerY.mas_equalTo(label);
+                make.size.mas_offset(CGSizeMake(17, 0.5));
+            }];
+            self.endBtn = [self setTimeButton];
+            [view addSubview:self.endBtn];
+            [self.endBtn setTitle:@"2020-05-06" forState:UIControlStateNormal];
+            [self.endBtn mas_makeConstraints:^(MASConstraintMaker *make) {
+                make.left.mas_equalTo(lineV.mas_right).offset(6.5);
+                make.centerY.mas_equalTo(label);
+                make.size.mas_offset(CGSizeMake((SCREEN_WIDTH - 185) * 0.5, 32));
+            }];
+            WS(weakSelf);
+            [self.beginBtn setAction:^{
+                [[MOFSPickerManager shareManger] showDatePickerWithTag:2 commitBlock:^(NSDate *date) {
+                    NSDateFormatter *dateformat = [[NSDateFormatter alloc]init];
+                    dateformat.dateFormat = @"yyyy-MM-dd";
+                    [weakSelf.beginBtn setTitle:[dateformat stringFromDate:date] forState:UIControlStateNormal];
+                } cancelBlock:^{
+                }];
+            }];
+            [self.endBtn setAction:^{
+                [[MOFSPickerManager shareManger] showDatePickerWithTag:2 commitBlock:^(NSDate *date) {
+                    NSDateFormatter *dateformat = [[NSDateFormatter alloc]init];
+                    dateformat.dateFormat = @"yyyy-MM-dd";
+                    [weakSelf.endBtn setTitle:[dateformat stringFromDate:date] forState:UIControlStateNormal];
+                } cancelBlock:^{
+                }];
+            }];
+            return view;
+        }
+        default:
+        {
+            [view setFrame:CGRectMake(0, 0, SCREEN_WIDTH, 220)];
+            view.backgroundColor = UIColorHex(0xFFFFFF);
+            UILabel * label = [UILabel new];
+            [view addSubview:label];
+            label.font = [UIFont systemFontOfSize:16];
+            label.textColor = UIColorHex(0x0A0A0A);
+            label.text = model.title;
+            for (NSInteger i = 0; i < model.sortArray.count; i ++) {
+                BookSelectModel * sModel = model.sortArray[i];
+                UIButton * btn = [UIButton new];
+                btn.tag = i + 10000;
+                if (sModel.isSelect) {
+                    [btn setImage:IMG(@"Book_Select_yes") forState:UIControlStateNormal];
+                }else{
+                    [btn setImage:IMG(@"Book_Select_no") forState:UIControlStateNormal];
+                }
+                [btn addTarget:self action:@selector(clickSelectBtn:) forControlEvents:UIControlEventTouchUpInside];
+                [view addSubview:btn];
+                UILabel * subtitleL = [UILabel new];
+                [view addSubview:subtitleL];
+                subtitleL.font = [UIFont systemFontOfSize:16];
+                subtitleL.textColor = UIColorHex(0x0A0A0A);
+                subtitleL.text = sModel.title;
+                [btn mas_makeConstraints:^(MASConstraintMaker *make) {
+                    make.left.mas_offset(120);
+                    make.top.mas_offset(i * 40 + 7.5);
+                    make.size.mas_offset(CGSizeMake(40, 40));
+                }];
+                if (i == 0) {
+                    [label mas_makeConstraints:^(MASConstraintMaker *make) {
+                        make.centerY.mas_equalTo(btn);
+                        make.left.mas_offset(20);
+                    }];
+                }
+                [subtitleL mas_makeConstraints:^(MASConstraintMaker *make) {
+                    make.centerY.mas_equalTo(btn);
+                    make.left.mas_equalTo(btn.mas_right).offset(5);
+                }];
+            }
+            return view;
+        }
+            break;
+    }
+}
+- (UIButton *)setTimeButton
+{
+    UIButton * btn = [UIButton new];
+    btn.backgroundColor = UIColorHex(0xF9F9F9);
+    btn.layer.borderColor = UIColorHex(0xE5E5E5).CGColor;
+    btn.layer.cornerRadius = 2.f;
+    btn.layer.borderWidth = 0.5f;
+    btn.layer.masksToBounds = YES;
+    btn.titleLabel.font = [UIFont systemFontOfSize:13];
+    [btn setTitleColor:UIColorHex(0x333333) forState:UIControlStateNormal];
+    return btn;
+}
+- (void)clickSelectBtn:(UIButton *)sender
+{
+    BookSelectModel * model = self.selectArray.lastObject;
+    BookSelectModel * sModel = model.sortArray[sender.tag - 10000];
+    for (NSInteger j = 0; j < model.sortArray.count; j ++) {
+        BookSelectModel * bModel = model.sortArray[j];
+        bModel.isSelect = NO;
+    }
+    sModel.isSelect = YES;
+    NSIndexSet *set = [NSIndexSet indexSetWithIndex:self.selectArray.count - 1];
+    [self.selectTableV reloadSections:set withRowAnimation:UITableViewRowAnimationAutomatic];//刷新某个section
+}
 @end

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

@@ -38,6 +38,7 @@
 #import "BookAllLookVC.h"
 #import "BookContentNavVC.h"
 #import "BookChanelVC.h"
+#import "BookBillboardVC.h"
 
 @interface BookStoreHome ()<UITableViewDelegate,UITableViewDataSource,UICollectionViewDelegate,UICollectionViewDataSource>
 @property (weak, nonatomic) IBOutlet UITableView *tableView;
@@ -215,7 +216,7 @@
 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
     switch (indexPath.section) {
         case 0:{
-            return 80.5f;
+            return 82.f;
         }break;
         default:{
             return 101 * 3;
@@ -351,6 +352,9 @@
     ChatMsgCollectionCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"ChatMsgCollectionCell" forIndexPath:indexPath];
     cell.cell0IconImg.image = [UIImage imageNamed:bean.imgName];
     cell.cell0TitleLabel.text = bean.title;
+    cell.imagH.constant = 40.f;
+    cell.imagW.constant = 40.f;
+    cell.titleConstant.constant = 1.5f;
     switch (indexPath.item) {
         case 0:
         {
@@ -460,6 +464,10 @@
             vc.titleStr = model.title;
             [self.navigationController pushViewController:vc animated:YES];
         }break;
+        case 1:{
+            BookBillboardVC * vc = [BookBillboardVC initBookBillboardVC];
+            [self.navigationController pushViewController:vc animated:YES];
+        }break;
         case 2:{
             BookMingVC * vc = [BookMingVC initBookMingVC];
             vc.titleStr = model.title;

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

@@ -78,6 +78,11 @@
 {
     if (tableView == self.leftTableV) {
         BookContentLeftCell * cell = [BookContentLeftCell configCell:tableView indexPath:indexPath];
+        if (indexPath.row == 0) {
+            cell.height.constant = 50.f;
+        }else{
+            cell.height.constant = 60.f;
+        }
         BookContentLeftModel * model = [self.dataArray objectAtIndex:indexPath.row];
         [cell setDataModel:model];
         return cell;

+ 23 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/View/BookBillBookCell.h

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

+ 22 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/View/BookBillBookCell.m

@@ -0,0 +1,22 @@
+//
+//  BookBillBookCell.m
+//  smartRhino
+//
+//  Created by niuzhen on 2020/5/25.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "BookBillBookCell.h"
+
+@implementation BookBillBookCell
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    // Initialization code
+}
+- (void)setData
+{
+    [self.subTitleL layoutIfNeeded];
+    self.height.constant = CGRectGetMaxY(self.subTitleL.frame);
+}
+@end

File diff suppressed because it is too large
+ 100 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/View/BookBillBookCell.xib


+ 23 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/View/BookBillCell.h

@@ -0,0 +1,23 @@
+//
+//  BookBillCell.h
+//  smartRhino
+//
+//  Created by niuzhen on 2020/5/25.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import "BookBillModel.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BookBillCell : UITableViewCell<UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout>
+@property (weak, nonatomic) IBOutlet UILabel *titleL;
+@property (weak, nonatomic) IBOutlet UICollectionView *collectionView;
+@property (weak, nonatomic) IBOutlet UIButton *lookAllBtn;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *height;
++ (BookBillCell *)configCell:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;
+- (void)setDataWithModel:(BookBillModel *)model Item:(NSInteger)Item;
+@end
+
+NS_ASSUME_NONNULL_END

+ 157 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/View/BookBillCell.m

@@ -0,0 +1,157 @@
+//
+//  BookBillCell.m
+//  smartRhino
+//
+//  Created by niuzhen on 2020/5/25.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "BookBillCell.h"
+#import "BookBillBookCell.h"
+#import "BookBillCousreCell.h"
+#import "BookBillMusicCell.h"
+
+@interface BookBillCell()
+@property (nonatomic, strong) BookBillModel * model;
+@end
+@implementation BookBillCell
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    self.lookAllBtn.layer.cornerRadius = 10.f;
+    self.lookAllBtn.layer.borderWidth = 0.5f;
+    self.lookAllBtn.layer.borderColor = UIColorHex(0xF0F0F0).CGColor;
+    self.lookAllBtn.layer.masksToBounds = YES;
+    self.collectionView.delegate = self;
+    self.collectionView.dataSource = self;
+    self.collectionView.showsVerticalScrollIndicator = NO;
+    self.collectionView.showsHorizontalScrollIndicator = NO;
+    [self.collectionView registerNib:[UINib nibWithNibName:@"BookBillBookCell" bundle:nil] forCellWithReuseIdentifier:@"BookBillBookCell"];
+    [self.collectionView registerNib:[UINib nibWithNibName:@"BookBillCousreCell" bundle:nil] forCellWithReuseIdentifier:@"BookBillCousreCell"];
+    [self.collectionView registerNib:[UINib nibWithNibName:@"BookBillMusicCell" bundle:nil] forCellWithReuseIdentifier:@"BookBillMusicCell"];
+
+    UICollectionViewFlowLayout * layout = [[UICollectionViewFlowLayout alloc]init];
+    layout.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0);
+    layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
+    [self.collectionView setCollectionViewLayout:layout];
+}
++ (BookBillCell *)configCell:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath
+{
+    static NSString *cellIdentifer = @"BookBillCell";
+    BookBillCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifer];
+    if (cell == nil) {
+        cell = [[[NSBundle mainBundle] loadNibNamed:@"BookBillCell" owner:nil options:nil] objectAtIndex:0];
+    }
+    return cell;
+}
+- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
+    [super setSelected:selected animated:animated];
+
+    // Configure the view for the selected state
+}
+- (void)setDataWithModel:(BookBillModel *)model Item:(NSInteger)Item
+{
+    self.titleL.text = model.title;
+    self.model = model;
+    switch (model.type) {
+        case BookBillBook:
+        {
+            self.height.constant = 303.f;
+            [self.collectionView setContentSize:CGSizeMake((SCREEN_WIDTH - 40) * 3, 303.f)];
+        }
+            break;
+        case BookBillCourse:
+        {
+            self.height.constant = 270.f;
+            [self.collectionView setContentSize:CGSizeMake((SCREEN_WIDTH - 35) * 3, 270.f)];
+        }
+            break;
+        case BookBillVideo:
+        {
+            self.height.constant = 270.f;
+            [self.collectionView setContentSize:CGSizeMake((SCREEN_WIDTH - 35) * 3, 270.f)];
+        }
+            break;
+        default:
+        {
+            self.height.constant = 300.f;
+            [self.collectionView setContentSize:CGSizeMake((SCREEN_WIDTH - 35) * 3, 300.f)];
+        }
+            break;
+    }
+    [self.collectionView setContentOffset:CGPointZero animated:NO];
+    [self.contentView setBackgroundColor:Item % 2 == 0 ? UIColorHex(0xFFFFFF) : UIColorHex(0xF7F7F9)];
+    [self.collectionView setBackgroundColor:Item % 2 == 0 ? UIColorHex(0xFFFFFF) : UIColorHex(0xF7F7F9)];
+    [self.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 0.f;
+}
+- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
+{
+    return 9;
+}
+- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
+{
+    return 1;
+}
+-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
+{
+    switch (self.model.type) {
+        case BookBillBook:
+            return CGSizeMake((SCREEN_WIDTH - 40), 101);
+            break;
+        case BookBillCourse:
+            return CGSizeMake((SCREEN_WIDTH - 35), 90);
+            break;
+        case BookBillVideo:
+            return CGSizeMake((SCREEN_WIDTH - 35), 90);
+            break;
+        default:
+            return CGSizeMake((SCREEN_WIDTH - 35), 100);
+            break;
+    }
+}
+- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
+{
+    switch (self.model.type) {
+        case BookBillBook:
+        {
+            BookBillBookCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"BookBillBookCell" forIndexPath:indexPath];
+            [cell setData];
+            return cell;
+        }
+            break;
+        case BookBillCourse:
+        {
+            BookBillCousreCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"BookBillCousreCell" forIndexPath:indexPath];
+            [cell setData];
+
+            return cell;
+        }
+            break;
+        case BookBillVideo:
+        {
+            BookBillCousreCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"BookBillCousreCell" forIndexPath:indexPath];
+            [cell setData];
+
+            return cell;
+        }
+            break;
+        default:
+        {
+            BookBillMusicCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"BookBillMusicCell" forIndexPath:indexPath];
+            [cell setData];
+
+            return cell;
+        }
+            break;
+    }
+}
+
+@end

+ 73 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/View/BookBillCell.xib

@@ -0,0 +1,73 @@
+<?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" id="KGk-i7-Jjw" customClass="BookBillCell">
+            <rect key="frame" x="0.0" y="0.0" width="320" height="300"/>
+            <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="300"/>
+                <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="EyY-JA-DOM">
+                        <rect key="frame" x="20" y="25" width="67" height="26.5"/>
+                        <fontDescription key="fontDescription" type="boldSystem" pointSize="22"/>
+                        <color key="textColor" red="0.1764705882352941" green="0.20784313725490194" blue="0.25882352941176467" alpha="1" colorSpace="calibratedRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="HHX-4G-YvZ">
+                        <rect key="frame" x="0.0" y="51.5" width="320" height="100"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+                        <constraints>
+                            <constraint firstAttribute="height" priority="750" constant="100" id="4tt-aw-AYk"/>
+                        </constraints>
+                        <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="i26-Jp-txb">
+                            <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>
+                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="eea-mz-aIt">
+                        <rect key="frame" x="20" y="230" width="280" height="44"/>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="44" id="GS0-vm-UHF"/>
+                        </constraints>
+                        <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                        <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 firstAttribute="trailing" secondItem="HHX-4G-YvZ" secondAttribute="trailing" id="2qF-NF-Jd3"/>
+                    <constraint firstAttribute="trailing" secondItem="eea-mz-aIt" secondAttribute="trailing" constant="20" id="8nD-YW-Km7"/>
+                    <constraint firstAttribute="bottom" secondItem="eea-mz-aIt" secondAttribute="bottom" constant="26" id="E00-ho-izD"/>
+                    <constraint firstItem="HHX-4G-YvZ" firstAttribute="top" secondItem="EyY-JA-DOM" secondAttribute="bottom" id="G8i-VW-zi2"/>
+                    <constraint firstItem="eea-mz-aIt" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="20" id="UFA-l8-SLY"/>
+                    <constraint firstItem="eea-mz-aIt" firstAttribute="top" secondItem="HHX-4G-YvZ" secondAttribute="bottom" priority="250" constant="20" id="a82-xr-fWE"/>
+                    <constraint firstItem="HHX-4G-YvZ" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="hEJ-uB-ML2"/>
+                    <constraint firstItem="EyY-JA-DOM" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="20" id="kUx-rI-ZZ8"/>
+                    <constraint firstItem="EyY-JA-DOM" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="25" id="mjq-nO-cCd"/>
+                </constraints>
+            </tableViewCellContentView>
+            <viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
+            <connections>
+                <outlet property="collectionView" destination="HHX-4G-YvZ" id="lav-ZK-NeY"/>
+                <outlet property="height" destination="4tt-aw-AYk" id="IlK-Sh-OCb"/>
+                <outlet property="lookAllBtn" destination="eea-mz-aIt" id="9Z5-RQ-4JL"/>
+                <outlet property="titleL" destination="EyY-JA-DOM" id="0kh-EV-AHH"/>
+            </connections>
+            <point key="canvasLocation" x="137.68115942028987" y="152.67857142857142"/>
+        </tableViewCell>
+    </objects>
+</document>

+ 24 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/View/BookBillCousreCell.h

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

+ 22 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/View/BookBillCousreCell.m

@@ -0,0 +1,22 @@
+//
+//  BookBillCousreCell.m
+//  smartRhino
+//
+//  Created by niuzhen on 2020/5/25.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "BookBillCousreCell.h"
+
+@implementation BookBillCousreCell
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    // Initialization code
+}
+- (void)setData
+{
+    [self.subTitleL layoutIfNeeded];
+    self.height.constant = CGRectGetMaxY(self.subTitleL.frame);
+}
+@end

+ 100 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/View/BookBillCousreCell.xib

@@ -0,0 +1,100 @@
+<?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" reuseIdentifier="" id="6Pg-mA-r0N" customClass="BookBillCousreCell">
+            <rect key="frame" x="0.0" y="0.0" width="369" height="127"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
+                <rect key="frame" x="0.0" y="0.0" width="369" height="127"/>
+                <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="Ksc-nU-cce">
+                        <rect key="frame" x="15" y="20" width="110" height="70"/>
+                        <constraints>
+                            <constraint firstAttribute="width" constant="110" id="8ov-Ey-3es"/>
+                            <constraint firstAttribute="height" constant="70" id="Cok-Nm-0X7"/>
+                        </constraints>
+                    </imageView>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="znW-wa-K9j">
+                        <rect key="frame" x="140" y="14.5" width="214" height="81"/>
+                        <subviews>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mZt-dK-lAm">
+                                <rect key="frame" x="0.0" y="0.0" width="20" height="20"/>
+                                <constraints>
+                                    <constraint firstAttribute="width" constant="20" id="2o7-T7-EmZ"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="system" pointSize="16"/>
+                                <color key="textColor" red="0.039215686270000001" green="0.039215686270000001" blue="0.039215686270000001" alpha="1" colorSpace="calibratedRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="252" verticalHuggingPriority="251" verticalCompressionResistancePriority="751" text="小学教材全解(数学)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="kZr-Ad-HeN">
+                                <rect key="frame" x="20" y="0.0" width="194" height="20"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="16"/>
+                                <color key="textColor" red="0.039215686270000001" green="0.039215686270000001" blue="0.039215686270000001" alpha="1" colorSpace="calibratedRGB"/>
+                                <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="dee-YC-sk5">
+                                <rect key="frame" x="20" y="32" width="194" height="14.5"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                                <color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="252" verticalCompressionResistancePriority="751" text="在过去的25年来,我一直" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Pig-mJ-bZI">
+                                <rect key="frame" x="20" y="58.5" width="194" height="14.5"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                                <color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                        </subviews>
+                        <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                        <constraints>
+                            <constraint firstAttribute="trailing" secondItem="Pig-mJ-bZI" secondAttribute="trailing" id="3sc-pe-baS"/>
+                            <constraint firstItem="kZr-Ad-HeN" firstAttribute="top" secondItem="znW-wa-K9j" secondAttribute="top" id="47W-MW-NRm"/>
+                            <constraint firstItem="Pig-mJ-bZI" firstAttribute="top" secondItem="dee-YC-sk5" secondAttribute="bottom" constant="12" id="8UR-d4-mmr"/>
+                            <constraint firstItem="kZr-Ad-HeN" firstAttribute="leading" secondItem="mZt-dK-lAm" secondAttribute="trailing" id="9e5-6A-Dzs"/>
+                            <constraint firstItem="Pig-mJ-bZI" firstAttribute="leading" secondItem="dee-YC-sk5" secondAttribute="leading" id="Bhm-Ty-0YQ"/>
+                            <constraint firstAttribute="trailing" secondItem="kZr-Ad-HeN" secondAttribute="trailing" id="G1F-eO-K2y"/>
+                            <constraint firstItem="dee-YC-sk5" firstAttribute="leading" secondItem="kZr-Ad-HeN" secondAttribute="leading" id="N0F-HY-cAx"/>
+                            <constraint firstAttribute="height" constant="81" id="ODu-DY-duX"/>
+                            <constraint firstItem="mZt-dK-lAm" firstAttribute="top" secondItem="znW-wa-K9j" secondAttribute="top" id="RMQ-Vd-XCR"/>
+                            <constraint firstItem="mZt-dK-lAm" firstAttribute="leading" secondItem="znW-wa-K9j" secondAttribute="leading" id="UXO-Sn-mbR"/>
+                            <constraint firstAttribute="trailing" secondItem="dee-YC-sk5" secondAttribute="trailing" id="lWs-nc-cu4"/>
+                            <constraint firstItem="dee-YC-sk5" firstAttribute="top" secondItem="kZr-Ad-HeN" secondAttribute="bottom" constant="12" id="nD3-VO-5cf"/>
+                            <constraint firstItem="Pig-mJ-bZI" firstAttribute="bottom" secondItem="znW-wa-K9j" secondAttribute="bottomMargin" id="zNl-Gr-I4S"/>
+                        </constraints>
+                    </view>
+                </subviews>
+            </view>
+            <constraints>
+                <constraint firstItem="znW-wa-K9j" firstAttribute="leading" secondItem="Ksc-nU-cce" secondAttribute="trailing" constant="15" id="193-E8-Pqc"/>
+                <constraint firstItem="Ksc-nU-cce" firstAttribute="top" secondItem="6Pg-mA-r0N" secondAttribute="top" constant="20" id="98A-9L-t0d"/>
+                <constraint firstItem="Ksc-nU-cce" firstAttribute="leading" secondItem="6Pg-mA-r0N" secondAttribute="leading" constant="15" id="eia-KV-Gi7"/>
+                <constraint firstItem="znW-wa-K9j" firstAttribute="centerY" secondItem="Ksc-nU-cce" secondAttribute="centerY" id="w70-mp-D7q"/>
+                <constraint firstAttribute="trailing" secondItem="znW-wa-K9j" secondAttribute="trailing" constant="15" id="yRK-Ed-7bt"/>
+            </constraints>
+            <viewLayoutGuide key="safeArea" id="FLz-4u-ayK"/>
+            <size key="customSize" width="369" height="127"/>
+            <connections>
+                <outlet property="height" destination="ODu-DY-duX" id="PYP-LL-vo1"/>
+                <outlet property="imagV" destination="Ksc-nU-cce" id="2aV-Pn-BvL"/>
+                <outlet property="nameL" destination="dee-YC-sk5" id="T2w-OM-2tS"/>
+                <outlet property="numL" destination="mZt-dK-lAm" id="AKd-6N-e3y"/>
+                <outlet property="subTitleL" destination="Pig-mJ-bZI" id="DiK-do-2yi"/>
+                <outlet property="titleL" destination="kZr-Ad-HeN" id="rKo-I8-UlI"/>
+            </connections>
+            <point key="canvasLocation" x="180.43478260869566" y="127.56696428571428"/>
+        </collectionViewCell>
+    </objects>
+    <resources>
+        <image name="img_placeHolder" width="70" height="70"/>
+    </resources>
+</document>

+ 24 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/View/BookBillMusicCell.h

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

+ 22 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/View/BookBillMusicCell.m

@@ -0,0 +1,22 @@
+//
+//  BookBillMusicCell.m
+//  smartRhino
+//
+//  Created by niuzhen on 2020/5/25.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "BookBillMusicCell.h"
+
+@implementation BookBillMusicCell
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    // Initialization code
+}
+- (void)setData
+{
+    [self.subTitleL layoutIfNeeded];
+    self.height.constant = CGRectGetMaxY(self.subTitleL.frame);
+}
+@end

+ 108 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/View/BookBillMusicCell.xib

@@ -0,0 +1,108 @@
+<?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" reuseIdentifier="" id="4Se-Xa-ewH" customClass="BookBillMusicCell">
+            <rect key="frame" x="0.0" y="0.0" width="366" height="144"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
+                <rect key="frame" x="0.0" y="0.0" width="366" height="144"/>
+                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                <subviews>
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Book_Musicplay_btn" translatesAutoresizingMaskIntoConstraints="NO" id="X6T-cL-Q0K">
+                        <rect key="frame" x="27" y="86" width="11" height="12.5"/>
+                    </imageView>
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="img_placeHolder" translatesAutoresizingMaskIntoConstraints="NO" id="dXK-Z5-5jV">
+                        <rect key="frame" x="15" y="74.5" width="35" height="35"/>
+                        <constraints>
+                            <constraint firstAttribute="width" constant="35" id="7ih-5t-Ej1"/>
+                            <constraint firstAttribute="height" constant="35" id="lUw-wJ-4sf"/>
+                        </constraints>
+                        <userDefinedRuntimeAttributes>
+                            <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
+                                <real key="value" value="17.5"/>
+                            </userDefinedRuntimeAttribute>
+                            <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
+                        </userDefinedRuntimeAttributes>
+                    </imageView>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Y2a-h7-YM2">
+                        <rect key="frame" x="65" y="57" width="286" height="70"/>
+                        <subviews>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vyQ-w5-mhR">
+                                <rect key="frame" x="0.0" y="0.0" width="20" height="20"/>
+                                <constraints>
+                                    <constraint firstAttribute="width" constant="20" id="pDm-73-bH4"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="system" pointSize="16"/>
+                                <color key="textColor" red="0.039215686270000001" green="0.039215686270000001" blue="0.039215686270000001" alpha="1" colorSpace="calibratedRGB"/>
+                                <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="QLt-RQ-qH5">
+                                <rect key="frame" x="20" y="34.5" width="49.5" height="14.5"/>
+                                <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="253" verticalCompressionResistancePriority="751" text="小学教材全解(四年级语文下)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="McY-xE-wCd">
+                                <rect key="frame" x="20" y="-0.5" width="220.5" 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="03-12" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2SY-cF-bTh">
+                                <rect key="frame" x="89.5" y="34.5" width="34" height="14.5"/>
+                                <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>
+                        </subviews>
+                        <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                        <constraints>
+                            <constraint firstItem="2SY-cF-bTh" firstAttribute="centerY" secondItem="QLt-RQ-qH5" secondAttribute="centerY" id="6Vy-HG-GbL"/>
+                            <constraint firstAttribute="height" constant="70" id="MbP-EE-ILg"/>
+                            <constraint firstItem="QLt-RQ-qH5" firstAttribute="top" secondItem="McY-xE-wCd" secondAttribute="bottom" constant="14" id="Mtd-hZ-0cz"/>
+                            <constraint firstItem="McY-xE-wCd" firstAttribute="leading" secondItem="vyQ-w5-mhR" secondAttribute="trailing" id="OWC-mj-AgU"/>
+                            <constraint firstItem="McY-xE-wCd" firstAttribute="centerY" secondItem="vyQ-w5-mhR" secondAttribute="centerY" id="UVR-b6-HHX"/>
+                            <constraint firstItem="vyQ-w5-mhR" firstAttribute="leading" secondItem="Y2a-h7-YM2" secondAttribute="leading" id="XMB-6i-fnc"/>
+                            <constraint firstItem="QLt-RQ-qH5" firstAttribute="leading" secondItem="McY-xE-wCd" secondAttribute="leading" id="jv3-SV-x4s"/>
+                            <constraint firstItem="vyQ-w5-mhR" firstAttribute="top" secondItem="Y2a-h7-YM2" secondAttribute="top" id="mDQ-aQ-V17"/>
+                            <constraint firstItem="2SY-cF-bTh" firstAttribute="leading" secondItem="QLt-RQ-qH5" secondAttribute="trailing" constant="20" id="wjn-9c-s7I"/>
+                        </constraints>
+                    </view>
+                </subviews>
+            </view>
+            <constraints>
+                <constraint firstItem="Y2a-h7-YM2" firstAttribute="centerY" secondItem="dXK-Z5-5jV" secondAttribute="centerY" id="6wC-c6-mIL"/>
+                <constraint firstItem="X6T-cL-Q0K" firstAttribute="centerX" secondItem="dXK-Z5-5jV" secondAttribute="centerX" id="Dbj-4i-80f"/>
+                <constraint firstItem="Y2a-h7-YM2" firstAttribute="leading" secondItem="dXK-Z5-5jV" secondAttribute="trailing" constant="15" id="JEm-xK-2O9"/>
+                <constraint firstItem="dXK-Z5-5jV" firstAttribute="leading" secondItem="4Se-Xa-ewH" secondAttribute="leading" constant="15" id="K7R-jN-LgU"/>
+                <constraint firstItem="dXK-Z5-5jV" firstAttribute="centerY" secondItem="4Se-Xa-ewH" secondAttribute="centerY" constant="20" id="UPr-T2-veH"/>
+                <constraint firstItem="X6T-cL-Q0K" firstAttribute="centerY" secondItem="dXK-Z5-5jV" secondAttribute="centerY" id="gtJ-Rg-RN8"/>
+                <constraint firstAttribute="trailing" secondItem="Y2a-h7-YM2" secondAttribute="trailing" constant="15" id="tBy-E6-1YQ"/>
+            </constraints>
+            <viewLayoutGuide key="safeArea" id="1Uo-6L-5de"/>
+            <size key="customSize" width="366" height="144"/>
+            <connections>
+                <outlet property="height" destination="MbP-EE-ILg" id="LpX-LR-gYa"/>
+                <outlet property="imagV" destination="dXK-Z5-5jV" id="O5y-lr-MIb"/>
+                <outlet property="nameL" destination="QLt-RQ-qH5" id="KUT-wc-45V"/>
+                <outlet property="numL" destination="vyQ-w5-mhR" id="Zja-zA-9UG"/>
+                <outlet property="subTitleL" destination="2SY-cF-bTh" id="M1b-Va-4V7"/>
+                <outlet property="titleL" destination="McY-xE-wCd" id="d4M-70-2s6"/>
+            </connections>
+            <point key="canvasLocation" x="182.60869565217394" y="260.49107142857144"/>
+        </collectionViewCell>
+    </objects>
+    <resources>
+        <image name="Book_Musicplay_btn" width="11" height="12.5"/>
+        <image name="img_placeHolder" width="70" height="70"/>
+    </resources>
+</document>

+ 18 - 18
smartRhino/Project/VCModel/Home/VC/BookStore/View/BookContentCell.xib

@@ -13,19 +13,19 @@
         <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="BookContentCell0" id="KGk-i7-Jjw" customClass="BookContentCell">
             <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" ambiguous="YES" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
+            <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="124"/>
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
                     <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="img_placeHolder" translatesAutoresizingMaskIntoConstraints="NO" id="G92-eo-trM">
-                        <rect key="frame" x="15" y="15" width="60" height="90"/>
+                        <rect key="frame" x="15" y="15" width="60" height="93.5"/>
                         <constraints>
-                            <constraint firstAttribute="height" constant="90" id="04R-rQ-QYU"/>
+                            <constraint firstAttribute="height" priority="750" constant="90" id="04R-rQ-QYU"/>
                             <constraint firstAttribute="width" constant="60" id="Zqm-Qu-7eF"/>
                         </constraints>
                     </imageView>
                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="BIg-r8-yi6">
-                        <rect key="frame" x="89" y="15" width="216" height="90"/>
+                        <rect key="frame" x="89" y="17" width="216" height="90"/>
                         <subviews>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="252" verticalCompressionResistancePriority="751" text="小学教材全解(四年级语文下)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JF4-RS-67K">
                                 <rect key="frame" x="0.0" y="0.0" width="216" height="21"/>
@@ -63,7 +63,7 @@
                         </constraints>
                     </view>
                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ucs-Wr-UZo">
-                        <rect key="frame" x="15" y="120" width="290" height="0.5"/>
+                        <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="ocw-CI-YhC"/>
@@ -96,22 +96,22 @@
         <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="BookContentCell1" id="kHg-As-U1h" customClass="BookContentCell">
             <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" ambiguous="YES" tableViewCell="kHg-As-U1h" id="wtM-Oa-dfY">
+            <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="kHg-As-U1h" id="wtM-Oa-dfY">
                 <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="W3c-rb-Oax">
-                        <rect key="frame" x="15" y="15" width="130" height="80"/>
+                        <rect key="frame" x="15" y="15" width="130" height="93.5"/>
                         <constraints>
                             <constraint firstAttribute="width" constant="130" id="0U3-It-sbe"/>
-                            <constraint firstAttribute="height" constant="80" id="Cqc-0d-CQx"/>
+                            <constraint firstAttribute="height" priority="750" constant="80" id="Cqc-0d-CQx"/>
                         </constraints>
                     </imageView>
                     <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Book_Videoplay_btn" translatesAutoresizingMaskIntoConstraints="NO" id="kQ1-P7-i6T">
-                        <rect key="frame" x="55.5" y="27" width="49" height="56"/>
+                        <rect key="frame" x="55.5" y="34" width="49" height="56"/>
                     </imageView>
                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pmu-z6-Mpy">
-                        <rect key="frame" x="159" y="15" width="146" height="80"/>
+                        <rect key="frame" x="159" y="22" width="146" height="80"/>
                         <subviews>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="252" verticalCompressionResistancePriority="751" text="小学教材全解(四年级语文下)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fiq-YO-rNF">
                                 <rect key="frame" x="0.0" y="0.0" width="146" height="21"/>
@@ -149,7 +149,7 @@
                         </constraints>
                     </view>
                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="hF0-2s-hZo">
-                        <rect key="frame" x="15" y="110" width="290" height="0.5"/>
+                        <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="9DB-ZH-SiN"/>
@@ -190,23 +190,23 @@
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
                     <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="img_placeHolder" translatesAutoresizingMaskIntoConstraints="NO" id="rHx-Wg-fcz">
-                        <rect key="frame" x="15" y="24" width="40" height="40"/>
+                        <rect key="frame" x="15" y="26.5" width="35" height="35"/>
                         <constraints>
-                            <constraint firstAttribute="height" constant="40" id="YFM-DI-3Jb"/>
-                            <constraint firstAttribute="width" constant="40" id="mG1-N5-zgu"/>
+                            <constraint firstAttribute="height" constant="35" id="YFM-DI-3Jb"/>
+                            <constraint firstAttribute="width" constant="35" id="mG1-N5-zgu"/>
                         </constraints>
                         <userDefinedRuntimeAttributes>
                             <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
-                                <integer key="value" value="20"/>
+                                <real key="value" value="17.5"/>
                             </userDefinedRuntimeAttribute>
                             <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
                         </userDefinedRuntimeAttributes>
                     </imageView>
                     <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Book_Musicplay_btn" translatesAutoresizingMaskIntoConstraints="NO" id="yJK-4E-K62">
-                        <rect key="frame" x="29.5" y="38" width="11" height="12.5"/>
+                        <rect key="frame" x="27" y="38" width="11" height="12.5"/>
                     </imageView>
                     <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="252" text="王德培等" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="sTz-eH-zC1">
-                        <rect key="frame" x="70" y="46" width="219" height="26.5"/>
+                        <rect key="frame" x="65" y="46" width="224" height="26.5"/>
                         <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"/>
@@ -219,7 +219,7 @@
                         </constraints>
                     </view>
                     <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="253" verticalCompressionResistancePriority="751" text="小学教材全解(四年级语文下)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mwn-3E-0Wr">
-                        <rect key="frame" x="70" y="15" width="235" height="21"/>
+                        <rect key="frame" x="65" y="15" width="240" height="21"/>
                         <fontDescription key="fontDescription" type="system" pointSize="17"/>
                         <nil key="textColor"/>
                         <nil key="highlightedColor"/>

+ 1 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/View/BookContentLeftCell.h

@@ -15,6 +15,7 @@ NS_ASSUME_NONNULL_BEGIN
 @property (weak, nonatomic) IBOutlet UILabel *NameL;
 @property (weak, nonatomic) IBOutlet UIView  *BlueView;
 @property (weak, nonatomic) IBOutlet UIView *BgView;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *height;
 
 + (BookContentLeftCell *)configCell:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;
 

+ 23 - 20
smartRhino/Project/VCModel/Home/VC/BookStore/View/BookContentLeftCell.m

@@ -34,35 +34,38 @@
     if (model.isSelect) {
         self.BgView.backgroundColor = UIColorHex(0xFFFFFF);
         self.BlueView.hidden = NO;
-        self.NameL.font = [UIFont systemFontOfSize:18];
     }else{
         self.BgView.backgroundColor = UIColorHex(0xEBEBEB);
         self.BlueView.hidden = YES;
-        self.NameL.font = [UIFont systemFontOfSize:16];
     }
 }
 - (void)setDataWithModel:(BookContentLeftModel *)model middleHidden:(BOOL)middle
 {
     self.NameL.text = model.title;
-    if (middle) {
-        self.NameL.textColor = UIColorHex(0x0A0A0A);
-        if (model.isSelect) {
-            self.BlueView.hidden = NO;
-            self.BgView.backgroundColor = UIColorHex(0xFFFFFF);
-        }else{
-            self.BlueView.hidden = YES;
-            self.BgView.backgroundColor = UIColorHex(0xEBEBEB);
-        }
-    }else{
-        self.BlueView.hidden = YES;
-        if (model.isSelect) {
-            self.NameL.textColor = UIColorHex(0xFFFFFF);
-            self.BgView.backgroundColor = UIColorHex(0x3979D3);
-        }else{
-            self.NameL.textColor = UIColorHex(0x0A0A0A);
-            self.BgView.backgroundColor = UIColorHex(0xEBEBEB);
-        }
+    self.NameL.textColor = UIColorHex(0x0A0A0A);
+    if (model.isSelect) {
+        self.BlueView.hidden = NO;
+        self.BgView.backgroundColor = UIColorHex(0xFFFFFF);
     }
+//    if (middle) {
+//        self.NameL.textColor = UIColorHex(0x0A0A0A);
+//        if (model.isSelect) {
+//            self.BlueView.hidden = NO;
+//            self.BgView.backgroundColor = UIColorHex(0xFFFFFF);
+//        }else{
+//            self.BlueView.hidden = YES;
+//            self.BgView.backgroundColor = UIColorHex(0xEBEBEB);
+//        }
+//    }else{
+//        self.BlueView.hidden = YES;
+//        if (model.isSelect) {
+//            self.NameL.textColor = UIColorHex(0xFFFFFF);
+//            self.BgView.backgroundColor = UIColorHex(0x3979D3);
+//        }else{
+//            self.NameL.textColor = UIColorHex(0x0A0A0A);
+//            self.BgView.backgroundColor = UIColorHex(0xEBEBEB);
+//        }
+//    }
 }
 - (void)setDataWithsubModel:(BookContentLeftModel *)model leftHidden:(BOOL)left
 {

+ 1 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/View/BookContentLeftCell.xib

@@ -57,6 +57,7 @@
                 <outlet property="BgView" destination="4VE-0O-lnh" id="xKJ-O6-RbH"/>
                 <outlet property="BlueView" destination="zx2-9S-OrW" id="V3b-qo-apW"/>
                 <outlet property="NameL" destination="fq3-Ri-Fhn" id="lim-Ph-ngB"/>
+                <outlet property="height" destination="WBk-Mx-zGx" id="cnQ-HJ-2SN"/>
             </connections>
             <point key="canvasLocation" x="-42.028985507246382" y="51.5625"/>
         </tableViewCell>

+ 20 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/View/BookSelectCell.h

@@ -0,0 +1,20 @@
+//
+//  BookSelectCell.h
+//  smartRhino
+//
+//  Created by niuzhen on 2020/5/22.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BookSelectCell : UITableViewCell<UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout>
+@property (weak, nonatomic) IBOutlet UICollectionView *collectionView;
+@property (strong,nonatomic)NSMutableArray            *dataArray;
++ (BookSelectCell *)configCell:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;
+- (void)setCollData:(BOOL)isSelect;
+@end
+
+NS_ASSUME_NONNULL_END

+ 94 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/View/BookSelectCell.m

@@ -0,0 +1,94 @@
+//
+//  BookSelectCell.m
+//  smartRhino
+//
+//  Created by niuzhen on 2020/5/22.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "BookSelectCell.h"
+#import "BookSelectCollectCell.h"
+@interface BookSelectCell()
+@property (nonatomic, assign) BOOL  isSelect;
+@end
+@implementation BookSelectCell
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    self.collectionView.delegate = self;
+    self.collectionView.dataSource = self;
+    self.collectionView.scrollEnabled = NO;
+    self.collectionView.showsVerticalScrollIndicator = NO;
+    self.collectionView.showsHorizontalScrollIndicator = NO;
+    [self.collectionView registerNib:[UINib nibWithNibName:@"BookSelectCollectCell" bundle:nil] forCellWithReuseIdentifier:@"BookSelectCollectCell"];
+    UICollectionViewFlowLayout * layout = [[UICollectionViewFlowLayout alloc]init];
+    layout.sectionInset = UIEdgeInsetsMake(0, 20, 15, 15);
+    [self.collectionView setCollectionViewLayout:layout];
+}
+
+- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
+    [super setSelected:selected animated:animated];
+
+    // Configure the view for the selected state
+}
++ (BookSelectCell *)configCell:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath
+{
+    static NSString *cellIdentifer = @"BookSelectCell";
+    BookSelectCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifer];
+    if (cell == nil) {
+        cell = [[[NSBundle mainBundle] loadNibNamed:@"BookSelectCell" owner:nil options:nil] objectAtIndex:0];
+    }
+    return cell;
+}
+- (void)setCollData:(BOOL)isSelect
+{
+    self.isSelect = isSelect;
+    if (self.isSelect) {
+        [self.collectionView setContentSize:CGSizeMake(SCREEN_WIDTH - 80, 70 * 4 + 36)];
+    }else{
+        [self.collectionView setContentSize:CGSizeMake(0,0)];
+    }
+    [self.collectionView setContentOffset:CGPointZero animated:NO];
+    [self.collectionView reloadData];
+}
+
+- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section
+{
+    return 7.f;
+}
+- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section
+{
+    return 7.f;
+}
+- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
+{
+    return self.isSelect ? 12 : 0;
+}
+- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
+{
+    return self.isSelect ? 1 : 0;
+}
+-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
+{
+    return CGSizeMake((SCREEN_WIDTH - 129) / 3, 70);
+}
+- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
+{
+    BookSelectCollectCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"BookSelectCollectCell" forIndexPath:indexPath];
+    return cell;
+}
+//- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
+//{
+//    [collectionView deselectItemAtIndexPath:indexPath animated:YES];
+//    WS(weakSelf);
+//    BookAlertModel * model = [self.dataArray objectAtIndex:indexPath.row];
+//    for (BookAlertModel * smodel in self.dataArray) {
+//        smodel.isSelect = NO;
+//    }
+//    model.isSelect = YES;
+//    [self.collectionView reloadData];
+//    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+//        [weakSelf.collectionView scrollToItemAtIndexPath:indexPath atScrollPosition:UICollectionViewScrollPositionLeft animated:YES];
+//    });
+//}
+@end

+ 55 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/View/BookSelectCell.xib

@@ -0,0 +1,55 @@
+<?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" rowHeight="117" id="KGk-i7-Jjw" customClass="BookSelectCell">
+            <rect key="frame" x="0.0" y="0.0" width="320" height="117"/>
+            <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="117"/>
+                <autoresizingMask key="autoresizingMask"/>
+                <subviews>
+                    <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="ETm-90-yQQ">
+                        <rect key="frame" x="0.0" y="0.0" width="320" height="116.5"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+                        <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="KbD-fP-Bzr">
+                            <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="ooC-2d-V84">
+                        <rect key="frame" x="0.0" y="116.5" width="305" height="0.5"/>
+                        <color key="backgroundColor" red="0.89803921568627454" green="0.89803921568627454" blue="0.89803921568627454" alpha="1" colorSpace="calibratedRGB"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="0.5" id="PcK-lg-YCD"/>
+                        </constraints>
+                    </view>
+                </subviews>
+                <constraints>
+                    <constraint firstAttribute="trailing" secondItem="ETm-90-yQQ" secondAttribute="trailing" id="0g3-Mt-ruH"/>
+                    <constraint firstItem="ETm-90-yQQ" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="1Fk-4Q-Kkp"/>
+                    <constraint firstAttribute="bottom" secondItem="ooC-2d-V84" secondAttribute="bottom" id="6b3-tH-LWI"/>
+                    <constraint firstItem="ooC-2d-V84" firstAttribute="top" secondItem="ETm-90-yQQ" secondAttribute="bottom" id="AHl-oB-laO"/>
+                    <constraint firstAttribute="trailing" secondItem="ooC-2d-V84" secondAttribute="trailing" constant="15" id="CRt-P7-lXX"/>
+                    <constraint firstItem="ooC-2d-V84" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="F7F-g9-sbW"/>
+                    <constraint firstItem="ETm-90-yQQ" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" id="jHd-QW-ZSu"/>
+                </constraints>
+            </tableViewCellContentView>
+            <viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
+            <connections>
+                <outlet property="collectionView" destination="ETm-90-yQQ" id="bST-Ra-OVC"/>
+            </connections>
+            <point key="canvasLocation" x="140.57971014492756" y="169.08482142857142"/>
+        </tableViewCell>
+    </objects>
+</document>

+ 19 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/View/BookSelectCollectCell.h

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

+ 27 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/View/BookSelectCollectCell.m

@@ -0,0 +1,27 @@
+//
+//  BookSelectCollectCell.m
+//  smartRhino
+//
+//  Created by niuzhen on 2020/5/22.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "BookSelectCollectCell.h"
+
+@implementation BookSelectCollectCell
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    self.numL.attributedText = [self setTextColor:@"259篇"];
+}
+- (NSAttributedString *)setTextColor:(NSString *)text
+{
+    NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:text];
+    [attributedString addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"PingFang SC" size:14] range:NSMakeRange(0, text.length - 1)];
+    [attributedString addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"PingFang SC" size:13] range:NSMakeRange(text.length - 1, 1)];
+
+    [attributedString addAttribute:NSForegroundColorAttributeName value:UIColorHex(0x3979D3) range:NSMakeRange(0, text.length - 1)];
+    [attributedString addAttribute:NSForegroundColorAttributeName value:UIColorHex(0x333333) range:NSMakeRange(text.length - 1, 1)];
+    return attributedString;
+}
+@end

+ 77 - 0
smartRhino/Project/VCModel/Home/VC/BookStore/View/BookSelectCollectCell.xib

@@ -0,0 +1,77 @@
+<?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="BookSelectCollectCell">
+            <rect key="frame" x="0.0" y="0.0" width="135" height="70"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
+                <rect key="frame" x="0.0" y="0.0" width="135" height="70"/>
+                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                <subviews>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4QK-CP-88u">
+                        <rect key="frame" x="0.0" y="0.0" width="135" height="70"/>
+                        <subviews>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="259篇" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xqb-c5-n5X">
+                                <rect key="frame" x="47.5" y="43.5" width="40" height="17"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="8mh-CV-aOh">
+                                <rect key="frame" x="15" y="36" width="105" height="0.5"/>
+                                <color key="backgroundColor" red="0.81960784313725488" green="0.89411764705882346" blue="1" alpha="1" colorSpace="calibratedRGB"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="0.5" id="nKY-5e-Gfc"/>
+                                </constraints>
+                            </view>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="张浩清" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ou4-JW-hSH">
+                                <rect key="frame" x="46" y="12" width="43" height="17"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                        </subviews>
+                        <color key="backgroundColor" red="0.93333333333333335" green="0.96078431372549022" blue="1" alpha="1" colorSpace="calibratedRGB"/>
+                        <constraints>
+                            <constraint firstItem="ou4-JW-hSH" firstAttribute="top" secondItem="4QK-CP-88u" secondAttribute="top" constant="12" id="2CN-Dx-V3E"/>
+                            <constraint firstAttribute="trailing" secondItem="8mh-CV-aOh" secondAttribute="trailing" constant="15" id="44X-kx-sh1"/>
+                            <constraint firstItem="ou4-JW-hSH" firstAttribute="centerX" secondItem="4QK-CP-88u" secondAttribute="centerX" id="7aA-sT-0bB"/>
+                            <constraint firstItem="xqb-c5-n5X" firstAttribute="top" secondItem="8mh-CV-aOh" secondAttribute="bottom" constant="7" id="Ljg-SI-BhE"/>
+                            <constraint firstItem="xqb-c5-n5X" firstAttribute="centerX" secondItem="4QK-CP-88u" secondAttribute="centerX" id="b1H-m8-xlD"/>
+                            <constraint firstItem="8mh-CV-aOh" firstAttribute="leading" secondItem="4QK-CP-88u" secondAttribute="leading" constant="15" id="ccq-ze-mcK"/>
+                            <constraint firstItem="8mh-CV-aOh" firstAttribute="top" secondItem="ou4-JW-hSH" secondAttribute="bottom" constant="7" id="kBj-wW-dku"/>
+                        </constraints>
+                        <userDefinedRuntimeAttributes>
+                            <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
+                                <integer key="value" value="2"/>
+                            </userDefinedRuntimeAttribute>
+                            <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
+                        </userDefinedRuntimeAttributes>
+                    </view>
+                </subviews>
+            </view>
+            <constraints>
+                <constraint firstItem="4QK-CP-88u" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" id="0Ue-J5-ehH"/>
+                <constraint firstAttribute="trailing" secondItem="4QK-CP-88u" secondAttribute="trailing" id="BWB-wB-bCw"/>
+                <constraint firstItem="4QK-CP-88u" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" id="g4Y-xJ-kJD"/>
+                <constraint firstAttribute="bottom" secondItem="4QK-CP-88u" secondAttribute="bottom" id="znv-mc-Lko"/>
+            </constraints>
+            <viewLayoutGuide key="safeArea" id="SEy-5g-ep8"/>
+            <size key="customSize" width="135" height="125"/>
+            <connections>
+                <outlet property="numL" destination="xqb-c5-n5X" id="s8D-62-onb"/>
+                <outlet property="titleL" destination="ou4-JW-hSH" id="NRa-5f-RUQ"/>
+            </connections>
+            <point key="canvasLocation" x="199.27536231884059" y="177.79017857142856"/>
+        </collectionViewCell>
+    </objects>
+</document>

+ 1 - 1
smartRhino/Project/VCModel/Login/Controller/LoginVC.m

@@ -150,7 +150,7 @@
         NSData * data  = [NSKeyedArchiver archivedDataWithRootObject:model];
         USERDEFAULTSSET(data,@"USERINFO");
         //在这里登陆环信
-        [[EMClient sharedClient] loginWithUsername:model.ImId password:@"123456" completion:^(NSString *aUsername, EMError *aError) {
+        [[EMClient sharedClient] loginWithUsername:@"13699447785" password:@"123456" completion:^(NSString *aUsername, EMError *aError) {
             EMError *error =  aError;
             dispatch_async(dispatch_get_main_queue(), ^{
                 if (!error) {

+ 4 - 1
smartRhino/Project/VCModel/common/Controller/CommonHomeVC.m

@@ -113,7 +113,7 @@
 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
     switch (indexPath.section) {
         case 0:{
-            return 80.f;
+            return 74.f;
         }break;
         default:{
             return UITableViewAutomaticDimension;
@@ -238,6 +238,9 @@
     ChatMsgCollectionCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"ChatMsgCollectionCell" forIndexPath:indexPath];
     cell.cell0IconImg.image = [UIImage imageNamed:bean.imgName];
     cell.cell0TitleLabel.text = bean.title;
+    cell.imagH.constant = 25.f;
+    cell.imagW.constant = 25.f;
+    cell.titleConstant.constant = 8.f;
     switch (indexPath.item) {
         case 0:
         {