Steven 6 місяців тому
батько
коміт
b6788e3846
73 змінених файлів з 1586 додано та 681 видалено
  1. 30 0
      KulexiuForStudent/KulexiuForStudent.xcodeproj/project.pbxproj
  2. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/accompany_edit.imageset/accompany_edit@2x.png
  3. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/accompany_edit.imageset/accompany_edit@3x.png
  4. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/arrangement_homework.imageset/arrangement_homework@2x.png
  5. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/arrangement_homework.imageset/arrangement_homework@3x.png
  6. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/course_nav.imageset/course_nav@2x.png
  7. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/course_nav.imageset/course_nav@3x.png
  8. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/homeworkVideo_placeholder.imageset/homeworkVideo_placeholder@2x.png
  9. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/homeworkVideo_placeholder.imageset/homeworkVideo_placeholder@3x.png
  10. 22 0
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/homework_detail_bg.imageset/Contents.json
  11. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/homework_detail_bg.imageset/homework_detail_bg@2x.png
  12. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/homework_detail_bg.imageset/homework_detail_bg@3x.png
  13. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/homework_eva.imageset/homework_eva@2x.png
  14. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/homework_eva.imageset/homework_eva@3x.png
  15. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/homework_placeholder.imageset/homework_placeholder@2x.png
  16. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/homework_placeholder.imageset/homework_placeholder@3x.png
  17. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/student_eva_placeholder.imageset/student_eva_placeholder@2x.png
  18. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/student_eva_placeholder.imageset/student_eva_placeholder@3x.png
  19. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/teacher_eva_placeholder.imageset/teacher_eva_placeholder@2x.png
  20. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/teacher_eva_placeholder.imageset/teacher_eva_placeholder@3x.png
  21. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/accell_left.imageset/accell_left@2x.png
  22. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/accell_left.imageset/accell_left@3x.png
  23. 3 0
      KulexiuForStudent/KulexiuForStudent/Common/Base/BaseViewController/KSBaseViewController.h
  24. 15 0
      KulexiuForStudent/KulexiuForStudent/Common/Base/BaseViewController/KSBaseViewController.m
  25. 2 1
      KulexiuForStudent/KulexiuForStudent/Common/Base/KSNetworkingManager.h
  26. 3 1
      KulexiuForStudent/KulexiuForStudent/Common/Base/KSNetworkingManager.m
  27. 8 8
      KulexiuForStudent/KulexiuForStudent/Common/Tools/KSImageAlert.xib
  28. 1 1
      KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/Controller/AccompanyCourseGroupViewController.m
  29. 35 11
      KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/Controller/AccompanyDetailViewController.m
  30. 9 4
      KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyArrangeCell.m
  31. 32 31
      KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyArrangeCell.xib
  32. 1 1
      KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyCourseInfoCell.h
  33. 11 35
      KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyCourseInfoCell.m
  34. 54 56
      KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyCourseInfoCell.xib
  35. 10 3
      KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyEvaluateCell.m
  36. 27 26
      KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyEvaluateCell.xib
  37. 3 3
      KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyHomeworkCell.m
  38. 36 36
      KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyHomeworkCell.xib
  39. 28 0
      KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyNavView.h
  40. 63 0
      KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyNavView.m
  41. 85 0
      KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyNavView.xib
  42. 1 1
      KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyRemarkCell.h
  43. 19 3
      KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyRemarkCell.m
  44. 26 25
      KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyRemarkCell.xib
  45. 1 1
      KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyStudentEvaCell.h
  46. 31 15
      KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyStudentEvaCell.m
  47. 53 52
      KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyStudentEvaCell.xib
  48. 34 22
      KulexiuForStudent/KulexiuForStudent/Module/Course/MusicRoom/Controller/MusicRoomDetailViewController.m
  49. 1 1
      KulexiuForStudent/KulexiuForStudent/Module/Course/MusicRoom/Controller/MusicRoomGroupViewController.m
  50. 3 8
      KulexiuForStudent/KulexiuForStudent/Module/Course/MusicRoom/View/MusicRoomCourseInfoCell.h
  51. 39 32
      KulexiuForStudent/KulexiuForStudent/Module/Course/MusicRoom/View/MusicRoomCourseInfoCell.m
  52. 67 80
      KulexiuForStudent/KulexiuForStudent/Module/Course/MusicRoom/View/MusicRoomCourseInfoCell.xib
  53. 5 0
      KulexiuForStudent/KulexiuForStudent/Module/Course/MusicRoom/View/MusicRoomCourseListCell.xib
  54. 1 1
      KulexiuForStudent/KulexiuForStudent/Module/Course/VipCourse/Controller/VIPCourseGroupViewController.m
  55. 37 10
      KulexiuForStudent/KulexiuForStudent/Module/Course/VipCourse/Controller/VipCouseDetailViewController.m
  56. 0 2
      KulexiuForStudent/KulexiuForStudent/Module/Course/VipCourse/View/ProgramCourseGroupBodyView.m
  57. 6 24
      KulexiuForStudent/KulexiuForStudent/Module/Login/View/InstrumentHeaderView.xib
  58. 35 45
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/Controller/HomeworkDetailViewController.m
  59. 83 14
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/Controller/HomeworkListViewController.m
  60. 1 1
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/Model/HomeworkDetailModel.h
  61. 7 1
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/Model/HomeworkDetailModel.m
  62. 39 18
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/View/HomeworkBodyView.m
  63. 24 0
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/View/HomeworkDetailNavView.h
  64. 48 0
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/View/HomeworkDetailNavView.m
  65. 70 0
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/View/HomeworkDetailNavView.xib
  66. 9 14
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/View/HomeworkListCell.m
  67. 56 53
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/View/HomeworkListCell.xib
  68. 32 0
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/View/HomeworkListNavView.h
  69. 89 0
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/View/HomeworkListNavView.m
  70. 141 0
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/View/HomeworkListNavView.xib
  71. 8 2
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/View/HomeworkSortView.h
  72. 39 6
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/View/HomeworkSortView.m
  73. 103 33
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/View/HomeworkSortView.xib

+ 30 - 0
KulexiuForStudent/KulexiuForStudent.xcodeproj/project.pbxproj

@@ -460,6 +460,12 @@
 		BC494A7C286958EC00CCD343 /* MusicRoomCourseInfoCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BC494A7A286958EC00CCD343 /* MusicRoomCourseInfoCell.m */; };
 		BC494A7D286958EC00CCD343 /* MusicRoomCourseInfoCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC494A7B286958EC00CCD343 /* MusicRoomCourseInfoCell.xib */; };
 		BC494A8028696BC300CCD343 /* MusicRoomListModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BC494A7F28696BC300CCD343 /* MusicRoomListModel.m */; };
+		BC4AA2DD2D13F0CA00BD764B /* HomeworkListNavView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC4AA2DB2D13F0CA00BD764B /* HomeworkListNavView.m */; };
+		BC4AA2DE2D13F0CA00BD764B /* HomeworkListNavView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC4AA2DC2D13F0CA00BD764B /* HomeworkListNavView.xib */; };
+		BC4AA2E22D13F11000BD764B /* HomeworkDetailNavView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC4AA2E02D13F11000BD764B /* HomeworkDetailNavView.m */; };
+		BC4AA2E32D13F11000BD764B /* HomeworkDetailNavView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC4AA2E12D13F11000BD764B /* HomeworkDetailNavView.xib */; };
+		BC4AA2E72D13FD6800BD764B /* AccompanyNavView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC4AA2E52D13FD6800BD764B /* AccompanyNavView.m */; };
+		BC4AA2E82D13FD6800BD764B /* AccompanyNavView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC4AA2E62D13FD6800BD764B /* AccompanyNavView.xib */; };
 		BC50171527FC0D8300F8BCBC /* SubjectChooseBodyView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC50171427FC0D8300F8BCBC /* SubjectChooseBodyView.m */; };
 		BC50171727FC0D8E00F8BCBC /* SubjectChooseBodyView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC50171627FC0D8D00F8BCBC /* SubjectChooseBodyView.xib */; };
 		BC5367C2283F6D4D008428E8 /* HomeLiveCourseView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC5367C1283F6D4C008428E8 /* HomeLiveCourseView.m */; };
@@ -1865,6 +1871,15 @@
 		BC494A7B286958EC00CCD343 /* MusicRoomCourseInfoCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MusicRoomCourseInfoCell.xib; sourceTree = "<group>"; };
 		BC494A7E28696BC300CCD343 /* MusicRoomListModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MusicRoomListModel.h; sourceTree = "<group>"; };
 		BC494A7F28696BC300CCD343 /* MusicRoomListModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MusicRoomListModel.m; sourceTree = "<group>"; };
+		BC4AA2DA2D13F0CA00BD764B /* HomeworkListNavView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeworkListNavView.h; sourceTree = "<group>"; };
+		BC4AA2DB2D13F0CA00BD764B /* HomeworkListNavView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeworkListNavView.m; sourceTree = "<group>"; };
+		BC4AA2DC2D13F0CA00BD764B /* HomeworkListNavView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeworkListNavView.xib; sourceTree = "<group>"; };
+		BC4AA2DF2D13F11000BD764B /* HomeworkDetailNavView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeworkDetailNavView.h; sourceTree = "<group>"; };
+		BC4AA2E02D13F11000BD764B /* HomeworkDetailNavView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeworkDetailNavView.m; sourceTree = "<group>"; };
+		BC4AA2E12D13F11000BD764B /* HomeworkDetailNavView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeworkDetailNavView.xib; sourceTree = "<group>"; };
+		BC4AA2E42D13FD6800BD764B /* AccompanyNavView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AccompanyNavView.h; sourceTree = "<group>"; };
+		BC4AA2E52D13FD6800BD764B /* AccompanyNavView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AccompanyNavView.m; sourceTree = "<group>"; };
+		BC4AA2E62D13FD6800BD764B /* AccompanyNavView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AccompanyNavView.xib; sourceTree = "<group>"; };
 		BC50171327FC0D8300F8BCBC /* SubjectChooseBodyView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SubjectChooseBodyView.h; sourceTree = "<group>"; };
 		BC50171427FC0D8300F8BCBC /* SubjectChooseBodyView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SubjectChooseBodyView.m; sourceTree = "<group>"; };
 		BC50171627FC0D8D00F8BCBC /* SubjectChooseBodyView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SubjectChooseBodyView.xib; sourceTree = "<group>"; };
@@ -4133,6 +4148,9 @@
 		BC11923E280ED9CC00A716F7 /* View */ = {
 			isa = PBXGroup;
 			children = (
+				BC4AA2E42D13FD6800BD764B /* AccompanyNavView.h */,
+				BC4AA2E52D13FD6800BD764B /* AccompanyNavView.m */,
+				BC4AA2E62D13FD6800BD764B /* AccompanyNavView.xib */,
 				BC11926D280FAF7C00A716F7 /* AccompanyCourseInfoCell.h */,
 				BC11926F280FAF7C00A716F7 /* AccompanyCourseInfoCell.m */,
 				BC11926E280FAF7C00A716F7 /* AccompanyCourseInfoCell.xib */,
@@ -4193,6 +4211,12 @@
 		BC11924B280EDD4600A716F7 /* View */ = {
 			isa = PBXGroup;
 			children = (
+				BC4AA2DF2D13F11000BD764B /* HomeworkDetailNavView.h */,
+				BC4AA2E02D13F11000BD764B /* HomeworkDetailNavView.m */,
+				BC4AA2E12D13F11000BD764B /* HomeworkDetailNavView.xib */,
+				BC4AA2DA2D13F0CA00BD764B /* HomeworkListNavView.h */,
+				BC4AA2DB2D13F0CA00BD764B /* HomeworkListNavView.m */,
+				BC4AA2DC2D13F0CA00BD764B /* HomeworkListNavView.xib */,
 				BC119268280FAF5800A716F7 /* AccompanyAlertView.h */,
 				BC119269280FAF5800A716F7 /* AccompanyAlertView.m */,
 				BC11926A280FAF5900A716F7 /* AccompanyAlertView.xib */,
@@ -6818,6 +6842,7 @@
 				2723B63527F157D500E0B90B /* GroupApplyChooseCell.xib in Resources */,
 				2723B5C227F157B100E0B90B /* GroupListViewCell.xib in Resources */,
 				BCBFDF432811573D0052AFE5 /* HomeButtonView.xib in Resources */,
+				BC4AA2DE2D13F0CA00BD764B /* HomeworkListNavView.xib in Resources */,
 				BC11925A280FA85300A716F7 /* HomeworkSortView.xib in Resources */,
 				2723B62527F157D500E0B90B /* GroupNoticeCell.xib in Resources */,
 				BCC583D228A9EC6400BAB4CF /* cloud_animation.json in Resources */,
@@ -6987,6 +7012,7 @@
 				BCFCE44E28DD5C000051FED8 /* Low.wav in Resources */,
 				BC802D9428B897670079E350 /* LiveApplyingView.xib in Resources */,
 				BC71D244288804CD0010F14B /* img_10.png in Resources */,
+				BC4AA2E82D13FD6800BD764B /* AccompanyNavView.xib in Resources */,
 				BC7400F82CD1CB450056756A /* KSDelayCheckView.xib in Resources */,
 				BC0212F827FC4A080040569F /* SubjectImageCell.xib in Resources */,
 				BCC583B728A9EC6400BAB4CF /* cloud_animation_21.png in Resources */,
@@ -7062,6 +7088,7 @@
 				BCECE24A2B3D670500C0D555 /* FeedbackSortView.xib in Resources */,
 				BCECE2492B3D670500C0D555 /* FeedbackNavView.xib in Resources */,
 				BCC409032AFCE6B500C60249 /* VideoCropImageViewCell.xib in Resources */,
+				BC4AA2E32D13F11000BD764B /* HomeworkDetailNavView.xib in Resources */,
 				BCC409082AFCE6B500C60249 /* KSCropImageNavView.xib in Resources */,
 				BCFDA63028BC99410022B497 /* HomeBannerCell.xib in Resources */,
 				BC71D25E288804CD0010F14B /* img_51.png in Resources */,
@@ -7451,6 +7478,7 @@
 				BC36A5082AB406A5002FEFB1 /* GroupOwnerTagView.m in Sources */,
 				BC8B641528F3B5AC00A08D16 /* KSAwardAlertView.m in Sources */,
 				BCC0F6092A8CD86C00C4EFA4 /* TXClassroomDeviceMsg.m in Sources */,
+				BC4AA2E22D13F11000BD764B /* HomeworkDetailNavView.m in Sources */,
 				BCC0F6602A8CD8F500C4EFA4 /* MainDisplayView.m in Sources */,
 				BC106BC52A9336F8000759A9 /* TXLiveRoomViewController.m in Sources */,
 				2779355627E324A70010E277 /* KSPremissionAlert.m in Sources */,
@@ -7608,6 +7636,7 @@
 				BC2C1BB12CEB555500EDEB97 /* HomeArrangeVIPCourseView.m in Sources */,
 				BC76630E2827E48800C91A1D /* NotiferMessageModel.m in Sources */,
 				BCFE5406281545C600AD6786 /* HomeAlbumModel.m in Sources */,
+				BC4AA2E72D13FD6800BD764B /* AccompanyNavView.m in Sources */,
 				BCFA126C2CF425A7005229AC /* StudentCourseGroupDetailModel.m in Sources */,
 				BC106C352A9338A7000759A9 /* TXUISeatMember.m in Sources */,
 				275FA1EE27E7351900CFEA2E /* KSBaseViewController.m in Sources */,
@@ -7625,6 +7654,7 @@
 				275FA1E127E7351900CFEA2E /* KSTabBarViewController.m in Sources */,
 				BC5A4B642CF40C35008C2FDD /* CourseGroupPlanDescView.m in Sources */,
 				BC5A4B652CF40C35008C2FDD /* CourseGroupNavView.m in Sources */,
+				BC4AA2DD2D13F0CA00BD764B /* HomeworkListNavView.m in Sources */,
 				BC5A4B662CF40C35008C2FDD /* CourseGroupPlanAddView.m in Sources */,
 				BC5A4B672CF40C35008C2FDD /* CourseGroupPlanAlertView.m in Sources */,
 				BC5A4B682CF40C35008C2FDD /* GroupCourseSortView.m in Sources */,

BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/accompany_edit.imageset/accompany_edit@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/accompany_edit.imageset/accompany_edit@3x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/arrangement_homework.imageset/arrangement_homework@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/arrangement_homework.imageset/arrangement_homework@3x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/course_nav.imageset/course_nav@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/course_nav.imageset/course_nav@3x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/homeworkVideo_placeholder.imageset/homeworkVideo_placeholder@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/homeworkVideo_placeholder.imageset/homeworkVideo_placeholder@3x.png


+ 22 - 0
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/homework_detail_bg.imageset/Contents.json

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

BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/homework_detail_bg.imageset/homework_detail_bg@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/homework_detail_bg.imageset/homework_detail_bg@3x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/homework_eva.imageset/homework_eva@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/homework_eva.imageset/homework_eva@3x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/homework_placeholder.imageset/homework_placeholder@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/homework_placeholder.imageset/homework_placeholder@3x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/student_eva_placeholder.imageset/student_eva_placeholder@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/student_eva_placeholder.imageset/student_eva_placeholder@3x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/teacher_eva_placeholder.imageset/teacher_eva_placeholder@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Course/teacher_eva_placeholder.imageset/teacher_eva_placeholder@3x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/accell_left.imageset/accell_left@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/accell_left.imageset/accell_left@3x.png


+ 3 - 0
KulexiuForStudent/KulexiuForStudent/Common/Base/BaseViewController/KSBaseViewController.h

@@ -112,6 +112,9 @@ NS_ASSUME_NONNULL_BEGIN
 - (KSBaseViewController *)getNextViewController;
 
 - (BOOL)isViewPopDismiss;
+
+- (void)configStatusViewColorWhite:(BOOL)isWhite;
+
 @end
 
 NS_ASSUME_NONNULL_END

+ 15 - 0
KulexiuForStudent/KulexiuForStudent/Common/Base/BaseViewController/KSBaseViewController.m

@@ -471,6 +471,21 @@
     [super viewDidAppear:animated];
     self.preCtrl = [self getPreViewController];
 }
+
+- (void)configStatusViewColorWhite:(BOOL)isWhite {
+    if (isWhite) {
+        [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
+    }
+    else {
+        if (@available(iOS 13.0, *)) {
+            [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDarkContent;
+        } else {
+            // Fallback on earlier versions
+            [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
+        }
+    }
+}
+
 /*
 #pragma mark - Navigation
 

+ 2 - 1
KulexiuForStudent/KulexiuForStudent/Common/Base/KSNetworkingManager.h

@@ -472,11 +472,12 @@ NS_ASSUME_NONNULL_BEGIN
 /// @param post post
 /// @param date 年月 格式:yyyy-MM
 /// @param submit 作业提交状态 0:否,1:是
+/// @param searchKey 搜索
 /// @param page 页数
 /// @param rows 条数
 /// @param success 成功
 /// @param faliure 失败
-+ (void)homeworkListRequest:(NSString *)post date:(NSString *)date submit:(NSInteger)submit page:(NSInteger)page rows:(NSInteger)rows success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure;
++ (void)homeworkListRequest:(NSString *)post date:(NSString *)date submit:(NSInteger)submit searchKey:(NSString *)searchKey page:(NSInteger)page rows:(NSInteger)rows success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure;
 
 // /api-student/homework/detail/{courseId}
 

+ 3 - 1
KulexiuForStudent/KulexiuForStudent/Common/Base/KSNetworkingManager.m

@@ -1060,16 +1060,18 @@
 /// @param post post
 /// @param date 年月 格式:yyyy-MM
 /// @param submit 作业提交状态 0:否,1:是
+/// @param searchKey 搜索
 /// @param page 页数
 /// @param rows 条数
 /// @param success 成功
 /// @param faliure 失败
-+ (void)homeworkListRequest:(NSString *)post date:(NSString *)date submit:(NSInteger)submit page:(NSInteger)page rows:(NSInteger)rows success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
++ (void)homeworkListRequest:(NSString *)post date:(NSString *)date submit:(NSInteger)submit searchKey:(NSString *)searchKey page:(NSInteger)page rows:(NSInteger)rows success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
     [self configRequestMethodJSON];
     NSString *url = [NSString stringWithFormat:@"%@%@", hostURL, @"/api-student/homework/list"];
     NSMutableDictionary *parm = [NSMutableDictionary dictionary];
     [parm setValue:date forKey:@"date"];
     [parm setValue:@(submit) forKey:@"submit"];
+    [parm setValue:searchKey forKey:@"search"];
     [parm setValue:@(page) forKey:@"page"];
     [parm setValue:@(rows) forKey:@"rows"];
     [self request:post andWithUrl:url and:parm success:success faliure:faliure];

+ 8 - 8
KulexiuForStudent/KulexiuForStudent/Common/Tools/KSImageAlert.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="18122" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
     <device id="retina6_1" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="18093"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -17,14 +17,14 @@
                     <rect key="frame" x="31" y="226.5" width="352" height="140"/>
                     <subviews>
                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="accell_left" translatesAutoresizingMaskIntoConstraints="NO" id="zHs-1o-h1G">
-                            <rect key="frame" x="17" y="23" width="4" height="18"/>
+                            <rect key="frame" x="17" y="23" width="3" height="12"/>
                             <constraints>
-                                <constraint firstAttribute="height" constant="18" id="QkD-3l-6Bp"/>
-                                <constraint firstAttribute="width" constant="4" id="czF-D3-gvT"/>
+                                <constraint firstAttribute="height" constant="12" id="qN5-0f-iFZ"/>
+                                <constraint firstAttribute="width" constant="3" id="qu7-Qi-7Jl"/>
                             </constraints>
                         </imageView>
                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="提示" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xyU-sV-u6y">
-                            <rect key="frame" x="28" y="17" width="304" height="30"/>
+                            <rect key="frame" x="27" y="14" width="305" height="30"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="30" id="PwA-2V-aLC"/>
                             </constraints>
@@ -58,7 +58,7 @@
                             </connections>
                         </button>
                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Lgn-tk-5dh">
-                            <rect key="frame" x="16" y="56" width="320" height="6"/>
+                            <rect key="frame" x="16" y="50" width="320" height="12"/>
                             <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
                             <color key="textColor" red="0.50196078431372548" green="0.50196078431372548" blue="0.50196078431372548" alpha="1" colorSpace="calibratedRGB"/>
                             <nil key="highlightedColor"/>
@@ -109,6 +109,6 @@
         </view>
     </objects>
     <resources>
-        <image name="accell_left" width="4" height="18"/>
+        <image name="accell_left" width="3" height="12"/>
     </resources>
 </document>

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/Controller/AccompanyCourseGroupViewController.m

@@ -229,7 +229,7 @@
     if (!_navView) {
         _navView = [CourseGroupNavView sharedInstance];
         MJWeakSelf;
-        [_navView configWithNavTitle:@"趣纠课详情" callback:^{
+        [_navView configWithNavTitle:@"课程组详情" callback:^{
             [weakSelf backAction];
         }];
     }

+ 35 - 11
KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/Controller/AccompanyDetailViewController.m

@@ -23,6 +23,7 @@
 #import "OnlineClassManager.h"
 #import "HomeworkDetailViewController.h"
 #import "KSChatConversationViewController.h"
+#import "AccompanyNavView.h"
 
 @interface AccompanyDetailViewController ()<UITableViewDelegate,UITableViewDataSource,WMPlayerDelegate>
 {
@@ -33,6 +34,8 @@
 
 @property (nonatomic, assign) BOOL isRatation;
 
+@property (nonatomic, strong) AccompanyNavView *navView;
+
 @property (nonatomic, strong) UITableView *tableView;
 
 @property (nonatomic, strong) AccompanyAlertView *alertView;
@@ -62,7 +65,7 @@
 - (void)viewDidLoad {
     [super viewDidLoad];
     // Do any additional setup after loading the view.
-    [self allocTitle:@"课程详情"];
+    self.ks_prefersNavigationBarHidden = YES;
     [self configUI];
     self.isModify = NO;
 }
@@ -70,6 +73,12 @@
 - (void)viewWillAppear:(BOOL)animated {
     [super viewWillAppear:animated];
     [self requestCourseInfoMessage];
+    [self configStatusViewColorWhite:YES];
+}
+
+- (void)viewWillDisappear:(BOOL)animated {
+    [super viewWillDisappear:animated];
+    [self configStatusViewColorWhite:NO];
 }
 
 - (void)requestCourseInfoMessage {
@@ -163,10 +172,18 @@
 
 - (void)configUI {
     [self.scrollView removeFromSuperview];
+    
+    CGFloat height = [self.navView getViewHeight];
+    [self.navView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.right.top.mas_equalTo(self.view);
+        make.height.mas_equalTo(height);
+    }];
+    [self.view addSubview:self.navView];
+    
     [self.view addSubview:self.tableView];
     [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
         make.left.right.mas_equalTo(self.view);
-        make.top.mas_equalTo(self.view.mas_top);
+        make.top.mas_equalTo(self.view.mas_top).offset(kNaviBarHeight);
         make.bottom.mas_equalTo(self.view.mas_bottom);
     }];
     
@@ -202,14 +219,8 @@
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
     if (indexPath.row == 0) {
         AccompanyCourseInfoCell *cell = [tableView dequeueReusableCellWithIdentifier:@"AccompanyCourseInfoCell"];
-        cell.statusLabel.textColor = HexRGB(0x999999);
         [self evaluateWithStatusLabel:cell.statusLabel];
-        [cell configWithStartTime:self.homeworkModel.startTime endTime:self.homeworkModel.endTime teacherAvatar:self.homeworkModel.teacherAvatar teacherName:self.homeworkModel.teacherName teacherId:self.homeworkModel.teacherId courseSubject:self.homeworkModel.subjectName isMusicRoom:NO];
-        MJWeakSelf;
-        [cell chatCalkback:^{
-            [weakSelf chatAction];
-        }];
-//        cell.hideChatButton = YES;
+        [cell configWithStartTime:self.homeworkModel.startTime endTime:self.homeworkModel.endTime courseName:self.homeworkModel.courseGroupName teacherAvatar:self.homeworkModel.teacherAvatar teacherName:self.homeworkModel.teacherName teacherId:self.homeworkModel.teacherId courseSubject:self.homeworkModel.subjectName isMusicRoom:NO];
         return cell;
     }
     else if (indexPath.row == 1) {
@@ -224,7 +235,7 @@
         NSString *message = self.evaluateModel.studentReplied;
         BOOL hasEvaluate = [NSString isEmptyString:self.evaluateModel.studentReplied] ? NO : YES;
         MJWeakSelf;
-        [cell configWithEvaluateMessage:message starNum:self.evaluateModel.score hasEvaluate:hasEvaluate callback:^{
+        [cell configWithEvaluateMessage:message courseStatus:self.homeworkModel.courseStatus starNum:self.evaluateModel.score hasEvaluate:hasEvaluate callback:^{
             [weakSelf evaluateCourse];
         }];
         return cell;
@@ -252,7 +263,8 @@
     else {
         AccompanyRemarkCell *cell = [tableView dequeueReusableCellWithIdentifier:@"AccompanyRemarkCell"];
         BOOL hasEvaluate = self.homeworkModel.reviewHomework == 1? YES : NO;
-        [cell configWithRemarkMessage:self.homeworkModel.teacherReplied hasEvaluate:hasEvaluate];
+        BOOL hasSubmitHomework = self.homeworkModel.submitHomework == 1 ? YES : NO;
+        [cell configWithRemarkMessage:self.homeworkModel.teacherReplied hasEvaluate:hasEvaluate hasSubmitHomework:hasSubmitHomework];
         return cell;
     }
 }
@@ -540,6 +552,18 @@
     }
     return _tableView;
 }
+
+- (AccompanyNavView *)navView {
+    if (!_navView) {
+        _navView = [AccompanyNavView shareInstance];
+        MJWeakSelf;
+        [_navView navCallback:^{
+            [weakSelf backAction];
+        }];
+    }
+    return _navView;
+}
+
 - (void)hudTipWillShow:(BOOL)willShow{
     if (willShow) {
         [self resignFirstResponder];

+ 9 - 4
KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyArrangeCell.m

@@ -9,11 +9,12 @@
 
 @interface AccompanyArrangeCell ()
 
+@property (weak, nonatomic) IBOutlet UILabel *tipsMsg;
+
 @property (weak, nonatomic) IBOutlet UILabel *contentLabel;
 
 @property (weak, nonatomic) IBOutlet UIView *emptyView;
 
-
 @end
 
 @implementation AccompanyArrangeCell
@@ -25,7 +26,7 @@
 }
 
 - (void)configWithHomeworkContent:(NSString *)content hasArrangeHomework:(BOOL)hasArrange {
-
+    NSString *tipsDesc = @"老师尚未布置作业";
     if (hasArrange) {
         self.emptyView.hidden = YES;
         if (![NSString isEmptyString:content]) {
@@ -35,13 +36,17 @@
             self.contentLabel.attributedText = attr;
         }
         else {
-            self.contentLabel.text = @"";
+            self.contentLabel.attributedText = nil;
         }
     }
     else {
         self.emptyView.hidden = NO;
-        self.contentLabel.text = @"";
+        self.contentLabel.attributedText = nil;
     }
+    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
+    [paragraphStyle setLineSpacing:4];//调整行间距
+    NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:tipsDesc attributes:@{NSParagraphStyleAttributeName:paragraphStyle,NSFontAttributeName:[UIFont systemFontOfSize:13.0f],NSForegroundColorAttributeName:HexRGB(0x999999)}];
+    self.tipsMsg.attributedText = attr;
 }
 
 

+ 32 - 31
KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyArrangeCell.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="20037" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" 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="20020"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <capability name="System colors in document resources" minToolsVersion="11.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
@@ -11,49 +11,49 @@
     <objects>
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
-        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="215" id="KGk-i7-Jjw" customClass="AccompanyArrangeCell">
-            <rect key="frame" x="0.0" y="0.0" width="375" height="215"/>
+        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="150" id="KGk-i7-Jjw" customClass="AccompanyArrangeCell">
+            <rect key="frame" x="0.0" y="0.0" width="375" height="150"/>
             <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="375" height="215"/>
+                <rect key="frame" x="0.0" y="0.0" width="375" height="150"/>
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="gA1-Yl-rTq">
-                        <rect key="frame" x="14" y="0.0" width="347" height="203"/>
+                        <rect key="frame" x="14" y="0.0" width="347" height="138"/>
                         <subviews>
                             <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="accell_left" translatesAutoresizingMaskIntoConstraints="NO" id="zvH-rj-MgD">
-                                <rect key="frame" x="11" y="13" width="4" height="18"/>
+                                <rect key="frame" x="12" y="14" width="3" height="12"/>
                             </imageView>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="课后作业" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qyk-Yf-gN8">
-                                <rect key="frame" x="20" y="12" width="58" height="20"/>
+                                <rect key="frame" x="20" y="10" width="56" height="20"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="20" id="D64-2R-Ow8"/>
                                 </constraints>
                                 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
-                                <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="vf1-Yo-J7O">
-                                <rect key="frame" x="11" y="40" width="327" height="153"/>
+                                <rect key="frame" x="12" y="40" width="323" height="88"/>
                                 <subviews>
                                     <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="H1L-ao-uRw">
-                                        <rect key="frame" x="9" y="11" width="312" height="0.0"/>
+                                        <rect key="frame" x="12" y="12" width="299" height="0.0"/>
                                         <fontDescription key="fontDescription" type="system" pointSize="13"/>
-                                        <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                        <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                         <nil key="highlightedColor"/>
                                     </label>
                                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="dU1-HN-KyM">
-                                        <rect key="frame" x="0.0" y="0.0" width="327" height="153"/>
+                                        <rect key="frame" x="0.0" y="0.0" width="323" height="88"/>
                                         <subviews>
                                             <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="homework_placeholder" translatesAutoresizingMaskIntoConstraints="NO" id="XfA-4s-phL">
-                                                <rect key="frame" x="33" y="37.5" width="79" height="78"/>
+                                                <rect key="frame" x="30" y="5" width="78" height="78"/>
                                                 <constraints>
-                                                    <constraint firstAttribute="width" constant="79" id="0hA-Du-KDq"/>
+                                                    <constraint firstAttribute="width" constant="78" id="0hA-Du-KDq"/>
                                                     <constraint firstAttribute="height" constant="78" id="UOp-9T-qAZ"/>
                                                 </constraints>
                                             </imageView>
                                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" usesAttributedText="YES" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Fby-JO-ifq">
-                                                <rect key="frame" x="120" y="59.5" width="157" height="34.5"/>
+                                                <rect key="frame" x="119" y="27" width="169" height="34.5"/>
                                                 <attributedString key="attributedText">
                                                     <fragment content="课程结束后老师会布置作业喔~">
                                                         <attributes>
@@ -69,24 +69,24 @@
                                         <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                         <constraints>
                                             <constraint firstItem="Fby-JO-ifq" firstAttribute="centerY" secondItem="dU1-HN-KyM" secondAttribute="centerY" id="blg-fz-G9n"/>
-                                            <constraint firstItem="XfA-4s-phL" firstAttribute="leading" secondItem="dU1-HN-KyM" secondAttribute="leading" constant="33" id="dMf-ag-brp"/>
-                                            <constraint firstItem="Fby-JO-ifq" firstAttribute="leading" secondItem="XfA-4s-phL" secondAttribute="trailing" constant="8" id="hhO-vt-zAb"/>
+                                            <constraint firstItem="XfA-4s-phL" firstAttribute="leading" secondItem="dU1-HN-KyM" secondAttribute="leading" constant="30" id="dMf-ag-brp"/>
+                                            <constraint firstItem="Fby-JO-ifq" firstAttribute="leading" secondItem="XfA-4s-phL" secondAttribute="trailing" constant="11" id="hhO-vt-zAb"/>
                                             <constraint firstItem="XfA-4s-phL" firstAttribute="centerY" secondItem="dU1-HN-KyM" secondAttribute="centerY" id="q6d-yu-I27"/>
-                                            <constraint firstAttribute="trailing" secondItem="Fby-JO-ifq" secondAttribute="trailing" constant="50" id="zxg-Qb-1UO"/>
+                                            <constraint firstAttribute="trailing" secondItem="Fby-JO-ifq" secondAttribute="trailing" constant="35" id="zxg-Qb-1UO"/>
                                         </constraints>
                                     </view>
                                 </subviews>
-                                <color key="backgroundColor" red="0.96862745100000003" green="0.97254901959999995" blue="0.97647058819999999" alpha="1" colorSpace="calibratedRGB"/>
+                                <color key="backgroundColor" red="0.96862745098039216" green="0.97254901960784312" blue="0.97647058823529409" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <constraints>
-                                    <constraint firstAttribute="trailing" secondItem="H1L-ao-uRw" secondAttribute="trailing" constant="6" id="0fj-KP-pN1"/>
+                                    <constraint firstAttribute="trailing" secondItem="H1L-ao-uRw" secondAttribute="trailing" constant="12" id="0fj-KP-pN1"/>
                                     <constraint firstItem="dU1-HN-KyM" firstAttribute="leading" secondItem="vf1-Yo-J7O" secondAttribute="leading" id="2gz-6H-k3O"/>
                                     <constraint firstAttribute="bottom" secondItem="dU1-HN-KyM" secondAttribute="bottom" id="AiG-7u-Z5R"/>
                                     <constraint firstAttribute="trailing" secondItem="dU1-HN-KyM" secondAttribute="trailing" id="CT7-rV-eTH"/>
-                                    <constraint firstItem="H1L-ao-uRw" firstAttribute="leading" secondItem="vf1-Yo-J7O" secondAttribute="leading" constant="9" id="Gn2-jW-Sqe"/>
-                                    <constraint firstAttribute="bottom" relation="greaterThanOrEqual" secondItem="H1L-ao-uRw" secondAttribute="bottom" constant="5" id="MId-4v-mP6"/>
+                                    <constraint firstItem="H1L-ao-uRw" firstAttribute="leading" secondItem="vf1-Yo-J7O" secondAttribute="leading" constant="12" id="Gn2-jW-Sqe"/>
+                                    <constraint firstAttribute="bottom" relation="greaterThanOrEqual" secondItem="H1L-ao-uRw" secondAttribute="bottom" constant="12" id="MId-4v-mP6"/>
                                     <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="88" id="Ohc-jd-ZIz"/>
                                     <constraint firstItem="dU1-HN-KyM" firstAttribute="top" secondItem="vf1-Yo-J7O" secondAttribute="top" id="ReN-18-uf8"/>
-                                    <constraint firstItem="H1L-ao-uRw" firstAttribute="top" secondItem="vf1-Yo-J7O" secondAttribute="top" constant="11" id="ung-Zh-kpd"/>
+                                    <constraint firstItem="H1L-ao-uRw" firstAttribute="top" secondItem="vf1-Yo-J7O" secondAttribute="top" constant="12" id="ung-Zh-kpd"/>
                                 </constraints>
                                 <userDefinedRuntimeAttributes>
                                     <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
@@ -97,14 +97,14 @@
                         </subviews>
                         <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                         <constraints>
-                            <constraint firstAttribute="trailing" secondItem="vf1-Yo-J7O" secondAttribute="trailing" constant="9" id="C9V-eH-geC"/>
-                            <constraint firstItem="vf1-Yo-J7O" firstAttribute="leading" secondItem="gA1-Yl-rTq" secondAttribute="leading" constant="11" id="NWC-5K-8kt"/>
-                            <constraint firstItem="zvH-rj-MgD" firstAttribute="top" secondItem="gA1-Yl-rTq" secondAttribute="top" constant="13" id="QHm-hW-lio"/>
+                            <constraint firstAttribute="trailing" secondItem="vf1-Yo-J7O" secondAttribute="trailing" constant="12" id="C9V-eH-geC"/>
+                            <constraint firstItem="vf1-Yo-J7O" firstAttribute="leading" secondItem="gA1-Yl-rTq" secondAttribute="leading" constant="12" id="NWC-5K-8kt"/>
                             <constraint firstAttribute="bottom" secondItem="vf1-Yo-J7O" secondAttribute="bottom" constant="10" id="T6p-ud-tLL"/>
-                            <constraint firstItem="zvH-rj-MgD" firstAttribute="leading" secondItem="gA1-Yl-rTq" secondAttribute="leading" constant="11" id="ad3-xv-Xlz"/>
+                            <constraint firstItem="qyk-Yf-gN8" firstAttribute="top" secondItem="gA1-Yl-rTq" secondAttribute="top" constant="10" id="XRB-b8-tfK"/>
+                            <constraint firstItem="zvH-rj-MgD" firstAttribute="leading" secondItem="gA1-Yl-rTq" secondAttribute="leading" constant="12" id="ad3-xv-Xlz"/>
                             <constraint firstItem="qyk-Yf-gN8" firstAttribute="centerY" secondItem="zvH-rj-MgD" secondAttribute="centerY" id="dYy-51-vic"/>
                             <constraint firstItem="qyk-Yf-gN8" firstAttribute="leading" secondItem="zvH-rj-MgD" secondAttribute="trailing" constant="5" id="hFd-yY-LNW"/>
-                            <constraint firstItem="vf1-Yo-J7O" firstAttribute="top" secondItem="qyk-Yf-gN8" secondAttribute="bottom" constant="8" id="jc2-n6-O3G"/>
+                            <constraint firstItem="vf1-Yo-J7O" firstAttribute="top" secondItem="qyk-Yf-gN8" secondAttribute="bottom" constant="10" id="jc2-n6-O3G"/>
                         </constraints>
                         <userDefinedRuntimeAttributes>
                             <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
@@ -125,13 +125,14 @@
             <connections>
                 <outlet property="contentLabel" destination="H1L-ao-uRw" id="YPY-n4-spk"/>
                 <outlet property="emptyView" destination="dU1-HN-KyM" id="Lep-x2-mcW"/>
+                <outlet property="tipsMsg" destination="Fby-JO-ifq" id="PPN-Od-9UV"/>
             </connections>
             <point key="canvasLocation" x="207.97101449275365" y="134.93303571428569"/>
         </tableViewCell>
     </objects>
     <resources>
-        <image name="accell_left" width="4" height="18"/>
-        <image name="homework_placeholder" width="79" height="78"/>
+        <image name="accell_left" width="3" height="12"/>
+        <image name="homework_placeholder" width="78" height="78"/>
         <systemColor name="systemBackgroundColor">
             <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
         </systemColor>

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyCourseInfoCell.h

@@ -17,7 +17,7 @@ typedef void(^AccompanyChatCallback)(void);
 
 @property (nonatomic, assign) BOOL hideChatButton;
 
-- (void)configWithStartTime:(NSString *)beginTime endTime:(NSString *)endTime teacherAvatar:(NSString *)teacherAvatar teacherName:(NSString *)teacherName teacherId:(NSString *)teacherId courseSubject:(NSString *)courseSubject isMusicRoom:(BOOL)isMusicRoom;
+- (void)configWithStartTime:(NSString *)beginTime endTime:(NSString *)endTime courseName:(NSString *)courseName teacherAvatar:(NSString *)teacherAvatar teacherName:(NSString *)teacherName teacherId:(NSString *)teacherId courseSubject:(NSString *)courseSubject isMusicRoom:(BOOL)isMusicRoom;
 
 - (void)chatCalkback:(AccompanyChatCallback)callback;
 

+ 11 - 35
KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyCourseInfoCell.m

@@ -10,17 +10,17 @@
 @interface AccompanyCourseInfoCell ()
 
 @property (weak, nonatomic) IBOutlet UILabel *courseTime;
-@property (weak, nonatomic) IBOutlet UIImageView *studentAvatar;
-@property (weak, nonatomic) IBOutlet UILabel *studentName;
-@property (weak, nonatomic) IBOutlet UILabel *studentSubject;
 
-@property (weak, nonatomic) IBOutlet UIButton *chatButton;
+@property (weak, nonatomic) IBOutlet UILabel *courseName;
+
+@property (weak, nonatomic) IBOutlet UIImageView *avatar;
 
-@property (nonatomic, strong) NSString *userId;
+@property (weak, nonatomic) IBOutlet UILabel *nameLabel;
 
-@property (nonatomic, strong) NSString *userName;
+@property (weak, nonatomic) IBOutlet UILabel *studentSubject;
 
 @property (nonatomic, copy) AccompanyChatCallback callback;
+
 @property (weak, nonatomic) IBOutlet NSLayoutConstraint *avatalHeight;
 
 @end
@@ -33,7 +33,7 @@
     self.selectionStyle = UITableViewCellSelectionStyleNone;
 }
 
-- (void)configWithStartTime:(NSString *)beginTime endTime:(NSString *)endTime teacherAvatar:(NSString *)teacherAvatar teacherName:(NSString *)teacherName teacherId:(NSString *)teacherId courseSubject:(NSString *)courseSubject isMusicRoom:(BOOL)isMusicRoom {
+- (void)configWithStartTime:(NSString *)beginTime endTime:(NSString *)endTime courseName:(NSString *)courseName teacherAvatar:(NSString *)teacherAvatar teacherName:(NSString *)teacherName teacherId:(NSString *)teacherId courseSubject:(NSString *)courseSubject isMusicRoom:(BOOL)isMusicRoom {
     // time
     NSDateFormatter *formatter = [NSObject getDateformatter];
     [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
@@ -45,32 +45,14 @@
     NSString *lessonEnd = [formatter stringFromDate:endDate];
     self.courseTime.text = [NSString stringWithFormat:@"%@~%@",[NSString returnNoNullStringWithString:lessonBegin],[NSString returnNoNullStringWithString:lessonEnd]];
     if (isMusicRoom) {
-        self.studentName.text = teacherName;
-        [self.studentAvatar setImage:[UIImage imageNamed:@"course_musicRoom"]];
-        self.avatalHeight.constant = 51.0f;
+        [self.avatar setImage:[UIImage imageNamed:@"course_musicRoom"]];
     }
     else {
-        self.studentName.text = [NSString returnNoNullStringWithString:teacherName];
-        [self.studentAvatar sd_setImageWithURL:[NSURL URLWithString:[teacherAvatar getUrlEndcodeString]] placeholderImage:[UIImage imageNamed:TEACHER_AVATAR]];
-        self.avatalHeight.constant = 47.0f;
+        [self.avatar sd_setImageWithURL:[NSURL URLWithString:[teacherAvatar getUrlEndcodeString]] placeholderImage:[UIImage imageNamed:TEACHER_AVATAR]];
     }
-    
+    self.courseName.text = [NSString returnNoNullStringWithString:courseName];
+    self.nameLabel.text = [NSString returnNoNullStringWithString:teacherName];
     self.studentSubject.text = [NSString returnNoNullStringWithString:courseSubject];
-
-    self.userId = teacherId;
-    self.userName = teacherName;
-}
-
-- (void)setHideChatButton:(BOOL)hideChatButton {
-    _hideChatButton = hideChatButton;
-    if (hideChatButton) {
-        self.chatButton.hidden = YES;
-        self.chatButton.userInteractionEnabled = NO;
-    }
-    else {
-        self.chatButton.hidden = NO;
-        self.chatButton.userInteractionEnabled = YES;
-    }
 }
 
 - (void)chatCalkback:(AccompanyChatCallback)callback {
@@ -79,12 +61,6 @@
     }
 }
 
-- (IBAction)chatAction:(id)sender {
-    if (self.callback) {
-        self.callback();
-    }
-}
-
 - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
     [super setSelected:selected animated:animated];
 

+ 54 - 56
KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyCourseInfoCell.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" 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="22685"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <capability name="System colors in document resources" minToolsVersion="11.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
@@ -12,41 +12,42 @@
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
         <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="KGk-i7-Jjw" customClass="AccompanyCourseInfoCell">
-            <rect key="frame" x="0.0" y="0.0" width="367" height="145"/>
+            <rect key="frame" x="0.0" y="0.0" width="367" height="135"/>
             <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="367" height="145"/>
+                <rect key="frame" x="0.0" y="0.0" width="367" height="135"/>
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Me9-vj-Fhq">
-                        <rect key="frame" x="14" y="10" width="339" height="123"/>
+                        <rect key="frame" x="14" y="12" width="339" height="111"/>
                         <subviews>
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="09K-c6-xYX">
-                                <rect key="frame" x="10" y="38" width="319" height="1"/>
+                                <rect key="frame" x="10" y="46" width="319" height="1"/>
                                 <color key="backgroundColor" red="0.94901960780000005" green="0.94901960780000005" blue="0.94901960780000005" alpha="1" colorSpace="calibratedRGB"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="1" id="h3O-jJ-oio"/>
                                 </constraints>
                             </view>
                             <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="course_time" translatesAutoresizingMaskIntoConstraints="NO" id="Xea-2d-MhT">
-                                <rect key="frame" x="11" y="12" width="16" height="16"/>
+                                <rect key="frame" x="12" y="15" width="16" height="16"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="16" id="QJa-8k-PXn"/>
                                     <constraint firstAttribute="width" constant="16" id="kpa-Xw-v8k"/>
                                 </constraints>
                             </imageView>
-                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dYZ-ZA-mKb">
-                                <rect key="frame" x="34" y="11" width="0.0" height="18"/>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2024-10-30 15:00~15:45" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dYZ-ZA-mKb">
+                                <rect key="frame" x="35" y="14" width="162" height="18"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="18" id="Cjh-qx-oBI"/>
                                 </constraints>
                                 <fontDescription key="fontDescription" type="system" pointSize="13"/>
-                                <color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/>
+                                <color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
-                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="sy0-Ds-ef0">
-                                <rect key="frame" x="278" y="20" width="50" height="0.0"/>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="752" text="" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="sy0-Ds-ef0">
+                                <rect key="frame" x="278" y="12" width="50" height="22"/>
                                 <constraints>
+                                    <constraint firstAttribute="height" constant="22" id="HeH-qc-l0w"/>
                                     <constraint firstAttribute="width" constant="50" id="hjG-kD-dSK"/>
                                 </constraints>
                                 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
@@ -54,42 +55,42 @@
                                 <nil key="highlightedColor"/>
                             </label>
                             <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="teacher_avatar" translatesAutoresizingMaskIntoConstraints="NO" id="s7E-Da-TcK">
-                                <rect key="frame" x="11" y="56" width="47" height="47"/>
+                                <rect key="frame" x="12" y="59" width="40" height="40"/>
                                 <constraints>
-                                    <constraint firstAttribute="height" constant="47" id="4Ap-gR-6vk"/>
-                                    <constraint firstAttribute="width" constant="47" id="NoH-2D-u0z"/>
+                                    <constraint firstAttribute="height" constant="40" id="4Ap-gR-6vk"/>
+                                    <constraint firstAttribute="width" constant="40" id="NoH-2D-u0z"/>
                                 </constraints>
                                 <userDefinedRuntimeAttributes>
                                     <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                                        <real key="value" value="5"/>
+                                        <real key="value" value="20"/>
                                     </userDefinedRuntimeAttribute>
                                 </userDefinedRuntimeAttributes>
                             </imageView>
-                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mNS-6d-8wr">
-                                <rect key="frame" x="68" y="56" width="0.0" height="24"/>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="长笛VIP定制课-第1课" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mNS-6d-8wr">
+                                <rect key="frame" x="62" y="58" width="265" height="21"/>
                                 <constraints>
-                                    <constraint firstAttribute="height" constant="24" id="CXE-YJ-Psv"/>
+                                    <constraint firstAttribute="height" constant="21" id="CXE-YJ-Psv"/>
                                 </constraints>
-                                <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
-                                <color key="textColor" red="0.1019607843" green="0.1019607843" blue="0.1019607843" alpha="1" colorSpace="calibratedRGB"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                <color key="textColor" red="0.074509803921568626" green="0.078431372549019607" blue="0.082352941176470587" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
-                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="2RD-hr-hLB">
-                                <rect key="frame" x="68" y="83" width="10" height="20"/>
+                            <view contentMode="scaleToFill" horizontalCompressionResistancePriority="752" translatesAutoresizingMaskIntoConstraints="NO" id="2RD-hr-hLB">
+                                <rect key="frame" x="106" y="83" width="30" height="17"/>
                                 <subviews>
-                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="g0Z-7O-ahT">
-                                        <rect key="frame" x="5" y="0.0" width="0.0" height="20"/>
-                                        <fontDescription key="fontDescription" type="system" pointSize="11"/>
-                                        <color key="textColor" red="1" green="0.54901960780000003" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="752" text="长笛" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="g0Z-7O-ahT">
+                                        <rect key="frame" x="5" y="0.0" width="20" height="17"/>
+                                        <fontDescription key="fontDescription" type="system" pointSize="10"/>
+                                        <color key="textColor" red="1" green="0.5490196078431373" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                         <nil key="highlightedColor"/>
                                     </label>
                                 </subviews>
-                                <color key="backgroundColor" red="1" green="0.94509803920000002" blue="0.87058823529999996" alpha="1" colorSpace="calibratedRGB"/>
+                                <color key="backgroundColor" red="1" green="0.94509803921568625" blue="0.87058823529411766" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <constraints>
                                     <constraint firstAttribute="bottom" secondItem="g0Z-7O-ahT" secondAttribute="bottom" id="D38-fw-jAX"/>
                                     <constraint firstAttribute="trailing" secondItem="g0Z-7O-ahT" secondAttribute="trailing" constant="5" id="N3Z-Rs-lL1"/>
                                     <constraint firstItem="g0Z-7O-ahT" firstAttribute="top" secondItem="2RD-hr-hLB" secondAttribute="top" id="df1-Vz-7wk"/>
-                                    <constraint firstAttribute="height" constant="20" id="dx5-We-4wH"/>
+                                    <constraint firstAttribute="height" constant="17" id="dx5-We-4wH"/>
                                     <constraint firstItem="g0Z-7O-ahT" firstAttribute="leading" secondItem="2RD-hr-hLB" secondAttribute="leading" constant="5" id="liU-VW-wo4"/>
                                 </constraints>
                                 <userDefinedRuntimeAttributes>
@@ -98,41 +99,39 @@
                                     </userDefinedRuntimeAttribute>
                                 </userDefinedRuntimeAttributes>
                             </view>
-                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="dZv-fL-5CE">
-                                <rect key="frame" x="68" y="48" width="40" height="40"/>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="张涵宇" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DjV-Sr-ksB">
+                                <rect key="frame" x="62" y="83" width="39" height="17"/>
                                 <constraints>
-                                    <constraint firstAttribute="height" constant="40" id="DSU-U0-FpE"/>
-                                    <constraint firstAttribute="width" constant="40" id="PGx-kW-17W"/>
+                                    <constraint firstAttribute="height" constant="17" id="cCb-zQ-uMq"/>
                                 </constraints>
-                                <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
-                                <state key="normal" image="course_chat"/>
-                                <connections>
-                                    <action selector="chatAction:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="Mja-PS-NEH"/>
-                                </connections>
-                            </button>
+                                <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                                <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
                         </subviews>
                         <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                         <constraints>
-                            <constraint firstItem="2RD-hr-hLB" firstAttribute="bottom" secondItem="s7E-Da-TcK" secondAttribute="bottom" id="4j8-NG-p8a"/>
                             <constraint firstAttribute="trailing" secondItem="sy0-Ds-ef0" secondAttribute="trailing" constant="11" id="8bf-XE-uBd"/>
                             <constraint firstItem="dYZ-ZA-mKb" firstAttribute="leading" secondItem="Xea-2d-MhT" secondAttribute="trailing" constant="7" id="AaW-vX-a8p"/>
-                            <constraint firstItem="Xea-2d-MhT" firstAttribute="leading" secondItem="Me9-vj-Fhq" secondAttribute="leading" constant="11" id="CBa-w0-UOa"/>
-                            <constraint firstItem="s7E-Da-TcK" firstAttribute="top" secondItem="09K-c6-xYX" secondAttribute="bottom" constant="17" id="Ft4-re-ZDx"/>
-                            <constraint firstItem="Xea-2d-MhT" firstAttribute="top" secondItem="Me9-vj-Fhq" secondAttribute="top" constant="12" id="Nhv-BT-RCR"/>
+                            <constraint firstItem="Xea-2d-MhT" firstAttribute="leading" secondItem="Me9-vj-Fhq" secondAttribute="leading" constant="12" id="CBa-w0-UOa"/>
+                            <constraint firstItem="s7E-Da-TcK" firstAttribute="top" secondItem="09K-c6-xYX" secondAttribute="bottom" constant="12" id="Ft4-re-ZDx"/>
+                            <constraint firstItem="Xea-2d-MhT" firstAttribute="top" secondItem="Me9-vj-Fhq" secondAttribute="top" constant="15" id="Nhv-BT-RCR"/>
                             <constraint firstItem="09K-c6-xYX" firstAttribute="leading" secondItem="Me9-vj-Fhq" secondAttribute="leading" constant="10" id="Oye-BS-j2I"/>
                             <constraint firstItem="dYZ-ZA-mKb" firstAttribute="centerY" secondItem="Xea-2d-MhT" secondAttribute="centerY" id="P1s-2G-pny"/>
                             <constraint firstItem="sy0-Ds-ef0" firstAttribute="centerY" secondItem="dYZ-ZA-mKb" secondAttribute="centerY" id="X9X-7C-53D"/>
-                            <constraint firstItem="dZv-fL-5CE" firstAttribute="leading" secondItem="mNS-6d-8wr" secondAttribute="trailing" id="XgQ-6M-AZe"/>
+                            <constraint firstItem="2RD-hr-hLB" firstAttribute="centerY" secondItem="DjV-Sr-ksB" secondAttribute="centerY" id="Xou-eD-T0J"/>
                             <constraint firstItem="sy0-Ds-ef0" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="dYZ-ZA-mKb" secondAttribute="trailing" constant="10" id="YVK-XV-hev"/>
-                            <constraint firstAttribute="bottom" secondItem="s7E-Da-TcK" secondAttribute="bottom" constant="20" id="a6x-Et-6cK"/>
-                            <constraint firstItem="s7E-Da-TcK" firstAttribute="leading" secondItem="Me9-vj-Fhq" secondAttribute="leading" constant="11" id="dAu-VP-8Cy"/>
+                            <constraint firstItem="s7E-Da-TcK" firstAttribute="leading" secondItem="Me9-vj-Fhq" secondAttribute="leading" constant="12" id="dAu-VP-8Cy"/>
                             <constraint firstItem="mNS-6d-8wr" firstAttribute="leading" secondItem="s7E-Da-TcK" secondAttribute="trailing" constant="10" id="dm3-Jc-bB0"/>
-                            <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="dZv-fL-5CE" secondAttribute="trailing" constant="10" id="gPp-hR-Lcf"/>
-                            <constraint firstItem="2RD-hr-hLB" firstAttribute="leading" secondItem="mNS-6d-8wr" secondAttribute="leading" id="iOB-o4-an5"/>
-                            <constraint firstItem="dZv-fL-5CE" firstAttribute="centerY" secondItem="mNS-6d-8wr" secondAttribute="centerY" id="iZq-rI-A9M"/>
+                            <constraint firstItem="DjV-Sr-ksB" firstAttribute="leading" secondItem="mNS-6d-8wr" secondAttribute="leading" id="e8g-fd-4F1"/>
+                            <constraint firstAttribute="trailing" secondItem="mNS-6d-8wr" secondAttribute="trailing" constant="12" id="ktk-0k-Ug9"/>
                             <constraint firstAttribute="trailing" secondItem="09K-c6-xYX" secondAttribute="trailing" constant="10" id="p00-p1-Cqn"/>
-                            <constraint firstItem="mNS-6d-8wr" firstAttribute="top" secondItem="s7E-Da-TcK" secondAttribute="top" id="u91-Cd-N1a"/>
-                            <constraint firstItem="09K-c6-xYX" firstAttribute="top" secondItem="Xea-2d-MhT" secondAttribute="bottom" constant="10" id="uTr-wS-3kK"/>
+                            <constraint firstAttribute="bottom" secondItem="s7E-Da-TcK" secondAttribute="bottom" constant="12" id="tpb-j8-KIW"/>
+                            <constraint firstItem="mNS-6d-8wr" firstAttribute="top" secondItem="s7E-Da-TcK" secondAttribute="top" constant="-1" id="u91-Cd-N1a"/>
+                            <constraint firstItem="09K-c6-xYX" firstAttribute="top" secondItem="Xea-2d-MhT" secondAttribute="bottom" constant="15" id="uTr-wS-3kK"/>
+                            <constraint firstItem="DjV-Sr-ksB" firstAttribute="bottom" secondItem="s7E-Da-TcK" secondAttribute="bottom" constant="1" id="uot-6r-ukd"/>
+                            <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="2RD-hr-hLB" secondAttribute="trailing" constant="12" id="v88-io-Lqq"/>
+                            <constraint firstItem="2RD-hr-hLB" firstAttribute="leading" secondItem="DjV-Sr-ksB" secondAttribute="trailing" constant="5" id="yaL-J7-1Z2"/>
                         </constraints>
                         <userDefinedRuntimeAttributes>
                             <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
@@ -143,7 +142,7 @@
                 </subviews>
                 <constraints>
                     <constraint firstAttribute="bottom" secondItem="Me9-vj-Fhq" secondAttribute="bottom" constant="12" id="Xsc-EO-bGL"/>
-                    <constraint firstItem="Me9-vj-Fhq" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="10" id="YXp-RV-zfk"/>
+                    <constraint firstItem="Me9-vj-Fhq" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="12" id="YXp-RV-zfk"/>
                     <constraint firstAttribute="trailing" secondItem="Me9-vj-Fhq" secondAttribute="trailing" constant="14" id="atd-gk-0m1"/>
                     <constraint firstItem="Me9-vj-Fhq" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="14" id="g3f-25-gGV"/>
                 </constraints>
@@ -152,18 +151,17 @@
             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
             <connections>
                 <outlet property="avatalHeight" destination="NoH-2D-u0z" id="l7v-q5-J6N"/>
-                <outlet property="chatButton" destination="dZv-fL-5CE" id="AJN-Du-3LN"/>
+                <outlet property="avatar" destination="s7E-Da-TcK" id="EBl-n5-XBb"/>
+                <outlet property="courseName" destination="mNS-6d-8wr" id="WKG-ec-2Wf"/>
                 <outlet property="courseTime" destination="dYZ-ZA-mKb" id="JjR-Me-4kj"/>
+                <outlet property="nameLabel" destination="DjV-Sr-ksB" id="51h-Cr-qK4"/>
                 <outlet property="statusLabel" destination="sy0-Ds-ef0" id="0IK-l7-I3g"/>
-                <outlet property="studentAvatar" destination="s7E-Da-TcK" id="Hat-QP-4o3"/>
-                <outlet property="studentName" destination="mNS-6d-8wr" id="DZl-me-T26"/>
                 <outlet property="studentSubject" destination="g0Z-7O-ahT" id="SsG-hN-q6S"/>
             </connections>
             <point key="canvasLocation" x="165.94202898550725" y="108.48214285714285"/>
         </tableViewCell>
     </objects>
     <resources>
-        <image name="course_chat" width="19" height="18"/>
         <image name="course_time" width="16" height="16"/>
         <image name="teacher_avatar" width="150" height="150"/>
         <systemColor name="systemBackgroundColor">

+ 10 - 3
KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyEvaluateCell.m

@@ -9,11 +9,12 @@
 
 @interface AccompanyEvaluateCell ()
 
+@property (weak, nonatomic) IBOutlet UILabel *tipsMsg;
+
 @property (weak, nonatomic) IBOutlet UIView *emptyView;
 
 @property (weak, nonatomic) IBOutlet UILabel *contentLabel;
 
-
 @end
 
 @implementation AccompanyEvaluateCell
@@ -35,13 +36,19 @@
             self.contentLabel.attributedText = attr;
         }
         else {
-            self.contentLabel.text = @"";
+            self.contentLabel.attributedText = nil;
         }
     }
     else {
         self.emptyView.hidden = NO;
-        self.contentLabel.text = @"";
+        self.contentLabel.attributedText = nil;
     }
+    
+    NSString *tipsDesc = @"老师尚未评价";
+    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
+    [paragraphStyle setLineSpacing:4];//调整行间距
+    NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:tipsDesc attributes:@{NSParagraphStyleAttributeName:paragraphStyle,NSFontAttributeName:[UIFont systemFontOfSize:13.0f],NSForegroundColorAttributeName:HexRGB(0x999999)}];
+    self.tipsMsg.attributedText = attr;
 }
 
 - (void)setSelected:(BOOL)selected animated:(BOOL)animated {

+ 27 - 26
KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyEvaluateCell.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="20037" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" 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="20020"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <capability name="System colors in document resources" minToolsVersion="11.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
@@ -11,21 +11,21 @@
     <objects>
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
-        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="196" id="KGk-i7-Jjw" customClass="AccompanyEvaluateCell">
-            <rect key="frame" x="0.0" y="0.0" width="354" height="196"/>
+        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="150" id="KGk-i7-Jjw" customClass="AccompanyEvaluateCell">
+            <rect key="frame" x="0.0" y="0.0" width="354" height="150"/>
             <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="354" height="196"/>
+                <rect key="frame" x="0.0" y="0.0" width="354" height="150"/>
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3vN-Vj-itp">
-                        <rect key="frame" x="14" y="0.0" width="326" height="184"/>
+                        <rect key="frame" x="14" y="0.0" width="326" height="138"/>
                         <subviews>
                             <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="accell_left" translatesAutoresizingMaskIntoConstraints="NO" id="lLF-ft-OTS">
-                                <rect key="frame" x="11" y="13" width="4" height="18"/>
+                                <rect key="frame" x="11" y="14" width="3" height="12"/>
                             </imageView>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="老师评价" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ksa-Jo-b55">
-                                <rect key="frame" x="20" y="12" width="58" height="20"/>
+                                <rect key="frame" x="19" y="10" width="56" height="20"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="20" id="Avw-hO-qFv"/>
                                 </constraints>
@@ -34,26 +34,26 @@
                                 <nil key="highlightedColor"/>
                             </label>
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="UuA-Bs-h8B">
-                                <rect key="frame" x="11" y="40" width="306" height="134"/>
+                                <rect key="frame" x="11" y="40" width="306" height="88"/>
                                 <subviews>
                                     <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="U8w-lC-fk1">
-                                        <rect key="frame" x="9" y="11" width="291" height="0.0"/>
+                                        <rect key="frame" x="12" y="12" width="282" height="0.0"/>
                                         <fontDescription key="fontDescription" type="system" pointSize="13"/>
                                         <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
                                         <nil key="highlightedColor"/>
                                     </label>
                                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="S3K-5J-eeD">
-                                        <rect key="frame" x="0.0" y="0.0" width="306" height="134"/>
+                                        <rect key="frame" x="0.0" y="0.0" width="306" height="88"/>
                                         <subviews>
                                             <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="teacher_eva_placeholder" translatesAutoresizingMaskIntoConstraints="NO" id="t9e-tH-rcD">
-                                                <rect key="frame" x="33" y="28" width="79" height="78"/>
+                                                <rect key="frame" x="30" y="5" width="78" height="78"/>
                                                 <constraints>
-                                                    <constraint firstAttribute="width" constant="79" id="MC1-fc-dSA"/>
+                                                    <constraint firstAttribute="width" constant="78" id="MC1-fc-dSA"/>
                                                     <constraint firstAttribute="height" constant="78" id="euG-yw-LPW"/>
                                                 </constraints>
                                             </imageView>
                                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" usesAttributedText="YES" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="PXm-gS-uTS">
-                                                <rect key="frame" x="120" y="49.5" width="136" height="35.5"/>
+                                                <rect key="frame" x="119" y="26.5" width="152" height="35.5"/>
                                                 <attributedString key="attributedText">
                                                     <fragment content="课程结束之后老师会对您的学习进行点评喔~">
                                                         <attributes>
@@ -68,24 +68,24 @@
                                         </subviews>
                                         <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                         <constraints>
-                                            <constraint firstItem="t9e-tH-rcD" firstAttribute="leading" secondItem="S3K-5J-eeD" secondAttribute="leading" constant="33" id="Bt8-vx-Q3r"/>
+                                            <constraint firstItem="t9e-tH-rcD" firstAttribute="leading" secondItem="S3K-5J-eeD" secondAttribute="leading" constant="30" id="Bt8-vx-Q3r"/>
                                             <constraint firstItem="PXm-gS-uTS" firstAttribute="centerY" secondItem="S3K-5J-eeD" secondAttribute="centerY" id="VCW-8L-Vye"/>
-                                            <constraint firstItem="PXm-gS-uTS" firstAttribute="leading" secondItem="t9e-tH-rcD" secondAttribute="trailing" constant="8" id="XCc-cW-yfS"/>
-                                            <constraint firstAttribute="trailing" secondItem="PXm-gS-uTS" secondAttribute="trailing" constant="50" id="ssV-Ms-RGn"/>
+                                            <constraint firstItem="PXm-gS-uTS" firstAttribute="leading" secondItem="t9e-tH-rcD" secondAttribute="trailing" constant="11" id="XCc-cW-yfS"/>
+                                            <constraint firstAttribute="trailing" secondItem="PXm-gS-uTS" secondAttribute="trailing" constant="35" id="ssV-Ms-RGn"/>
                                             <constraint firstItem="t9e-tH-rcD" firstAttribute="centerY" secondItem="S3K-5J-eeD" secondAttribute="centerY" id="zxk-jN-tYt"/>
                                         </constraints>
                                     </view>
                                 </subviews>
-                                <color key="backgroundColor" red="0.96862745098039216" green="0.97254901960784312" blue="0.97647058823529409" alpha="1" colorSpace="calibratedRGB"/>
+                                <color key="backgroundColor" red="0.96862745098039216" green="0.97254901960784312" blue="0.97647058823529409" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <constraints>
-                                    <constraint firstItem="U8w-lC-fk1" firstAttribute="top" secondItem="UuA-Bs-h8B" secondAttribute="top" constant="11" id="2jE-g6-KEd"/>
+                                    <constraint firstItem="U8w-lC-fk1" firstAttribute="top" secondItem="UuA-Bs-h8B" secondAttribute="top" constant="12" id="2jE-g6-KEd"/>
                                     <constraint firstAttribute="bottom" secondItem="S3K-5J-eeD" secondAttribute="bottom" id="5p5-El-879"/>
                                     <constraint firstItem="S3K-5J-eeD" firstAttribute="top" secondItem="UuA-Bs-h8B" secondAttribute="top" id="7cu-oT-x1T"/>
-                                    <constraint firstAttribute="bottom" relation="greaterThanOrEqual" secondItem="U8w-lC-fk1" secondAttribute="bottom" constant="5" id="J8r-c3-V56"/>
+                                    <constraint firstAttribute="bottom" relation="greaterThanOrEqual" secondItem="U8w-lC-fk1" secondAttribute="bottom" constant="12" id="J8r-c3-V56"/>
                                     <constraint firstItem="S3K-5J-eeD" firstAttribute="leading" secondItem="UuA-Bs-h8B" secondAttribute="leading" id="JeK-99-vdm"/>
-                                    <constraint firstAttribute="trailing" secondItem="U8w-lC-fk1" secondAttribute="trailing" constant="6" id="KT9-sZ-c8d"/>
+                                    <constraint firstAttribute="trailing" secondItem="U8w-lC-fk1" secondAttribute="trailing" constant="12" id="KT9-sZ-c8d"/>
                                     <constraint firstAttribute="trailing" secondItem="S3K-5J-eeD" secondAttribute="trailing" id="TMQ-F6-3FF"/>
-                                    <constraint firstItem="U8w-lC-fk1" firstAttribute="leading" secondItem="UuA-Bs-h8B" secondAttribute="leading" constant="9" id="d1N-ST-HRP"/>
+                                    <constraint firstItem="U8w-lC-fk1" firstAttribute="leading" secondItem="UuA-Bs-h8B" secondAttribute="leading" constant="12" id="d1N-ST-HRP"/>
                                     <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="88" id="tLV-Ud-O1J"/>
                                 </constraints>
                                 <userDefinedRuntimeAttributes>
@@ -100,11 +100,11 @@
                             <constraint firstItem="ksa-Jo-b55" firstAttribute="centerY" secondItem="lLF-ft-OTS" secondAttribute="centerY" id="4cQ-qj-M1R"/>
                             <constraint firstItem="UuA-Bs-h8B" firstAttribute="leading" secondItem="3vN-Vj-itp" secondAttribute="leading" constant="11" id="4kZ-bC-zD8"/>
                             <constraint firstItem="lLF-ft-OTS" firstAttribute="leading" secondItem="3vN-Vj-itp" secondAttribute="leading" constant="11" id="B3T-Uw-Liq"/>
-                            <constraint firstItem="lLF-ft-OTS" firstAttribute="top" secondItem="3vN-Vj-itp" secondAttribute="top" constant="13" id="P5a-xn-tTc"/>
                             <constraint firstAttribute="bottom" secondItem="UuA-Bs-h8B" secondAttribute="bottom" constant="10" id="PEn-6P-tRY"/>
-                            <constraint firstItem="UuA-Bs-h8B" firstAttribute="top" secondItem="ksa-Jo-b55" secondAttribute="bottom" constant="8" id="dfO-BO-Wpw"/>
+                            <constraint firstItem="UuA-Bs-h8B" firstAttribute="top" secondItem="ksa-Jo-b55" secondAttribute="bottom" constant="10" id="dfO-BO-Wpw"/>
                             <constraint firstAttribute="trailing" secondItem="UuA-Bs-h8B" secondAttribute="trailing" constant="9" id="jWf-Oo-FS8"/>
                             <constraint firstItem="ksa-Jo-b55" firstAttribute="leading" secondItem="lLF-ft-OTS" secondAttribute="trailing" constant="5" id="lg5-g7-Y09"/>
+                            <constraint firstItem="ksa-Jo-b55" firstAttribute="top" secondItem="3vN-Vj-itp" secondAttribute="top" constant="10" id="qVZ-zN-yYL"/>
                         </constraints>
                         <userDefinedRuntimeAttributes>
                             <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
@@ -125,13 +125,14 @@
             <connections>
                 <outlet property="contentLabel" destination="U8w-lC-fk1" id="u3c-7s-8cR"/>
                 <outlet property="emptyView" destination="S3K-5J-eeD" id="oee-sK-UVk"/>
+                <outlet property="tipsMsg" destination="PXm-gS-uTS" id="uHx-Xd-Vgp"/>
             </connections>
             <point key="canvasLocation" x="155.07246376811597" y="127.90178571428571"/>
         </tableViewCell>
     </objects>
     <resources>
-        <image name="accell_left" width="4" height="18"/>
-        <image name="teacher_eva_placeholder" width="79" height="78"/>
+        <image name="accell_left" width="3" height="12"/>
+        <image name="teacher_eva_placeholder" width="78" height="78"/>
         <systemColor name="systemBackgroundColor">
             <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
         </systemColor>

+ 3 - 3
KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyHomeworkCell.m

@@ -44,7 +44,7 @@
                 self.emptyView.hidden = NO;
                 NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
                 [paragraphStyle setLineSpacing:4];//调整行间距
-                NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:@"尚未提交作业哦~" attributes:@{NSParagraphStyleAttributeName:paragraphStyle,NSFontAttributeName:[UIFont systemFontOfSize:13.0f],NSForegroundColorAttributeName:HexRGB(0x999999)}];
+                NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:@"您暂未上传作业视频" attributes:@{NSParagraphStyleAttributeName:paragraphStyle,NSFontAttributeName:[UIFont systemFontOfSize:13.0f],NSForegroundColorAttributeName:HexRGB(0x999999)}];
                 self.emptyDescLabel.attributedText = attr;
             }
             else {
@@ -66,7 +66,7 @@
             attr = [[NSMutableAttributedString alloc] initWithString:@"作业已过期无法提交和查看!" attributes:@{NSParagraphStyleAttributeName:paragraphStyle,NSFontAttributeName:[UIFont systemFontOfSize:13.0f],NSForegroundColorAttributeName:HexRGB(0x999999)}];
         }
         else {
-            attr = [[NSMutableAttributedString alloc] initWithString:@"课程结束之后可上传视频作业" attributes:@{NSParagraphStyleAttributeName:paragraphStyle,NSFontAttributeName:[UIFont systemFontOfSize:13.0f],NSForegroundColorAttributeName:HexRGB(0x999999)}];
+            attr = [[NSMutableAttributedString alloc] initWithString:@"您暂未上传作业视频" attributes:@{NSParagraphStyleAttributeName:paragraphStyle,NSFontAttributeName:[UIFont systemFontOfSize:13.0f],NSForegroundColorAttributeName:HexRGB(0x999999)}];
             
         }
         self.emptyDescLabel.attributedText = attr;
@@ -74,7 +74,7 @@
 }
 
 - (void)configVideoViewWithSource:(NSMutableArray *)fileArray {
-    CGFloat maxWidth = kScreenWidth - 24 - 20;
+    CGFloat maxWidth = kScreenWidth - 24 - 24;
     CGFloat space = 0;
     CGFloat width = (maxWidth - space * 2) / 3.0f;
     CGFloat height = 92.0f;

+ 36 - 36
KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyHomeworkCell.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="20037" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" 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="20020"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <capability name="System colors in document resources" minToolsVersion="11.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
@@ -11,47 +11,47 @@
     <objects>
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
-        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="204" id="KGk-i7-Jjw" customClass="AccompanyHomeworkCell">
-            <rect key="frame" x="0.0" y="0.0" width="364" height="204"/>
+        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="150" id="KGk-i7-Jjw" customClass="AccompanyHomeworkCell">
+            <rect key="frame" x="0.0" y="0.0" width="364" height="150"/>
             <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="364" height="204"/>
+                <rect key="frame" x="0.0" y="0.0" width="364" height="150"/>
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="dtq-Yd-b5t">
-                        <rect key="frame" x="14" y="0.0" width="336" height="192"/>
+                        <rect key="frame" x="14" y="0.0" width="336" height="138"/>
                         <subviews>
                             <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="accell_left" translatesAutoresizingMaskIntoConstraints="NO" id="1fO-1K-g2U">
-                                <rect key="frame" x="11" y="13" width="4" height="18"/>
+                                <rect key="frame" x="12" y="14" width="3" height="12"/>
                             </imageView>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="视频作业" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="sJu-iK-25U">
-                                <rect key="frame" x="20" y="12" width="58" height="20"/>
+                                <rect key="frame" x="20" y="10" width="56" height="20"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="20" id="3jD-tp-tJm"/>
                                 </constraints>
                                 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
-                                <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="EwC-zg-aiZ">
-                                <rect key="frame" x="11" y="40" width="316" height="142"/>
+                                <rect key="frame" x="12" y="40" width="312" height="88"/>
                                 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                             </view>
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="0zy-PX-mCI">
-                                <rect key="frame" x="11" y="40" width="316" height="142"/>
+                                <rect key="frame" x="12" y="40" width="312" height="88"/>
                                 <subviews>
                                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="O89-iL-xU2">
-                                        <rect key="frame" x="0.0" y="0.0" width="316" height="142"/>
+                                        <rect key="frame" x="0.0" y="0.0" width="312" height="88"/>
                                         <subviews>
                                             <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="homeworkVideo_placeholder" translatesAutoresizingMaskIntoConstraints="NO" id="bLX-aR-bAP">
-                                                <rect key="frame" x="33" y="32" width="79" height="78"/>
+                                                <rect key="frame" x="33" y="5" width="78" height="78"/>
                                                 <constraints>
                                                     <constraint firstAttribute="height" constant="78" id="Hpe-hS-lAP"/>
-                                                    <constraint firstAttribute="width" constant="79" id="aWC-Pr-Ddt"/>
+                                                    <constraint firstAttribute="width" constant="78" id="aWC-Pr-Ddt"/>
                                                 </constraints>
                                             </imageView>
                                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" usesAttributedText="YES" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xV1-w2-nqO">
-                                                <rect key="frame" x="120" y="53.5" width="146" height="35.5"/>
+                                                <rect key="frame" x="122" y="26.5" width="155" height="35.5"/>
                                                 <attributedString key="attributedText">
                                                     <fragment content="课程结束之后可上传视频作业">
                                                         <attributes>
@@ -66,15 +66,15 @@
                                         </subviews>
                                         <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                         <constraints>
-                                            <constraint firstAttribute="trailing" secondItem="xV1-w2-nqO" secondAttribute="trailing" constant="50" id="8Iy-eb-oui"/>
+                                            <constraint firstAttribute="trailing" secondItem="xV1-w2-nqO" secondAttribute="trailing" constant="35" id="8Iy-eb-oui"/>
                                             <constraint firstItem="bLX-aR-bAP" firstAttribute="centerY" secondItem="O89-iL-xU2" secondAttribute="centerY" id="hrH-63-pil"/>
                                             <constraint firstItem="bLX-aR-bAP" firstAttribute="leading" secondItem="O89-iL-xU2" secondAttribute="leading" constant="33" id="o6S-TQ-YzT"/>
-                                            <constraint firstItem="xV1-w2-nqO" firstAttribute="leading" secondItem="bLX-aR-bAP" secondAttribute="trailing" constant="8" id="r6Y-hX-87F"/>
+                                            <constraint firstItem="xV1-w2-nqO" firstAttribute="leading" secondItem="bLX-aR-bAP" secondAttribute="trailing" constant="11" id="r6Y-hX-87F"/>
                                             <constraint firstItem="xV1-w2-nqO" firstAttribute="centerY" secondItem="O89-iL-xU2" secondAttribute="centerY" id="tJl-Zn-ULW"/>
                                         </constraints>
                                     </view>
                                 </subviews>
-                                <color key="backgroundColor" red="0.96862745100000003" green="0.97254901959999995" blue="0.97647058819999999" alpha="1" colorSpace="calibratedRGB"/>
+                                <color key="backgroundColor" red="0.96862745098039216" green="0.97254901960784312" blue="0.97647058823529409" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <constraints>
                                     <constraint firstAttribute="trailing" secondItem="O89-iL-xU2" secondAttribute="trailing" id="HQp-bb-AtX"/>
                                     <constraint firstItem="O89-iL-xU2" firstAttribute="leading" secondItem="0zy-PX-mCI" secondAttribute="leading" id="S2b-yI-RdW"/>
@@ -88,24 +88,24 @@
                                     </userDefinedRuntimeAttribute>
                                 </userDefinedRuntimeAttributes>
                             </view>
-                            <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="nhC-wd-ZZb">
-                                <rect key="frame" x="246.5" y="5" width="78.5" height="34"/>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="nhC-wd-ZZb">
+                                <rect key="frame" x="246" y="3" width="78" height="34"/>
                                 <subviews>
                                     <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="arrangement_homework" translatesAutoresizingMaskIntoConstraints="NO" id="BKW-5Q-EbZ">
-                                        <rect key="frame" x="5" y="10.5" width="15" height="13"/>
+                                        <rect key="frame" x="5" y="10" width="14" height="14"/>
                                         <constraints>
-                                            <constraint firstAttribute="width" constant="15" id="Re1-DU-De2"/>
-                                            <constraint firstAttribute="height" constant="13" id="s2X-ok-S0M"/>
+                                            <constraint firstAttribute="width" constant="14" id="Re1-DU-De2"/>
+                                            <constraint firstAttribute="height" constant="14" id="s2X-ok-S0M"/>
                                         </constraints>
                                     </imageView>
                                     <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="提交作业" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cWn-RR-Eh7">
-                                        <rect key="frame" x="21" y="8.5" width="57.5" height="17"/>
+                                        <rect key="frame" x="22" y="8.5" width="56" height="17"/>
                                         <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
-                                        <color key="textColor" red="0.1764705882" green="0.78039215689999997" blue="0.66666666669999997" alpha="1" colorSpace="calibratedRGB"/>
+                                        <color key="textColor" red="0.1764705882352941" green="0.7803921568627451" blue="0.66666666666666663" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                         <nil key="highlightedColor"/>
                                     </label>
                                     <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="CsH-Z5-2y4">
-                                        <rect key="frame" x="0.0" y="0.0" width="78.5" height="34"/>
+                                        <rect key="frame" x="0.0" y="0.0" width="78" height="34"/>
                                         <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                         <connections>
                                             <action selector="toHomeworkDetail:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="WMx-Am-RRv"/>
@@ -119,7 +119,7 @@
                                     <constraint firstAttribute="trailing" secondItem="cWn-RR-Eh7" secondAttribute="trailing" id="Hd0-8C-9NC"/>
                                     <constraint firstItem="CsH-Z5-2y4" firstAttribute="leading" secondItem="nhC-wd-ZZb" secondAttribute="leading" id="Mfj-OI-7Ae"/>
                                     <constraint firstAttribute="trailing" secondItem="CsH-Z5-2y4" secondAttribute="trailing" id="P3Z-a7-26e"/>
-                                    <constraint firstItem="cWn-RR-Eh7" firstAttribute="leading" secondItem="BKW-5Q-EbZ" secondAttribute="trailing" constant="1" id="a5D-tp-APk"/>
+                                    <constraint firstItem="cWn-RR-Eh7" firstAttribute="leading" secondItem="BKW-5Q-EbZ" secondAttribute="trailing" constant="3" id="a5D-tp-APk"/>
                                     <constraint firstAttribute="bottom" secondItem="CsH-Z5-2y4" secondAttribute="bottom" id="ik3-qf-7J6"/>
                                     <constraint firstItem="BKW-5Q-EbZ" firstAttribute="leading" secondItem="nhC-wd-ZZb" secondAttribute="leading" constant="5" id="jns-4e-RR2"/>
                                     <constraint firstItem="cWn-RR-Eh7" firstAttribute="centerY" secondItem="nhC-wd-ZZb" secondAttribute="centerY" id="pUW-PG-h2F"/>
@@ -128,20 +128,20 @@
                         </subviews>
                         <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                         <constraints>
-                            <constraint firstAttribute="trailing" secondItem="nhC-wd-ZZb" secondAttribute="trailing" constant="11" id="11a-ef-nfL"/>
+                            <constraint firstAttribute="trailing" secondItem="nhC-wd-ZZb" secondAttribute="trailing" constant="12" id="11a-ef-nfL"/>
                             <constraint firstItem="nhC-wd-ZZb" firstAttribute="centerY" secondItem="sJu-iK-25U" secondAttribute="centerY" id="1mm-5t-S0T"/>
                             <constraint firstItem="0zy-PX-mCI" firstAttribute="trailing" secondItem="EwC-zg-aiZ" secondAttribute="trailing" id="70p-E3-NeF"/>
+                            <constraint firstItem="sJu-iK-25U" firstAttribute="top" secondItem="dtq-Yd-b5t" secondAttribute="top" constant="10" id="8xF-zd-teD"/>
                             <constraint firstAttribute="bottom" secondItem="0zy-PX-mCI" secondAttribute="bottom" constant="10" id="F6N-7x-aaL"/>
                             <constraint firstItem="sJu-iK-25U" firstAttribute="leading" secondItem="1fO-1K-g2U" secondAttribute="trailing" constant="5" id="eUo-qr-eCq"/>
-                            <constraint firstItem="0zy-PX-mCI" firstAttribute="leading" secondItem="dtq-Yd-b5t" secondAttribute="leading" constant="11" id="hOV-oC-FPR"/>
-                            <constraint firstItem="1fO-1K-g2U" firstAttribute="leading" secondItem="dtq-Yd-b5t" secondAttribute="leading" constant="11" id="hrI-hU-381"/>
+                            <constraint firstItem="0zy-PX-mCI" firstAttribute="leading" secondItem="dtq-Yd-b5t" secondAttribute="leading" constant="12" id="hOV-oC-FPR"/>
+                            <constraint firstItem="1fO-1K-g2U" firstAttribute="leading" secondItem="dtq-Yd-b5t" secondAttribute="leading" constant="12" id="hrI-hU-381"/>
                             <constraint firstItem="0zy-PX-mCI" firstAttribute="leading" secondItem="EwC-zg-aiZ" secondAttribute="leading" id="j8s-Lv-sdz"/>
                             <constraint firstItem="0zy-PX-mCI" firstAttribute="bottom" secondItem="EwC-zg-aiZ" secondAttribute="bottom" id="jr8-M4-buE"/>
-                            <constraint firstItem="1fO-1K-g2U" firstAttribute="top" secondItem="dtq-Yd-b5t" secondAttribute="top" constant="13" id="oA4-Nz-L8o"/>
                             <constraint firstItem="sJu-iK-25U" firstAttribute="centerY" secondItem="1fO-1K-g2U" secondAttribute="centerY" id="pIn-T0-aBu"/>
-                            <constraint firstItem="0zy-PX-mCI" firstAttribute="top" secondItem="sJu-iK-25U" secondAttribute="bottom" constant="8" id="rcZ-bR-wHe"/>
+                            <constraint firstItem="0zy-PX-mCI" firstAttribute="top" secondItem="sJu-iK-25U" secondAttribute="bottom" constant="10" id="rcZ-bR-wHe"/>
                             <constraint firstItem="0zy-PX-mCI" firstAttribute="top" secondItem="EwC-zg-aiZ" secondAttribute="top" id="w8p-y6-gXb"/>
-                            <constraint firstAttribute="trailing" secondItem="0zy-PX-mCI" secondAttribute="trailing" constant="9" id="wuB-Na-rgf"/>
+                            <constraint firstAttribute="trailing" secondItem="0zy-PX-mCI" secondAttribute="trailing" constant="12" id="wuB-Na-rgf"/>
                         </constraints>
                         <userDefinedRuntimeAttributes>
                             <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
@@ -169,9 +169,9 @@
         </tableViewCell>
     </objects>
     <resources>
-        <image name="accell_left" width="4" height="18"/>
-        <image name="arrangement_homework" width="15" height="13"/>
-        <image name="homeworkVideo_placeholder" width="79" height="78"/>
+        <image name="accell_left" width="3" height="12"/>
+        <image name="arrangement_homework" width="14" height="14"/>
+        <image name="homeworkVideo_placeholder" width="78" height="78"/>
         <systemColor name="systemBackgroundColor">
             <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
         </systemColor>

+ 28 - 0
KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyNavView.h

@@ -0,0 +1,28 @@
+//
+//  AccompanyNavView.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/4/6.
+//
+
+#import <UIKit/UIKit.h>
+
+typedef void(^AccompanyNavCallback)(void);
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface AccompanyNavView : UIView
+
+@property (weak, nonatomic) IBOutlet UIView *headView;
+
++ (instancetype)shareInstance;
+
+- (void)configNavTitle:(NSString *)navTitle;
+
+- (void)navCallback:(AccompanyNavCallback)callback;
+
+- (CGFloat)getViewHeight;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 63 - 0
KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyNavView.m

@@ -0,0 +1,63 @@
+//
+//  AccompanyNavView.m
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/4/6.
+//
+
+#import "AccompanyNavView.h"
+
+@interface AccompanyNavView ()
+
+@property (weak, nonatomic) IBOutlet UILabel *navTitlteLabel;
+
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *topSpace;
+
+@property (nonatomic, copy) AccompanyNavCallback callback;
+@end
+
+@implementation AccompanyNavView
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    self.topSpace.constant = kNaviBarHeight - 44;
+}
+
++ (instancetype)shareInstance {
+    AccompanyNavView *view = [[[NSBundle mainBundle] loadNibNamed:@"AccompanyNavView" owner:nil options:nil] firstObject];
+    return view;
+}
+
+- (void)configNavTitle:(NSString *)navTitle {
+    if (![NSString isEmptyString:navTitle]) {
+        self.navTitlteLabel.text = navTitle;
+    }
+}
+
+- (void)navCallback:(AccompanyNavCallback)callback {
+    if (callback) {
+        self.callback = callback;
+    }
+}
+
+- (CGFloat)getViewHeight {
+    UIImage *bgImage = [UIImage imageNamed:@"course_nav"];
+    CGFloat height = bgImage.size.height / bgImage.size.width * KPortraitWidth;
+    return height;
+}
+
+- (IBAction)backAction:(id)sender {
+    if (self.callback) {
+        self.callback();
+    }
+}
+
+/*
+// Only override drawRect: if you perform custom drawing.
+// An empty implementation adversely affects performance during animation.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+
+@end

+ 85 - 0
KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyNavView.xib

@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+    <device id="retina6_1" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
+        <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"/>
+        <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="AccompanyNavView">
+            <rect key="frame" x="0.0" y="0.0" width="479" height="336"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <subviews>
+                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="course_nav" translatesAutoresizingMaskIntoConstraints="NO" id="K6E-jb-GFY">
+                    <rect key="frame" x="0.0" y="0.0" width="479" height="336"/>
+                    <constraints>
+                        <constraint firstAttribute="width" secondItem="K6E-jb-GFY" secondAttribute="height" multiplier="375:263" id="l5h-9m-Qan"/>
+                    </constraints>
+                </imageView>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="BD6-Im-OWN">
+                    <rect key="frame" x="0.0" y="44" width="479" height="44"/>
+                    <subviews>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="back_button_white" translatesAutoresizingMaskIntoConstraints="NO" id="bol-SB-EKJ">
+                            <rect key="frame" x="15" y="12" width="12" height="20"/>
+                        </imageView>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="EKq-We-B8h">
+                            <rect key="frame" x="0.0" y="2" width="40" height="40"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="40" id="Tvm-S8-wcl"/>
+                                <constraint firstAttribute="height" constant="40" id="bhM-2b-Y0G"/>
+                            </constraints>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <connections>
+                                <action selector="backAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="8TQ-wL-Jms"/>
+                            </connections>
+                        </button>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="课程详情" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vpe-Me-cJ2">
+                            <rect key="frame" x="204" y="9.5" width="71.5" height="25"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="25" id="4Cv-A0-qPh"/>
+                            </constraints>
+                            <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="18"/>
+                            <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                    </subviews>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    <constraints>
+                        <constraint firstItem="vpe-Me-cJ2" firstAttribute="centerX" secondItem="BD6-Im-OWN" secondAttribute="centerX" id="CML-Av-rD1"/>
+                        <constraint firstItem="vpe-Me-cJ2" firstAttribute="centerY" secondItem="EKq-We-B8h" secondAttribute="centerY" id="HQB-Pd-s3V"/>
+                        <constraint firstItem="EKq-We-B8h" firstAttribute="centerY" secondItem="bol-SB-EKJ" secondAttribute="centerY" id="L4D-wW-zCL"/>
+                        <constraint firstItem="EKq-We-B8h" firstAttribute="leading" secondItem="BD6-Im-OWN" secondAttribute="leading" id="bLx-yC-Xha"/>
+                        <constraint firstAttribute="height" constant="44" id="kPg-7i-RHD"/>
+                        <constraint firstItem="bol-SB-EKJ" firstAttribute="leading" secondItem="BD6-Im-OWN" secondAttribute="leading" constant="15" id="sO8-PY-Gn8"/>
+                        <constraint firstItem="bol-SB-EKJ" firstAttribute="centerY" secondItem="BD6-Im-OWN" secondAttribute="centerY" id="vmb-4o-1mG"/>
+                    </constraints>
+                </view>
+            </subviews>
+            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+            <constraints>
+                <constraint firstItem="K6E-jb-GFY" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="1UM-TD-b8M"/>
+                <constraint firstItem="K6E-jb-GFY" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="63P-6n-3iK"/>
+                <constraint firstItem="BD6-Im-OWN" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="W3P-Tp-C5F"/>
+                <constraint firstItem="BD6-Im-OWN" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="44" id="jRm-M1-ghm"/>
+                <constraint firstAttribute="trailing" secondItem="K6E-jb-GFY" secondAttribute="trailing" id="x9r-HK-CnN"/>
+                <constraint firstAttribute="trailing" secondItem="BD6-Im-OWN" secondAttribute="trailing" id="xme-F1-cgu"/>
+            </constraints>
+            <nil key="simulatedTopBarMetrics"/>
+            <nil key="simulatedBottomBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <connections>
+                <outlet property="headView" destination="BD6-Im-OWN" id="yag-Wr-Lhf"/>
+                <outlet property="navTitlteLabel" destination="vpe-Me-cJ2" id="tEf-8P-SGo"/>
+                <outlet property="topSpace" destination="jRm-M1-ghm" id="INY-gc-E0f"/>
+            </connections>
+            <point key="canvasLocation" x="178.98550724637681" y="-109.82142857142857"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="back_button_white" width="12" height="20"/>
+        <image name="course_nav" width="375" height="263"/>
+    </resources>
+</document>

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyRemarkCell.h

@@ -12,7 +12,7 @@ NS_ASSUME_NONNULL_BEGIN
 
 @interface AccompanyRemarkCell : UITableViewCell
 
-- (void)configWithRemarkMessage:(NSString *)remarkMessage hasEvaluate:(BOOL)hasEvaluate;
+- (void)configWithRemarkMessage:(NSString *)remarkMessage hasEvaluate:(BOOL)hasEvaluate hasSubmitHomework:(BOOL)hasSubmit;
 
 @end
 

+ 19 - 3
KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyRemarkCell.m

@@ -9,6 +9,8 @@
 
 @interface AccompanyRemarkCell ()
 
+@property (weak, nonatomic) IBOutlet UILabel *tipsMsg;
+
 @property (weak, nonatomic) IBOutlet UIView *emptyView;
 
 @property (weak, nonatomic) IBOutlet UILabel *contentLabel;
@@ -24,7 +26,7 @@
     self.selectionStyle = UITableViewCellSelectionStyleNone;
 }
 
-- (void)configWithRemarkMessage:(NSString *)evaluateMessage hasEvaluate:(BOOL)hasEvaluate {
+- (void)configWithRemarkMessage:(NSString *)evaluateMessage hasEvaluate:(BOOL)hasEvaluate hasSubmitHomework:(BOOL)hasSubmit {
 
     if (hasEvaluate) {
         self.emptyView.hidden = YES;
@@ -35,13 +37,27 @@
             self.contentLabel.attributedText = attr;
         }
         else {
-            self.contentLabel.text = @"";
+            self.contentLabel.attributedText = nil;
         }
     }
     else {
         self.emptyView.hidden = NO;
-        self.contentLabel.text = @"";
+        self.contentLabel.attributedText = nil;
+    }
+    
+    NSString *tipsDesc = nil;
+    if (hasSubmit) {
+        tipsDesc = @"老师尚未点评作业";
+    }
+    else {
+        tipsDesc = @"上传作业视频后可老师才能进行点评哦";
     }
+    
+    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
+    [paragraphStyle setLineSpacing:4];//调整行间距
+    NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:tipsDesc attributes:@{NSParagraphStyleAttributeName:paragraphStyle,NSFontAttributeName:[UIFont systemFontOfSize:13.0f],NSForegroundColorAttributeName:HexRGB(0x999999)}];
+    self.tipsMsg.attributedText = attr;
+    
 }
 
 

+ 26 - 25
KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyRemarkCell.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22505" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" 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="22504"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <capability name="System colors in document resources" minToolsVersion="11.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
@@ -12,48 +12,48 @@
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
         <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="221" id="KGk-i7-Jjw" customClass="AccompanyRemarkCell">
-            <rect key="frame" x="0.0" y="0.0" width="375" height="221"/>
+            <rect key="frame" x="0.0" y="0.0" width="375" height="150"/>
             <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="375" height="221"/>
+                <rect key="frame" x="0.0" y="0.0" width="375" height="150"/>
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="qyw-41-OgZ">
-                        <rect key="frame" x="14" y="0.0" width="347" height="209"/>
+                        <rect key="frame" x="14" y="0.0" width="347" height="138"/>
                         <subviews>
                             <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="accell_left" translatesAutoresizingMaskIntoConstraints="NO" id="Nmt-3B-GQh">
-                                <rect key="frame" x="11" y="13" width="4" height="18"/>
+                                <rect key="frame" x="12" y="14" width="3" height="12"/>
                             </imageView>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="作业点评" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Lof-Tc-krl">
-                                <rect key="frame" x="20" y="12" width="58" height="20"/>
+                                <rect key="frame" x="20" y="10" width="56" height="20"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="20" id="FEC-1Y-gGm"/>
                                 </constraints>
                                 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
-                                <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ehC-4r-0Vt">
-                                <rect key="frame" x="11" y="40" width="327" height="159"/>
+                                <rect key="frame" x="12" y="40" width="323" height="88"/>
                                 <subviews>
                                     <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fGD-VY-opX">
-                                        <rect key="frame" x="9" y="11" width="312" height="0.0"/>
+                                        <rect key="frame" x="12" y="12" width="299" height="0.0"/>
                                         <fontDescription key="fontDescription" type="system" pointSize="13"/>
                                         <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
                                         <nil key="highlightedColor"/>
                                     </label>
                                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="W9z-ye-Ww2">
-                                        <rect key="frame" x="0.0" y="0.0" width="327" height="159"/>
+                                        <rect key="frame" x="0.0" y="0.0" width="323" height="88"/>
                                         <subviews>
                                             <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="homework_eva" translatesAutoresizingMaskIntoConstraints="NO" id="44c-14-lXI">
-                                                <rect key="frame" x="33" y="40.5" width="79" height="78"/>
+                                                <rect key="frame" x="33" y="5" width="79" height="78"/>
                                                 <constraints>
                                                     <constraint firstAttribute="height" constant="78" id="3IW-Vv-GOP"/>
                                                     <constraint firstAttribute="width" constant="79" id="bln-k4-dPI"/>
                                                 </constraints>
                                             </imageView>
                                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" usesAttributedText="YES" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="M7Y-he-HQe">
-                                                <rect key="frame" x="120" y="62.5" width="157" height="34.5"/>
+                                                <rect key="frame" x="120" y="27" width="153" height="34.5"/>
                                                 <attributedString key="attributedText">
                                                     <fragment content="课程结束后上传作业视频会得到老师点评喔~">
                                                         <attributes>
@@ -76,14 +76,14 @@
                                         </constraints>
                                     </view>
                                 </subviews>
-                                <color key="backgroundColor" red="0.96862745098039216" green="0.97254901960784312" blue="0.97647058823529409" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
+                                <color key="backgroundColor" red="0.96862745098039216" green="0.97254901960784312" blue="0.97647058823529409" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <constraints>
-                                    <constraint firstItem="fGD-VY-opX" firstAttribute="top" secondItem="ehC-4r-0Vt" secondAttribute="top" constant="11" id="5qP-C3-ls4"/>
-                                    <constraint firstAttribute="bottom" relation="greaterThanOrEqual" secondItem="fGD-VY-opX" secondAttribute="bottom" constant="5" id="97b-0p-hN7"/>
-                                    <constraint firstItem="fGD-VY-opX" firstAttribute="leading" secondItem="ehC-4r-0Vt" secondAttribute="leading" constant="9" id="HQP-RH-aK1"/>
+                                    <constraint firstItem="fGD-VY-opX" firstAttribute="top" secondItem="ehC-4r-0Vt" secondAttribute="top" constant="12" id="5qP-C3-ls4"/>
+                                    <constraint firstAttribute="bottom" relation="greaterThanOrEqual" secondItem="fGD-VY-opX" secondAttribute="bottom" constant="12" id="97b-0p-hN7"/>
+                                    <constraint firstItem="fGD-VY-opX" firstAttribute="leading" secondItem="ehC-4r-0Vt" secondAttribute="leading" constant="12" id="HQP-RH-aK1"/>
                                     <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="88" id="L9X-hq-5Cj"/>
                                     <constraint firstItem="W9z-ye-Ww2" firstAttribute="top" secondItem="ehC-4r-0Vt" secondAttribute="top" id="LmU-3Z-TK6"/>
-                                    <constraint firstAttribute="trailing" secondItem="fGD-VY-opX" secondAttribute="trailing" constant="6" id="NvZ-6s-hae"/>
+                                    <constraint firstAttribute="trailing" secondItem="fGD-VY-opX" secondAttribute="trailing" constant="12" id="NvZ-6s-hae"/>
                                     <constraint firstItem="W9z-ye-Ww2" firstAttribute="leading" secondItem="ehC-4r-0Vt" secondAttribute="leading" id="TG2-AT-S1D"/>
                                     <constraint firstAttribute="trailing" secondItem="W9z-ye-Ww2" secondAttribute="trailing" id="b8y-80-QsT"/>
                                     <constraint firstAttribute="bottom" secondItem="W9z-ye-Ww2" secondAttribute="bottom" id="eNf-PG-4d5"/>
@@ -97,14 +97,14 @@
                         </subviews>
                         <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                         <constraints>
-                            <constraint firstItem="Nmt-3B-GQh" firstAttribute="leading" secondItem="qyw-41-OgZ" secondAttribute="leading" constant="11" id="1vg-Xu-dly"/>
+                            <constraint firstItem="Nmt-3B-GQh" firstAttribute="leading" secondItem="qyw-41-OgZ" secondAttribute="leading" constant="12" id="1vg-Xu-dly"/>
                             <constraint firstItem="Lof-Tc-krl" firstAttribute="centerY" secondItem="Nmt-3B-GQh" secondAttribute="centerY" id="855-0U-TnZ"/>
-                            <constraint firstItem="Nmt-3B-GQh" firstAttribute="top" secondItem="qyw-41-OgZ" secondAttribute="top" constant="13" id="Hlw-dV-esz"/>
                             <constraint firstItem="Lof-Tc-krl" firstAttribute="leading" secondItem="Nmt-3B-GQh" secondAttribute="trailing" constant="5" id="U3l-C1-sla"/>
-                            <constraint firstAttribute="trailing" secondItem="ehC-4r-0Vt" secondAttribute="trailing" constant="9" id="UGg-Vv-yct"/>
-                            <constraint firstItem="ehC-4r-0Vt" firstAttribute="top" secondItem="Lof-Tc-krl" secondAttribute="bottom" constant="8" id="c4A-7V-3jf"/>
+                            <constraint firstAttribute="trailing" secondItem="ehC-4r-0Vt" secondAttribute="trailing" constant="12" id="UGg-Vv-yct"/>
+                            <constraint firstItem="Lof-Tc-krl" firstAttribute="top" secondItem="qyw-41-OgZ" secondAttribute="top" constant="10" id="Vke-kL-doW"/>
+                            <constraint firstItem="ehC-4r-0Vt" firstAttribute="top" secondItem="Lof-Tc-krl" secondAttribute="bottom" constant="10" id="c4A-7V-3jf"/>
                             <constraint firstAttribute="bottom" secondItem="ehC-4r-0Vt" secondAttribute="bottom" constant="10" id="ghc-VL-2mE"/>
-                            <constraint firstItem="ehC-4r-0Vt" firstAttribute="leading" secondItem="qyw-41-OgZ" secondAttribute="leading" constant="11" id="lg4-q3-Py7"/>
+                            <constraint firstItem="ehC-4r-0Vt" firstAttribute="leading" secondItem="qyw-41-OgZ" secondAttribute="leading" constant="12" id="lg4-q3-Py7"/>
                         </constraints>
                         <userDefinedRuntimeAttributes>
                             <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
@@ -125,13 +125,14 @@
             <connections>
                 <outlet property="contentLabel" destination="fGD-VY-opX" id="2nt-wP-TPs"/>
                 <outlet property="emptyView" destination="W9z-ye-Ww2" id="RYX-4Q-Ecb"/>
+                <outlet property="tipsMsg" destination="M7Y-he-HQe" id="TFz-0Y-r1q"/>
             </connections>
             <point key="canvasLocation" x="131.15942028985509" y="101.45089285714285"/>
         </tableViewCell>
     </objects>
     <resources>
-        <image name="accell_left" width="4" height="18"/>
-        <image name="homework_eva" width="79" height="78"/>
+        <image name="accell_left" width="3" height="12"/>
+        <image name="homework_eva" width="78" height="78"/>
         <systemColor name="systemBackgroundColor">
             <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
         </systemColor>

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyStudentEvaCell.h

@@ -13,7 +13,7 @@ NS_ASSUME_NONNULL_BEGIN
 
 @interface AccompanyStudentEvaCell : UITableViewCell
 
-- (void)configWithEvaluateMessage:(NSString *)evaluateMessage starNum:(NSInteger)starNum hasEvaluate:(BOOL)hasEvaluate callback:(CourseEvaluateCallback)callback;
+- (void)configWithEvaluateMessage:(NSString *)evaluateMessage courseStatus:(NSString *)courseStatus starNum:(NSInteger)starNum hasEvaluate:(BOOL)hasEvaluate callback:(CourseEvaluateCallback)callback;
 
 @end
 

+ 31 - 15
KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyStudentEvaCell.m

@@ -10,6 +10,8 @@
 
 @interface AccompanyStudentEvaCell ()
 
+@property (weak, nonatomic) IBOutlet UILabel *tipsMsg;
+
 @property (weak, nonatomic) IBOutlet UIView *emptyView;
 
 @property (weak, nonatomic) IBOutlet KSStarView *starView;
@@ -28,33 +30,47 @@
     // Initialization code
     self.selectionStyle = UITableViewCellSelectionStyleNone;
     self.starView.allowMark = NO;
+    self.starView.hidden = YES; // 隐藏星级
 }
 
-- (void)configWithEvaluateMessage:(NSString *)evaluateMessage starNum:(NSInteger)starNum hasEvaluate:(BOOL)hasEvaluate callback:(CourseEvaluateCallback)callback {
+- (void)configWithEvaluateMessage:(NSString *)evaluateMessage courseStatus:(NSString *)courseStatus starNum:(NSInteger)starNum hasEvaluate:(BOOL)hasEvaluate callback:(CourseEvaluateCallback)callback {
     if (callback) {
         self.callback = callback;
     }
-    if (hasEvaluate) {
-        self.emptyView.hidden = YES;
-        self.starView.hidden = NO;
-        self.evaluateView.hidden = YES;
-        self.starView.rate = starNum / 5.0f;
-        if (![NSString isEmptyString:evaluateMessage]) {
-            NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
-            [paragraphStyle setLineSpacing:4];//调整行间距
-            NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:evaluateMessage attributes:@{NSParagraphStyleAttributeName:paragraphStyle,NSFontAttributeName:[UIFont systemFontOfSize:13.0f],NSForegroundColorAttributeName:HexRGB(0x333333)}];
-            self.contentLabel.attributedText = attr;
+    NSString *tipsDesc = @"";
+    if ([courseStatus isEqualToString:@"COMPLETE"]) {
+        tipsDesc = @"课程已结束,请对老师的教学进行评价";
+        if (hasEvaluate) {
+            self.emptyView.hidden = YES;
+            self.evaluateView.hidden = YES;
+
+            if (![NSString isEmptyString:evaluateMessage]) {
+                NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
+                [paragraphStyle setLineSpacing:4];//调整行间距
+                NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:evaluateMessage attributes:@{NSParagraphStyleAttributeName:paragraphStyle,NSFontAttributeName:[UIFont systemFontOfSize:13.0f],NSForegroundColorAttributeName:HexRGB(0x333333)}];
+                self.contentLabel.attributedText = attr;
+            }
+            else {
+                self.contentLabel.attributedText = nil;
+            }
         }
         else {
-            self.contentLabel.text = @"";
+            self.emptyView.hidden = NO;
+            self.contentLabel.attributedText = nil;
+            self.evaluateView.hidden = NO;
         }
     }
     else {
-        self.starView.hidden = YES;
+        tipsDesc = @"课程结束之后记得对老师的教学进行评价哦";
         self.emptyView.hidden = NO;
-        self.contentLabel.text = @"";
-        self.evaluateView.hidden = NO;
+        self.evaluateView.hidden = YES;
+        self.contentLabel.attributedText = nil;
     }
+    
+    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
+    [paragraphStyle setLineSpacing:4];//调整行间距
+    NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:tipsDesc attributes:@{NSParagraphStyleAttributeName:paragraphStyle,NSFontAttributeName:[UIFont systemFontOfSize:13.0f],NSForegroundColorAttributeName:HexRGB(0x999999)}];
+    self.tipsMsg.attributedText = attr;
 }
 
 - (void)setSelected:(BOOL)selected animated:(BOOL)animated {

+ 53 - 52
KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyStudentEvaCell.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="20037" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" 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="20020"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <capability name="System colors in document resources" minToolsVersion="11.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
@@ -11,49 +11,57 @@
     <objects>
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
-        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="174" id="KGk-i7-Jjw" customClass="AccompanyStudentEvaCell">
-            <rect key="frame" x="0.0" y="0.0" width="375" height="149"/>
+        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="150" id="KGk-i7-Jjw" customClass="AccompanyStudentEvaCell">
+            <rect key="frame" x="0.0" y="0.0" width="375" height="150"/>
             <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="375" height="149"/>
+                <rect key="frame" x="0.0" y="0.0" width="375" height="150"/>
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Yyc-jU-e8w">
-                        <rect key="frame" x="14" y="0.0" width="347" height="137"/>
+                        <rect key="frame" x="14" y="0.0" width="347" height="138"/>
                         <subviews>
                             <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="accell_left" translatesAutoresizingMaskIntoConstraints="NO" id="ltT-kf-P7C">
-                                <rect key="frame" x="11" y="13" width="4" height="16"/>
+                                <rect key="frame" x="12" y="14" width="3" height="12"/>
                             </imageView>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="学员评价" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dMT-VK-l9k">
-                                <rect key="frame" x="20" y="11" width="58" height="20"/>
+                                <rect key="frame" x="21" y="10" width="56" height="20"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="20" id="eeO-LX-E6a"/>
                                 </constraints>
                                 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
-                                <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
+                            <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="jcn-OZ-9Lu" customClass="KSStarView">
+                                <rect key="frame" x="82" y="10.5" width="95" height="19"/>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                <constraints>
+                                    <constraint firstAttribute="width" constant="95" id="ud9-Lh-r0c"/>
+                                    <constraint firstAttribute="height" constant="19" id="wvP-JN-IRs"/>
+                                </constraints>
+                            </view>
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="CS9-1I-B48">
-                                <rect key="frame" x="11" y="39" width="327" height="88"/>
+                                <rect key="frame" x="12" y="40" width="323" height="88"/>
                                 <subviews>
                                     <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="EsB-Oa-Z2T">
-                                        <rect key="frame" x="9" y="11" width="312" height="0.0"/>
+                                        <rect key="frame" x="12" y="12" width="299" height="0.0"/>
                                         <fontDescription key="fontDescription" type="system" pointSize="13"/>
                                         <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
                                         <nil key="highlightedColor"/>
                                     </label>
                                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="hQW-1x-wjy">
-                                        <rect key="frame" x="0.0" y="0.0" width="327" height="88"/>
+                                        <rect key="frame" x="0.0" y="0.0" width="323" height="88"/>
                                         <subviews>
                                             <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="student_eva_placeholder" translatesAutoresizingMaskIntoConstraints="NO" id="02q-N4-kCG">
-                                                <rect key="frame" x="33" y="5" width="79" height="78"/>
+                                                <rect key="frame" x="30" y="5" width="78" height="78"/>
                                                 <constraints>
-                                                    <constraint firstAttribute="width" constant="79" id="MlY-YJ-AOo"/>
+                                                    <constraint firstAttribute="width" constant="78" id="MlY-YJ-AOo"/>
                                                     <constraint firstAttribute="height" constant="78" id="oCq-z1-HJA"/>
                                                 </constraints>
                                             </imageView>
                                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" usesAttributedText="YES" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="wp3-cL-Ihn">
-                                                <rect key="frame" x="120" y="27" width="157" height="34.5"/>
+                                                <rect key="frame" x="119" y="27" width="169" height="34.5"/>
                                                 <attributedString key="attributedText">
                                                     <fragment content="课程结束之后记得对老师的教学进行评价哦!">
                                                         <attributes>
@@ -69,24 +77,24 @@
                                         <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                         <constraints>
                                             <constraint firstItem="02q-N4-kCG" firstAttribute="centerY" secondItem="hQW-1x-wjy" secondAttribute="centerY" id="BgW-k9-Ivr"/>
-                                            <constraint firstItem="wp3-cL-Ihn" firstAttribute="leading" secondItem="02q-N4-kCG" secondAttribute="trailing" constant="8" id="Dgs-Qc-Mif"/>
+                                            <constraint firstItem="wp3-cL-Ihn" firstAttribute="leading" secondItem="02q-N4-kCG" secondAttribute="trailing" constant="11" id="Dgs-Qc-Mif"/>
                                             <constraint firstItem="wp3-cL-Ihn" firstAttribute="centerY" secondItem="hQW-1x-wjy" secondAttribute="centerY" id="JKg-4q-J7B"/>
-                                            <constraint firstItem="02q-N4-kCG" firstAttribute="leading" secondItem="hQW-1x-wjy" secondAttribute="leading" constant="33" id="ber-ic-edm"/>
+                                            <constraint firstItem="02q-N4-kCG" firstAttribute="leading" secondItem="hQW-1x-wjy" secondAttribute="leading" constant="30" id="ber-ic-edm"/>
                                             <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="88" id="dsX-S1-b1e"/>
-                                            <constraint firstAttribute="trailing" secondItem="wp3-cL-Ihn" secondAttribute="trailing" constant="50" id="fTl-x6-xY9"/>
+                                            <constraint firstAttribute="trailing" secondItem="wp3-cL-Ihn" secondAttribute="trailing" constant="35" id="fTl-x6-xY9"/>
                                         </constraints>
                                     </view>
                                 </subviews>
-                                <color key="backgroundColor" red="0.96862745100000003" green="0.97254901959999995" blue="0.97647058819999999" alpha="1" colorSpace="calibratedRGB"/>
+                                <color key="backgroundColor" red="0.96862745098039216" green="0.97254901960784312" blue="0.97647058823529409" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <constraints>
-                                    <constraint firstAttribute="trailing" secondItem="EsB-Oa-Z2T" secondAttribute="trailing" constant="6" id="5xt-b6-PGZ"/>
+                                    <constraint firstAttribute="trailing" secondItem="EsB-Oa-Z2T" secondAttribute="trailing" constant="12" id="5xt-b6-PGZ"/>
                                     <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="88" id="7RR-SG-Yi9"/>
                                     <constraint firstAttribute="bottom" secondItem="hQW-1x-wjy" secondAttribute="bottom" id="GJe-TE-bSx"/>
-                                    <constraint firstItem="EsB-Oa-Z2T" firstAttribute="leading" secondItem="CS9-1I-B48" secondAttribute="leading" constant="9" id="GLF-Re-FzW"/>
+                                    <constraint firstItem="EsB-Oa-Z2T" firstAttribute="leading" secondItem="CS9-1I-B48" secondAttribute="leading" constant="12" id="GLF-Re-FzW"/>
                                     <constraint firstItem="hQW-1x-wjy" firstAttribute="top" secondItem="CS9-1I-B48" secondAttribute="top" id="O7C-Vg-7Zq"/>
                                     <constraint firstItem="hQW-1x-wjy" firstAttribute="leading" secondItem="CS9-1I-B48" secondAttribute="leading" id="a1e-ZX-t0w"/>
-                                    <constraint firstItem="EsB-Oa-Z2T" firstAttribute="top" secondItem="CS9-1I-B48" secondAttribute="top" constant="11" id="jYU-qf-rxd"/>
-                                    <constraint firstAttribute="bottom" relation="greaterThanOrEqual" secondItem="EsB-Oa-Z2T" secondAttribute="bottom" constant="5" id="pqA-5s-uyS"/>
+                                    <constraint firstItem="EsB-Oa-Z2T" firstAttribute="top" secondItem="CS9-1I-B48" secondAttribute="top" constant="12" id="jYU-qf-rxd"/>
+                                    <constraint firstAttribute="bottom" relation="greaterThanOrEqual" secondItem="EsB-Oa-Z2T" secondAttribute="bottom" constant="12" id="pqA-5s-uyS"/>
                                     <constraint firstAttribute="trailing" secondItem="hQW-1x-wjy" secondAttribute="trailing" id="rAJ-YZ-OLt"/>
                                 </constraints>
                                 <userDefinedRuntimeAttributes>
@@ -96,23 +104,23 @@
                                 </userDefinedRuntimeAttributes>
                             </view>
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9CO-NU-fBc">
-                                <rect key="frame" x="285" y="3" width="51" height="36"/>
+                                <rect key="frame" x="258" y="0.0" width="78" height="40"/>
                                 <subviews>
                                     <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="accompany_edit" translatesAutoresizingMaskIntoConstraints="NO" id="Eli-XV-2VU">
-                                        <rect key="frame" x="5" y="12" width="12" height="12"/>
+                                        <rect key="frame" x="5" y="13" width="14" height="14"/>
                                         <constraints>
-                                            <constraint firstAttribute="height" constant="12" id="gus-sG-BTd"/>
-                                            <constraint firstAttribute="width" constant="12" id="tlq-ny-kG5"/>
+                                            <constraint firstAttribute="height" constant="14" id="gus-sG-BTd"/>
+                                            <constraint firstAttribute="width" constant="14" id="tlq-ny-kG5"/>
                                         </constraints>
                                     </imageView>
-                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="评价" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gWn-lJ-nkZ">
-                                        <rect key="frame" x="22" y="9.5" width="29" height="17"/>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="评价老师" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gWn-lJ-nkZ">
+                                        <rect key="frame" x="22" y="11.5" width="56" height="17"/>
                                         <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
-                                        <color key="textColor" red="0.1764705882" green="0.78039215689999997" blue="0.66666666669999997" alpha="1" colorSpace="calibratedRGB"/>
+                                        <color key="textColor" red="0.18565043807029724" green="0.81136220693588257" blue="0.72373294830322266" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                         <nil key="highlightedColor"/>
                                     </label>
                                     <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="eYV-h9-uyL">
-                                        <rect key="frame" x="0.0" y="0.0" width="51" height="36"/>
+                                        <rect key="frame" x="0.0" y="0.0" width="78" height="40"/>
                                         <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                         <connections>
                                             <action selector="evaluateAction:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="4vd-rl-Nn9"/>
@@ -127,34 +135,26 @@
                                     <constraint firstItem="eYV-h9-uyL" firstAttribute="top" secondItem="9CO-NU-fBc" secondAttribute="top" id="Fg9-wP-EMQ"/>
                                     <constraint firstItem="eYV-h9-uyL" firstAttribute="leading" secondItem="9CO-NU-fBc" secondAttribute="leading" id="Inr-LN-A0o"/>
                                     <constraint firstItem="Eli-XV-2VU" firstAttribute="centerY" secondItem="9CO-NU-fBc" secondAttribute="centerY" id="Iv4-mH-G9a"/>
-                                    <constraint firstItem="gWn-lJ-nkZ" firstAttribute="leading" secondItem="Eli-XV-2VU" secondAttribute="trailing" constant="5" id="S23-UK-R61"/>
+                                    <constraint firstItem="gWn-lJ-nkZ" firstAttribute="leading" secondItem="Eli-XV-2VU" secondAttribute="trailing" constant="3" id="S23-UK-R61"/>
                                     <constraint firstAttribute="bottom" secondItem="eYV-h9-uyL" secondAttribute="bottom" id="Sbx-4c-hXn"/>
                                     <constraint firstAttribute="trailing" secondItem="gWn-lJ-nkZ" secondAttribute="trailing" id="UW7-ac-w43"/>
                                 </constraints>
                             </view>
-                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ay0-L4-b3f" customClass="KSStarView">
-                                <rect key="frame" x="84" y="11.5" width="95" height="19"/>
-                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
-                                <constraints>
-                                    <constraint firstAttribute="height" constant="19" id="eW0-fj-mRq"/>
-                                    <constraint firstAttribute="width" constant="95" id="nK2-cu-ogo"/>
-                                </constraints>
-                            </view>
                         </subviews>
                         <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                         <constraints>
+                            <constraint firstItem="dMT-VK-l9k" firstAttribute="top" secondItem="Yyc-jU-e8w" secondAttribute="top" constant="10" id="2Lb-dw-pDW"/>
                             <constraint firstAttribute="trailing" secondItem="9CO-NU-fBc" secondAttribute="trailing" constant="11" id="3JL-Rb-GL4"/>
-                            <constraint firstItem="ltT-kf-P7C" firstAttribute="top" secondItem="Yyc-jU-e8w" secondAttribute="top" constant="13" id="7Pc-Cn-W9q"/>
-                            <constraint firstItem="CS9-1I-B48" firstAttribute="leading" secondItem="Yyc-jU-e8w" secondAttribute="leading" constant="11" id="Gq6-4H-5L7"/>
+                            <constraint firstItem="jcn-OZ-9Lu" firstAttribute="leading" secondItem="dMT-VK-l9k" secondAttribute="trailing" constant="5" id="9B0-6g-X9b"/>
+                            <constraint firstItem="CS9-1I-B48" firstAttribute="leading" secondItem="Yyc-jU-e8w" secondAttribute="leading" constant="12" id="Gq6-4H-5L7"/>
                             <constraint firstItem="9CO-NU-fBc" firstAttribute="centerY" secondItem="dMT-VK-l9k" secondAttribute="centerY" id="MIb-jS-DNJ"/>
-                            <constraint firstAttribute="trailing" secondItem="CS9-1I-B48" secondAttribute="trailing" constant="9" id="Nlt-hE-n6i"/>
+                            <constraint firstAttribute="trailing" secondItem="CS9-1I-B48" secondAttribute="trailing" constant="12" id="Nlt-hE-n6i"/>
+                            <constraint firstItem="jcn-OZ-9Lu" firstAttribute="centerY" secondItem="dMT-VK-l9k" secondAttribute="centerY" id="Q9l-tH-UOk"/>
                             <constraint firstAttribute="bottom" secondItem="CS9-1I-B48" secondAttribute="bottom" constant="10" id="Qcs-io-hc9"/>
                             <constraint firstItem="CS9-1I-B48" firstAttribute="top" secondItem="9CO-NU-fBc" secondAttribute="bottom" id="Yue-o1-bKx"/>
-                            <constraint firstItem="ltT-kf-P7C" firstAttribute="leading" secondItem="Yyc-jU-e8w" secondAttribute="leading" constant="11" id="gf9-Gz-x7R"/>
-                            <constraint firstItem="ay0-L4-b3f" firstAttribute="centerY" secondItem="dMT-VK-l9k" secondAttribute="centerY" id="jIr-kE-YQZ"/>
-                            <constraint firstItem="dMT-VK-l9k" firstAttribute="leading" secondItem="ltT-kf-P7C" secondAttribute="trailing" constant="5" id="nVb-RO-bhR"/>
-                            <constraint firstItem="ay0-L4-b3f" firstAttribute="leading" secondItem="dMT-VK-l9k" secondAttribute="trailing" constant="6" id="utq-Wc-6C9"/>
-                            <constraint firstItem="CS9-1I-B48" firstAttribute="top" secondItem="dMT-VK-l9k" secondAttribute="bottom" constant="8" id="vO4-d5-COg"/>
+                            <constraint firstItem="ltT-kf-P7C" firstAttribute="leading" secondItem="Yyc-jU-e8w" secondAttribute="leading" constant="12" id="gf9-Gz-x7R"/>
+                            <constraint firstItem="dMT-VK-l9k" firstAttribute="leading" secondItem="ltT-kf-P7C" secondAttribute="trailing" constant="6" id="nVb-RO-bhR"/>
+                            <constraint firstItem="CS9-1I-B48" firstAttribute="top" secondItem="dMT-VK-l9k" secondAttribute="bottom" constant="10" id="vO4-d5-COg"/>
                             <constraint firstItem="dMT-VK-l9k" firstAttribute="centerY" secondItem="ltT-kf-P7C" secondAttribute="centerY" id="zc4-aL-rgC"/>
                         </constraints>
                         <userDefinedRuntimeAttributes>
@@ -177,15 +177,16 @@
                 <outlet property="contentLabel" destination="EsB-Oa-Z2T" id="1cB-Q6-0hE"/>
                 <outlet property="emptyView" destination="hQW-1x-wjy" id="6lZ-04-MNt"/>
                 <outlet property="evaluateView" destination="9CO-NU-fBc" id="9pG-cY-mLe"/>
-                <outlet property="starView" destination="ay0-L4-b3f" id="CV2-cE-TLq"/>
+                <outlet property="starView" destination="jcn-OZ-9Lu" id="2Qa-pl-1Dq"/>
+                <outlet property="tipsMsg" destination="wp3-cL-Ihn" id="huo-WG-iZU"/>
             </connections>
             <point key="canvasLocation" x="131.15942028985509" y="120.87053571428571"/>
         </tableViewCell>
     </objects>
     <resources>
-        <image name="accell_left" width="4" height="18"/>
-        <image name="accompany_edit" width="12" height="12"/>
-        <image name="student_eva_placeholder" width="79" height="78"/>
+        <image name="accell_left" width="3" height="12"/>
+        <image name="accompany_edit" width="14" height="14"/>
+        <image name="student_eva_placeholder" width="78" height="78"/>
         <systemColor name="systemBackgroundColor">
             <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
         </systemColor>

+ 34 - 22
KulexiuForStudent/KulexiuForStudent/Module/Course/MusicRoom/Controller/MusicRoomDetailViewController.m

@@ -21,6 +21,7 @@
 #import "OnlineClassManager.h"
 #import "MusicRoomCourseInfoCell.h"
 #import "HomeworkDetailViewController.h"
+#import "CourseGroupNavView.h"
 
 
 @interface MusicRoomDetailViewController ()<UITableViewDelegate,UITableViewDataSource,WMPlayerDelegate>
@@ -28,6 +29,9 @@
     WMPlayer *_wmPlayer;
     CGRect _playerFrame;
 }
+
+@property (nonatomic, strong) CourseGroupNavView *navView;
+
 @property (nonatomic, strong) UIView *bgView;
 
 @property (nonatomic, assign) BOOL isRatation;
@@ -55,7 +59,7 @@
 - (void)viewDidLoad {
     [super viewDidLoad];
     // Do any additional setup after loading the view.
-    [self allocTitle:@"课程详情"];
+    self.ks_prefersNavigationBarHidden = YES;
     [self configUI];
     self.isModify = NO;
 }
@@ -141,10 +145,24 @@
 
 - (void)configUI {
     [self.scrollView removeFromSuperview];
+    
+    UIImage *bgImage = [UIImage imageNamed:@"homework_detail_bg"];
+    CGFloat height = bgImage.size.height / bgImage.size.width * KPortraitWidth;
+    UIImageView *imageView = [[UIImageView alloc] initWithImage:bgImage];
+    imageView.frame = CGRectMake(0, 0, KPortraitWidth, height);
+    [self.view addSubview:imageView];
+    
+    [self.view addSubview:self.navView];
+    CGFloat navHeight = [CourseGroupNavView getViewHeight];
+    [self.navView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.right.top.mas_equalTo(self.view);
+        make.height.mas_equalTo(navHeight);
+    }];
+    
     [self.view addSubview:self.tableView];
     [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
         make.left.right.mas_equalTo(self.view);
-        make.top.mas_equalTo(self.view.mas_top);
+        make.top.mas_equalTo(self.navView.mas_bottom);
         make.bottom.mas_equalTo(self.view.mas_bottom);
     }];
     
@@ -158,21 +176,6 @@
     self.bottomView.hidden = YES;
 }
 
-- (void)evaluateWithStatusLabel:(UILabel *)statusLabel {
-    if ([self.homeworkModel.courseStatus isEqualToString:@"COMPLETE"]) {
-        statusLabel.text = @"已结束";
-        statusLabel.textColor = HexRGB(0x999999);
-    }
-    else if ([self.homeworkModel.courseStatus isEqualToString:@"ING"]) {
-        statusLabel.text = @"进行中";
-        statusLabel.textColor = THEMECOLOR;
-    }
-    else {
-        statusLabel.text = @"未开始";
-        statusLabel.textColor = HexRGB(0xff802c);
-    }
-}
-
 #pragma mark --- table data source
 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
     return 4;
@@ -181,11 +184,8 @@
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
     if (indexPath.row == 0) {
         MusicRoomCourseInfoCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MusicRoomCourseInfoCell"];
-        [self evaluateWithStatusLabel:cell.statusLabel];
-        NSString *courseName = [NSString returnNoNullStringWithString:self.homeworkModel.courseGroupName];
-        [cell configWithStartTime:self.homeworkModel.startTime endTime:self.homeworkModel.endTime courseName:courseName chatGroupId:self.homeworkModel.imGroupId courseSubject:self.homeworkModel.subjectName];
         MJWeakSelf;
-        [cell chatCalkback:^(NSString * _Nonnull targetId) {
+        [cell configWithSource:self.homeworkModel chatAction:^(NSString * _Nonnull targetId) {
             [weakSelf chatAction:targetId];
         }];
         return cell;
@@ -213,7 +213,8 @@
     else  {
         AccompanyRemarkCell *cell = [tableView dequeueReusableCellWithIdentifier:@"AccompanyRemarkCell"];
         BOOL hasEvaluate = self.homeworkModel.reviewHomework == 1? YES : NO;
-        [cell configWithRemarkMessage:self.homeworkModel.teacherReplied hasEvaluate:hasEvaluate];
+        BOOL hasSubmitHomework = self.homeworkModel.submitHomework == 1 ? YES : NO;
+        [cell configWithRemarkMessage:self.homeworkModel.teacherReplied hasEvaluate:hasEvaluate hasSubmitHomework:hasSubmitHomework];
         return cell;
     }
 }
@@ -561,6 +562,17 @@
 - (void)openSettingView {
     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString] options:@{} completionHandler:nil];
 }
+
+- (CourseGroupNavView *)navView {
+    if (!_navView) {
+        _navView = [CourseGroupNavView sharedInstance];
+        MJWeakSelf;
+        [_navView configWithNavTitle:@"课程详情" callback:^{
+            [weakSelf backAction];
+        }];
+    }
+    return _navView;
+}
 /*
 #pragma mark - Navigation
 

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Module/Course/MusicRoom/Controller/MusicRoomGroupViewController.m

@@ -237,7 +237,7 @@
     if (!_navView) {
         _navView = [CourseGroupNavView sharedInstance];
         MJWeakSelf;
-        [_navView configWithNavTitle:@"琴房课详情" callback:^{
+        [_navView configWithNavTitle:@"课程组详情" callback:^{
             [weakSelf backAction];
         }];
     }

+ 3 - 8
KulexiuForStudent/KulexiuForStudent/Module/Course/MusicRoom/View/MusicRoomCourseInfoCell.h

@@ -6,21 +6,16 @@
 //
 
 #import <UIKit/UIKit.h>
+#import "HomeworkDetailModel.h"
 
 NS_ASSUME_NONNULL_BEGIN
 
-typedef void(^MusicRoomChatCallback)(NSString *targetId);
+typedef void(^MusicRoomGroupChatAction)(NSString *targetId);
 
 
 @interface MusicRoomCourseInfoCell : UITableViewCell
 
-@property (weak, nonatomic) IBOutlet UILabel *statusLabel;
-
-@property (nonatomic, assign) BOOL hideChatButton;
-
-- (void)configWithStartTime:(NSString *)beginTime endTime:(NSString *)endTime courseName:(NSString *)courseName chatGroupId:(NSString *)chatGroupId courseSubject:(NSString *)courseSubject;
-
-- (void)chatCalkback:(MusicRoomChatCallback)callback;
+- (void)configWithSource:(HomeworkDetailModel *)model chatAction:(MusicRoomGroupChatAction)callback;
 
 @end
 

+ 39 - 32
KulexiuForStudent/KulexiuForStudent/Module/Course/MusicRoom/View/MusicRoomCourseInfoCell.m

@@ -9,17 +9,24 @@
 
 @interface MusicRoomCourseInfoCell ()
 
+@property (weak, nonatomic) IBOutlet UILabel *statusLabel;
+
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *attendenceImgLeft;
+
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *attendenceImgWidth;
+
+@property (weak, nonatomic) IBOutlet UIImageView *attendentStatusImage;
+
 @property (weak, nonatomic) IBOutlet UILabel *courseTime;
 @property (weak, nonatomic) IBOutlet UILabel *courseName;
 @property (weak, nonatomic) IBOutlet UILabel *courseSubject;
 @property (weak, nonatomic) IBOutlet UIView *subjectView;
-@property (weak, nonatomic) IBOutlet UILabel *countLabel;
-
-@property (weak, nonatomic) IBOutlet UIButton *chatButton;
 
 @property (nonatomic, strong) NSString *targetId;
 
-@property (nonatomic, copy) MusicRoomChatCallback callback;
+@property (nonatomic, copy) MusicRoomGroupChatAction callback;
+
+@property (weak, nonatomic) IBOutlet UILabel *studentName;
 
 @end
 
@@ -32,51 +39,51 @@
 }
 
 
-- (void)configWithStartTime:(NSString *)beginTime endTime:(NSString *)endTime courseName:(NSString *)courseName chatGroupId:(NSString *)chatGroupId courseSubject:(NSString *)courseSubject {
-    // time
+- (void)configWithSource:(HomeworkDetailModel *)model chatAction:(MusicRoomGroupChatAction)callback {    // time
     NSDateFormatter *formatter = [NSObject getDateformatter];
     [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
-    NSDate *startDate = [formatter dateFromString:beginTime];
-    NSDate *endDate = [formatter dateFromString:endTime];
+    NSDate *startDate = [formatter dateFromString:model.startTime];
+    NSDate *endDate = [formatter dateFromString:model.endTime];
     [formatter setDateFormat:@"yyyy-MM-dd HH:mm"];
     NSString *lessonBegin = [formatter stringFromDate:startDate];
     [formatter setDateFormat:@"HH:mm"];
     NSString *lessonEnd = [formatter stringFromDate:endDate];
     self.courseTime.text = [NSString stringWithFormat:@"%@~%@",[NSString returnNoNullStringWithString:lessonBegin],[NSString returnNoNullStringWithString:lessonEnd]];
-    self.courseName.text = [NSString returnNoNullStringWithString:courseName];
-    if (![NSString isEmptyString:courseSubject]) {
+    self.courseName.text = [NSString returnNoNullStringWithString:model.courseGroupName];
+    if (![NSString isEmptyString:model.subjectName]) {
         self.subjectView.hidden = NO;
-        self.courseSubject.text = courseSubject;
+        self.courseSubject.text = model.subjectName;
     }
     else {
         self.subjectView.hidden = YES;
     }
-    self.targetId = chatGroupId;
-}
-
-- (void)setHideChatButton:(BOOL)hideChatButton {
-    _hideChatButton = hideChatButton;
-    if (hideChatButton) {
-        self.chatButton.hidden = YES;
-        self.chatButton.userInteractionEnabled = NO;
+    
+    if ([model.courseStatus isEqualToString:@"NOT_START"]) {
+        self.statusLabel.text = @"未开始";
+        self.statusLabel.textColor = HexRGB(0xFF802C);
+        self.attendenceImgWidth.constant = 0.0f;
+        self.attendenceImgLeft.constant = 0.0f;
+        self.attendentStatusImage.hidden = YES;
     }
-    else {
-        self.chatButton.hidden = NO;
-        self.chatButton.userInteractionEnabled = YES;
+    else if ([model.courseStatus isEqualToString:@"ING"]) {
+        self.statusLabel.text = @"进行中";
+        self.statusLabel.textColor = THEMECOLOR;
+        self.attendenceImgWidth.constant = 0.0f;
+        self.attendenceImgLeft.constant = 0.0f;
+        self.attendentStatusImage.hidden = YES;
     }
-}
-
-- (IBAction)chatAction:(id)sender {
-    if (self.callback) {
-        self.callback(self.targetId);
+    else if ([model.courseStatus isEqualToString:@"COMPLETE"]) {
+        self.statusLabel.text = @"已结束";
+        self.statusLabel.textColor = HexRGB(0x999999);
+        self.attendenceImgWidth.constant = 36.0f;
+        self.attendenceImgLeft.constant = 5.0f;
+        self.attendentStatusImage.hidden = NO;
+        NSString *imageName = model.attendanceStatus ? @"course_attendence" : @"course_noArrive";
+        [self.attendentStatusImage setImage:[UIImage imageNamed:imageName]];
     }
+    self.studentName.text = [NSString returnNoNullStringWithString:model.studentName];
 }
 
-- (void)chatCalkback:(MusicRoomChatCallback)callback {
-    if (callback) {
-        self.callback = callback;
-    }
-}
 
 
 - (void)setSelected:(BOOL)selected animated:(BOOL)animated {

+ 67 - 80
KulexiuForStudent/KulexiuForStudent/Module/Course/MusicRoom/View/MusicRoomCourseInfoCell.xib

@@ -11,32 +11,32 @@
     <objects>
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
-        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="148" id="KGk-i7-Jjw" customClass="MusicRoomCourseInfoCell">
-            <rect key="frame" x="0.0" y="0.0" width="320" height="148"/>
+        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="135" id="KGk-i7-Jjw" customClass="MusicRoomCourseInfoCell">
+            <rect key="frame" x="0.0" y="0.0" width="320" height="135"/>
             <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="148"/>
+                <rect key="frame" x="0.0" y="0.0" width="320" height="135"/>
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="lZc-0i-RlV">
-                        <rect key="frame" x="14" y="10" width="292" height="126"/>
+                        <rect key="frame" x="14" y="12" width="292" height="111"/>
                         <subviews>
                             <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="course_time" translatesAutoresizingMaskIntoConstraints="NO" id="NaF-iy-iW5">
-                                <rect key="frame" x="11" y="12" width="16" height="16"/>
+                                <rect key="frame" x="12" y="15" width="16" height="16"/>
                                 <constraints>
                                     <constraint firstAttribute="width" constant="16" id="L9r-Gs-c84"/>
                                     <constraint firstAttribute="height" constant="16" id="xRM-dX-EXd"/>
                                 </constraints>
                             </imageView>
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="AIK-oQ-G54">
-                                <rect key="frame" x="10" y="38" width="272" height="1"/>
+                                <rect key="frame" x="10" y="46" width="272" height="1"/>
                                 <color key="backgroundColor" red="0.94901960780000005" green="0.94901960780000005" blue="0.94901960780000005" alpha="1" colorSpace="calibratedRGB"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="1" id="fiS-aA-9mc"/>
                                 </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="5TG-5t-3Vw">
-                                <rect key="frame" x="231" y="20" width="50" height="0.0"/>
+                                <rect key="frame" x="231" y="23" width="50" height="0.0"/>
                                 <constraints>
                                     <constraint firstAttribute="width" constant="50" id="yzq-8h-DAm"/>
                                 </constraints>
@@ -44,39 +44,64 @@
                                 <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
-                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DZc-wF-kiD">
-                                <rect key="frame" x="34" y="11" width="0.0" height="18"/>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2024-10-30 15:00~15:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DZc-wF-kiD">
+                                <rect key="frame" x="35" y="14" width="145.5" height="18"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="18" id="30U-f6-m6b"/>
                                 </constraints>
                                 <fontDescription key="fontDescription" type="system" pointSize="13"/>
-                                <color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/>
+                                <color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
-                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="09N-Zc-juN">
-                                <rect key="frame" x="68" y="51" width="0.0" height="28"/>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="张老师琴房课-第1课" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="09N-Zc-juN">
+                                <rect key="frame" x="62" y="58" width="136.5" height="21"/>
                                 <constraints>
-                                    <constraint firstAttribute="height" constant="28" id="0sK-eg-OVB"/>
+                                    <constraint firstAttribute="height" constant="21" id="0sK-eg-OVB"/>
                                 </constraints>
-                                <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
-                                <color key="textColor" red="0.1019607843" green="0.1019607843" blue="0.1019607843" alpha="1" colorSpace="calibratedRGB"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                <color key="textColor" red="0.074509803921568626" green="0.078431372549019607" blue="0.082352941176470587" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
-                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="oPF-d8-FLk">
-                                <rect key="frame" x="68" y="79" width="10" height="20"/>
+                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="course_musicRoom" translatesAutoresizingMaskIntoConstraints="NO" id="qgw-qJ-GKe">
+                                <rect key="frame" x="12" y="59" width="40" height="40"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="40" id="6Lb-fR-aUr"/>
+                                    <constraint firstAttribute="width" constant="40" id="eIR-Ch-GVU"/>
+                                </constraints>
+                                <userDefinedRuntimeAttributes>
+                                    <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                        <real key="value" value="20"/>
+                                    </userDefinedRuntimeAttribute>
+                                </userDefinedRuntimeAttributes>
+                            </imageView>
+                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="752" translatesAutoresizingMaskIntoConstraints="NO" id="cPi-Jc-34J">
+                                <rect key="frame" x="203.5" y="59.5" width="36" height="18"/>
+                                <constraints>
+                                    <constraint firstAttribute="width" constant="36" id="0ly-ym-r0i"/>
+                                    <constraint firstAttribute="height" constant="18" id="HGA-ak-dWm"/>
+                                </constraints>
+                            </imageView>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="张涵宇、向冰冰等5人" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="l3e-3i-FN2">
+                                <rect key="frame" x="62" y="84" width="127.5" height="16"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                                <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <view contentMode="scaleToFill" horizontalCompressionResistancePriority="752" translatesAutoresizingMaskIntoConstraints="NO" id="oPF-d8-FLk">
+                                <rect key="frame" x="194.5" y="83.5" width="28" height="17"/>
                                 <subviews>
-                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="kbx-pS-TGd">
-                                        <rect key="frame" x="5" y="0.0" width="0.0" height="20"/>
-                                        <fontDescription key="fontDescription" type="system" pointSize="11"/>
-                                        <color key="textColor" red="1" green="0.54901960780000003" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="752" text="长笛" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="kbx-pS-TGd">
+                                        <rect key="frame" x="4" y="0.0" width="20" height="17"/>
+                                        <fontDescription key="fontDescription" type="system" pointSize="10"/>
+                                        <color key="textColor" red="1" green="0.5490196078431373" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                         <nil key="highlightedColor"/>
                                     </label>
                                 </subviews>
-                                <color key="backgroundColor" red="1" green="0.94509803920000002" blue="0.87058823529999996" alpha="1" colorSpace="calibratedRGB"/>
+                                <color key="backgroundColor" red="1" green="0.94509803921568625" blue="0.87058823529411766" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <constraints>
-                                    <constraint firstItem="kbx-pS-TGd" firstAttribute="leading" secondItem="oPF-d8-FLk" secondAttribute="leading" constant="5" id="3Om-TX-Ngj"/>
-                                    <constraint firstAttribute="height" constant="20" id="Sio-ne-hD4"/>
-                                    <constraint firstAttribute="trailing" secondItem="kbx-pS-TGd" secondAttribute="trailing" constant="5" id="XAn-b2-9jp"/>
+                                    <constraint firstItem="kbx-pS-TGd" firstAttribute="leading" secondItem="oPF-d8-FLk" secondAttribute="leading" constant="4" id="3Om-TX-Ngj"/>
+                                    <constraint firstAttribute="height" constant="17" id="Sio-ne-hD4"/>
+                                    <constraint firstAttribute="trailing" secondItem="kbx-pS-TGd" secondAttribute="trailing" constant="4" id="XAn-b2-9jp"/>
                                     <constraint firstAttribute="bottom" secondItem="kbx-pS-TGd" secondAttribute="bottom" id="ZGw-ui-jdM"/>
                                     <constraint firstItem="kbx-pS-TGd" firstAttribute="top" secondItem="oPF-d8-FLk" secondAttribute="top" id="e9A-zk-12Y"/>
                                 </constraints>
@@ -86,67 +111,32 @@
                                     </userDefinedRuntimeAttribute>
                                 </userDefinedRuntimeAttributes>
                             </view>
-                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="course_musicRoom" translatesAutoresizingMaskIntoConstraints="NO" id="qgw-qJ-GKe">
-                                <rect key="frame" x="11" y="53" width="47" height="47"/>
-                                <constraints>
-                                    <constraint firstAttribute="height" constant="47" id="6Lb-fR-aUr"/>
-                                    <constraint firstAttribute="width" constant="47" id="eIR-Ch-GVU"/>
-                                </constraints>
-                            </imageView>
-                            <button opaque="NO" contentMode="scaleToFill" horizontalCompressionResistancePriority="752" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="WC4-RO-cvp">
-                                <rect key="frame" x="68" y="45" width="40" height="40"/>
-                                <constraints>
-                                    <constraint firstAttribute="width" constant="40" id="8bd-oD-mGh"/>
-                                    <constraint firstAttribute="height" constant="40" id="rtv-FP-E11"/>
-                                </constraints>
-                                <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
-                                <state key="normal" image="course_chat"/>
-                                <connections>
-                                    <action selector="chatAction:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="Szw-XH-cEf"/>
-                                </connections>
-                            </button>
-                            <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Nc9-wd-2bK">
-                                <rect key="frame" x="86" y="83.5" width="1" height="11"/>
-                                <color key="backgroundColor" red="0.82745098039999998" green="0.82745098039999998" blue="0.82745098039999998" alpha="1" colorSpace="calibratedRGB"/>
-                                <constraints>
-                                    <constraint firstAttribute="width" constant="1" id="Rg2-Wr-nWo"/>
-                                    <constraint firstAttribute="height" constant="11" id="avf-90-4F7"/>
-                                </constraints>
-                            </view>
-                            <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="752" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Jid-Tm-C6f">
-                                <rect key="frame" x="95" y="89" width="0.0" height="0.0"/>
-                                <fontDescription key="fontDescription" type="system" pointSize="12"/>
-                                <color key="textColor" red="0.41568627450000001" green="0.41568627450000001" blue="0.41568627450000001" alpha="1" colorSpace="calibratedRGB"/>
-                                <nil key="highlightedColor"/>
-                            </label>
                         </subviews>
                         <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                         <constraints>
-                            <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="WC4-RO-cvp" secondAttribute="trailing" constant="10" id="0E1-B1-wW8"/>
                             <constraint firstAttribute="trailing" secondItem="5TG-5t-3Vw" secondAttribute="trailing" constant="11" id="1Wd-Tp-p7M"/>
+                            <constraint firstItem="l3e-3i-FN2" firstAttribute="leading" secondItem="09N-Zc-juN" secondAttribute="leading" id="29R-DB-1mL"/>
+                            <constraint firstItem="cPi-Jc-34J" firstAttribute="leading" secondItem="09N-Zc-juN" secondAttribute="trailing" constant="5" id="7og-r8-Be3"/>
                             <constraint firstAttribute="trailing" secondItem="AIK-oQ-G54" secondAttribute="trailing" constant="10" id="8zL-c6-KGD"/>
-                            <constraint firstItem="Nc9-wd-2bK" firstAttribute="leading" secondItem="oPF-d8-FLk" secondAttribute="trailing" constant="8" id="BOa-k6-wQe"/>
-                            <constraint firstItem="oPF-d8-FLk" firstAttribute="top" secondItem="09N-Zc-juN" secondAttribute="bottom" id="BzL-ZV-YYc"/>
-                            <constraint firstItem="09N-Zc-juN" firstAttribute="top" secondItem="qgw-qJ-GKe" secondAttribute="top" constant="-2" id="K2w-tb-k6a"/>
-                            <constraint firstItem="NaF-iy-iW5" firstAttribute="top" secondItem="lZc-0i-RlV" secondAttribute="top" constant="12" id="MOg-56-mCo"/>
+                            <constraint firstItem="oPF-d8-FLk" firstAttribute="centerY" secondItem="l3e-3i-FN2" secondAttribute="centerY" id="GXB-gd-UVe"/>
+                            <constraint firstItem="l3e-3i-FN2" firstAttribute="bottom" secondItem="qgw-qJ-GKe" secondAttribute="bottom" constant="1" id="IXd-pK-yQ9"/>
+                            <constraint firstItem="09N-Zc-juN" firstAttribute="top" secondItem="qgw-qJ-GKe" secondAttribute="top" constant="-1" id="K2w-tb-k6a"/>
+                            <constraint firstItem="NaF-iy-iW5" firstAttribute="top" secondItem="lZc-0i-RlV" secondAttribute="top" constant="15" id="MOg-56-mCo"/>
                             <constraint firstItem="DZc-wF-kiD" firstAttribute="centerY" secondItem="NaF-iy-iW5" secondAttribute="centerY" id="MWw-Pm-PJF"/>
-                            <constraint firstItem="Jid-Tm-C6f" firstAttribute="leading" secondItem="Nc9-wd-2bK" secondAttribute="trailing" constant="8" id="NCl-z1-WpE"/>
-                            <constraint firstAttribute="bottom" secondItem="qgw-qJ-GKe" secondAttribute="bottom" constant="26" id="SSA-Vy-TQu"/>
                             <constraint firstItem="09N-Zc-juN" firstAttribute="leading" secondItem="qgw-qJ-GKe" secondAttribute="trailing" constant="10" id="T34-Yi-fep"/>
-                            <constraint firstItem="WC4-RO-cvp" firstAttribute="leading" secondItem="09N-Zc-juN" secondAttribute="trailing" id="U8W-aJ-XUT"/>
-                            <constraint firstItem="WC4-RO-cvp" firstAttribute="centerY" secondItem="09N-Zc-juN" secondAttribute="centerY" id="Zg5-sn-kjb"/>
-                            <constraint firstItem="NaF-iy-iW5" firstAttribute="leading" secondItem="lZc-0i-RlV" secondAttribute="leading" constant="11" id="ar8-fs-QfO"/>
-                            <constraint firstItem="oPF-d8-FLk" firstAttribute="leading" secondItem="09N-Zc-juN" secondAttribute="leading" id="bu6-OM-pMD"/>
-                            <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="Jid-Tm-C6f" secondAttribute="trailing" constant="10" id="ff3-GG-IIS"/>
+                            <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="cPi-Jc-34J" secondAttribute="trailing" constant="12" id="We8-nK-wlR"/>
+                            <constraint firstItem="NaF-iy-iW5" firstAttribute="leading" secondItem="lZc-0i-RlV" secondAttribute="leading" constant="12" id="ar8-fs-QfO"/>
+                            <constraint firstItem="oPF-d8-FLk" firstAttribute="leading" secondItem="l3e-3i-FN2" secondAttribute="trailing" constant="5" id="eGt-Fx-g3E"/>
                             <constraint firstItem="DZc-wF-kiD" firstAttribute="leading" secondItem="NaF-iy-iW5" secondAttribute="trailing" constant="7" id="g44-RU-uqQ"/>
-                            <constraint firstItem="qgw-qJ-GKe" firstAttribute="top" secondItem="AIK-oQ-G54" secondAttribute="bottom" constant="14" id="huZ-8L-qxR"/>
+                            <constraint firstItem="qgw-qJ-GKe" firstAttribute="top" secondItem="AIK-oQ-G54" secondAttribute="bottom" constant="12" id="huZ-8L-qxR"/>
                             <constraint firstItem="5TG-5t-3Vw" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="DZc-wF-kiD" secondAttribute="trailing" constant="10" id="i68-vw-1Eq"/>
-                            <constraint firstItem="AIK-oQ-G54" firstAttribute="top" secondItem="NaF-iy-iW5" secondAttribute="bottom" constant="10" id="lRY-Po-XuH"/>
-                            <constraint firstItem="qgw-qJ-GKe" firstAttribute="leading" secondItem="lZc-0i-RlV" secondAttribute="leading" constant="11" id="nuC-M7-gbM"/>
+                            <constraint firstItem="AIK-oQ-G54" firstAttribute="top" secondItem="NaF-iy-iW5" secondAttribute="bottom" constant="15" id="lRY-Po-XuH"/>
+                            <constraint firstItem="cPi-Jc-34J" firstAttribute="centerY" secondItem="09N-Zc-juN" secondAttribute="centerY" id="lfb-09-G6b"/>
+                            <constraint firstItem="qgw-qJ-GKe" firstAttribute="leading" secondItem="lZc-0i-RlV" secondAttribute="leading" constant="12" id="nuC-M7-gbM"/>
                             <constraint firstItem="5TG-5t-3Vw" firstAttribute="centerY" secondItem="DZc-wF-kiD" secondAttribute="centerY" id="oMD-LX-U73"/>
+                            <constraint firstAttribute="bottom" secondItem="qgw-qJ-GKe" secondAttribute="bottom" constant="12" id="qJ8-u4-x9t"/>
                             <constraint firstItem="AIK-oQ-G54" firstAttribute="leading" secondItem="lZc-0i-RlV" secondAttribute="leading" constant="10" id="uqQ-LW-t3l"/>
-                            <constraint firstItem="Nc9-wd-2bK" firstAttribute="centerY" secondItem="oPF-d8-FLk" secondAttribute="centerY" id="uzp-sj-YUu"/>
-                            <constraint firstItem="Jid-Tm-C6f" firstAttribute="centerY" secondItem="Nc9-wd-2bK" secondAttribute="centerY" id="zjj-WE-oJD"/>
+                            <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="oPF-d8-FLk" secondAttribute="trailing" constant="12" id="ysf-nD-3bC"/>
                         </constraints>
                         <userDefinedRuntimeAttributes>
                             <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
@@ -159,25 +149,22 @@
                     <constraint firstAttribute="trailing" secondItem="lZc-0i-RlV" secondAttribute="trailing" constant="14" id="3Ae-xb-ufC"/>
                     <constraint firstAttribute="bottom" secondItem="lZc-0i-RlV" secondAttribute="bottom" constant="12" id="CEa-4n-D2U"/>
                     <constraint firstItem="lZc-0i-RlV" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="14" id="WRM-7h-DC7"/>
-                    <constraint firstItem="lZc-0i-RlV" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="10" id="nqf-oV-7Tu"/>
+                    <constraint firstItem="lZc-0i-RlV" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="12" id="nqf-oV-7Tu"/>
                 </constraints>
             </tableViewCellContentView>
             <viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
             <connections>
-                <outlet property="chatButton" destination="WC4-RO-cvp" id="5WL-cb-3wc"/>
-                <outlet property="countLabel" destination="Jid-Tm-C6f" id="TsY-VH-vS3"/>
                 <outlet property="courseName" destination="09N-Zc-juN" id="X1d-qP-Lz2"/>
                 <outlet property="courseSubject" destination="kbx-pS-TGd" id="bmc-zg-wR2"/>
                 <outlet property="courseTime" destination="DZc-wF-kiD" id="T4x-I1-8LT"/>
                 <outlet property="statusLabel" destination="5TG-5t-3Vw" id="kIA-0J-Nom"/>
                 <outlet property="subjectView" destination="oPF-d8-FLk" id="Zz3-Ne-2ix"/>
             </connections>
-            <point key="canvasLocation" x="131.8840579710145" y="118.19196428571428"/>
+            <point key="canvasLocation" x="131.8840579710145" y="117.85714285714285"/>
         </tableViewCell>
     </objects>
     <resources>
-        <image name="course_chat" width="19" height="18"/>
         <image name="course_musicRoom" width="40" height="40"/>
         <image name="course_time" width="16" height="16"/>
         <systemColor name="systemBackgroundColor">

+ 5 - 0
KulexiuForStudent/KulexiuForStudent/Module/Course/MusicRoom/View/MusicRoomCourseListCell.xib

@@ -59,6 +59,11 @@
                                     <constraint firstAttribute="width" constant="40" id="5S7-Nw-2Df"/>
                                     <constraint firstAttribute="height" constant="40" id="xpC-QY-5lU"/>
                                 </constraints>
+                                <userDefinedRuntimeAttributes>
+                                    <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                        <real key="value" value="20"/>
+                                    </userDefinedRuntimeAttribute>
+                                </userDefinedRuntimeAttributes>
                             </imageView>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="749" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="sbq-HP-naE">
                                 <rect key="frame" x="62" y="58" width="0.0" height="21"/>

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Module/Course/VipCourse/Controller/VIPCourseGroupViewController.m

@@ -225,7 +225,7 @@
     if (!_navView) {
         _navView = [CourseGroupNavView sharedInstance];
         MJWeakSelf;
-        [_navView configWithNavTitle:@"VIP定制课详情" callback:^{
+        [_navView configWithNavTitle:@"课程组详情" callback:^{
             [weakSelf backAction];
         }];
     }

+ 37 - 10
KulexiuForStudent/KulexiuForStudent/Module/Course/VipCourse/Controller/VipCouseDetailViewController.m

@@ -24,6 +24,8 @@
 #import "KSChatConversationViewController.h"
 #import "OnlineClassManager.h"
 #import "AccompanyDetailBottomView.h"
+#import "AccompanyNavView.h"
+
 
 @interface VipCouseDetailViewController ()<UITableViewDelegate,UITableViewDataSource,WMPlayerDelegate>
 {
@@ -34,6 +36,8 @@
 
 @property (nonatomic, assign) BOOL isRatation;
 
+@property (nonatomic, strong) AccompanyNavView *navView;
+
 @property (nonatomic, strong) UITableView *tableView;
 
 @property (nonatomic, strong) AccompanyAlertView *alertView;
@@ -63,7 +67,7 @@
 - (void)viewDidLoad {
     [super viewDidLoad];
     // Do any additional setup after loading the view.
-    [self allocTitle:@"课程详情"];
+    self.ks_prefersNavigationBarHidden = YES;
     [self configUI];
     self.isModify = NO;
 }
@@ -71,6 +75,12 @@
 - (void)viewWillAppear:(BOOL)animated {
     [super viewWillAppear:animated];
     [self requestCourseInfoMessage];
+    [self configStatusViewColorWhite:YES];
+}
+
+- (void)viewWillDisappear:(BOOL)animated {
+    [super viewWillDisappear:animated];
+    [self configStatusViewColorWhite:NO];
 }
 
 - (void)requestCourseInfoMessage {
@@ -164,10 +174,18 @@
 
 - (void)configUI {
     [self.scrollView removeFromSuperview];
+    [self.view addSubview:self.navView];
+    CGFloat height = [self.navView getViewHeight];
+    [self.navView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.right.top.mas_equalTo(self.view);
+        make.height.mas_equalTo(height);
+    }];
+    [self.view addSubview:self.navView];
+    
     [self.view addSubview:self.tableView];
     [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
         make.left.right.mas_equalTo(self.view);
-        make.top.mas_equalTo(self.view.mas_top);
+        make.top.mas_equalTo(self.view.mas_top).offset(kNaviBarHeight);
         make.bottom.mas_equalTo(self.view.mas_bottom);
     }];
     
@@ -204,13 +222,10 @@
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
     if (indexPath.row == 0) {
         AccompanyCourseInfoCell *cell = [tableView dequeueReusableCellWithIdentifier:@"AccompanyCourseInfoCell"];
-        cell.statusLabel.textColor = HexRGB(0x999999);
         [self evaluateWithStatusLabel:cell.statusLabel];
-        [cell configWithStartTime:self.homeworkModel.startTime endTime:self.homeworkModel.endTime teacherAvatar:self.homeworkModel.teacherAvatar teacherName:self.homeworkModel.teacherName teacherId:self.homeworkModel.teacherId courseSubject:self.homeworkModel.subjectName isMusicRoom:NO];
-        MJWeakSelf;
-        [cell chatCalkback:^{
-            [weakSelf chatAction];
-        }];
+        
+        [cell configWithStartTime:self.homeworkModel.startTime endTime:self.homeworkModel.endTime courseName:self.homeworkModel.courseGroupName teacherAvatar:self.homeworkModel.teacherAvatar teacherName:self.homeworkModel.teacherName teacherId:self.homeworkModel.teacherId courseSubject:self.homeworkModel.subjectName isMusicRoom:NO];
+
         return cell;
     }
     else if (indexPath.row == 1) {
@@ -225,7 +240,7 @@
         NSString *message = self.evaluateModel.studentReplied;
         BOOL hasEvaluate = [NSString isEmptyString:self.evaluateModel.studentReplied] ? NO : YES;
         MJWeakSelf;
-        [cell configWithEvaluateMessage:message starNum:self.evaluateModel.score hasEvaluate:hasEvaluate callback:^{
+        [cell configWithEvaluateMessage:message courseStatus:self.homeworkModel.courseStatus starNum:self.evaluateModel.score hasEvaluate:hasEvaluate callback:^{
             [weakSelf evaluateCourse];
         }];
         return cell;
@@ -253,7 +268,8 @@
     else {
         AccompanyRemarkCell *cell = [tableView dequeueReusableCellWithIdentifier:@"AccompanyRemarkCell"];
         BOOL hasEvaluate = self.homeworkModel.reviewHomework == 1? YES : NO;
-        [cell configWithRemarkMessage:self.homeworkModel.teacherReplied hasEvaluate:hasEvaluate];
+        BOOL hasSubmitHomework = self.homeworkModel.submitHomework == 1 ? YES : NO;
+        [cell configWithRemarkMessage:self.homeworkModel.teacherReplied hasEvaluate:hasEvaluate hasSubmitHomework:hasSubmitHomework];
         return cell;
     }
 }
@@ -543,6 +559,17 @@
     return _tableView;
 }
 
+- (AccompanyNavView *)navView {
+    if (!_navView) {
+        _navView = [AccompanyNavView shareInstance];
+        MJWeakSelf;
+        [_navView navCallback:^{
+            [weakSelf backAction];
+        }];
+    }
+    return _navView;
+}
+
 - (void)hudTipWillShow:(BOOL)willShow{
     if (willShow) {
         [self resignFirstResponder];

+ 0 - 2
KulexiuForStudent/KulexiuForStudent/Module/Course/VipCourse/View/ProgramCourseGroupBodyView.m

@@ -261,8 +261,6 @@
         NSString *tipsString = [NSString stringWithFormat:@"课程还未开始,请在上课前%zd分钟进入", self.joinRoomBeforeTime];
         [LOADING_MANAGER MBShowAUTOHidingInWindow:tipsString];
     }
-    
-    [self joinClassRoom:model];
 }
 
 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

+ 6 - 24
KulexiuForStudent/KulexiuForStudent/Module/Login/View/InstrumentHeaderView.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21507" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" 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="21505"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
@@ -14,24 +14,11 @@
             <rect key="frame" x="0.0" y="0.0" width="356" height="74"/>
             <autoresizingMask key="autoresizingMask"/>
             <subviews>
-                <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="accell_left" translatesAutoresizingMaskIntoConstraints="NO" id="l1b-Vv-Tib">
-                    <rect key="frame" x="0.0" y="30" width="4" height="14"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="4" id="BMA-sE-wRY"/>
-                        <constraint firstAttribute="height" constant="14" id="M4c-7m-Pao"/>
-                    </constraints>
+                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="accell_left" translatesAutoresizingMaskIntoConstraints="NO" id="l1b-Vv-Tib">
+                    <rect key="frame" x="0.0" y="31" width="3" height="12"/>
                 </imageView>
-                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="sNT-2f-OEo">
-                    <rect key="frame" x="0.0" y="30" width="4" height="14"/>
-                    <color key="backgroundColor" red="0.1764705882352941" green="0.7803921568627451" blue="0.66666666666666663" alpha="1" colorSpace="calibratedRGB"/>
-                    <userDefinedRuntimeAttributes>
-                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                            <real key="value" value="2"/>
-                        </userDefinedRuntimeAttribute>
-                    </userDefinedRuntimeAttributes>
-                </view>
                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="乐器类型一" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="jBb-Ij-7Sm">
-                    <rect key="frame" x="10" y="22" width="82" height="30"/>
+                    <rect key="frame" x="9" y="22" width="79.5" height="30"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="30" id="MR7-38-gaS"/>
                     </constraints>
@@ -45,22 +32,17 @@
             <constraints>
                 <constraint firstItem="jBb-Ij-7Sm" firstAttribute="centerY" secondItem="l1b-Vv-Tib" secondAttribute="centerY" id="0so-3m-o9b"/>
                 <constraint firstItem="l1b-Vv-Tib" firstAttribute="leading" secondItem="9Gg-ye-v9C" secondAttribute="leading" id="7f7-O1-Hyg"/>
-                <constraint firstItem="sNT-2f-OEo" firstAttribute="trailing" secondItem="l1b-Vv-Tib" secondAttribute="trailing" id="FUX-fe-sNd"/>
                 <constraint firstItem="l1b-Vv-Tib" firstAttribute="centerY" secondItem="U6b-Vx-4bR" secondAttribute="centerY" id="HvZ-UC-auv"/>
                 <constraint firstItem="9Gg-ye-v9C" firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="jBb-Ij-7Sm" secondAttribute="trailing" constant="10" id="MXa-gB-45O"/>
-                <constraint firstItem="sNT-2f-OEo" firstAttribute="bottom" secondItem="l1b-Vv-Tib" secondAttribute="bottom" id="Srl-56-U39"/>
                 <constraint firstItem="jBb-Ij-7Sm" firstAttribute="leading" secondItem="l1b-Vv-Tib" secondAttribute="trailing" constant="6" id="V78-lJ-XJL"/>
-                <constraint firstItem="sNT-2f-OEo" firstAttribute="top" secondItem="l1b-Vv-Tib" secondAttribute="top" id="aGu-pg-2Rt"/>
-                <constraint firstItem="sNT-2f-OEo" firstAttribute="leading" secondItem="l1b-Vv-Tib" secondAttribute="leading" id="uWD-HC-FlQ"/>
             </constraints>
             <connections>
                 <outlet property="headerLabel" destination="jBb-Ij-7Sm" id="DoX-60-9Zq"/>
-                <outlet property="leftView" destination="sNT-2f-OEo" id="iGG-QM-ag4"/>
             </connections>
             <point key="canvasLocation" x="156.52173913043478" y="71.651785714285708"/>
         </collectionReusableView>
     </objects>
     <resources>
-        <image name="accell_left" width="4" height="18"/>
+        <image name="accell_left" width="3" height="12"/>
     </resources>
 </document>

+ 35 - 45
KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/Controller/HomeworkDetailViewController.m

@@ -15,12 +15,16 @@
 #import "KSMediaManager.h"
 #import "HomeworkBottomView.h"
 #import "KSChatConversationViewController.h"
+#import "HomeworkDetailNavView.h"
 
 @interface HomeworkDetailViewController ()<UITableViewDelegate, UITableViewDataSource,WMPlayerDelegate>
 {
     WMPlayer *_wmPlayer;
     CGRect _playerFrame;
 }
+
+@property (nonatomic, strong) HomeworkDetailNavView *navView;
+
 @property (nonatomic, strong) UIView *bgView;
 
 @property (nonatomic, assign) BOOL isRatation;
@@ -39,8 +43,6 @@
 
 @property (nonatomic, assign) BOOL canModify;
 
-@property (nonatomic, strong) HomeworkBottomView *bottomView;
-
 @property (nonatomic, assign) BOOL isModify; // 是否修改作业
 
 @property (nonatomic, copy) BackRefreshBlock callback;
@@ -67,18 +69,30 @@
 - (void)viewDidLoad {
     [super viewDidLoad];
     // Do any additional setup after loading the view.
-    [self allocTitle:@"作业详情"];
+    self.ks_prefersNavigationBarHidden = YES;
     [self requestCourseMessage];
     _isModify = NO;
 }
 
 - (void)setupUI {
     [self.scrollView removeFromSuperview];
-    self.view.backgroundColor = HexRGB(0xf6f8f9);
+    UIImage *bgImage = [UIImage imageNamed:@"homework_detail_bg"];
+    CGFloat height = bgImage.size.height / bgImage.size.width * KPortraitWidth;
+    UIImageView *imageView = [[UIImageView alloc] initWithImage:bgImage];
+    imageView.frame = CGRectMake(0, 0, KPortraitWidth, height);
+    [self.view addSubview:imageView];
+    
+    [self.view addSubview:self.navView];
+    CGFloat navHeight = [HomeworkDetailNavView getViewHeight];
+    [self.navView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.right.top.mas_equalTo(self.view);
+        make.height.mas_equalTo(navHeight);
+    }];
     [self.view addSubview:self.tableView];
     [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.right.top.mas_equalTo(self.view);
-        make.bottom.mas_equalTo(self.view.mas_bottom).offset(-iPhoneXSafeBottomMargin);
+        make.top.mas_equalTo(self.navView.mas_bottom);
+        make.left.right.mas_equalTo(self.view);
+        make.bottom.mas_equalTo(self.view.mas_bottom);
     }];
 }
 
@@ -116,18 +130,10 @@
     }
     // 老师布置过作业且没有点评 可以点击
     if (self.detailModel.reviewHomework == 1 || self.detailModel.decorateHomework == 0) {
-        self.bottomView.hidden = YES;
         self.canModify = NO;
-        self.bottomView.sureButton.userInteractionEnabled = NO;
-        self.bottomView.sureButton.backgroundColor = HexRGB(0xe5e5e5);
-        [self.bottomView.sureButton setTitleColor:HexRGB(0x666666) forState:UIControlStateNormal];
     }
     else {
-        self.bottomView.hidden = NO;
         self.canModify = YES;
-        self.bottomView.sureButton.userInteractionEnabled = YES;
-        self.bottomView.sureButton.backgroundColor = THEMECOLOR;
-        [self.bottomView.sureButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
     }
     
     [self setupUI];
@@ -136,7 +142,7 @@
 
 #pragma mark ----- table data source
 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
-    return self.cellCount;
+    return 4;
 }
 
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
@@ -145,22 +151,7 @@
         cell.statusLabel.text = @"已结束";
         cell.statusLabel.textColor = HexRGB(0x999999);
         BOOL isMusicRoom = [self.detailModel.courseType isEqualToString:@"PIANO_ROOM_CLASS"] ? YES : NO;
-        NSString *name = @"";
-        NSString *avatar = @"";
-        if (isMusicRoom) {
-            name = [NSString returnNoNullStringWithString:self.detailModel.courseGroupName];
-            avatar = @"";
-        }
-        else {
-            name = self.detailModel.teacherName;
-            avatar = self.detailModel.teacherAvatar;
-        }
-        [cell configWithStartTime:self.detailModel.startTime endTime:self.detailModel.endTime teacherAvatar:avatar teacherName:name teacherId:self.detailModel.teacherId courseSubject:self.detailModel.subjectName isMusicRoom:isMusicRoom];
-//        cell.hideChatButton = YES;
-        MJWeakSelf;
-        [cell chatCalkback:^{
-            [weakSelf chatAction];
-        }];
+        [cell configWithStartTime:self.detailModel.startTime endTime:self.detailModel.endTime courseName:self.detailModel.courseGroupName teacherAvatar:self.detailModel.teacherAvatar teacherName:self.detailModel.teacherName teacherId:self.detailModel.teacherId courseSubject:self.detailModel.subjectName isMusicRoom:isMusicRoom];
         return cell;
     }
     else if (indexPath.row == 1) { // 布置作业
@@ -186,7 +177,8 @@
     else { // 老师点评
         AccompanyRemarkCell *cell = [tableView dequeueReusableCellWithIdentifier:@"AccompanyRemarkCell"];
         BOOL hasEvaluate = self.detailModel.reviewHomework == 1? YES : NO;
-        [cell configWithRemarkMessage:self.detailModel.teacherReplied hasEvaluate:hasEvaluate];
+        BOOL hasSubmitHomework = self.detailModel.submitHomework == 1 ? YES : NO;
+        [cell configWithRemarkMessage:self.detailModel.teacherReplied hasEvaluate:hasEvaluate hasSubmitHomework:hasSubmitHomework];
         return cell;
     }
 }
@@ -372,17 +364,6 @@
     }
     return _fileArray;
 }
-- (HomeworkBottomView *)bottomView {
-    if (!_bottomView) {
-        _bottomView = [HomeworkBottomView shareInstance];
-        _bottomView.frame = CGRectMake(0, 0, kScreenWidth, 70);
-        MJWeakSelf;
-        [_bottomView sureAction:^{
-            [weakSelf submitHomeworkAction];
-        }];
-    }
-    return _bottomView;
-}
 
 - (UITableView *)tableView {
     if (!_tableView) {
@@ -399,8 +380,6 @@
         [_tableView registerNib:[UINib nibWithNibName:@"AccompanyArrangeCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"AccompanyArrangeCell"];
         [_tableView registerNib:[UINib nibWithNibName:@"AccompanyHomeworkCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"AccompanyHomeworkCell"];
         [_tableView registerNib:[UINib nibWithNibName:@"AccompanyRemarkCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"AccompanyRemarkCell"];
-        _tableView.tableFooterView = self.bottomView;
-        
     }
     return _tableView;
 }
@@ -438,6 +417,17 @@
         return [[NSMutableAttributedString alloc] initWithString:@""];
     }
 }
+
+- (HomeworkDetailNavView *)navView {
+    if (!_navView) {
+        _navView = [HomeworkDetailNavView sharedInstance];
+        MJWeakSelf;
+        [_navView navAction:^{
+            [weakSelf backAction];
+        }];
+    }
+    return _navView;
+}
 /*
 #pragma mark - Navigation
 

+ 83 - 14
KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/Controller/HomeworkListViewController.m

@@ -10,9 +10,12 @@
 #import "JXPagerListRefreshView.h"
 #import "HomeworkBodyView.h"
 #import "UserInfoManager.h"
+#import "HomeworkListNavView.h"
 
 @interface HomeworkListViewController ()<JXPagerViewDelegate, JXPagerMainTableViewGestureDelegate,JXCategoryViewDelegate>
 
+@property (nonatomic, strong) HomeworkListNavView *navView;
+
 @property (nonatomic, assign) NSInteger selectedIndex;
 
 @property (nonatomic, strong) NSMutableArray *listViewArray;
@@ -27,8 +30,8 @@
 - (void)viewDidLoad {
     [super viewDidLoad];
     // Do any additional setup after loading the view.
-    [self allocTitle:@"我的作业"];
-    self.titles = @[@"未提交",@"已提交"];
+    self.ks_prefersNavigationBarHidden = YES;
+    self.titles = @[@"",@""];
     [self setupUI];
     [self countUMEvent];
 }
@@ -39,11 +42,23 @@
 
 
 - (void)setupUI {
-    self.headHeight = 50.0f;
     [self.scrollView removeFromSuperview];
-    self.view.backgroundColor = HexRGB(0xf6f8f9);
+    UIImage *bgImage = [UIImage imageNamed:@"homework_detail_bg"];
+    CGFloat height = bgImage.size.height / bgImage.size.width * KPortraitWidth;
+    UIImageView *imageView = [[UIImageView alloc] initWithImage:bgImage];
+    imageView.frame = CGRectMake(0, 0, KPortraitWidth, height);
+    [self.view addSubview:imageView];
+    
+    [self.view addSubview:self.navView];
+    CGFloat navHeight = [HomeworkListNavView getViewHeight];
+    [self.navView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.right.top.mas_equalTo(self.view);
+        make.height.mas_equalTo(navHeight);
+    }];
+    
+    self.headHeight = CGFLOAT_MIN;
     
-    _categoryView = [[JXCategoryTitleView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, self.headHeight)];
+    _categoryView = [[JXCategoryTitleView alloc] initWithFrame:CGRectMake(0, navHeight, KPortraitWidth, self.headHeight)];
     self.categoryView.titles = self.titles;
     self.categoryView.delegate = self;
     self.categoryView.titleFont = [UIFont systemFontOfSize:17.0f];
@@ -51,16 +66,10 @@
     self.categoryView.titleSelectedColor = HexRGB(0x333333);
     self.categoryView.titleColor = HexRGB(0x666666);
     self.categoryView.titleColorGradientEnabled = YES;
-    self.categoryView.backgroundColor = [UIColor whiteColor];
-    
-    JXCategoryIndicatorLineView *lineView = [[JXCategoryIndicatorLineView alloc] init];
-    lineView.indicatorColor = THEMECOLOR;
-    lineView.indicatorWidth = 28;
-    lineView.indicatorHeight = 4.0f;
-    self.categoryView.indicators = @[lineView];
+    self.categoryView.hidden = YES;
     
     _pagerView = [self preferredPagingView];
-    self.pagerView.frame = CGRectMake(0, 0, kScreenWidth, kScreenHeight - kNaviBarHeight - iPhoneXSafeBottomMargin);
+    self.pagerView.frame = CGRectMake(0, navHeight, KPortraitWidth, KPortraitHeight - navHeight);
     self.pagerView.backgroundColor = [UIColor clearColor];
     self.pagerView.mainTableView.backgroundColor = [UIColor clearColor];
     self.pagerView.listContainerView.backgroundColor = [UIColor clearColor];
@@ -80,6 +89,8 @@
             [listView beginFirstRefresh];
         }
     }
+    // 页面appear 禁用
+    [IQKeyboardManager sharedManager].enable = NO;
 }
 
 - (void)viewDidAppear:(BOOL)animated {
@@ -87,6 +98,12 @@
     self.navigationController.interactivePopGestureRecognizer.enabled = (self.categoryView.selectedIndex == 0);
 }
 
+- (void)viewWillDisappear:(BOOL)animated {
+    [super viewWillDisappear:animated];
+    // 页面Disappear 启用
+    [IQKeyboardManager sharedManager].enable = YES;
+}
+
 - (JXPagerView *)preferredPagingView {
     return [[JXPagerListRefreshView alloc] initWithDelegate:self];
 }
@@ -102,7 +119,7 @@
 }
 
 - (NSUInteger)heightForPinSectionHeaderInPagerView:(JXPagerView *)pagerView {
-    return self.headHeight;
+    return 1;
 }
 
 - (UIView *)viewForPinSectionHeaderInPagerView:(JXPagerView *)pagerView {
@@ -127,6 +144,15 @@
 #pragma mark - JXCategoryViewDelegate
 - (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index {
     self.navigationController.interactivePopGestureRecognizer.enabled = (index == 0);
+    [self changeSegIndex:index];
+    self.selectedIndex = index;
+    if (self.listViewArray.count > index) {
+        id value = self.listViewArray[index];
+        if ([value isKindOfClass:[KSJXBodyView class]]) {
+            KSJXBodyView *listView = (KSJXBodyView *)value;
+            [listView beginFirstRefresh];
+        }
+    }
 }
 
 
@@ -147,6 +173,49 @@
     }
     return _listViewArray;
 }
+
+- (HomeworkListNavView *)navView {
+    if (!_navView) {
+        _navView = [HomeworkListNavView sharedInstance];
+        MJWeakSelf;
+        [_navView navActionCallback:^(HOMEWORKNAV_TYPE type) {
+            [weakSelf navAction:type];
+        }];
+    }
+    return _navView;
+}
+
+- (void)changeSegIndex:(NSInteger)index {
+    if (index == self.selectedIndex) {
+        return;
+    }
+    HOMEWORKNAV_TYPE type = index == 0 ? HOMEWORKNAV_TYPE_UNARRANGE : HOMEWORKNAV_TYPE_ARRANGE;
+    [self.navView swithPage:type];
+}
+
+- (void)navAction:(HOMEWORKNAV_TYPE)type {
+    switch (type) {
+        case HOMEWORKNAV_TYPE_BACK:
+        {
+            [self backAction];
+        }
+            break;
+        case HOMEWORKNAV_TYPE_UNARRANGE:
+        {
+            [self.categoryView selectItemAtIndex:0];
+            self.selectedIndex = 0;
+        }
+            break;
+        case HOMEWORKNAV_TYPE_ARRANGE:
+        {
+            [self.categoryView selectItemAtIndex:1];
+            self.selectedIndex = 1;
+        }
+            break;
+        default:
+            break;
+    }
+}
 /*
 #pragma mark - Navigation
 

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/Model/HomeworkDetailModel.h

@@ -44,7 +44,7 @@
 @property (nonatomic, strong) NSString *studentNum;
 @property (nonatomic, assign) NSInteger homeworkExpire;
 @property (nonatomic, strong) NSString *imUserId;
-
+@property (nonatomic, assign) BOOL attendanceStatus;
 
 
 + (instancetype)modelObjectWithDictionary:(NSDictionary *)dict;

+ 7 - 1
KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/Model/HomeworkDetailModel.m

@@ -41,7 +41,7 @@ NSString *const kHomeworkDetailModelImGroupId = @"imGroupId";
 NSString *const kHomeworkDetailModelStudentNum = @"studentNum";
 NSString *const kHomeworkDetailModelHomeworkExpire = @"homeworkExpire";
 NSString *const kHomeworkDetailModelImUserId = @"imUserId";
-
+NSString *const kHomeworkDetailModelAttendanceStatus = @"attendanceStatus";
 
 @interface HomeworkDetailModel ()
 
@@ -83,6 +83,7 @@ NSString *const kHomeworkDetailModelImUserId = @"imUserId";
 @synthesize studentNum = _studentNum;
 @synthesize homeworkExpire = _homeworkExpire;
 @synthesize imUserId = _imUserId;
+@synthesize attendanceStatus = _attendanceStatus;
 
 + (instancetype)modelObjectWithDictionary:(NSDictionary *)dict
 {
@@ -128,6 +129,7 @@ NSString *const kHomeworkDetailModelImUserId = @"imUserId";
         self.studentNum = [self objectOrNilForKey:kHomeworkDetailModelStudentNum fromDictionary:dict];
         self.homeworkExpire = [[self objectOrNilForKey:kHomeworkDetailModelHomeworkExpire fromDictionary:dict] integerValue];
         self.imUserId = [self objectOrNilForKey:kHomeworkDetailModelImUserId fromDictionary:dict];
+        self.attendanceStatus = [[self objectOrNilForKey:kHomeworkDetailModelAttendanceStatus fromDictionary:dict] boolValue];
     }
     
     return self;
@@ -169,6 +171,7 @@ NSString *const kHomeworkDetailModelImUserId = @"imUserId";
     [mutableDict setValue:self.studentNum forKey:kHomeworkDetailModelStudentNum];
     [mutableDict setValue:[NSNumber numberWithInteger:self.homeworkExpire] forKey:kHomeworkDetailModelHomeworkExpire];
     [mutableDict setValue:self.imUserId forKey:kHomeworkDetailModelImUserId];
+    [mutableDict setValue:[NSNumber numberWithBool:self.attendanceStatus] forKey:kHomeworkDetailModelAttendanceStatus];
     return [NSDictionary dictionaryWithDictionary:mutableDict];
 }
 
@@ -227,6 +230,7 @@ NSString *const kHomeworkDetailModelImUserId = @"imUserId";
     self.studentNum = [aDecoder decodeObjectForKey:kHomeworkDetailModelStudentNum];
     self.homeworkExpire = [aDecoder decodeIntegerForKey:kHomeworkDetailModelHomeworkExpire];
     self.imUserId = [aDecoder decodeObjectForKey:kHomeworkDetailModelImUserId];
+    self.attendanceStatus = [aDecoder decodeBoolForKey:kHomeworkDetailModelAttendanceStatus];
     return self;
 }
 
@@ -265,6 +269,7 @@ NSString *const kHomeworkDetailModelImUserId = @"imUserId";
     [aCoder encodeObject:_studentNum forKey:kHomeworkDetailModelStudentNum];
     [aCoder encodeInteger:_homeworkExpire forKey:kHomeworkDetailModelHomeworkExpire];
     [aCoder encodeObject:_imGroupId forKey:kHomeworkDetailModelImUserId];
+    [aCoder encodeBool:_attendanceStatus forKey:kHomeworkDetailModelAttendanceStatus];
 }
 
 - (id)copyWithZone:(NSZone *)zone
@@ -301,6 +306,7 @@ NSString *const kHomeworkDetailModelImUserId = @"imUserId";
         copy.teacherId = [self.teacherId copyWithZone:zone];
         copy.homeworkExpire = self.homeworkExpire;
         copy.imUserId = [self.imUserId copyWithZone:zone];
+        copy.attendanceStatus = self.attendanceStatus;
     }
     
     return copy;

+ 39 - 18
KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/View/HomeworkBodyView.m

@@ -33,6 +33,8 @@
 
 @property (nonatomic, strong) NSString *chooseDate;
 
+@property (nonatomic, strong) NSString *searchKey;
+
 @end
 
 @implementation HomeworkBodyView
@@ -40,24 +42,24 @@
 - (instancetype)initWithFrame:(CGRect)frame {
     self = [super initWithFrame:frame];
     if (self) {
-        self.backgroundColor = HexRGB(0xf6f8f9);
+        self.backgroundColor = [UIColor clearColor];
         self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height) style:UITableViewStylePlain];
-        self.tableView.backgroundColor = HexRGB(0xf6f8f9);
+        self.tableView.backgroundColor = [UIColor clearColor];
         self.tableView.showsVerticalScrollIndicator = NO;
         self.tableView.showsHorizontalScrollIndicator = NO;
         self.tableView.dataSource = self;
         self.tableView.delegate = self;
         self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
-        self.tableView.rowHeight = 132;
+        self.tableView.estimatedRowHeight = 123.0f;
+        self.tableView.rowHeight = UITableViewAutomaticDimension;
+        if (@available(iOS 15.0, *)) {
+            self.tableView.sectionHeaderTopPadding = 0;
+        }
+        self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
         [self addSubview:self.tableView];
-        
-        
-        UIView *headView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 10)];
-        headView.backgroundColor = HexRGB(0xf6f8f9);
-        self.tableView.tableHeaderView = headView;
-        
-        UIView *bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 10)];
-        bottomView.backgroundColor = HexRGB(0xf6f8f9);
+                
+        UIView *bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, KPortraitWidth, 10)];
+        bottomView.backgroundColor = [UIColor clearColor];
         self.tableView.tableFooterView = bottomView;
         
         [self.tableView registerNib:[UINib nibWithNibName:@"HomeworkListCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"HomeworkListCell"];
@@ -109,7 +111,7 @@
 
 - (void)requestData {
     NSInteger hasSubmit = self.selectIndex == 0 ? 0 : 1;
-    [KSNetworkingManager homeworkListRequest:KS_POST date:self.chooseDate submit:hasSubmit page:self.pages rows:self.rows success:^(NSDictionary * _Nonnull dic) {
+    [KSNetworkingManager homeworkListRequest:KS_POST date:self.chooseDate submit:hasSubmit searchKey:self.searchKey page:self.pages rows:self.rows success:^(NSDictionary * _Nonnull dic) {
         NSLog(@"%@",[dic mj_JSONString]);
         [self endRefresh];
         if ([dic ks_integerValueForKey:@"code"] == 200 && [dic ks_boolValueForKey:@"status"]) {
@@ -159,14 +161,14 @@
 
 - (void)layoutSubviews {
     [super layoutSubviews];
-    CGFloat topHeight = 50.0f;
+    CGFloat topHeight = [HomeworkSortView getViewHeight];
     self.tableView.frame = CGRectMake(0, topHeight, self.bounds.size.width, self.bounds.size.height - topHeight);
     if (!_sortView) {
         self.sortView.frame = CGRectMake(0, 0, kScreenWidth, topHeight);
         [self addSubview:self.sortView];
         [self.dateFormatter setDateFormat:@"yyyy年MM月"];
         NSDate *currentDate = [NSDate date];
-        self.sortView.sortTitleLabel.text = [NSString returnNoNullStringWithString:[self.dateFormatter stringFromDate:currentDate]];
+        self.sortView.sortLabel.text = [NSString returnNoNullStringWithString:[self.dateFormatter stringFromDate:currentDate]];
     }
 }
 
@@ -304,19 +306,38 @@
     if (!_sortView) {
         _sortView = [HomeworkSortView shareInstance];
         MJWeakSelf;
-        [_sortView sortAction:^{
-            [weakSelf timeChooseAction];
+        [_sortView sortAction:^(HOMEWORK_SORT type, NSString * _Nullable searchKey) {
+            [weakSelf sortAction:type searchKey:searchKey];
         }];
     }
     return _sortView;
 }
 
+- (void)sortAction:(HOMEWORK_SORT)sortType searchKey:(NSString *)searchKey {
+    switch (sortType) {
+        case HOMEWORK_SORT_TIME:
+        {
+            [self timeChooseAction];
+        }
+            break;
+        case HOMEWORK_SORT_SEARCH:
+        {
+            self.searchKey = searchKey;
+            [self refreshAndRequestData];
+        }
+            break;
+        default:
+            break;
+    }
+}
+
 - (void)timeChooseAction {
-    KSFullDatePicker *picker = [[KSFullDatePicker alloc] initWithTitle:@"" date:[NSDate date] pickMode:KSDATEPICKER_MODE_YEAR_MONTH sureButtonColor:CLIENT_THEMECOLOR selectDateBlock:^(NSString *date) {
+    self.sortView.arrowUp = YES;
+    KSFullDatePicker *picker = [[KSFullDatePicker alloc] initWithTitle:@"" date:[NSDate date] pickMode:KSDATEPICKER_MODE_YEAR_MONTH sureButtonColor:THEMECOLOR selectDateBlock:^(NSString *date) {
 
         self.chooseDate = date;
         NSString *displayTime = [self getTimeDisplay:date];
-        [self.sortView.sortTitleLabel setText:displayTime];
+        [self.sortView.sortLabel setText:displayTime];
         [self resetPickerStatus];
         // 请求数据
         [self refreshAndRequestData];

+ 24 - 0
KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/View/HomeworkDetailNavView.h

@@ -0,0 +1,24 @@
+//
+//  HomeworkDetailNavView.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2024/12/18.
+//
+
+#import <UIKit/UIKit.h>
+
+typedef void(^HomeworkDetailNavCallbcak)(void);
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface HomeworkDetailNavView : UIView
+
++ (instancetype)sharedInstance;
+
+- (void)navAction:(HomeworkDetailNavCallbcak)callback;
+
++ (CGFloat)getViewHeight;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 48 - 0
KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/View/HomeworkDetailNavView.m

@@ -0,0 +1,48 @@
+//
+//  HomeworkDetailNavView.m
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2024/12/18.
+//
+
+#import "HomeworkDetailNavView.h"
+
+@interface HomeworkDetailNavView ()
+
+@property (nonatomic, copy) HomeworkDetailNavCallbcak callback;
+
+@end
+
+@implementation HomeworkDetailNavView
+
++ (instancetype)sharedInstance {
+    HomeworkDetailNavView *view = [[[NSBundle mainBundle] loadNibNamed:@"HomeworkDetailNavView" owner:nil options:nil] firstObject];
+    return view;
+}
+
+- (void)navAction:(HomeworkDetailNavCallbcak)callback {
+    if (callback) {
+        self.callback = callback;
+    }
+}
+
+- (IBAction)backAction:(id)sender {
+    if (self.callback) {
+        self.callback();
+    }
+}
+
+
++ (CGFloat)getViewHeight {
+    return kNaviBarHeight;
+}
+
+/*
+// Only override drawRect: if you perform custom drawing.
+// An empty implementation adversely affects performance during animation.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+
+@end

+ 70 - 0
KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/View/HomeworkDetailNavView.xib

@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
+        <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"/>
+        <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="HomeworkDetailNavView">
+            <rect key="frame" x="0.0" y="0.0" width="393" height="85"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xsV-90-Zd6">
+                    <rect key="frame" x="0.0" y="41" width="393" height="44"/>
+                    <subviews>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="back_black" translatesAutoresizingMaskIntoConstraints="NO" id="AQB-xu-6H7">
+                            <rect key="frame" x="15" y="12" width="12" height="20"/>
+                        </imageView>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="UoA-VP-Fws">
+                            <rect key="frame" x="0.0" y="2" width="40" height="40"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="40" id="Xp5-Ds-eNy"/>
+                                <constraint firstAttribute="width" constant="40" id="xxJ-pU-4Ax"/>
+                            </constraints>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <connections>
+                                <action selector="backAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="WGB-hc-SG6"/>
+                            </connections>
+                        </button>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="作业详情" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FnB-gp-B52">
+                            <rect key="frame" x="160.66666666666666" y="9.6666666666666643" width="71.666666666666657" height="25"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="25" id="nKJ-o5-iC0"/>
+                            </constraints>
+                            <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="18"/>
+                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                    </subviews>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    <constraints>
+                        <constraint firstItem="FnB-gp-B52" firstAttribute="centerY" secondItem="UoA-VP-Fws" secondAttribute="centerY" id="TZu-4o-fIz"/>
+                        <constraint firstItem="UoA-VP-Fws" firstAttribute="leading" secondItem="xsV-90-Zd6" secondAttribute="leading" id="WuZ-8u-t6J"/>
+                        <constraint firstItem="UoA-VP-Fws" firstAttribute="centerY" secondItem="AQB-xu-6H7" secondAttribute="centerY" id="bhH-1i-W57"/>
+                        <constraint firstItem="AQB-xu-6H7" firstAttribute="centerY" secondItem="xsV-90-Zd6" secondAttribute="centerY" id="fGJ-ve-rRi"/>
+                        <constraint firstItem="AQB-xu-6H7" firstAttribute="leading" secondItem="xsV-90-Zd6" secondAttribute="leading" constant="15" id="idj-Sg-k9Z"/>
+                        <constraint firstAttribute="height" constant="44" id="jyN-FR-WVp"/>
+                        <constraint firstItem="FnB-gp-B52" firstAttribute="centerX" secondItem="xsV-90-Zd6" secondAttribute="centerX" id="rc8-LL-J9T"/>
+                    </constraints>
+                </view>
+            </subviews>
+            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+            <constraints>
+                <constraint firstItem="xsV-90-Zd6" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="Mtx-db-Xyu"/>
+                <constraint firstAttribute="trailing" secondItem="xsV-90-Zd6" secondAttribute="trailing" id="Wvd-vg-Kps"/>
+                <constraint firstAttribute="bottom" secondItem="xsV-90-Zd6" secondAttribute="bottom" id="c5m-tt-FPf"/>
+            </constraints>
+            <nil key="simulatedTopBarMetrics"/>
+            <nil key="simulatedBottomBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <point key="canvasLocation" x="43.511450381679388" y="-108.09859154929578"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="back_black" width="12" height="20"/>
+    </resources>
+</document>

+ 9 - 14
KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/View/HomeworkListCell.m

@@ -9,11 +9,13 @@
 
 @interface HomeworkListCell ()
 
+@property (weak, nonatomic) IBOutlet UILabel *courseNameLabel;
+
 @property (weak, nonatomic) IBOutlet UILabel *courseTime;
 
-@property (weak, nonatomic) IBOutlet UIImageView *studentAvatal;
+@property (weak, nonatomic) IBOutlet UIImageView *avatar;
 
-@property (weak, nonatomic) IBOutlet UILabel *studentNameLabel;
+@property (weak, nonatomic) IBOutlet UILabel *nameLabel;
 
 @property (weak, nonatomic) IBOutlet UILabel *subjectLabel;
 
@@ -54,17 +56,16 @@
     NSString *lessonEnd = [formatter stringFromDate:endDate];
     self.courseTime.text = [NSString stringWithFormat:@"%@~%@",[NSString returnNoNullStringWithString:lessonBegin],[NSString returnNoNullStringWithString:lessonEnd]];
     if ([sourceModel.type isEqualToString:@"PIANO_ROOM_CLASS"]) { // 琴房课
-        [self.studentAvatal setImage:[UIImage imageNamed:@"course_musicRoom"]];
-        self.studentNameLabel.text = [NSString returnNoNullStringWithString:sourceModel.courseGroupName];
-        self.avatalHeight.constant = 51.0f;
+        [self.avatar setImage:[UIImage imageNamed:@"course_musicRoom"]];
         self.isMusicRoom = YES;
     }
     else {
-        self.studentNameLabel.text = [NSString returnNoNullStringWithString:sourceModel.teacherName];
-        [self.studentAvatal sd_setImageWithURL:[NSURL URLWithString:[sourceModel.teacherAvatar getUrlEndcodeString]] placeholderImage:[UIImage imageNamed:TEACHER_AVATAR]];
-        self.avatalHeight.constant = 47.0f;
+        [self.avatar sd_setImageWithURL:[NSURL URLWithString:[sourceModel.teacherAvatar getUrlEndcodeString]] placeholderImage:[UIImage imageNamed:TEACHER_AVATAR]];
         self.isMusicRoom = NO;
     }
+    self.nameLabel.text = [NSString returnNoNullStringWithString:sourceModel.teacherName];
+    self.courseNameLabel.text = [NSString returnNoNullStringWithString:sourceModel.courseGroupName];
+
     
     if (self.isMusicRoom) {
         self.groupId = sourceModel.imGroupId;
@@ -100,12 +101,6 @@
     }
 }
 
-- (IBAction)chatAction:(id)sender {
-    if (self.callback) {
-        NSString *targetId = self.isMusicRoom ? self.groupId : self.userId;
-        self.callback(self.isMusicRoom, targetId, self.userName);
-    }
-}
 
 - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
     [super setSelected:selected animated:animated];

+ 56 - 53
KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/View/HomeworkListCell.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" 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="22685"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <capability name="System colors in document resources" minToolsVersion="11.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
@@ -11,38 +11,41 @@
     <objects>
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
-        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="87" id="KGk-i7-Jjw" customClass="HomeworkListCell">
-            <rect key="frame" x="0.0" y="0.0" width="468" height="138"/>
+        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="123" id="KGk-i7-Jjw" customClass="HomeworkListCell">
+            <rect key="frame" x="0.0" y="0.0" width="468" height="123"/>
             <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="468" height="138"/>
+                <rect key="frame" x="0.0" y="0.0" width="468" height="123"/>
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7PV-kN-jHP">
-                        <rect key="frame" x="14" y="0.0" width="440" height="126"/>
+                        <rect key="frame" x="14" y="0.0" width="440" height="111"/>
                         <subviews>
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="8DG-NN-Big">
-                                <rect key="frame" x="10" y="38" width="420" height="1"/>
+                                <rect key="frame" x="10" y="46" width="420" height="1"/>
                                 <color key="backgroundColor" red="0.94901960780000005" green="0.94901960780000005" blue="0.94901960780000005" alpha="1" colorSpace="calibratedRGB"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="1" id="J5x-mn-Xjj"/>
                                 </constraints>
                             </view>
                             <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="course_time" translatesAutoresizingMaskIntoConstraints="NO" id="tGm-S4-F4x">
-                                <rect key="frame" x="11" y="12" width="16" height="16"/>
+                                <rect key="frame" x="12" y="15" width="16" height="16"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="16" id="JtY-7v-IEx"/>
                                     <constraint firstAttribute="width" constant="16" id="eRH-xo-J70"/>
                                 </constraints>
                             </imageView>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2021/09/17 14:00~14:25" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="pXr-41-D0m">
-                                <rect key="frame" x="34" y="12" width="147" height="16"/>
+                                <rect key="frame" x="35" y="14" width="147" height="18"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="18" id="rhU-n6-FMX"/>
+                                </constraints>
                                 <fontDescription key="fontDescription" type="system" pointSize="13"/>
-                                <color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/>
+                                <color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="已结束" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1qw-WH-Jvr">
-                                <rect key="frame" x="379" y="11.5" width="50" height="17"/>
+                                <rect key="frame" x="378" y="14.5" width="50" height="17"/>
                                 <constraints>
                                     <constraint firstAttribute="width" constant="50" id="E6U-2d-Wcf"/>
                                 </constraints>
@@ -51,42 +54,42 @@
                                 <nil key="highlightedColor"/>
                             </label>
                             <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="teacher_avatar" translatesAutoresizingMaskIntoConstraints="NO" id="RUc-4R-w37">
-                                <rect key="frame" x="11" y="56" width="47" height="47"/>
+                                <rect key="frame" x="12" y="59" width="40" height="40"/>
                                 <constraints>
-                                    <constraint firstAttribute="width" constant="47" id="ERa-d0-RjJ"/>
-                                    <constraint firstAttribute="height" constant="47" id="b7T-Sz-cr8"/>
+                                    <constraint firstAttribute="width" constant="40" id="ERa-d0-RjJ"/>
+                                    <constraint firstAttribute="height" constant="40" id="b7T-Sz-cr8"/>
                                 </constraints>
                                 <userDefinedRuntimeAttributes>
                                     <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                                        <real key="value" value="5"/>
+                                        <real key="value" value="20"/>
                                     </userDefinedRuntimeAttribute>
                                 </userDefinedRuntimeAttributes>
                             </imageView>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="孙老师" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FpP-hs-iFV">
-                                <rect key="frame" x="68" y="56" width="49" height="24"/>
+                                <rect key="frame" x="62" y="58" width="366" height="21"/>
                                 <constraints>
-                                    <constraint firstAttribute="height" constant="24" id="EnM-36-tXQ"/>
+                                    <constraint firstAttribute="height" constant="21" id="EnM-36-tXQ"/>
                                 </constraints>
-                                <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
-                                <color key="textColor" red="0.1019607843" green="0.1019607843" blue="0.1019607843" alpha="1" colorSpace="calibratedRGB"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                <color key="textColor" red="0.074509803921568626" green="0.078431372549019607" blue="0.082352941176470587" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
-                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="6lL-kM-wkw">
-                                <rect key="frame" x="68" y="83" width="44" height="20"/>
+                            <view contentMode="scaleToFill" horizontalCompressionResistancePriority="752" translatesAutoresizingMaskIntoConstraints="NO" id="6lL-kM-wkw">
+                                <rect key="frame" x="106" y="83" width="38" height="17"/>
                                 <subviews>
-                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="单簧管" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="N2M-qy-lji">
-                                        <rect key="frame" x="5" y="0.0" width="34" height="20"/>
-                                        <fontDescription key="fontDescription" type="system" pointSize="11"/>
-                                        <color key="textColor" red="1" green="0.54901960780000003" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="752" text="单簧管" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="N2M-qy-lji">
+                                        <rect key="frame" x="4" y="0.0" width="30" height="17"/>
+                                        <fontDescription key="fontDescription" type="system" pointSize="10"/>
+                                        <color key="textColor" red="1" green="0.5490196078431373" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                         <nil key="highlightedColor"/>
                                     </label>
                                 </subviews>
                                 <color key="backgroundColor" red="1" green="0.94509803920000002" blue="0.87058823529999996" alpha="1" colorSpace="calibratedRGB"/>
                                 <constraints>
-                                    <constraint firstAttribute="height" constant="20" id="0Bh-JX-Emk"/>
+                                    <constraint firstAttribute="height" constant="17" id="0Bh-JX-Emk"/>
                                     <constraint firstAttribute="bottom" secondItem="N2M-qy-lji" secondAttribute="bottom" id="W9B-0Z-WhX"/>
-                                    <constraint firstAttribute="trailing" secondItem="N2M-qy-lji" secondAttribute="trailing" constant="5" id="gCN-fa-45e"/>
-                                    <constraint firstItem="N2M-qy-lji" firstAttribute="leading" secondItem="6lL-kM-wkw" secondAttribute="leading" constant="5" id="mBQ-WO-UKp"/>
+                                    <constraint firstAttribute="trailing" secondItem="N2M-qy-lji" secondAttribute="trailing" constant="4" id="gCN-fa-45e"/>
+                                    <constraint firstItem="N2M-qy-lji" firstAttribute="leading" secondItem="6lL-kM-wkw" secondAttribute="leading" constant="4" id="mBQ-WO-UKp"/>
                                     <constraint firstItem="N2M-qy-lji" firstAttribute="top" secondItem="6lL-kM-wkw" secondAttribute="top" id="yfs-2E-vzh"/>
                                 </constraints>
                                 <userDefinedRuntimeAttributes>
@@ -95,37 +98,37 @@
                                     </userDefinedRuntimeAttribute>
                                 </userDefinedRuntimeAttributes>
                             </view>
-                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="p4E-9g-vYI">
-                                <rect key="frame" x="117" y="48" width="40" height="40"/>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="张涵宇" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YP6-N5-OqQ">
+                                <rect key="frame" x="62" y="83" width="39" height="17"/>
                                 <constraints>
-                                    <constraint firstAttribute="width" constant="40" id="NEW-y5-Oa7"/>
-                                    <constraint firstAttribute="height" constant="40" id="zmM-0I-BZc"/>
+                                    <constraint firstAttribute="height" constant="17" id="fcB-EV-WFx"/>
                                 </constraints>
-                                <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
-                                <state key="normal" image="course_chat"/>
-                                <connections>
-                                    <action selector="chatAction:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="SHA-Sd-33P"/>
-                                </connections>
-                            </button>
+                                <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                                <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
                         </subviews>
                         <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                         <constraints>
-                            <constraint firstAttribute="trailing" secondItem="1qw-WH-Jvr" secondAttribute="trailing" constant="11" id="18O-zO-GbD"/>
-                            <constraint firstItem="tGm-S4-F4x" firstAttribute="top" secondItem="7PV-kN-jHP" secondAttribute="top" constant="12" id="4GN-CO-nq1"/>
-                            <constraint firstItem="8DG-NN-Big" firstAttribute="top" secondItem="tGm-S4-F4x" secondAttribute="bottom" constant="10" id="6Ws-sC-rr1"/>
+                            <constraint firstAttribute="trailing" secondItem="1qw-WH-Jvr" secondAttribute="trailing" constant="12" id="18O-zO-GbD"/>
+                            <constraint firstItem="tGm-S4-F4x" firstAttribute="top" secondItem="7PV-kN-jHP" secondAttribute="top" constant="15" id="4GN-CO-nq1"/>
+                            <constraint firstItem="8DG-NN-Big" firstAttribute="top" secondItem="tGm-S4-F4x" secondAttribute="bottom" constant="15" id="6Ws-sC-rr1"/>
+                            <constraint firstAttribute="bottom" secondItem="RUc-4R-w37" secondAttribute="bottom" constant="12" id="9Vz-jw-Lko"/>
                             <constraint firstItem="8DG-NN-Big" firstAttribute="leading" secondItem="7PV-kN-jHP" secondAttribute="leading" constant="10" id="ABd-pR-d50"/>
-                            <constraint firstItem="6lL-kM-wkw" firstAttribute="leading" secondItem="FpP-hs-iFV" secondAttribute="leading" id="AMW-R9-Bcq"/>
                             <constraint firstItem="1qw-WH-Jvr" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="pXr-41-D0m" secondAttribute="trailing" constant="10" id="Cot-6G-AkF"/>
-                            <constraint firstItem="RUc-4R-w37" firstAttribute="top" secondItem="8DG-NN-Big" secondAttribute="bottom" constant="17" id="Ex9-cF-vet"/>
-                            <constraint firstItem="p4E-9g-vYI" firstAttribute="leading" secondItem="FpP-hs-iFV" secondAttribute="trailing" id="Gpq-6F-6J4"/>
-                            <constraint firstItem="RUc-4R-w37" firstAttribute="leading" secondItem="7PV-kN-jHP" secondAttribute="leading" constant="11" id="LyQ-fd-Lkg"/>
+                            <constraint firstAttribute="trailing" secondItem="FpP-hs-iFV" secondAttribute="trailing" constant="12" id="Cun-bh-erl"/>
+                            <constraint firstItem="RUc-4R-w37" firstAttribute="top" secondItem="8DG-NN-Big" secondAttribute="bottom" constant="12" id="Ex9-cF-vet"/>
+                            <constraint firstItem="YP6-N5-OqQ" firstAttribute="leading" secondItem="FpP-hs-iFV" secondAttribute="leading" id="Hwe-0u-2wo"/>
+                            <constraint firstItem="RUc-4R-w37" firstAttribute="leading" secondItem="7PV-kN-jHP" secondAttribute="leading" constant="12" id="LyQ-fd-Lkg"/>
                             <constraint firstAttribute="trailing" secondItem="8DG-NN-Big" secondAttribute="trailing" constant="10" id="Mzo-e4-Gx1"/>
-                            <constraint firstItem="p4E-9g-vYI" firstAttribute="centerY" secondItem="FpP-hs-iFV" secondAttribute="centerY" id="TMh-aj-iKs"/>
-                            <constraint firstItem="FpP-hs-iFV" firstAttribute="top" secondItem="RUc-4R-w37" secondAttribute="top" id="Vs4-cN-QKB"/>
+                            <constraint firstItem="FpP-hs-iFV" firstAttribute="top" secondItem="RUc-4R-w37" secondAttribute="top" constant="-1" id="Vs4-cN-QKB"/>
                             <constraint firstItem="pXr-41-D0m" firstAttribute="leading" secondItem="tGm-S4-F4x" secondAttribute="trailing" constant="7" id="gdm-De-jDR"/>
-                            <constraint firstItem="6lL-kM-wkw" firstAttribute="bottom" secondItem="RUc-4R-w37" secondAttribute="bottom" id="grq-IE-FpO"/>
-                            <constraint firstItem="tGm-S4-F4x" firstAttribute="leading" secondItem="7PV-kN-jHP" secondAttribute="leading" constant="11" id="h4I-tZ-hfV"/>
+                            <constraint firstItem="6lL-kM-wkw" firstAttribute="leading" secondItem="YP6-N5-OqQ" secondAttribute="trailing" constant="5" id="h28-gg-sE2"/>
+                            <constraint firstItem="tGm-S4-F4x" firstAttribute="leading" secondItem="7PV-kN-jHP" secondAttribute="leading" constant="12" id="h4I-tZ-hfV"/>
+                            <constraint firstItem="6lL-kM-wkw" firstAttribute="centerY" secondItem="YP6-N5-OqQ" secondAttribute="centerY" id="kUB-iq-KzP"/>
                             <constraint firstItem="FpP-hs-iFV" firstAttribute="leading" secondItem="RUc-4R-w37" secondAttribute="trailing" constant="10" id="ktR-vp-74U"/>
+                            <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="6lL-kM-wkw" secondAttribute="trailing" constant="12" id="l38-D7-AKF"/>
+                            <constraint firstItem="YP6-N5-OqQ" firstAttribute="bottom" secondItem="RUc-4R-w37" secondAttribute="bottom" constant="1" id="nzT-Yj-22n"/>
                             <constraint firstItem="pXr-41-D0m" firstAttribute="centerY" secondItem="tGm-S4-F4x" secondAttribute="centerY" id="rTa-Wu-PAv"/>
                             <constraint firstItem="1qw-WH-Jvr" firstAttribute="centerY" secondItem="pXr-41-D0m" secondAttribute="centerY" id="yWK-wY-KLq"/>
                         </constraints>
@@ -147,17 +150,17 @@
             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
             <connections>
                 <outlet property="avatalHeight" destination="b7T-Sz-cr8" id="N3q-8p-G2M"/>
+                <outlet property="avatar" destination="RUc-4R-w37" id="etA-h9-lGX"/>
+                <outlet property="courseNameLabel" destination="FpP-hs-iFV" id="qh4-Hs-jdr"/>
                 <outlet property="courseTime" destination="pXr-41-D0m" id="P4z-qr-Sz2"/>
+                <outlet property="nameLabel" destination="YP6-N5-OqQ" id="eRn-1l-0fW"/>
                 <outlet property="statusLabel" destination="1qw-WH-Jvr" id="Ft9-cT-Ndb"/>
-                <outlet property="studentAvatal" destination="RUc-4R-w37" id="ZyZ-wJ-Xmv"/>
-                <outlet property="studentNameLabel" destination="FpP-hs-iFV" id="nao-Cd-xgS"/>
                 <outlet property="subjectLabel" destination="N2M-qy-lji" id="GVs-Ed-0bm"/>
             </connections>
-            <point key="canvasLocation" x="263.768115942029" y="109.82142857142857"/>
+            <point key="canvasLocation" x="266.66666666666669" y="105.46875"/>
         </tableViewCell>
     </objects>
     <resources>
-        <image name="course_chat" width="19" height="18"/>
         <image name="course_time" width="16" height="16"/>
         <image name="teacher_avatar" width="150" height="150"/>
         <systemColor name="systemBackgroundColor">

+ 32 - 0
KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/View/HomeworkListNavView.h

@@ -0,0 +1,32 @@
+//
+//  HomeworkListNavView.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2024/12/19.
+//
+
+#import <UIKit/UIKit.h>
+
+typedef NS_ENUM(NSInteger, HOMEWORKNAV_TYPE) {
+    HOMEWORKNAV_TYPE_BACK,       // 返回
+    HOMEWORKNAV_TYPE_UNARRANGE,  // 未布置
+    HOMEWORKNAV_TYPE_ARRANGE,    // 已布置
+};
+
+typedef void(^HomeListNavCallback)(HOMEWORKNAV_TYPE type);
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface HomeworkListNavView : UIView
+
++ (instancetype)sharedInstance;
+
+- (void)swithPage:(HOMEWORKNAV_TYPE)type;
+
+- (void)navActionCallback:(HomeListNavCallback)callback;
+
++ (CGFloat)getViewHeight;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 89 - 0
KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/View/HomeworkListNavView.m

@@ -0,0 +1,89 @@
+//
+//  HomeworkListNavView.m
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2024/12/19.
+//
+
+#import "HomeworkListNavView.h"
+
+@interface HomeworkListNavView ()
+
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *dotLeft;
+
+@property (weak, nonatomic) IBOutlet UILabel *unArrangeLabel;
+
+@property (weak, nonatomic) IBOutlet UILabel *arrangeLabel;
+
+@property (nonatomic, copy) HomeListNavCallback callback;
+
+@end
+
+@implementation HomeworkListNavView
+
++ (instancetype)sharedInstance {
+    HomeworkListNavView *view = [[[NSBundle mainBundle] loadNibNamed:@"HomeworkListNavView" owner:nil options:nil] firstObject];
+    return view;
+}
+
+- (void)navActionCallback:(HomeListNavCallback)callback {
+    if (callback) {
+        self.callback = callback;
+    }
+}
+
++ (CGFloat)getViewHeight {
+    return kNaviBarHeight;
+}
+
+- (void)swithPage:(HOMEWORKNAV_TYPE)type {
+    if (type == HOMEWORKNAV_TYPE_BACK) {
+        return;
+    }
+    else if (type == HOMEWORKNAV_TYPE_UNARRANGE) {
+        self.dotLeft.constant = 17.0f;
+        self.unArrangeLabel.textColor = HexRGB(0x333333);
+        self.unArrangeLabel.font = [UIFont systemFontOfSize:16.0f weight:UIFontWeightSemibold];
+        self.arrangeLabel.textColor = HexRGBAlpha(0x000000, 0.4);
+        self.arrangeLabel.font = [UIFont systemFontOfSize:16.0f weight:UIFontWeightRegular];
+    }
+    else if (type == HOMEWORKNAV_TYPE_ARRANGE) {
+        self.dotLeft.constant = 142.0f;
+        self.unArrangeLabel.textColor = HexRGBAlpha(0x000000, 0.4);
+        self.unArrangeLabel.font = [UIFont systemFontOfSize:16.0f weight:UIFontWeightRegular];
+        self.arrangeLabel.textColor = HexRGB(0x333333);
+        self.arrangeLabel.font = [UIFont systemFontOfSize:16.0f weight:UIFontWeightSemibold];
+    }
+}
+
+- (IBAction)backAction:(id)sender {
+    if (self.callback) {
+        self.callback(HOMEWORKNAV_TYPE_BACK);
+    }
+}
+
+- (IBAction)toUnArrangePage:(id)sender {
+    if (self.callback) {
+        self.callback(HOMEWORKNAV_TYPE_UNARRANGE);
+    }
+    [self swithPage:HOMEWORKNAV_TYPE_UNARRANGE];
+}
+
+- (IBAction)toArrangePage:(id)sender {
+    if (self.callback) {
+        self.callback(HOMEWORKNAV_TYPE_ARRANGE);
+    }
+    [self swithPage:HOMEWORKNAV_TYPE_ARRANGE];
+}
+
+
+
+/*
+// Only override drawRect: if you perform custom drawing.
+// An empty implementation adversely affects performance during animation.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+
+@end

+ 141 - 0
KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/View/HomeworkListNavView.xib

@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
+        <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"/>
+        <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="HomeworkListNavView">
+            <rect key="frame" x="0.0" y="0.0" width="393" height="85"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="5nH-oq-I81">
+                    <rect key="frame" x="0.0" y="41" width="393" height="44"/>
+                    <subviews>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="back_black" translatesAutoresizingMaskIntoConstraints="NO" id="Jb2-3C-lR3">
+                            <rect key="frame" x="15" y="12" width="12" height="20"/>
+                        </imageView>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="5gh-CB-iSY">
+                            <rect key="frame" x="0.0" y="0.0" width="44" height="44"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="44" id="298-yT-kqs"/>
+                            </constraints>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <connections>
+                                <action selector="backAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="duU-Ry-Yz3"/>
+                            </connections>
+                        </button>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="JAr-dU-K1B">
+                            <rect key="frame" x="109" y="8" width="175" height="36"/>
+                            <subviews>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="未提交" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zjp-UJ-WO2">
+                                    <rect key="frame" x="0.0" y="0.0" width="50" height="22"/>
+                                    <constraints>
+                                        <constraint firstAttribute="width" constant="50" id="LS4-AY-jJt"/>
+                                        <constraint firstAttribute="height" constant="22" id="it4-yl-yKN"/>
+                                    </constraints>
+                                    <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="16"/>
+                                    <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="已提交" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="wrT-Sd-JNz">
+                                    <rect key="frame" x="125" y="0.0" width="50" height="22"/>
+                                    <constraints>
+                                        <constraint firstAttribute="width" constant="50" id="0QD-2z-MV3"/>
+                                        <constraint firstAttribute="height" constant="22" id="iSs-hb-zPF"/>
+                                    </constraints>
+                                    <fontDescription key="fontDescription" type="system" pointSize="16"/>
+                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.40000000000000002" colorSpace="custom" customColorSpace="calibratedRGB"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bWU-61-EF1">
+                                    <rect key="frame" x="17" y="32" width="16" height="4"/>
+                                    <color key="backgroundColor" red="0.1764705882352941" green="0.7803921568627451" blue="0.66666666666666663" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="4" id="Xvx-5t-hNa"/>
+                                        <constraint firstAttribute="width" constant="16" id="yh4-B4-VhI"/>
+                                    </constraints>
+                                    <userDefinedRuntimeAttributes>
+                                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                            <real key="value" value="2"/>
+                                        </userDefinedRuntimeAttribute>
+                                    </userDefinedRuntimeAttributes>
+                                </view>
+                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="sec-dR-yuA">
+                                    <rect key="frame" x="0.0" y="0.0" width="60" height="36"/>
+                                    <constraints>
+                                        <constraint firstAttribute="width" constant="60" id="8NO-lb-EvN"/>
+                                    </constraints>
+                                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                    <connections>
+                                        <action selector="toUnArrangePage:" destination="iN0-l3-epB" eventType="touchUpInside" id="3H4-XF-Ml7"/>
+                                    </connections>
+                                </button>
+                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="mOo-5G-KNn">
+                                    <rect key="frame" x="115" y="0.0" width="60" height="36"/>
+                                    <constraints>
+                                        <constraint firstAttribute="width" constant="60" id="73G-OL-lAk"/>
+                                    </constraints>
+                                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                    <connections>
+                                        <action selector="toArrangePage:" destination="iN0-l3-epB" eventType="touchUpInside" id="9xu-Ck-93z"/>
+                                    </connections>
+                                </button>
+                            </subviews>
+                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                            <constraints>
+                                <constraint firstAttribute="bottom" secondItem="bWU-61-EF1" secondAttribute="bottom" id="0MG-sD-x8V"/>
+                                <constraint firstAttribute="width" constant="175" id="5BS-1Y-zgo"/>
+                                <constraint firstItem="zjp-UJ-WO2" firstAttribute="top" secondItem="JAr-dU-K1B" secondAttribute="top" id="8k7-8l-8kV"/>
+                                <constraint firstItem="mOo-5G-KNn" firstAttribute="top" secondItem="JAr-dU-K1B" secondAttribute="top" id="EXO-GL-oS5"/>
+                                <constraint firstItem="sec-dR-yuA" firstAttribute="leading" secondItem="JAr-dU-K1B" secondAttribute="leading" id="Juj-4v-Fkv"/>
+                                <constraint firstAttribute="height" constant="36" id="MzW-eb-vHq"/>
+                                <constraint firstAttribute="trailing" secondItem="mOo-5G-KNn" secondAttribute="trailing" id="Ohz-eZ-aK5"/>
+                                <constraint firstAttribute="bottom" secondItem="sec-dR-yuA" secondAttribute="bottom" id="Tov-Zt-50H"/>
+                                <constraint firstItem="bWU-61-EF1" firstAttribute="leading" secondItem="JAr-dU-K1B" secondAttribute="leading" constant="17" id="XcH-I4-A19"/>
+                                <constraint firstAttribute="bottom" secondItem="mOo-5G-KNn" secondAttribute="bottom" id="eFf-kN-t8I"/>
+                                <constraint firstAttribute="trailing" secondItem="wrT-Sd-JNz" secondAttribute="trailing" id="eqO-S7-ame"/>
+                                <constraint firstItem="sec-dR-yuA" firstAttribute="top" secondItem="JAr-dU-K1B" secondAttribute="top" id="hRS-wi-0TZ"/>
+                                <constraint firstItem="wrT-Sd-JNz" firstAttribute="top" secondItem="JAr-dU-K1B" secondAttribute="top" id="leo-fq-D6K"/>
+                                <constraint firstItem="zjp-UJ-WO2" firstAttribute="leading" secondItem="JAr-dU-K1B" secondAttribute="leading" id="pb4-lw-WIb"/>
+                            </constraints>
+                        </view>
+                    </subviews>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    <constraints>
+                        <constraint firstItem="5gh-CB-iSY" firstAttribute="leading" secondItem="5nH-oq-I81" secondAttribute="leading" id="4KQ-yf-XlL"/>
+                        <constraint firstAttribute="height" constant="44" id="Oml-9s-7a1"/>
+                        <constraint firstItem="Jb2-3C-lR3" firstAttribute="centerY" secondItem="5nH-oq-I81" secondAttribute="centerY" id="V4R-KJ-BTV"/>
+                        <constraint firstItem="5gh-CB-iSY" firstAttribute="top" secondItem="5nH-oq-I81" secondAttribute="top" id="blS-4s-kGg"/>
+                        <constraint firstAttribute="bottom" secondItem="5gh-CB-iSY" secondAttribute="bottom" id="cAT-4Q-65t"/>
+                        <constraint firstAttribute="bottom" secondItem="JAr-dU-K1B" secondAttribute="bottom" id="jaI-rc-pgh"/>
+                        <constraint firstItem="Jb2-3C-lR3" firstAttribute="leading" secondItem="5nH-oq-I81" secondAttribute="leading" constant="15" id="nAr-K1-yci"/>
+                        <constraint firstItem="JAr-dU-K1B" firstAttribute="centerX" secondItem="5nH-oq-I81" secondAttribute="centerX" id="s4f-Qj-bBI"/>
+                    </constraints>
+                </view>
+            </subviews>
+            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+            <constraints>
+                <constraint firstAttribute="bottom" secondItem="5nH-oq-I81" secondAttribute="bottom" id="JSM-9z-xRM"/>
+                <constraint firstAttribute="trailing" secondItem="5nH-oq-I81" secondAttribute="trailing" id="j8Z-FI-NJt"/>
+                <constraint firstItem="5nH-oq-I81" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="nBy-UE-fK0"/>
+            </constraints>
+            <nil key="simulatedTopBarMetrics"/>
+            <nil key="simulatedBottomBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <connections>
+                <outlet property="arrangeLabel" destination="wrT-Sd-JNz" id="ELN-nN-dUZ"/>
+                <outlet property="dotLeft" destination="XcH-I4-A19" id="4Zg-Sa-B7z"/>
+                <outlet property="unArrangeLabel" destination="zjp-UJ-WO2" id="LpF-0L-vZU"/>
+            </connections>
+            <point key="canvasLocation" x="43.511450381679388" y="-68.661971830985919"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="back_black" width="12" height="20"/>
+    </resources>
+</document>

+ 8 - 2
KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/View/HomeworkSortView.h

@@ -9,11 +9,16 @@
 
 NS_ASSUME_NONNULL_BEGIN
 
-typedef void(^TimeSortCallback)(void);
+typedef NS_ENUM(NSInteger, HOMEWORK_SORT) {
+    HOMEWORK_SORT_TIME,
+    HOMEWORK_SORT_SEARCH,
+};
+
+typedef void(^TimeSortCallback)(HOMEWORK_SORT type, NSString * _Nullable searchKey);
 
 @interface HomeworkSortView : UIView
 
-@property (weak, nonatomic) IBOutlet UILabel *sortTitleLabel;
+@property (weak, nonatomic) IBOutlet UILabel *sortLabel;
 
 @property (nonatomic, assign) BOOL arrowUp;
 
@@ -21,6 +26,7 @@ typedef void(^TimeSortCallback)(void);
 
 - (void)sortAction:(TimeSortCallback)callback;
 
++ (CGFloat)getViewHeight;
 
 @end
 

+ 39 - 6
KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/View/HomeworkSortView.m

@@ -7,9 +7,11 @@
 
 #import "HomeworkSortView.h"
 
-@interface HomeworkSortView ()
+@interface HomeworkSortView ()<UITextFieldDelegate>
 
-@property (weak, nonatomic) IBOutlet UIImageView *arrowImage;
+@property (weak, nonatomic) IBOutlet UIImageView *sortImage;
+
+@property (weak, nonatomic) IBOutlet UITextField *searchField;
 
 @property (nonatomic, copy) TimeSortCallback callback;
 
@@ -17,6 +19,12 @@
 
 @implementation HomeworkSortView
 
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    self.searchField.delegate = self;
+    self.searchField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"请输入课程组名称" attributes:@{NSForegroundColorAttributeName:HexRGBAlpha(0x000000, 0.4),NSFontAttributeName:[UIFont systemFontOfSize:14.0f]}];
+}
+
 + (instancetype)shareInstance {
     HomeworkSortView *view = [[[NSBundle mainBundle] loadNibNamed:@"HomeworkSortView" owner:nil options:nil] firstObject];
     return view;
@@ -29,16 +37,41 @@
 }
 
 - (IBAction)sortButtonAction:(id)sender {
-    self.arrowUp = YES;
+    [self endEditing:YES];
+    if (self.callback) {
+        self.callback(HOMEWORK_SORT_TIME, nil);
+    }
+}
+
+- (IBAction)searchAction:(id)sender {
+    [self endEditing:YES];
     if (self.callback) {
-        self.callback();
+        self.callback(HOMEWORK_SORT_SEARCH, self.searchField.text);
     }
 }
 
+- (BOOL)textFieldShouldReturn:(UITextField *)textField {
+    [self endEditing:YES];
+    if (self.callback) {
+        self.callback(HOMEWORK_SORT_SEARCH, textField.text);
+    }
+    return YES;
+}
+
 - (void)setArrowUp:(BOOL)arrowUp {
     _arrowUp = arrowUp;
-    NSString *imageName = arrowUp ? @"sort_up" : @"sort_down";
-    [self.arrowImage setImage:[UIImage imageNamed:imageName]];
+    if (arrowUp) {
+        self.sortLabel.textColor = THEMECOLOR;
+        [self.sortImage setImage:[UIImage imageNamed:@"sort_up_blue"]];
+    }
+    else {
+        self.sortLabel.textColor = HexRGB(0x131415);
+        [self.sortImage setImage:[UIImage imageNamed:@"sort_down_grey"]];
+    }
+}
+
++ (CGFloat)getViewHeight {
+    return 58.0f;
 }
 
 /*

+ 103 - 33
KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/View/HomeworkSortView.xib

@@ -1,61 +1,131 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22505" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
     <device id="retina6_1" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22504"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
         <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"/>
         <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="HomeworkSortView">
-            <rect key="frame" x="0.0" y="0.0" width="414" height="71"/>
+            <rect key="frame" x="0.0" y="0.0" width="414" height="60"/>
             <autoresizingMask key="autoresizingMask"/>
             <subviews>
-                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="XXXX年X月" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="t4D-yi-OH7">
-                    <rect key="frame" x="14" y="25.5" width="81" height="20"/>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Thg-pa-tMK">
+                    <rect key="frame" x="14" y="12" width="93.5" height="34"/>
+                    <subviews>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2024年12月" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="v0u-cD-2Gi">
+                            <rect key="frame" x="0.0" y="8.5" width="80.5" height="17"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                            <color key="textColor" red="0.074509803920000006" green="0.078431372550000003" blue="0.08235294118" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="sort_down_grey" translatesAutoresizingMaskIntoConstraints="NO" id="Ssc-Jh-zKg">
+                            <rect key="frame" x="84.5" y="14.5" width="9" height="5"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="9" id="Fnv-LN-ZjY"/>
+                            </constraints>
+                        </imageView>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="e7W-Z8-qfu">
+                            <rect key="frame" x="0.0" y="0.0" width="93.5" height="34"/>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <connections>
+                                <action selector="sortButtonAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="q0x-yq-dRs"/>
+                            </connections>
+                        </button>
+                    </subviews>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                     <constraints>
-                        <constraint firstAttribute="height" constant="20" id="Wp2-fJ-Nhg"/>
+                        <constraint firstAttribute="height" constant="34" id="I4W-nJ-spH"/>
+                        <constraint firstItem="e7W-Z8-qfu" firstAttribute="top" secondItem="Thg-pa-tMK" secondAttribute="top" id="JW3-Yc-74R"/>
+                        <constraint firstAttribute="trailing" secondItem="e7W-Z8-qfu" secondAttribute="trailing" id="QiD-L1-zOi"/>
+                        <constraint firstAttribute="trailing" secondItem="Ssc-Jh-zKg" secondAttribute="trailing" id="QqR-Em-ufj"/>
+                        <constraint firstItem="e7W-Z8-qfu" firstAttribute="leading" secondItem="Thg-pa-tMK" secondAttribute="leading" id="TOQ-35-6x4"/>
+                        <constraint firstItem="v0u-cD-2Gi" firstAttribute="centerY" secondItem="Thg-pa-tMK" secondAttribute="centerY" id="csH-aj-8Yy"/>
+                        <constraint firstItem="Ssc-Jh-zKg" firstAttribute="centerY" secondItem="v0u-cD-2Gi" secondAttribute="centerY" id="d4q-L1-AdT"/>
+                        <constraint firstAttribute="bottom" secondItem="e7W-Z8-qfu" secondAttribute="bottom" id="hPF-ER-BWY"/>
+                        <constraint firstItem="v0u-cD-2Gi" firstAttribute="leading" secondItem="Thg-pa-tMK" secondAttribute="leading" id="ldf-bJ-JJo"/>
+                        <constraint firstItem="Ssc-Jh-zKg" firstAttribute="leading" secondItem="v0u-cD-2Gi" secondAttribute="trailing" constant="4" id="qoM-5q-UZs"/>
                     </constraints>
-                    <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>
-                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="sort_down" translatesAutoresizingMaskIntoConstraints="NO" id="dxn-Em-1xD">
-                    <rect key="frame" x="98" y="32.5" width="8" height="6"/>
-                </imageView>
-                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="0zE-tr-Z1O">
-                    <rect key="frame" x="14" y="0.0" width="92" height="71"/>
-                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
-                    <connections>
-                        <action selector="sortButtonAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="rWv-0j-Xxb"/>
-                    </connections>
-                </button>
+                </view>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Za2-tz-f26">
+                    <rect key="frame" x="119.5" y="12" width="280.5" height="34"/>
+                    <subviews>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="search_green" translatesAutoresizingMaskIntoConstraints="NO" id="Mvg-ZH-Air">
+                            <rect key="frame" x="12" y="9" width="16" height="16"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="16" id="PHX-oY-utt"/>
+                                <constraint firstAttribute="height" constant="16" id="kZ8-Dm-POc"/>
+                            </constraints>
+                        </imageView>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ExG-kZ-4Zv">
+                            <rect key="frame" x="221.5" y="3" width="56" height="28"/>
+                            <color key="backgroundColor" red="0.1764705882" green="0.78039215689999997" blue="0.66666666669999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="28" id="ezv-m8-U8V"/>
+                                <constraint firstAttribute="width" constant="56" id="hPO-G3-bzz"/>
+                            </constraints>
+                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <state key="normal" title="搜索"/>
+                            <userDefinedRuntimeAttributes>
+                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                    <real key="value" value="14"/>
+                                </userDefinedRuntimeAttribute>
+                            </userDefinedRuntimeAttributes>
+                            <connections>
+                                <action selector="searchAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="sB8-ma-fAx"/>
+                            </connections>
+                        </button>
+                        <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入搜索关键词" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="ee5-sk-ANr">
+                            <rect key="frame" x="34" y="0.0" width="175.5" height="34"/>
+                            <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                            <textInputTraits key="textInputTraits"/>
+                        </textField>
+                    </subviews>
+                    <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    <constraints>
+                        <constraint firstItem="ExG-kZ-4Zv" firstAttribute="centerY" secondItem="Za2-tz-f26" secondAttribute="centerY" id="0QT-OK-gX6"/>
+                        <constraint firstItem="Mvg-ZH-Air" firstAttribute="centerY" secondItem="Za2-tz-f26" secondAttribute="centerY" id="1CF-og-nrl"/>
+                        <constraint firstAttribute="trailing" secondItem="ExG-kZ-4Zv" secondAttribute="trailing" constant="3" id="7Rh-UM-cjh"/>
+                        <constraint firstAttribute="bottom" secondItem="ee5-sk-ANr" secondAttribute="bottom" id="9qB-4X-MpQ"/>
+                        <constraint firstItem="ee5-sk-ANr" firstAttribute="top" secondItem="Za2-tz-f26" secondAttribute="top" id="iCZ-tj-K6V"/>
+                        <constraint firstItem="ExG-kZ-4Zv" firstAttribute="leading" secondItem="ee5-sk-ANr" secondAttribute="trailing" constant="12" id="ina-P9-Njt"/>
+                        <constraint firstItem="ee5-sk-ANr" firstAttribute="leading" secondItem="Mvg-ZH-Air" secondAttribute="trailing" constant="6" id="reT-cN-0xv"/>
+                        <constraint firstItem="Mvg-ZH-Air" firstAttribute="leading" secondItem="Za2-tz-f26" secondAttribute="leading" constant="12" id="sPO-2Y-HjQ"/>
+                        <constraint firstAttribute="height" constant="34" id="w6u-Zj-tyT"/>
+                    </constraints>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                            <real key="value" value="17"/>
+                        </userDefinedRuntimeAttribute>
+                    </userDefinedRuntimeAttributes>
+                </view>
             </subviews>
             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
             <constraints>
-                <constraint firstItem="0zE-tr-Z1O" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="3A4-LV-UX8"/>
-                <constraint firstItem="t4D-yi-OH7" firstAttribute="leading" secondItem="0zE-tr-Z1O" secondAttribute="leading" id="IEw-nx-7uA"/>
-                <constraint firstItem="dxn-Em-1xD" firstAttribute="centerY" secondItem="0zE-tr-Z1O" secondAttribute="centerY" id="bQb-1X-2bN"/>
-                <constraint firstItem="dxn-Em-1xD" firstAttribute="centerY" secondItem="t4D-yi-OH7" secondAttribute="centerY" id="plf-sU-8TP"/>
-                <constraint firstAttribute="bottom" secondItem="0zE-tr-Z1O" secondAttribute="bottom" id="qyE-Vi-A46"/>
-                <constraint firstItem="dxn-Em-1xD" firstAttribute="leading" secondItem="t4D-yi-OH7" secondAttribute="trailing" constant="3" id="rdB-Cz-jgk"/>
-                <constraint firstItem="dxn-Em-1xD" firstAttribute="trailing" secondItem="0zE-tr-Z1O" secondAttribute="trailing" id="uMM-8g-Iey"/>
-                <constraint firstItem="t4D-yi-OH7" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="xba-oZ-dqJ"/>
-                <constraint firstItem="t4D-yi-OH7" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="centerY" id="yPk-Hn-IMF"/>
+                <constraint firstItem="Za2-tz-f26" firstAttribute="centerY" secondItem="Thg-pa-tMK" secondAttribute="centerY" id="6Jr-vo-oty"/>
+                <constraint firstItem="Thg-pa-tMK" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="ULy-qF-fWL"/>
+                <constraint firstAttribute="trailing" secondItem="Za2-tz-f26" secondAttribute="trailing" constant="14" id="Y7N-VH-sH8"/>
+                <constraint firstItem="Thg-pa-tMK" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="12" id="uVY-I3-ES1"/>
+                <constraint firstItem="Za2-tz-f26" firstAttribute="leading" secondItem="Thg-pa-tMK" secondAttribute="trailing" constant="12" id="xeU-Wa-0RT"/>
             </constraints>
             <nil key="simulatedTopBarMetrics"/>
             <nil key="simulatedBottomBarMetrics"/>
             <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
             <connections>
-                <outlet property="arrowImage" destination="dxn-Em-1xD" id="9IA-4h-Loj"/>
-                <outlet property="sortTitleLabel" destination="t4D-yi-OH7" id="aJ4-rZ-EMq"/>
+                <outlet property="searchField" destination="ee5-sk-ANr" id="Oaa-Sb-jLp"/>
+                <outlet property="sortImage" destination="Ssc-Jh-zKg" id="6xq-K4-bZb"/>
+                <outlet property="sortLabel" destination="v0u-cD-2Gi" id="6ZL-gl-El2"/>
             </connections>
-            <point key="canvasLocation" x="131.8840579710145" y="41.852678571428569"/>
+            <point key="canvasLocation" x="131.8840579710145" y="38.169642857142854"/>
         </view>
     </objects>
     <resources>
-        <image name="sort_down" width="8" height="6"/>
+        <image name="search_green" width="16" height="16"/>
+        <image name="sort_down_grey" width="9" height="5"/>
     </resources>
 </document>