Steven 7 mēneši atpakaļ
vecāks
revīzija
2f4d574c07
67 mainītis faili ar 1353 papildinājumiem un 769 dzēšanām
  1. 55 49
      KulexiuForStudent/KulexiuForStudent.xcodeproj/project.pbxproj
  2. 22 0
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Mine/search_button_bg.imageset/Contents.json
  3. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Mine/search_button_bg.imageset/search_button_bg@2x.png
  4. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Mine/search_button_bg.imageset/search_button_bg@3x.png
  5. 22 0
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Mine/workType_audio.imageset/Contents.json
  6. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Mine/workType_audio.imageset/workType_audio@2x.png
  7. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Mine/workType_audio.imageset/workType_audio@3x.png
  8. 22 0
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Mine/workType_video.imageset/Contents.json
  9. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Mine/workType_video.imageset/workType_video@2x.png
  10. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Mine/workType_video.imageset/workType_video@3x.png
  11. 22 0
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/PlayerImage/merge_back_black.imageset/Contents.json
  12. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/PlayerImage/merge_back_black.imageset/back_button_black@3x.png
  13. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/PlayerImage/merge_back_black.imageset/merge_back_black@2x.png
  14. 22 0
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/PlayerImage/merge_back_white.imageset/Contents.json
  15. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/PlayerImage/merge_back_white.imageset/merge_back_white@2x.png
  16. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/PlayerImage/merge_back_white.imageset/merge_back_white@3x.png
  17. 22 0
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/PlayerImage/musc_publish_cancel.imageset/Contents.json
  18. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/PlayerImage/musc_publish_cancel.imageset/musc_publish_cancel@2x.png
  19. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/PlayerImage/musc_publish_cancel.imageset/musc_publish_cancel@3x.png
  20. 22 0
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/PlayerImage/publish_colorLayer.imageset/Contents.json
  21. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/PlayerImage/publish_colorLayer.imageset/publish_colorLayer@2x.png
  22. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/PlayerImage/publish_colorLayer.imageset/publish_colorLayer@3x.png
  23. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/PlayerImage/videoMerge_cover.imageset/videoMerge_cover@2x.png
  24. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/PlayerImage/videoMerge_cover.imageset/videoMerge_cover@3x.png
  25. 3 1
      KulexiuForStudent/KulexiuForStudent/Common/Base/KSNetworkingManager.h
  26. 7 2
      KulexiuForStudent/KulexiuForStudent/Common/Base/KSNetworkingManager.m
  27. 22 2
      KulexiuForStudent/KulexiuForStudent/Common/Base/TabbarController/KSTabBarViewController.m
  28. 15 2
      KulexiuForStudent/KulexiuForStudent/Common/Base/WebView/KSBaseWKWebViewController.m
  29. 16 2
      KulexiuForStudent/KulexiuForStudent/Common/Base/WebView/KSLocalWebViewController.m
  30. 0 22
      KulexiuForStudent/KulexiuForStudent/Common/MediaMerge/AudioMerge/AudioPlayAnimationView/KSAudioPlayAnimationView.h
  31. 0 315
      KulexiuForStudent/KulexiuForStudent/Common/MediaMerge/AudioMerge/AudioPlayAnimationView/KSAudioPlayAnimationView.m
  32. 5 5
      KulexiuForStudent/KulexiuForStudent/Common/MediaMerge/AudioMerge/KSAudioAnimationView.m
  33. 20 18
      KulexiuForStudent/KulexiuForStudent/Common/MediaMerge/AudioMerge/KSAudioAnimationView.xib
  34. 30 20
      KulexiuForStudent/KulexiuForStudent/Common/MediaMerge/AudioMerge/KSMediaMergeView.m
  35. 3 3
      KulexiuForStudent/KulexiuForStudent/Common/MediaMerge/AudioMerge/KSMergeAudioControlView.xib
  36. 10 10
      KulexiuForStudent/KulexiuForStudent/Common/MediaMerge/AudioMerge/KSPlayerSliderView.xib
  37. 0 2
      KulexiuForStudent/KulexiuForStudent/Common/MediaMerge/AudioMerge/MergeTipsAlert.m
  38. 1 1
      KulexiuForStudent/KulexiuForStudent/Common/MediaMerge/AudioMerge/MergeTipsAlert.xib
  39. 2 1
      KulexiuForStudent/KulexiuForStudent/Common/MediaMerge/AudioMerge/ShareFunctionView.h
  40. 5 3
      KulexiuForStudent/KulexiuForStudent/Common/MediaMerge/AudioMerge/ShareFunctionView.m
  41. 53 60
      KulexiuForStudent/KulexiuForStudent/Common/MediaMerge/AudioMerge/ShareFunctionView.xib
  42. 22 3
      KulexiuForStudent/KulexiuForStudent/InstitutionModule/Mine/Controller/INSSettingViewController.m
  43. 21 3
      KulexiuForStudent/KulexiuForStudent/InstitutionModule/TabbarController/InstitutionTabBarController.m
  44. 20 2
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Setting/Controller/SettingViewController.m
  45. 21 4
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/Controller/MineWorksViewController.m
  46. 5 5
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/KSCropImageNavView.xib
  47. 1 1
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/KSVideoImageSlider.m
  48. 35 0
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MineWorkSortView.h
  49. 103 0
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MineWorkSortView.m
  50. 136 0
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MineWorkSortView.xib
  51. 78 1
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MineWorksBodyView.m
  52. 9 0
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MineWorksDraftsCell.m
  53. 18 7
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MineWorksDraftsCell.xib
  54. 9 0
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MineWorksOpenDisplayCell.m
  55. 18 7
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MineWorksOpenDisplayCell.xib
  56. 29 0
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MusicCoverChooseView.h
  57. 55 0
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MusicCoverChooseView.m
  58. 145 0
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MusicCoverChooseView.xib
  59. 2 7
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MusicPublicContentView.h
  60. 25 30
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MusicPublicContentView.m
  61. 38 126
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MusicPublicContentView.xib
  62. 3 0
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MusicPublistAlert.h
  63. 76 24
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MusicPublistAlert.m
  64. 39 10
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MusicPublistAlert.xib
  65. 4 1
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/VideoCoverChooseView.m
  66. 20 16
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/VideoCoverChooseView.xib
  67. 20 4
      KulexiuForStudent/KulexiuForStudent/Module/TXClassRoom/View/NewWhiteboard/KSNewWhiteBoard.m

+ 55 - 49
KulexiuForStudent/KulexiuForStudent.xcodeproj/project.pbxproj

@@ -388,7 +388,6 @@
 		BC38C3E92AF893B400ABFCC2 /* KSMediaMergeView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC38C3D72AF893B300ABFCC2 /* KSMediaMergeView.m */; };
 		BC38C3EA2AF893B400ABFCC2 /* KSVideoPlayerView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC38C3DC2AF893B300ABFCC2 /* KSVideoPlayerView.m */; };
 		BC38C3EB2AF893B400ABFCC2 /* KSAudioAnimationView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC38C3DD2AF893B300ABFCC2 /* KSAudioAnimationView.xib */; };
-		BC38C3EC2AF893B400ABFCC2 /* KSAudioPlayAnimationView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC38C3DF2AF893B300ABFCC2 /* KSAudioPlayAnimationView.m */; };
 		BC38C3ED2AF893B400ABFCC2 /* KSMergeAudioControlView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC38C3E22AF893B300ABFCC2 /* KSMergeAudioControlView.xib */; };
 		BC38C3EE2AF893B400ABFCC2 /* KSPlayerSliderView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC38C3E32AF893B300ABFCC2 /* KSPlayerSliderView.m */; };
 		BC38C3EF2AF893B400ABFCC2 /* KSPlayerSliderView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC38C3E42AF893B300ABFCC2 /* KSPlayerSliderView.xib */; };
@@ -615,6 +614,16 @@
 		BC8418412AC2D96C00D8F90E /* PasswordCheckBodyView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC8418402AC2D96C00D8F90E /* PasswordCheckBodyView.xib */; };
 		BC85A9E62C6B570E003C1ABE /* KSRealtimeAnalyzer.m in Sources */ = {isa = PBXBuildFile; fileRef = BC85A9E22C6B570E003C1ABE /* KSRealtimeAnalyzer.m */; };
 		BC85A9E72C6B570E003C1ABE /* KSSpectrumView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC85A9E42C6B570E003C1ABE /* KSSpectrumView.m */; };
+		BC86A2A42CD355E600A15A53 /* MusicPublistAlert.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC86A2A02CD355E600A15A53 /* MusicPublistAlert.xib */; };
+		BC86A2A52CD355E600A15A53 /* MusicCoverChooseView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC86A2992CD355E600A15A53 /* MusicCoverChooseView.xib */; };
+		BC86A2A62CD355E600A15A53 /* MusicPublicContentView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC86A29D2CD355E600A15A53 /* MusicPublicContentView.xib */; };
+		BC86A2A72CD355E600A15A53 /* VideoCoverChooseView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC86A2A32CD355E600A15A53 /* VideoCoverChooseView.xib */; };
+		BC86A2A82CD355E600A15A53 /* MusicPublistAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = BC86A29F2CD355E600A15A53 /* MusicPublistAlert.m */; };
+		BC86A2A92CD355E600A15A53 /* VideoCoverChooseView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC86A2A22CD355E600A15A53 /* VideoCoverChooseView.m */; };
+		BC86A2AA2CD355E600A15A53 /* MusicCoverChooseView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC86A2982CD355E600A15A53 /* MusicCoverChooseView.m */; };
+		BC86A2AB2CD355E600A15A53 /* MusicPublicContentView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC86A29C2CD355E600A15A53 /* MusicPublicContentView.m */; };
+		BC86A2C42CD36B4500A15A53 /* MineWorkSortView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC86A2C32CD36B4500A15A53 /* MineWorkSortView.xib */; };
+		BC86A2C52CD36B4500A15A53 /* MineWorkSortView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC86A2C22CD36B4500A15A53 /* MineWorkSortView.m */; };
 		BC89AC092AB0840E00B077AF /* TenantRecommendMusicView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC89AC082AB0840E00B077AF /* TenantRecommendMusicView.m */; };
 		BC89AC0B2AB0841400B077AF /* TenantRecommendMusicView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC89AC0A2AB0841400B077AF /* TenantRecommendMusicView.xib */; };
 		BC89AC0E2AB0842B00B077AF /* TenantNewMusicView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC89AC0D2AB0842B00B077AF /* TenantNewMusicView.m */; };
@@ -797,17 +806,11 @@
 		BCC0F6E92A8CE37E00C4EFA4 /* VideoMaskView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCC0F6E72A8CE37D00C4EFA4 /* VideoMaskView.m */; };
 		BCC0F6ED2A8CE4AF00C4EFA4 /* ZoomControl.m in Sources */ = {isa = PBXBuildFile; fileRef = BCC0F6EB2A8CE4AF00C4EFA4 /* ZoomControl.m */; };
 		BCC408ED2AFCE6A000C60249 /* KSVideoCropViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BCC408EB2AFCE69F00C60249 /* KSVideoCropViewController.m */; };
-		BCC409002AFCE6B500C60249 /* VideoCoverChooseView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCC408EF2AFCE6B200C60249 /* VideoCoverChooseView.m */; };
-		BCC409012AFCE6B500C60249 /* MusicPublicContentView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCC408F02AFCE6B200C60249 /* MusicPublicContentView.xib */; };
 		BCC409022AFCE6B500C60249 /* KSCropImageNavView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCC408F12AFCE6B200C60249 /* KSCropImageNavView.m */; };
 		BCC409032AFCE6B500C60249 /* VideoCropImageViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCC408F22AFCE6B200C60249 /* VideoCropImageViewCell.xib */; };
 		BCC409042AFCE6B500C60249 /* KSVideoImageSlider.m in Sources */ = {isa = PBXBuildFile; fileRef = BCC408F72AFCE6B300C60249 /* KSVideoImageSlider.m */; };
-		BCC409052AFCE6B500C60249 /* MusicPublistAlert.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCC408F82AFCE6B300C60249 /* MusicPublistAlert.xib */; };
 		BCC409062AFCE6B500C60249 /* VideoCropImageViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BCC408F92AFCE6B400C60249 /* VideoCropImageViewCell.m */; };
-		BCC409072AFCE6B500C60249 /* MusicPublicContentView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCC408FB2AFCE6B400C60249 /* MusicPublicContentView.m */; };
 		BCC409082AFCE6B500C60249 /* KSCropImageNavView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCC408FC2AFCE6B400C60249 /* KSCropImageNavView.xib */; };
-		BCC409092AFCE6B500C60249 /* MusicPublistAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = BCC408FE2AFCE6B500C60249 /* MusicPublistAlert.m */; };
-		BCC4090A2AFCE6B500C60249 /* VideoCoverChooseView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCC408FF2AFCE6B500C60249 /* VideoCoverChooseView.xib */; };
 		BCC5839028A9E8A800BAB4CF /* AccompanyLoadingView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCC5838F28A9E8A800BAB4CF /* AccompanyLoadingView.m */; };
 		BCC5839228A9E8AF00BAB4CF /* AccompanyLoadingView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCC5839128A9E8AF00BAB4CF /* AccompanyLoadingView.xib */; };
 		BCC583B428A9EC6400BAB4CF /* cloud_animation_9.png in Resources */ = {isa = PBXBuildFile; fileRef = BCC5839528A9EC6400BAB4CF /* cloud_animation_9.png */; };
@@ -1672,8 +1675,6 @@
 		BC38C3DB2AF893B300ABFCC2 /* KSVideoPlayerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSVideoPlayerView.h; sourceTree = "<group>"; };
 		BC38C3DC2AF893B300ABFCC2 /* KSVideoPlayerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSVideoPlayerView.m; sourceTree = "<group>"; };
 		BC38C3DD2AF893B300ABFCC2 /* KSAudioAnimationView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KSAudioAnimationView.xib; sourceTree = "<group>"; };
-		BC38C3DF2AF893B300ABFCC2 /* KSAudioPlayAnimationView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSAudioPlayAnimationView.m; sourceTree = "<group>"; };
-		BC38C3E02AF893B300ABFCC2 /* KSAudioPlayAnimationView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSAudioPlayAnimationView.h; sourceTree = "<group>"; };
 		BC38C3E12AF893B300ABFCC2 /* KSPlayerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSPlayerView.h; sourceTree = "<group>"; };
 		BC38C3E22AF893B300ABFCC2 /* KSMergeAudioControlView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KSMergeAudioControlView.xib; sourceTree = "<group>"; };
 		BC38C3E32AF893B300ABFCC2 /* KSPlayerSliderView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSPlayerSliderView.m; sourceTree = "<group>"; };
@@ -1995,6 +1996,22 @@
 		BC85A9E22C6B570E003C1ABE /* KSRealtimeAnalyzer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSRealtimeAnalyzer.m; sourceTree = "<group>"; };
 		BC85A9E32C6B570E003C1ABE /* KSSpectrumView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSSpectrumView.h; sourceTree = "<group>"; };
 		BC85A9E42C6B570E003C1ABE /* KSSpectrumView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSSpectrumView.m; sourceTree = "<group>"; };
+		BC86A2972CD355E600A15A53 /* MusicCoverChooseView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MusicCoverChooseView.h; sourceTree = "<group>"; };
+		BC86A2982CD355E600A15A53 /* MusicCoverChooseView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MusicCoverChooseView.m; sourceTree = "<group>"; };
+		BC86A2992CD355E600A15A53 /* MusicCoverChooseView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MusicCoverChooseView.xib; sourceTree = "<group>"; };
+		BC86A29A2CD355E600A15A53 /* MusicPubHeader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MusicPubHeader.h; sourceTree = "<group>"; };
+		BC86A29B2CD355E600A15A53 /* MusicPublicContentView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MusicPublicContentView.h; sourceTree = "<group>"; };
+		BC86A29C2CD355E600A15A53 /* MusicPublicContentView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MusicPublicContentView.m; sourceTree = "<group>"; };
+		BC86A29D2CD355E600A15A53 /* MusicPublicContentView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MusicPublicContentView.xib; sourceTree = "<group>"; };
+		BC86A29E2CD355E600A15A53 /* MusicPublistAlert.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MusicPublistAlert.h; sourceTree = "<group>"; };
+		BC86A29F2CD355E600A15A53 /* MusicPublistAlert.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MusicPublistAlert.m; sourceTree = "<group>"; };
+		BC86A2A02CD355E600A15A53 /* MusicPublistAlert.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MusicPublistAlert.xib; sourceTree = "<group>"; };
+		BC86A2A12CD355E600A15A53 /* VideoCoverChooseView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VideoCoverChooseView.h; sourceTree = "<group>"; };
+		BC86A2A22CD355E600A15A53 /* VideoCoverChooseView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VideoCoverChooseView.m; sourceTree = "<group>"; };
+		BC86A2A32CD355E600A15A53 /* VideoCoverChooseView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = VideoCoverChooseView.xib; sourceTree = "<group>"; };
+		BC86A2C12CD36B4500A15A53 /* MineWorkSortView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MineWorkSortView.h; sourceTree = "<group>"; };
+		BC86A2C22CD36B4500A15A53 /* MineWorkSortView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MineWorkSortView.m; sourceTree = "<group>"; };
+		BC86A2C32CD36B4500A15A53 /* MineWorkSortView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MineWorkSortView.xib; sourceTree = "<group>"; };
 		BC89AC072AB0840E00B077AF /* TenantRecommendMusicView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TenantRecommendMusicView.h; sourceTree = "<group>"; };
 		BC89AC082AB0840E00B077AF /* TenantRecommendMusicView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TenantRecommendMusicView.m; sourceTree = "<group>"; };
 		BC89AC0A2AB0841400B077AF /* TenantRecommendMusicView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = TenantRecommendMusicView.xib; sourceTree = "<group>"; };
@@ -2303,24 +2320,14 @@
 		BCC0F6EC2A8CE4AF00C4EFA4 /* ZoomControl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZoomControl.h; sourceTree = "<group>"; };
 		BCC408EB2AFCE69F00C60249 /* KSVideoCropViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSVideoCropViewController.m; sourceTree = "<group>"; };
 		BCC408EC2AFCE69F00C60249 /* KSVideoCropViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSVideoCropViewController.h; sourceTree = "<group>"; };
-		BCC408EE2AFCE6B100C60249 /* MusicPubHeader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MusicPubHeader.h; sourceTree = "<group>"; };
-		BCC408EF2AFCE6B200C60249 /* VideoCoverChooseView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VideoCoverChooseView.m; sourceTree = "<group>"; };
-		BCC408F02AFCE6B200C60249 /* MusicPublicContentView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MusicPublicContentView.xib; sourceTree = "<group>"; };
 		BCC408F12AFCE6B200C60249 /* KSCropImageNavView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSCropImageNavView.m; sourceTree = "<group>"; };
 		BCC408F22AFCE6B200C60249 /* VideoCropImageViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = VideoCropImageViewCell.xib; sourceTree = "<group>"; };
-		BCC408F32AFCE6B200C60249 /* MusicPublistAlert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MusicPublistAlert.h; sourceTree = "<group>"; };
 		BCC408F42AFCE6B300C60249 /* VideoCropImageViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VideoCropImageViewCell.h; sourceTree = "<group>"; };
-		BCC408F52AFCE6B300C60249 /* MusicPublicContentView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MusicPublicContentView.h; sourceTree = "<group>"; };
-		BCC408F62AFCE6B300C60249 /* VideoCoverChooseView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VideoCoverChooseView.h; sourceTree = "<group>"; };
 		BCC408F72AFCE6B300C60249 /* KSVideoImageSlider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSVideoImageSlider.m; sourceTree = "<group>"; };
-		BCC408F82AFCE6B300C60249 /* MusicPublistAlert.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MusicPublistAlert.xib; sourceTree = "<group>"; };
 		BCC408F92AFCE6B400C60249 /* VideoCropImageViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VideoCropImageViewCell.m; sourceTree = "<group>"; };
 		BCC408FA2AFCE6B400C60249 /* KSCropImageNavView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSCropImageNavView.h; sourceTree = "<group>"; };
-		BCC408FB2AFCE6B400C60249 /* MusicPublicContentView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MusicPublicContentView.m; sourceTree = "<group>"; };
 		BCC408FC2AFCE6B400C60249 /* KSCropImageNavView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KSCropImageNavView.xib; sourceTree = "<group>"; };
 		BCC408FD2AFCE6B400C60249 /* KSVideoImageSlider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSVideoImageSlider.h; sourceTree = "<group>"; };
-		BCC408FE2AFCE6B500C60249 /* MusicPublistAlert.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MusicPublistAlert.m; sourceTree = "<group>"; };
-		BCC408FF2AFCE6B500C60249 /* VideoCoverChooseView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = VideoCoverChooseView.xib; sourceTree = "<group>"; };
 		BCC5838E28A9E8A800BAB4CF /* AccompanyLoadingView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AccompanyLoadingView.h; sourceTree = "<group>"; };
 		BCC5838F28A9E8A800BAB4CF /* AccompanyLoadingView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AccompanyLoadingView.m; sourceTree = "<group>"; };
 		BCC5839128A9E8AF00BAB4CF /* AccompanyLoadingView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AccompanyLoadingView.xib; sourceTree = "<group>"; };
@@ -4430,7 +4437,6 @@
 				BC7401202CD25A920056756A /* MergeGuide */,
 				BC85A9E52C6B570E003C1ABE /* MergeAudioAnimation */,
 				BCED0AF62C4651F800369AED /* MergePlayer */,
-				BC38C3DE2AF893B300ABFCC2 /* AudioPlayAnimationView */,
 				BC38C3D62AF893B300ABFCC2 /* KSAudioAnimationView.h */,
 				BC38C3E72AF893B300ABFCC2 /* KSAudioAnimationView.m */,
 				BC38C3DD2AF893B300ABFCC2 /* KSAudioAnimationView.xib */,
@@ -4473,15 +4479,6 @@
 			path = VideoPlayerView;
 			sourceTree = "<group>";
 		};
-		BC38C3DE2AF893B300ABFCC2 /* AudioPlayAnimationView */ = {
-			isa = PBXGroup;
-			children = (
-				BC38C3E02AF893B300ABFCC2 /* KSAudioPlayAnimationView.h */,
-				BC38C3DF2AF893B300ABFCC2 /* KSAudioPlayAnimationView.m */,
-			);
-			path = AudioPlayAnimationView;
-			sourceTree = "<group>";
-		};
 		BC38C4332AFA095D00ABFCC2 /* Works */ = {
 			isa = PBXGroup;
 			children = (
@@ -4517,6 +4514,9 @@
 		BC38C43C2AFA095D00ABFCC2 /* View */ = {
 			isa = PBXGroup;
 			children = (
+				BC86A2C12CD36B4500A15A53 /* MineWorkSortView.h */,
+				BC86A2C22CD36B4500A15A53 /* MineWorkSortView.m */,
+				BC86A2C32CD36B4500A15A53 /* MineWorkSortView.xib */,
 				BC38C4442AFA095D00ABFCC2 /* MineWorksBodyView.h */,
 				BC38C44E2AFA095D00ABFCC2 /* MineWorksBodyView.m */,
 				BC38C4452AFA095D00ABFCC2 /* MineWorksBottomView.h */,
@@ -4531,24 +4531,27 @@
 				BC38C4402AFA095D00ABFCC2 /* MineWorksOpenDisplayCell.h */,
 				BC38C4472AFA095D00ABFCC2 /* MineWorksOpenDisplayCell.m */,
 				BC38C4482AFA095D00ABFCC2 /* MineWorksOpenDisplayCell.xib */,
+				BCC408F42AFCE6B300C60249 /* VideoCropImageViewCell.h */,
+				BCC408F92AFCE6B400C60249 /* VideoCropImageViewCell.m */,
+				BCC408F22AFCE6B200C60249 /* VideoCropImageViewCell.xib */,
 				BCC408FA2AFCE6B400C60249 /* KSCropImageNavView.h */,
 				BCC408F12AFCE6B200C60249 /* KSCropImageNavView.m */,
 				BCC408FC2AFCE6B400C60249 /* KSCropImageNavView.xib */,
 				BCC408FD2AFCE6B400C60249 /* KSVideoImageSlider.h */,
 				BCC408F72AFCE6B300C60249 /* KSVideoImageSlider.m */,
-				BCC408EE2AFCE6B100C60249 /* MusicPubHeader.h */,
-				BCC408F52AFCE6B300C60249 /* MusicPublicContentView.h */,
-				BCC408FB2AFCE6B400C60249 /* MusicPublicContentView.m */,
-				BCC408F02AFCE6B200C60249 /* MusicPublicContentView.xib */,
-				BCC408F32AFCE6B200C60249 /* MusicPublistAlert.h */,
-				BCC408FE2AFCE6B500C60249 /* MusicPublistAlert.m */,
-				BCC408F82AFCE6B300C60249 /* MusicPublistAlert.xib */,
-				BCC408F62AFCE6B300C60249 /* VideoCoverChooseView.h */,
-				BCC408EF2AFCE6B200C60249 /* VideoCoverChooseView.m */,
-				BCC408FF2AFCE6B500C60249 /* VideoCoverChooseView.xib */,
-				BCC408F42AFCE6B300C60249 /* VideoCropImageViewCell.h */,
-				BCC408F92AFCE6B400C60249 /* VideoCropImageViewCell.m */,
-				BCC408F22AFCE6B200C60249 /* VideoCropImageViewCell.xib */,
+				BC86A2972CD355E600A15A53 /* MusicCoverChooseView.h */,
+				BC86A2982CD355E600A15A53 /* MusicCoverChooseView.m */,
+				BC86A2992CD355E600A15A53 /* MusicCoverChooseView.xib */,
+				BC86A29A2CD355E600A15A53 /* MusicPubHeader.h */,
+				BC86A29B2CD355E600A15A53 /* MusicPublicContentView.h */,
+				BC86A29C2CD355E600A15A53 /* MusicPublicContentView.m */,
+				BC86A29D2CD355E600A15A53 /* MusicPublicContentView.xib */,
+				BC86A29E2CD355E600A15A53 /* MusicPublistAlert.h */,
+				BC86A29F2CD355E600A15A53 /* MusicPublistAlert.m */,
+				BC86A2A02CD355E600A15A53 /* MusicPublistAlert.xib */,
+				BC86A2A12CD355E600A15A53 /* VideoCoverChooseView.h */,
+				BC86A2A22CD355E600A15A53 /* VideoCoverChooseView.m */,
+				BC86A2A32CD355E600A15A53 /* VideoCoverChooseView.xib */,
 			);
 			path = View;
 			sourceTree = "<group>";
@@ -6358,7 +6361,6 @@
 				BC71D2872888083B0010F14B /* tabbar3.json in Resources */,
 				BCC583C028A9EC6400BAB4CF /* cloud_animation_15.png in Resources */,
 				BC119280280FB10900A716F7 /* AccompanyRemarkCell.xib in Resources */,
-				BCC409012AFCE6B500C60249 /* MusicPublicContentView.xib in Resources */,
 				BC71D271288804CD0010F14B /* img_26.png in Resources */,
 				BC12639F28FF8E7400509E90 /* HomeRecommendMusicView.xib in Resources */,
 				2723B63527F157D500E0B90B /* GroupApplyChooseCell.xib in Resources */,
@@ -6371,7 +6373,6 @@
 				BC5367C4283F6D58008428E8 /* HomeLiveCourseView.xib in Resources */,
 				BC2DFF5D28C097DC0056105A /* styleAnimation.json in Resources */,
 				BC71D266288804CD0010F14B /* img_43.png in Resources */,
-				BCC4090A2AFCE6B500C60249 /* VideoCoverChooseView.xib in Resources */,
 				BC71D257288804CD0010F14B /* img_28.png in Resources */,
 				BC71D279288804CD0010F14B /* img_34.png in Resources */,
 				BC71D24C288804CD0010F14B /* img_3.png in Resources */,
@@ -6428,6 +6429,10 @@
 				BC40B9FA2811768400DEC0D1 /* HotInformationHeadView.xib in Resources */,
 				BC27A06E280FF56C00F91E27 /* AccompanyEvaluateCell.xib in Resources */,
 				BC71D27B288804CD0010F14B /* img_21.png in Resources */,
+				BC86A2A42CD355E600A15A53 /* MusicPublistAlert.xib in Resources */,
+				BC86A2A52CD355E600A15A53 /* MusicCoverChooseView.xib in Resources */,
+				BC86A2A62CD355E600A15A53 /* MusicPublicContentView.xib in Resources */,
+				BC86A2A72CD355E600A15A53 /* VideoCoverChooseView.xib in Resources */,
 				BCFDA65628BCA2000022B497 /* accomapny_animation_1.png in Resources */,
 				BC38C3ED2AF893B400ABFCC2 /* KSMergeAudioControlView.xib in Resources */,
 				2723B66327F15CFC00E0B90B /* ModifyNameBodyView.xib in Resources */,
@@ -6583,7 +6588,6 @@
 				BCC5839228A9E8AF00BAB4CF /* AccompanyLoadingView.xib in Resources */,
 				BCB9FA37286D7C38005D766B /* GuideListView.xib in Resources */,
 				BC71D2882888083B0010F14B /* tabbar2.json in Resources */,
-				BCC409052AFCE6B500C60249 /* MusicPublistAlert.xib in Resources */,
 				BC50171727FC0D8E00F8BCBC /* SubjectChooseBodyView.xib in Resources */,
 				BC71D26F288804CD0010F14B /* img_24.png in Resources */,
 				BCCE95E92AB057C400AB6385 /* MorePageSearchView.xib in Resources */,
@@ -6604,6 +6608,7 @@
 				BC31BF2C2B21925700F7D538 /* WidgetNavView.xib in Resources */,
 				BCFDA63128BC99410022B497 /* HomeBannerView.xib in Resources */,
 				BC31BF112B21925700F7D538 /* tick.wav in Resources */,
+				BC86A2C42CD36B4500A15A53 /* MineWorkSortView.xib in Resources */,
 				BC11927B280FB07F00A716F7 /* AccompanyArrangeCell.xib in Resources */,
 				BC98527E2BCCC571008F0435 /* AlbumSwitchView.xib in Resources */,
 				BCCE95C92AB0363100AB6385 /* TenantDarkSearhView.xib in Resources */,
@@ -6813,7 +6818,6 @@
 				BCC0F6AC2A8CDD4000C4EFA4 /* HTTPResult.m in Sources */,
 				BC83A83A2AD2825F0033D48B /* TenantNotiferMessageCell.m in Sources */,
 				BC38C4982AFA4B9C00ABFCC2 /* KSProgressLoadingView.m in Sources */,
-				BC38C3EC2AF893B400ABFCC2 /* KSAudioPlayAnimationView.m in Sources */,
 				BCECE24E2B3D670500C0D555 /* CourseFileDisplayView.m in Sources */,
 				BCCE95CC2AB03BE200AB6385 /* TenantDragView.m in Sources */,
 				BC31BF2A2B21925700F7D538 /* WidgetBottomButtonView.m in Sources */,
@@ -6849,7 +6853,6 @@
 				2779354C27E324A70010E277 /* KSGifRefreshHeader.m in Sources */,
 				BC11925E280FA89A00A716F7 /* HomeworkBodyView.m in Sources */,
 				275FA1EB27E7351900CFEA2E /* KSBaseWKWebViewController.m in Sources */,
-				BCC409072AFCE6B500C60249 /* MusicPublicContentView.m in Sources */,
 				BC31BF212B21925700F7D538 /* DialPlateView.m in Sources */,
 				BC106C232A933869000759A9 /* TXLiveMessageCenter.m in Sources */,
 				BCB909142852EF0000F5FF69 /* KSDragWindow.m in Sources */,
@@ -7007,7 +7010,6 @@
 				275FA1E627E7351900CFEA2E /* KSUpdateAlert.m in Sources */,
 				BCB5B2D52ABB1E13005BF25D /* KSEmptyStatusView.m in Sources */,
 				BCC0F6ED2A8CE4AF00C4EFA4 /* ZoomControl.m in Sources */,
-				BCC409002AFCE6B500C60249 /* VideoCoverChooseView.m in Sources */,
 				BCA336992C942B280074DF75 /* KSSourceDownloadAlert.m in Sources */,
 				BCF472E72AB019CD0032BE16 /* TenantDarkViewController.m in Sources */,
 				BC83A83E2AD28A9F0033D48B /* TenantNotiferNavView.m in Sources */,
@@ -7045,7 +7047,6 @@
 				BC119263280FA90100A716F7 /* HomeworkDetailModel.m in Sources */,
 				BC7401192CD22FFA0056756A /* CBAutoScrollLabel.m in Sources */,
 				BCC0F6A52A8CDD3F00C4EFA4 /* CREmojiCollectionCell.m in Sources */,
-				BCC409092AFCE6B500C60249 /* MusicPublistAlert.m in Sources */,
 				2723B62427F157D500E0B90B /* NoticeEditBodyView.m in Sources */,
 				BCFDA65F28BCAEC80022B497 /* HomeInformationBodyView.m in Sources */,
 				BC38C4532AFA095D00ABFCC2 /* UserMusicFormalModel.m in Sources */,
@@ -7144,6 +7145,7 @@
 				BC106C362A9338A7000759A9 /* TXLiveLoadingView.m in Sources */,
 				BCC408ED2AFCE6A000C60249 /* KSVideoCropViewController.m in Sources */,
 				BC2888762A8101C80064B773 /* KSChatSearchBar.m in Sources */,
+				BC86A2C52CD36B4500A15A53 /* MineWorkSortView.m in Sources */,
 				BCFE53F12812898700AD6786 /* HomeVideoCourseCell.m in Sources */,
 				BCC0F6B52A8CDD4000C4EFA4 /* OnlineClassManager.m in Sources */,
 				BC28887D2A8102890064B773 /* KSGroupConversationController.m in Sources */,
@@ -7249,6 +7251,10 @@
 				2723B63427F157D500E0B90B /* GroupApplyMemberCell.m in Sources */,
 				BC106C0F2A933829000759A9 /* TXLiveMessageSeatApply.m in Sources */,
 				BCC0F6082A8CD86C00C4EFA4 /* TXClassroomTextMsg.m in Sources */,
+				BC86A2A82CD355E600A15A53 /* MusicPublistAlert.m in Sources */,
+				BC86A2A92CD355E600A15A53 /* VideoCoverChooseView.m in Sources */,
+				BC86A2AA2CD355E600A15A53 /* MusicCoverChooseView.m in Sources */,
+				BC86A2AB2CD355E600A15A53 /* MusicPublicContentView.m in Sources */,
 				2779352927E324A60010E277 /* zhPopupController.m in Sources */,
 				BC12636728FEA01F00509E90 /* RecentPracticeModel.m in Sources */,
 				BC2888772A8101C80064B773 /* KSSearchViewController.m in Sources */,

+ 22 - 0
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Mine/search_button_bg.imageset/Contents.json

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

BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Mine/search_button_bg.imageset/search_button_bg@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Mine/search_button_bg.imageset/search_button_bg@3x.png


+ 22 - 0
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Mine/workType_audio.imageset/Contents.json

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

BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Mine/workType_audio.imageset/workType_audio@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Mine/workType_audio.imageset/workType_audio@3x.png


+ 22 - 0
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Mine/workType_video.imageset/Contents.json

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

BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Mine/workType_video.imageset/workType_video@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Mine/workType_video.imageset/workType_video@3x.png


+ 22 - 0
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/PlayerImage/merge_back_black.imageset/Contents.json

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

BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/PlayerImage/merge_back_black.imageset/back_button_black@3x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/PlayerImage/merge_back_black.imageset/merge_back_black@2x.png


+ 22 - 0
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/PlayerImage/merge_back_white.imageset/Contents.json

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

BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/PlayerImage/merge_back_white.imageset/merge_back_white@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/PlayerImage/merge_back_white.imageset/merge_back_white@3x.png


+ 22 - 0
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/PlayerImage/musc_publish_cancel.imageset/Contents.json

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

BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/PlayerImage/musc_publish_cancel.imageset/musc_publish_cancel@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/PlayerImage/musc_publish_cancel.imageset/musc_publish_cancel@3x.png


+ 22 - 0
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/PlayerImage/publish_colorLayer.imageset/Contents.json

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

BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/PlayerImage/publish_colorLayer.imageset/publish_colorLayer@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/PlayerImage/publish_colorLayer.imageset/publish_colorLayer@3x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/PlayerImage/videoMerge_cover.imageset/videoMerge_cover@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/PlayerImage/videoMerge_cover.imageset/videoMerge_cover@3x.png


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

@@ -987,11 +987,13 @@ NS_ASSUME_NONNULL_BEGIN
 /// 我的作品分页查询
 /// @param post post json
 /// @param type 草稿 DRAFT 作品FORMAL
+/// @param keyword 关键字
+/// @param fileType 文件类型
 /// @param page 分页
 /// @param rows 条数
 /// @param success 成功
 /// @param faliure 失败
-+ (void)userMusicPageRequest:(NSString *)post type:(NSString *)type page:(NSInteger)page rows:(NSInteger)rows success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure;
++ (void)userMusicPageRequest:(NSString *)post type:(NSString *)type keyword:(NSString *)keyword fileType:(NSString *)fileType page:(NSInteger)page rows:(NSInteger)rows success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure;
 
 // /userMusic/remove
 

+ 7 - 2
KulexiuForStudent/KulexiuForStudent/Common/Base/KSNetworkingManager.m

@@ -1885,22 +1885,27 @@
 // edu-app/userMusic/page
 
 /// 我的作品分页查询
-/// @param post post
+/// @param post post json
 /// @param type 草稿 DRAFT 作品FORMAL
+/// @param keyword 关键字
+/// @param fileType 文件类型
 /// @param page 分页
 /// @param rows 条数
 /// @param success 成功
 /// @param faliure 失败
-+ (void)userMusicPageRequest:(NSString *)post type:(NSString *)type page:(NSInteger)page rows:(NSInteger)rows success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
++ (void)userMusicPageRequest:(NSString *)post type:(NSString *)type keyword:(NSString *)keyword fileType:(NSString *)fileType 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/userMusic/page"];
     NSMutableDictionary *parm = [NSMutableDictionary dictionary];
     [parm setValue:@(page) forKey:@"page"];
     [parm setValue:@(rows) forKey:@"rows"];
     [parm setValue:type forKey:@"type"];
+    [parm setValue:keyword forKey:@"keyword"];
+    [parm setValue:fileType forKey:@"fileType"];
     [self request:post andWithUrl:url and:parm success:success faliure:faliure];
 }
 
+
 // edu-app/userMusic/remove
 
 /// 作品删除

+ 22 - 2
KulexiuForStudent/KulexiuForStudent/Common/Base/TabbarController/KSTabBarViewController.m

@@ -11,6 +11,7 @@
 #import <UIImage+Color.h>
 #import "AnimationHelper.h"
 #import "MineWorksViewController.h"
+#import "KSBaseWKWebViewController.h"
 
 @interface KSTabBarViewController ()<UITabBarControllerDelegate>
 
@@ -23,19 +24,38 @@
     // Do any additional setup after loading the view.
     self.delegate = self;
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showDraftPage) name:@"DisplayDraft" object:nil];
+    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showWorksPage:) name:@"displayWorks" object:nil];
+
     [self configItems];
 }
 
-- (void)showDraftPage {
+- (void)showWorksPage:(NSNotification *)notification {
+    [self showWorksDraft:NO info:notification.object];
+}
+
+- (void)showWorksDraft:(BOOL)isDraft info:(NSDictionary *)info {
     [self tabBarSelectedWithIndex:4];
     dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
         CustomNavViewController *navCtrl = self.selectedViewController;
         MineWorksViewController *ctrl = [[MineWorksViewController alloc] init];
-        [ctrl displayDraft:YES];
+        [ctrl displayDraft:isDraft];
         [navCtrl pushViewController:ctrl animated:YES];
+        if (isDraft == NO) {
+            // 显示作品详情
+            NSString *url = [info ks_stringValueForKey:@"url"];
+            if (![NSString isEmptyString:url]) {
+                KSBaseWKWebViewController *ctrl = [[KSBaseWKWebViewController alloc] init];
+                ctrl.url = url;
+                [navCtrl pushViewController:ctrl animated:YES];
+            }
+        }
     });
 }
 
+- (void)showDraftPage {
+    [self showWorksDraft:YES info:nil];
+}
+
 - (void)configItems {
     // 处理 pad上 tabbar样式
     if (@available(iOS 18.0, *)) {

+ 15 - 2
KulexiuForStudent/KulexiuForStudent/Common/Base/WebView/KSBaseWKWebViewController.m

@@ -1501,12 +1501,25 @@ typedef NS_ENUM(NSInteger, CHOOSETYPE) {
     [_myWebView loadHTMLString:@"" baseURL:nil];
     [_myWebView removeFromSuperview];
     _myWebView = nil;
-    [[NSURLCache sharedURLCache] removeAllCachedResponses];
-    [[NSURLCache sharedURLCache] setDiskCapacity:0];
+    [self clearWebCache];
+//    [[NSURLCache sharedURLCache] removeAllCachedResponses];
+//    [[NSURLCache sharedURLCache] setDiskCapacity:0];
     [[NSURLCache sharedURLCache] setMemoryCapacity:0];
     [[NSNotificationCenter defaultCenter] removeObserver:self];
 }
 
+- (void)clearWebCache {
+    NSSet *websiteDataTypes = [NSSet setWithArray:@[
+        WKWebsiteDataTypeMemoryCache,
+    ]];
+
+    NSDate *dateFrom = [NSDate dateWithTimeIntervalSince1970:0];
+    [[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:websiteDataTypes
+                                               modifiedSince:dateFrom
+                                           completionHandler:^{
+        NSLog(@"Caches cleared");
+    }];
+}
 
 - (NSString *)getSaveSpeedPath {
     //  在Documents目录下创建一个名为AudioSpeedFile的文件夹

+ 16 - 2
KulexiuForStudent/KulexiuForStudent/Common/Base/WebView/KSLocalWebViewController.m

@@ -317,10 +317,24 @@
     [_myWebView loadHTMLString:@"" baseURL:nil];
     [_myWebView removeFromSuperview];
     _myWebView = nil;
-    [[NSURLCache sharedURLCache] removeAllCachedResponses];
-    [[NSURLCache sharedURLCache] setDiskCapacity:0];
+    [self clearWebCache];
+//    [[NSURLCache sharedURLCache] removeAllCachedResponses];
+//    [[NSURLCache sharedURLCache] setDiskCapacity:0];
     [[NSURLCache sharedURLCache] setMemoryCapacity:0];
 }
+
+- (void)clearWebCache {
+    NSSet *websiteDataTypes = [NSSet setWithArray:@[
+        WKWebsiteDataTypeMemoryCache,
+    ]];
+
+    NSDate *dateFrom = [NSDate dateWithTimeIntervalSince1970:0];
+    [[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:websiteDataTypes
+                                               modifiedSince:dateFrom
+                                           completionHandler:^{
+        NSLog(@"Caches cleared");
+    }];
+}
 /*
 #pragma mark - Navigation
 

+ 0 - 22
KulexiuForStudent/KulexiuForStudent/Common/MediaMerge/AudioMerge/AudioPlayAnimationView/KSAudioPlayAnimationView.h

@@ -1,22 +0,0 @@
-//
-//  KSAudioPlayAnimationView.h
-//  KulexiuSchoolStudent
-//
-//  Created by 王智 on 2023/9/6.
-//
-
-#import <UIKit/UIKit.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface KSAudioPlayAnimationView : UIView
-
-- (void)startAnimation;
-
-- (void)stopAnimation;
-
-- (void)setSoundsValue:(CGFloat)value;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 315
KulexiuForStudent/KulexiuForStudent/Common/MediaMerge/AudioMerge/AudioPlayAnimationView/KSAudioPlayAnimationView.m

@@ -1,315 +0,0 @@
-//
-//  KSAudioPlayAnimationView.m
-//  KulexiuSchoolStudent
-//
-//  Created by 王智 on 2023/9/6.
-//
-
-#import "KSAudioPlayAnimationView.h"
-
-@interface KSAudioPlayAnimationView ()
-
-@property (nonatomic, assign) CGFloat itemLineWidth;
-
-@property (nonatomic, assign) CGFloat itemLineSeparate;
-
-
-
-@property (nonatomic, strong) UIColor *itemColor;
-
-@property (nonatomic, strong) UIColor *itemBackColor;
-
-@property (nonatomic, strong) CADisplayLink *displayLink;
-
-
-@property (nonatomic, assign) CGFloat soundsValue;
-
-
-@end
-
-@implementation KSAudioPlayAnimationView
-
-- (instancetype)init{
-
-    if (self = [super init]) {
-
-        _itemLineWidth = 5;
-
-        _itemLineSeparate = 8;
-
-        _soundsValue = 0;
-
-        _itemColor =  HexRGB(0x2DC7AA);
-
-        _itemBackColor =  HexRGB(0xffffff);
-
-    }
-    return self;
-}
-
-- (void)setFrame:(CGRect)frame{
-
-    [super setFrame:frame];
-
-    [self setItems];
-
-    [self stopLayer];
-}
-
-
-
-- (void)setSoundsValue:(CGFloat)value{
-
-    _soundsValue = value;
-}
-
-
-
-- (void)setItems{
-
-    [self removeAllSubLayers];
-
-    CGFloat width = self.frame.size.width;
-
-    NSInteger numberItem = (width - self.itemLineWidth) / (_itemLineWidth + _itemLineSeparate);
-
-    
-
-    CGFloat layer_w = _itemLineWidth;
-
-    CGFloat layer_x = _itemLineSeparate;
-
-    CGFloat layer_h = self.frame.size.height;
-
-    CGFloat layer_y = self.frame.size.height - layer_h;
-
-    
-
-    CGFloat min_x = (width - 48 - 34 * 2) / 2;
-
-    CGFloat max_x = (width - (width - 48 - 34 * 2) / 2);
-
-    for (int i = 0; i < numberItem; i++) {
-
-        layer_x = _itemLineSeparate + (_itemLineSeparate + _itemLineWidth) * i;
-
-        if (layer_x > min_x && layer_x < max_x) {
-
-            continue;
-
-        }
-
-
-
-        layer_y = [self layer_y:i];
-
-        layer_h = [self layer_h:layer_y];
-
-        
-
-        UIBezierPath *itemLinePath = [UIBezierPath bezierPath];
-
-        [itemLinePath moveToPoint:CGPointMake(0, layer_y)];
-
-        [itemLinePath addLineToPoint:CGPointMake(0, layer_y + layer_h)];
-
-        
-
-        CAShapeLayer *itemline = [CAShapeLayer layer];
-
-        itemline.lineCap       = kCALineCapButt;
-
-        itemline.lineJoin      = kCALineJoinRound;
-
-        [itemline setLineWidth:layer_w * 2];
-
-        itemline.strokeColor   = [self.itemColor CGColor];
-
-        
-
-        itemline.path = [itemLinePath CGPath];
-
-        
-
-        UIView *dynamicView = [[UIView alloc]initWithFrame:CGRectMake(layer_x, layer_y, layer_w, layer_h)];
-
-        dynamicView.backgroundColor = self.itemBackColor;
-
-        dynamicView.layer.masksToBounds = YES;
-
-        dynamicView.layer.cornerRadius = layer_w / 2;
-
-        dynamicView.tag = 111;
-
-        
-
-        [dynamicView.layer addSublayer:itemline];
-
-        [self addSubview:dynamicView];
-
-    }
-
-}
-
-
-
-- (CGFloat)layer_y:(int)i{
-
-    CGFloat layer_y = 0;
-
-    if (i % 4 == 0) {
-
-        layer_y = (self.height - self.height * 2 / 4) / 2;
-
-    }else if (i % 4 == 1){
-
-        layer_y = (self.height - self.height * 3 / 4) / 2;
-
-    }else if (i % 4 == 2){
-
-        layer_y = 0;
-
-    }else{
-
-        layer_y = (self.height - self.height * 3 / 4) / 2;;
-
-    }
-
-    return layer_y;
-
-}
-
-
-
-- (CGFloat)layer_h:(CGFloat)layer_y{
-
-    return (self.height - layer_y * 2);
-
-}
-
-
-
-- (void)removeAllSubLayers{
-
-    for (UIView *view in self.subviews) {
-
-        [view removeFromSuperview];
-
-    }
-
-}
-
-
-
-- (void)updateItemLevel{
-
-    NSArray *subViews = self.subviews;
-
-    for (int i = 0; i < subViews.count; i++) {
-
-        UIView *subView = subViews[i];
-
-        if (subView.tag == 111) {
-
-            NSArray *layers = subView.layer.sublayers;
-
-            CAShapeLayer *lineItem = (CAShapeLayer*)layers.firstObject;
-
-            CGFloat height = arc4random() % (NSInteger)self.frame.size.height * 2;
-
-            height *= self.soundsValue;
-
-            CGFloat value = (1 - height * 1.0 / self.frame.size.height);
-
-            value = value < 0 ? 0 : value;
-
-            lineItem.strokeStart = value;
-
-            lineItem.strokeEnd = 1;
-
-        }
-
-    }
-
-}
-
-
-
-- (void)stopLayer{
-
-    NSArray *subViews = self.subviews;
-
-    for (int i = 0; i < subViews.count; i++) {
-
-        UIView *subView = subViews[i];
-
-        if (subView.tag == 111) {
-
-            NSArray *layers = subView.layer.sublayers;
-
-            CAShapeLayer *lineItem = (CAShapeLayer*)layers.firstObject;
-
-            lineItem.strokeStart = 1;
-
-            lineItem.strokeEnd = 1;
-
-        }
-
-    }
-
-}
-
-
-
-#pragma mark - displayLink 定时器  动画
-
-- (CADisplayLink *)displayLink{
-
-    if (!_displayLink) {
-
-        _displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(start)];
-
-    }
-
-    return _displayLink;
-
-}
-
-
-
-- (void)start{
-
-    [self updateItemLevel];
-
-}
-
-
-
-- (void)startAnimation{
-
-    self.displayLink.frameInterval = 6;
-
-    [self.displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];
-
-}
-
-
-
-- (void)stopAnimation{
-
-    if (self.displayLink) {
-        [self.displayLink invalidate];
-        self.displayLink = nil;
-        [self stopLayer];
-    }
-}
-
-/*
-// Only override drawRect: if you perform custom drawing.
-// An empty implementation adversely affects performance during animation.
-- (void)drawRect:(CGRect)rect {
-    // Drawing code
-}
-*/
-
-@end

+ 5 - 5
KulexiuForStudent/KulexiuForStudent/Common/MediaMerge/AudioMerge/KSAudioAnimationView.m

@@ -7,6 +7,8 @@
 
 #import "KSAudioAnimationView.h"
 
+#define ANIMATION_RATIO (0.9)
+
 @interface KSAudioAnimationView ()
 
 // 💿旋转view
@@ -22,8 +24,8 @@
 - (void)awakeFromNib {
     [super awakeFromNib];
     [self addSubview:self.stylusImage];
-    self.stylusImage.frame = CGRectMake(132, 17, 43, 117);
-    [self setAnchorPoint:CGPointMake(28.5 / 43, 25.0 / 117) forView:self.stylusImage];
+    self.stylusImage.frame = CGRectMake(132*ANIMATION_RATIO, 17*ANIMATION_RATIO, 43*ANIMATION_RATIO, 117*ANIMATION_RATIO);
+    [self setAnchorPoint:CGPointMake(28.5 / 43*ANIMATION_RATIO, 25.0 / 117*ANIMATION_RATIO) forView:self.stylusImage];
     [self transformStylusView:YES];
 }
 - (void)setAnchorPoint:(CGPoint)anchorPoint forView:(UIView *)stylusImage {
@@ -47,11 +49,9 @@
 }
 
 
-
-
 + (instancetype)shareInstance {
     KSAudioAnimationView *view = [[[NSBundle mainBundle] loadNibNamed:@"KSAudioAnimationView" owner:nil options:nil] firstObject];
-    view.frame = CGRectMake(0, 0, 200, 200);
+    view.frame = CGRectMake(0, 0, 180, 180);
     return view;
 }
 

+ 20 - 18
KulexiuForStudent/KulexiuForStudent/Common/MediaMerge/AudioMerge/KSAudioAnimationView.xib

@@ -1,47 +1,49 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22155" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23094" 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="22131"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23084"/>
         <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="KSAudioAnimationView">
-            <rect key="frame" x="0.0" y="0.0" width="200" height="200"/>
+            <rect key="frame" x="0.0" y="0.0" width="180" height="180"/>
             <autoresizingMask key="autoresizingMask"/>
             <subviews>
                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="disc_bg" translatesAutoresizingMaskIntoConstraints="NO" id="lFV-It-Bm6">
-                    <rect key="frame" x="20" y="19" width="160" height="162"/>
+                    <rect key="frame" x="18" y="18" width="144" height="144"/>
                     <constraints>
-                        <constraint firstAttribute="height" constant="162" id="Ta9-nk-h9I"/>
-                        <constraint firstAttribute="width" constant="160" id="Tna-yG-6fx"/>
+                        <constraint firstAttribute="height" constant="144" id="Ta9-nk-h9I"/>
+                        <constraint firstAttribute="width" constant="144" id="Tna-yG-6fx"/>
                     </constraints>
                 </imageView>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9rU-kO-9oA">
-                    <rect key="frame" x="37.666666666666657" y="37" width="125" height="126"/>
+                    <rect key="frame" x="33.666666666666664" y="33.333333333333336" width="112.66666666666669" height="113.33333333333331"/>
                     <subviews>
                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="vinyl_image" translatesAutoresizingMaskIntoConstraints="NO" id="4la-AT-u8a">
-                            <rect key="frame" x="0.0" y="0.0" width="125" height="126"/>
+                            <rect key="frame" x="0.0" y="0.0" width="112.66666666666667" height="113.33333333333333"/>
                         </imageView>
                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="pub_music_placeholder" translatesAutoresizingMaskIntoConstraints="NO" id="lVm-zv-Cjp">
-                            <rect key="frame" x="28.333333333333336" y="29" width="68" height="68"/>
+                            <rect key="frame" x="26.333333333333336" y="26.666666666666664" width="60.000000000000007" height="59.999999999999993"/>
                             <constraints>
-                                <constraint firstAttribute="width" constant="68" id="Hfl-IX-QGD"/>
-                                <constraint firstAttribute="height" constant="68" id="JIb-Al-3Z6"/>
+                                <constraint firstAttribute="width" constant="60" id="Hfl-IX-QGD"/>
+                                <constraint firstAttribute="width" secondItem="lVm-zv-Cjp" secondAttribute="height" multiplier="1:1" id="IMv-1e-NVE"/>
                             </constraints>
                             <userDefinedRuntimeAttributes>
                                 <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                                    <real key="value" value="34"/>
+                                    <integer key="value" value="30"/>
                                 </userDefinedRuntimeAttribute>
                             </userDefinedRuntimeAttributes>
                         </imageView>
                     </subviews>
                     <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                     <constraints>
+                        <constraint firstAttribute="width" constant="112.5" id="7OQ-oq-1ZT"/>
                         <constraint firstItem="lVm-zv-Cjp" firstAttribute="centerY" secondItem="9rU-kO-9oA" secondAttribute="centerY" id="bvX-pt-zFO"/>
+                        <constraint firstAttribute="width" secondItem="9rU-kO-9oA" secondAttribute="height" multiplier="125:126" id="jpf-EQ-Sad"/>
                         <constraint firstAttribute="bottom" secondItem="4la-AT-u8a" secondAttribute="bottom" id="k6r-mb-QBC"/>
                         <constraint firstItem="4la-AT-u8a" firstAttribute="leading" secondItem="9rU-kO-9oA" secondAttribute="leading" id="onS-d1-2aK"/>
                         <constraint firstItem="lVm-zv-Cjp" firstAttribute="centerX" secondItem="9rU-kO-9oA" secondAttribute="centerX" id="uQx-nX-QGw"/>
@@ -50,17 +52,17 @@
                     </constraints>
                 </view>
                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="disc_dot" translatesAutoresizingMaskIntoConstraints="NO" id="HET-TE-ojn">
-                    <rect key="frame" x="92.666666666666671" y="92.666666666666671" width="15" height="15"/>
+                    <rect key="frame" x="82.666666666666671" y="82.666666666666671" width="15" height="15"/>
                     <constraints>
                         <constraint firstAttribute="width" constant="15" id="DqX-FY-VWd"/>
                         <constraint firstAttribute="height" constant="15" id="Z1s-oL-yaK"/>
                     </constraints>
                 </imageView>
                 <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="stylus_image" translatesAutoresizingMaskIntoConstraints="NO" id="BbL-Qa-JrN">
-                    <rect key="frame" x="132" y="17" width="43" height="117"/>
+                    <rect key="frame" x="118.66666666666669" y="16.333333333333336" width="39" height="105.33333333333331"/>
                     <constraints>
-                        <constraint firstAttribute="height" constant="117" id="tph-20-Zry"/>
-                        <constraint firstAttribute="width" constant="43" id="vap-ud-LAc"/>
+                        <constraint firstAttribute="width" secondItem="BbL-Qa-JrN" secondAttribute="height" multiplier="43:117" id="j2s-5P-2xp"/>
+                        <constraint firstAttribute="width" constant="38.700000000000003" id="vap-ud-LAc"/>
                     </constraints>
                 </imageView>
             </subviews>
@@ -69,8 +71,8 @@
                 <constraint firstItem="lFV-It-Bm6" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="centerY" id="GXc-Zo-uni"/>
                 <constraint firstItem="9rU-kO-9oA" firstAttribute="centerX" secondItem="lFV-It-Bm6" secondAttribute="centerX" id="LW3-gO-4q0"/>
                 <constraint firstItem="9rU-kO-9oA" firstAttribute="centerY" secondItem="lFV-It-Bm6" secondAttribute="centerY" id="Moj-RK-hoi"/>
-                <constraint firstItem="BbL-Qa-JrN" firstAttribute="trailing" secondItem="lFV-It-Bm6" secondAttribute="trailing" constant="-5" id="WOU-6T-tLp"/>
-                <constraint firstItem="BbL-Qa-JrN" firstAttribute="top" secondItem="lFV-It-Bm6" secondAttribute="top" constant="-2" id="duw-YQ-bd5"/>
+                <constraint firstItem="BbL-Qa-JrN" firstAttribute="trailing" secondItem="lFV-It-Bm6" secondAttribute="trailing" constant="-4.5" id="WOU-6T-tLp"/>
+                <constraint firstItem="BbL-Qa-JrN" firstAttribute="top" secondItem="lFV-It-Bm6" secondAttribute="top" constant="-1.8" id="duw-YQ-bd5"/>
                 <constraint firstItem="lFV-It-Bm6" firstAttribute="centerX" secondItem="iN0-l3-epB" secondAttribute="centerX" id="gzL-Wi-8kW"/>
                 <constraint firstItem="HET-TE-ojn" firstAttribute="centerY" secondItem="lFV-It-Bm6" secondAttribute="centerY" id="l1V-zT-gbc"/>
                 <constraint firstItem="HET-TE-ojn" firstAttribute="centerX" secondItem="lFV-It-Bm6" secondAttribute="centerX" id="m0l-RH-T8x"/>

+ 30 - 20
KulexiuForStudent/KulexiuForStudent/Common/MediaMerge/AudioMerge/KSMediaMergeView.m

@@ -12,7 +12,6 @@
 #import "KSPlayerView.h"
 #import "KSPlayerSliderView.h"
 #import "KSVideoPlayerView.h"
-#import "KSAudioPlayAnimationView.h"
 #import "MergeTipsAlert.h"
 #import "MusicPublistAlert.h"
 #import "KSMediaManager.h"
@@ -72,8 +71,6 @@
 
 @property (nonatomic, strong) UIButton *showButton;
 
-@property (nonatomic, strong) KSAudioPlayAnimationView *playAnimationView;
-
 // 远端资源
 @property (nonatomic, strong) NSString *remoteVideoUrl;
 
@@ -984,7 +981,7 @@
 - (void)refreshViewCoverImg:(NSMutableArray *)imageArray {
     UIImage *img = [imageArray lastObject];
     self.settingImage = img;
-    [self.publishAlert.publishContainView.musicImage setImage:self.settingImage];
+    [self.publishAlert.musicCoverView.musicImage setImage:self.settingImage];
 }
 
 
@@ -1456,6 +1453,20 @@
             [LOADING_MANAGER MBShowAUTOHidingInWindow:@"复制成功"];
         }
             break;
+        case MINESHARETYPE_DETAIL: // 作品详情
+        {
+            NSString *detailUrl = [NSString stringWithFormat:@"%@%@?id=%@",WEBHOST, @"/#/creation", productId];
+            if (self.fromDraftPage == NO) {
+                [self displayWorks:detailUrl];
+            }
+            else {
+                [self removeViewTips:NO];
+                dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+                    [[NSNotificationCenter defaultCenter] postNotificationName:@"displayWorksPage" object:@{@"url":detailUrl}];
+                });
+            }
+        }
+            break;
         case MINESHARETYPE_CANCEL:
         {
             [self removeView];
@@ -1463,9 +1474,20 @@
         default:
             break;
     }
-
 }
 
+- (void)displayWorks:(NSString *)url {
+    [self freePlayer];
+    // 跳转到我的作品
+    UIViewController *baseCtrl = [self findViewController];
+    [self removeFromSuperview];
+    
+    [baseCtrl.navigationController popToRootViewControllerAnimated:YES];
+    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+        [[NSNotificationCenter defaultCenter] postNotificationName:@"displayWorks" object:@{@"url" : url}];
+    });
+    
+}
 
 - (void)showSaveDraftTipsAlert {
     MJWeakSelf;
@@ -1482,6 +1504,8 @@
     [self freePlayer];
     // 跳转到我的作品
     UIViewController *baseCtrl = [self findViewController];
+    [self removeFromSuperview];
+
     [baseCtrl.navigationController popToRootViewControllerAnimated:YES];
     dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
         [[NSNotificationCenter defaultCenter] postNotificationName:@"DisplayDraft" object:nil];
@@ -1556,20 +1580,6 @@
     }
 }
 
-- (KSAudioPlayAnimationView *)playAnimationView {
-    if (!_playAnimationView) {
-        _playAnimationView = [[KSAudioPlayAnimationView alloc] init];
-        _playAnimationView.frame = CGRectMake(0, 0, 424, 80);
-    }
-    return _playAnimationView;
-}
-
-
-
-- (void)timerAction {
-    float value = drand48();
-    [self.playAnimationView setSoundsValue:value];
-}
 
 - (void)dealloc {
     [[NSNotificationCenter defaultCenter] removeObserver:self];
@@ -1658,7 +1668,7 @@
     }
     else {
         self.settingImage = croppedImage;
-        [self.publishAlert.publishContainView.musicImage setImage:self.settingImage];
+        [self.publishAlert.musicCoverView.musicImage setImage:self.settingImage];
     }
     
     [controller dismissViewControllerAnimated:YES completion:nil];

+ 3 - 3
KulexiuForStudent/KulexiuForStudent/Common/MediaMerge/AudioMerge/KSMergeAudioControlView.xib

@@ -18,7 +18,7 @@
                     <rect key="frame" x="0.0" y="0.0" width="289" height="388"/>
                     <subviews>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="unX-kF-GoX">
-                            <rect key="frame" x="11" y="52" width="277" height="158"/>
+                            <rect key="frame" x="11" y="52" width="277" height="178"/>
                             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                         </view>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kcU-rG-UWE">
@@ -372,7 +372,7 @@
                         <constraint firstItem="slK-h7-P25" firstAttribute="top" secondItem="XPO-nW-Uox" secondAttribute="bottom" constant="12" id="ZPv-OR-vc2"/>
                         <constraint firstItem="f5Q-wh-6l8" firstAttribute="centerX" secondItem="Jqd-bC-HWT" secondAttribute="centerX" id="aUL-2e-p91"/>
                         <constraint firstItem="53S-gG-Fsg" firstAttribute="trailing" secondItem="beO-nV-nu5" secondAttribute="trailing" constant="-5" id="aUt-lF-11M"/>
-                        <constraint firstItem="DAF-iV-Mgw" firstAttribute="bottom" secondItem="unX-kF-GoX" secondAttribute="bottom" constant="10" id="cqL-cM-9bX"/>
+                        <constraint firstItem="DAF-iV-Mgw" firstAttribute="bottom" secondItem="unX-kF-GoX" secondAttribute="bottom" constant="-10" id="cqL-cM-9bX"/>
                         <constraint firstItem="GuK-qa-jwH" firstAttribute="leading" secondItem="4uQ-6L-UfR" secondAttribute="leading" constant="8.5" id="dAg-hx-VdR"/>
                         <constraint firstItem="ZEM-tW-WX9" firstAttribute="top" secondItem="dNG-od-Opv" secondAttribute="top" constant="14" id="ddY-o0-jeB"/>
                         <constraint firstAttribute="trailing" secondItem="VTj-cX-p66" secondAttribute="trailing" id="dw9-31-S22"/>
@@ -386,7 +386,6 @@
                         <constraint firstItem="slK-h7-P25" firstAttribute="leading" secondItem="96g-7r-vnm" secondAttribute="trailing" constant="6" id="gWj-rN-OUA"/>
                         <constraint firstItem="XPO-nW-Uox" firstAttribute="leading" secondItem="dNG-od-Opv" secondAttribute="leading" constant="26" id="h5x-Vo-RBz"/>
                         <constraint firstItem="MX8-jr-euo" firstAttribute="leading" secondItem="dNG-od-Opv" secondAttribute="leading" id="hPK-xS-fSR"/>
-                        <constraint firstItem="unX-kF-GoX" firstAttribute="top" secondItem="oyf-C4-Pe3" secondAttribute="top" constant="-10" id="hPS-T9-LHg"/>
                         <constraint firstItem="Mqk-Mg-Pni" firstAttribute="top" secondItem="NBl-15-e5U" secondAttribute="top" constant="10" id="hSM-Po-KXc"/>
                         <constraint firstItem="53S-gG-Fsg" firstAttribute="top" secondItem="beO-nV-nu5" secondAttribute="top" constant="9" id="hnc-Bj-geW"/>
                         <constraint firstItem="xzg-Xa-du5" firstAttribute="bottom" secondItem="kcU-rG-UWE" secondAttribute="bottom" constant="-10" id="hr2-nQ-JRi"/>
@@ -414,6 +413,7 @@
                         <constraint firstItem="XPO-nW-Uox" firstAttribute="top" secondItem="ucS-Gd-cx3" secondAttribute="bottom" constant="27" id="vQT-M9-wQP"/>
                         <constraint firstItem="pQK-tY-S1I" firstAttribute="top" secondItem="nyI-H7-gwi" secondAttribute="bottom" constant="7" id="wzO-w2-Rcm"/>
                         <constraint firstItem="f5Q-wh-6l8" firstAttribute="top" secondItem="Jqd-bC-HWT" secondAttribute="bottom" constant="1" id="xpQ-65-ym0"/>
+                        <constraint firstItem="oyf-C4-Pe3" firstAttribute="top" secondItem="unX-kF-GoX" secondAttribute="top" constant="10" id="yeK-es-rJX"/>
                         <constraint firstItem="GuK-qa-jwH" firstAttribute="bottom" secondItem="4uQ-6L-UfR" secondAttribute="bottom" constant="-10" id="zrA-b7-0nZ"/>
                     </constraints>
                 </view>

+ 10 - 10
KulexiuForStudent/KulexiuForStudent/Common/MediaMerge/AudioMerge/KSPlayerSliderView.xib

@@ -1,20 +1,20 @@
 <?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" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23094" 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="22684"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23084"/>
         <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="KSPlayerSliderView">
-            <rect key="frame" x="0.0" y="0.0" width="393" height="70"/>
+            <rect key="frame" x="0.0" y="0.0" width="393" height="44"/>
             <autoresizingMask key="autoresizingMask"/>
             <subviews>
                 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="hlN-nG-Uba">
-                    <rect key="frame" x="13" y="10" width="44" height="44"/>
+                    <rect key="frame" x="0.0" y="0.0" width="44" height="44"/>
                     <constraints>
                         <constraint firstAttribute="width" constant="44" id="Maf-g9-agS"/>
                         <constraint firstAttribute="height" constant="44" id="Rwh-PH-1hM"/>
@@ -26,7 +26,7 @@
                     </connections>
                 </button>
                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="00:00" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="VYy-l7-dPg">
-                    <rect key="frame" x="328" y="23.666666666666671" width="45" height="17"/>
+                    <rect key="frame" x="348" y="13.666666666666664" width="45" height="17"/>
                     <constraints>
                         <constraint firstAttribute="width" constant="45" id="NkH-NK-9cK"/>
                     </constraints>
@@ -35,7 +35,7 @@
                     <nil key="highlightedColor"/>
                 </label>
                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="00:00" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Hkd-3d-Ojv">
-                    <rect key="frame" x="57" y="22" width="45" height="20"/>
+                    <rect key="frame" x="44" y="12" width="45" height="20"/>
                     <constraints>
                         <constraint firstAttribute="width" constant="45" id="cYc-DC-c5N"/>
                         <constraint firstAttribute="height" constant="20" id="yDl-lG-zvk"/>
@@ -45,7 +45,7 @@
                     <nil key="highlightedColor"/>
                 </label>
                 <slider opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" minValue="0.0" maxValue="100" translatesAutoresizingMaskIntoConstraints="NO" id="i72-ge-RXd">
-                    <rect key="frame" x="112" y="17" width="206" height="31"/>
+                    <rect key="frame" x="99" y="7" width="239" height="31"/>
                     <color key="minimumTrackTintColor" red="0.1764705882" green="0.78039215689999997" blue="0.66666666669999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                     <color key="maximumTrackTintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                     <color key="thumbTintColor" red="0.1764705882" green="0.78039215689999997" blue="0.66666666669999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
@@ -58,10 +58,10 @@
                 <constraint firstItem="i72-ge-RXd" firstAttribute="centerY" secondItem="hlN-nG-Uba" secondAttribute="centerY" id="6SB-Vq-2PR"/>
                 <constraint firstItem="Hkd-3d-Ojv" firstAttribute="centerY" secondItem="hlN-nG-Uba" secondAttribute="centerY" id="6u6-V5-6qZ"/>
                 <constraint firstItem="Hkd-3d-Ojv" firstAttribute="leading" secondItem="hlN-nG-Uba" secondAttribute="trailing" id="ADX-2i-LTc"/>
-                <constraint firstItem="hlN-nG-Uba" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="13" id="W8S-zw-Y9b"/>
+                <constraint firstItem="hlN-nG-Uba" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="W8S-zw-Y9b"/>
                 <constraint firstItem="i72-ge-RXd" firstAttribute="leading" secondItem="Hkd-3d-Ojv" secondAttribute="trailing" constant="12" id="YZR-Gg-TPp"/>
-                <constraint firstAttribute="trailing" secondItem="VYy-l7-dPg" secondAttribute="trailing" constant="20" id="eQN-Si-ypK"/>
-                <constraint firstItem="hlN-nG-Uba" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="10" id="lFP-fr-zQD"/>
+                <constraint firstAttribute="trailing" secondItem="VYy-l7-dPg" secondAttribute="trailing" id="eQN-Si-ypK"/>
+                <constraint firstItem="hlN-nG-Uba" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="lFP-fr-zQD"/>
             </constraints>
             <nil key="simulatedTopBarMetrics"/>
             <nil key="simulatedBottomBarMetrics"/>

+ 0 - 2
KulexiuForStudent/KulexiuForStudent/Common/MediaMerge/AudioMerge/MergeTipsAlert.m

@@ -9,8 +9,6 @@
 
 @interface MergeTipsAlert ()
 
-@property (weak, nonatomic) IBOutlet UIView *colorView;
-
 @property (weak, nonatomic) IBOutlet UILabel *tipsLabel;
 
 @property (weak, nonatomic) IBOutlet UIButton *leftButton;

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Common/MediaMerge/AudioMerge/MergeTipsAlert.xib

@@ -49,7 +49,7 @@
                                 </button>
                                 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="b2S-9q-b3D">
                                     <rect key="frame" x="149" y="110.33333333333331" width="118" height="37"/>
-                                    <color key="backgroundColor" red="0.0039215686274509803" green="0.75686274509803919" blue="0.70980392156862748" alpha="1" colorSpace="calibratedRGB"/>
+                                    <color key="backgroundColor" red="0.1764705882352941" green="0.7803921568627451" blue="0.66666666666666663" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                     <constraints>
                                         <constraint firstAttribute="height" constant="37" id="sDc-En-Pny"/>
                                     </constraints>

+ 2 - 1
KulexiuForStudent/KulexiuForStudent/Common/MediaMerge/AudioMerge/ShareFunctionView.h

@@ -11,7 +11,8 @@ typedef NS_ENUM(NSInteger, MINESHARETYPE) {
     MINESHARETYPE_FRIEND,  // 微信好友
     MINESHARETYPE_CIRCLE,  // 朋友圈
     MINESHARETYPE_SAVE,    // 保存链接
-    MINESHARETYPE_CANCEL,  // 取消下载
+    MINESHARETYPE_DETAIL,  // 查看作品
+    MINESHARETYPE_CANCEL,  // 取消
 };
 
 typedef void(^ShareChooseCallback)(MINESHARETYPE type);

+ 5 - 3
KulexiuForStudent/KulexiuForStudent/Common/MediaMerge/AudioMerge/ShareFunctionView.m

@@ -11,8 +11,6 @@
 
 @property (weak, nonatomic) IBOutlet UIView *containerView;
 
-@property (weak, nonatomic) IBOutlet NSLayoutConstraint *bottomSpace;
-
 @property (nonatomic, copy) ShareChooseCallback callback;
 
 @end
@@ -21,7 +19,6 @@
 
 - (void)awakeFromNib {
     [super awakeFromNib];
-//    [self addGesture];
 }
 
 + (instancetype)shareInstance {
@@ -69,6 +66,11 @@
     }
 }
 
+- (IBAction)showWorks:(id)sender {
+    if (self.callback) {
+        self.callback(MINESHARETYPE_DETAIL);
+    }
+}
 
 - (IBAction)cancelAction:(id)sender {
     [self cancelShareAction];

+ 53 - 60
KulexiuForStudent/KulexiuForStudent/Common/MediaMerge/AudioMerge/ShareFunctionView.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" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23094" 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="22504"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23084"/>
         <capability name="System colors in document resources" minToolsVersion="11.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
@@ -15,26 +15,26 @@
             <autoresizingMask key="autoresizingMask"/>
             <subviews>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xxd-Rj-n4H">
-                    <rect key="frame" x="46.666666666666657" y="229" width="300" height="204.33333333333337"/>
+                    <rect key="frame" x="53" y="227" width="287" height="208"/>
                     <subviews>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="作品发布成功快来分享吧!" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="whi-jN-odv">
-                            <rect key="frame" x="22.000000000000014" y="15" width="204.33333333333337" height="22"/>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="作品发布成功快来分享吧!" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="whi-jN-odv">
+                            <rect key="frame" x="50.333333333333329" y="23" width="186.66666666666669" height="26"/>
                             <constraints>
-                                <constraint firstAttribute="height" constant="22" id="mcC-RU-mid"/>
+                                <constraint firstAttribute="height" constant="26" id="mcC-RU-mid"/>
                             </constraints>
-                            <fontDescription key="fontDescription" type="system" pointSize="16"/>
-                            <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                            <color key="textColor" red="0.46666666666666667" green="0.46666666666666667" blue="0.46666666666666667" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             <nil key="highlightedColor"/>
                         </label>
-                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="cancle_button" translatesAutoresizingMaskIntoConstraints="NO" id="d68-wP-nqr">
-                            <rect key="frame" x="278" y="11" width="12" height="12"/>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="musc_publish_cancel" translatesAutoresizingMaskIntoConstraints="NO" id="d68-wP-nqr">
+                            <rect key="frame" x="261" y="12" width="14" height="14"/>
                             <constraints>
-                                <constraint firstAttribute="width" constant="12" id="2dO-Ib-kPr"/>
-                                <constraint firstAttribute="height" constant="12" id="UWh-M8-xRo"/>
+                                <constraint firstAttribute="width" constant="14" id="2dO-Ib-kPr"/>
+                                <constraint firstAttribute="height" constant="14" id="UWh-M8-xRo"/>
                             </constraints>
                         </imageView>
                         <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="1X7-2b-H7z">
-                            <rect key="frame" x="260" y="0.0" width="40" height="40"/>
+                            <rect key="frame" x="247" y="0.0" width="40" height="40"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="40" id="mfV-tg-6hm"/>
                                 <constraint firstAttribute="width" constant="40" id="twM-LS-3el"/>
@@ -45,7 +45,7 @@
                             </connections>
                         </button>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3o6-xF-kdP">
-                            <rect key="frame" x="52" y="60.999999999999993" width="52" height="68.333333333333314"/>
+                            <rect key="frame" x="35.666666666666671" y="66" width="52" height="70"/>
                             <subviews>
                                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="share_friendIcon" translatesAutoresizingMaskIntoConstraints="NO" id="hP0-qM-Y11">
                                     <rect key="frame" x="4" y="0.0" width="44" height="44"/>
@@ -55,16 +55,17 @@
                                     </constraints>
                                 </imageView>
                                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="微信好友" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vjl-Z1-6Mv">
-                                    <rect key="frame" x="0.0" y="54" width="52" height="14.333333333333329"/>
+                                    <rect key="frame" x="0.0" y="54" width="52" height="16"/>
                                     <constraints>
                                         <constraint firstAttribute="width" constant="52" id="5M4-h2-Hz5"/>
+                                        <constraint firstAttribute="height" constant="16" id="s3E-ay-hg9"/>
                                     </constraints>
                                     <fontDescription key="fontDescription" type="system" pointSize="12"/>
                                     <color key="textColor" red="0.39215686274509803" green="0.396078431372549" blue="0.40000000000000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                     <nil key="highlightedColor"/>
                                 </label>
                                 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Iho-8X-SD1">
-                                    <rect key="frame" x="0.0" y="0.0" width="52" height="68.333333333333329"/>
+                                    <rect key="frame" x="0.0" y="0.0" width="52" height="70"/>
                                     <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                     <connections>
                                         <action selector="shareFriend:" destination="iN0-l3-epB" eventType="touchUpInside" id="eSM-hz-qsf"/>
@@ -86,31 +87,27 @@
                                 <constraint firstAttribute="bottom" secondItem="vjl-Z1-6Mv" secondAttribute="bottom" id="s7r-eh-W7i"/>
                             </constraints>
                         </view>
-                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="cJu-Gs-vEw">
-                            <rect key="frame" x="13" y="146.33333333333331" width="274" height="1"/>
-                            <color key="backgroundColor" red="0.94901960784313721" green="0.94901960784313721" blue="0.94901960784313721" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="1" id="h5e-T1-Xll"/>
-                            </constraints>
-                        </view>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="取消" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="KgM-5w-lll">
-                            <rect key="frame" x="133.33333333333334" y="162.33333333333331" width="33.333333333333343" height="22"/>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Hbd-Au-HVO">
+                            <rect key="frame" x="71.666666666666686" y="154" width="144" height="36"/>
+                            <color key="backgroundColor" red="0.1764705882352941" green="0.7803921568627451" blue="0.66666666666666663" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             <constraints>
-                                <constraint firstAttribute="height" constant="22" id="233-tf-otD"/>
+                                <constraint firstAttribute="height" constant="36" id="3fn-zb-bgE"/>
+                                <constraint firstAttribute="width" constant="144" id="bBb-V7-BVz"/>
                             </constraints>
-                            <fontDescription key="fontDescription" type="system" pointSize="16"/>
-                            <color key="textColor" red="0.66666666666666663" green="0.66666666666666663" 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="Hbd-Au-HVO">
-                            <rect key="frame" x="0.0" y="147.33333333333331" width="300" height="57"/>
+                            <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">
+                                    <integer key="value" value="18"/>
+                                </userDefinedRuntimeAttribute>
+                            </userDefinedRuntimeAttributes>
                             <connections>
-                                <action selector="cancelAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="RDg-wT-LHI"/>
+                                <action selector="showWorks:" destination="iN0-l3-epB" eventType="touchUpInside" id="Bzy-zB-XAL"/>
                             </connections>
                         </button>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pii-x4-YtS">
-                            <rect key="frame" x="124" y="60.999999999999993" width="52" height="68.333333333333314"/>
+                            <rect key="frame" x="117.66666666666666" y="66" width="52" height="70"/>
                             <subviews>
                                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="share_friendCircle" translatesAutoresizingMaskIntoConstraints="NO" id="5ej-dh-tsG">
                                     <rect key="frame" x="4" y="0.0" width="44" height="44"/>
@@ -120,16 +117,17 @@
                                     </constraints>
                                 </imageView>
                                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="朋友圈" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="12Q-cw-qeX">
-                                    <rect key="frame" x="0.0" y="54" width="52" height="14.333333333333329"/>
+                                    <rect key="frame" x="0.0" y="54" width="52" height="16"/>
                                     <constraints>
                                         <constraint firstAttribute="width" constant="52" id="6pb-Kd-q83"/>
+                                        <constraint firstAttribute="height" constant="16" id="yJN-LF-FwC"/>
                                     </constraints>
                                     <fontDescription key="fontDescription" type="system" pointSize="12"/>
                                     <color key="textColor" red="0.3921568627" green="0.39607843139999999" blue="0.40000000000000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                     <nil key="highlightedColor"/>
                                 </label>
                                 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="pJm-Pm-dKW">
-                                    <rect key="frame" x="0.0" y="0.0" width="52" height="68.333333333333329"/>
+                                    <rect key="frame" x="0.0" y="0.0" width="52" height="70"/>
                                     <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                     <connections>
                                         <action selector="shareCircle:" destination="iN0-l3-epB" eventType="touchUpInside" id="rGy-7k-Iyh"/>
@@ -152,18 +150,19 @@
                             </constraints>
                         </view>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="972-C6-GND">
-                            <rect key="frame" x="196" y="60.999999999999993" width="52" height="68.333333333333314"/>
+                            <rect key="frame" x="199.66666666666666" y="66" width="52" height="70"/>
                             <subviews>
                                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="save_linkIcon" translatesAutoresizingMaskIntoConstraints="NO" id="HFC-kg-Cnl">
-                                    <rect key="frame" x="4" y="0.0" width="44" height="44"/>
+                                    <rect key="frame" x="4.0000000000000284" y="0.0" width="44" height="44"/>
                                     <constraints>
                                         <constraint firstAttribute="height" constant="44" id="Pun-mH-KQi"/>
                                         <constraint firstAttribute="width" constant="44" id="bAc-gW-UQ6"/>
                                     </constraints>
                                 </imageView>
                                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="复制链接" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NrI-8j-lth">
-                                    <rect key="frame" x="0.0" y="54" width="52" height="14.333333333333329"/>
+                                    <rect key="frame" x="0.0" y="54" width="52" height="16"/>
                                     <constraints>
+                                        <constraint firstAttribute="height" constant="16" id="wqU-GK-cwm"/>
                                         <constraint firstAttribute="width" constant="52" id="z0T-Iz-msj"/>
                                     </constraints>
                                     <fontDescription key="fontDescription" type="system" pointSize="12"/>
@@ -171,7 +170,7 @@
                                     <nil key="highlightedColor"/>
                                 </label>
                                 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="mlB-f7-6X8">
-                                    <rect key="frame" x="0.0" y="0.0" width="52" height="68.333333333333329"/>
+                                    <rect key="frame" x="0.0" y="0.0" width="52" height="70"/>
                                     <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                     <connections>
                                         <action selector="saveLink:" destination="iN0-l3-epB" eventType="touchUpInside" id="rSH-Ut-2gO"/>
@@ -197,28 +196,23 @@
                     <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                     <constraints>
                         <constraint firstItem="1X7-2b-H7z" firstAttribute="top" secondItem="xxd-Rj-n4H" secondAttribute="top" id="0eY-1Q-fY5"/>
-                        <constraint firstItem="whi-jN-odv" firstAttribute="leading" secondItem="xxd-Rj-n4H" secondAttribute="leading" constant="22" id="77b-d3-fXo"/>
-                        <constraint firstItem="pii-x4-YtS" firstAttribute="leading" secondItem="3o6-xF-kdP" secondAttribute="trailing" constant="20" id="8oP-dH-jon"/>
-                        <constraint firstItem="Hbd-Au-HVO" firstAttribute="top" secondItem="cJu-Gs-vEw" secondAttribute="bottom" id="AXs-66-0Hc"/>
-                        <constraint firstItem="cJu-Gs-vEw" firstAttribute="top" secondItem="3o6-xF-kdP" secondAttribute="bottom" constant="17" id="DJm-3W-Ppo"/>
+                        <constraint firstItem="whi-jN-odv" firstAttribute="centerX" secondItem="xxd-Rj-n4H" secondAttribute="centerX" id="4Ek-TC-mQX"/>
+                        <constraint firstItem="pii-x4-YtS" firstAttribute="leading" secondItem="3o6-xF-kdP" secondAttribute="trailing" constant="30" id="8oP-dH-jon"/>
+                        <constraint firstItem="pii-x4-YtS" firstAttribute="top" secondItem="whi-jN-odv" secondAttribute="bottom" constant="17" id="D09-jS-nY6"/>
                         <constraint firstAttribute="trailing" secondItem="1X7-2b-H7z" secondAttribute="trailing" id="Fg7-FP-q51"/>
                         <constraint firstItem="pii-x4-YtS" firstAttribute="centerX" secondItem="xxd-Rj-n4H" secondAttribute="centerX" id="HkN-nL-ZkK"/>
-                        <constraint firstAttribute="trailing" secondItem="d68-wP-nqr" secondAttribute="trailing" constant="10" id="I0M-Uk-GhE"/>
-                        <constraint firstAttribute="trailing" secondItem="cJu-Gs-vEw" secondAttribute="trailing" constant="13" id="Idm-7d-lED"/>
-                        <constraint firstAttribute="bottom" secondItem="KgM-5w-lll" secondAttribute="bottom" constant="20" id="KaZ-ue-dRl"/>
-                        <constraint firstItem="3o6-xF-kdP" firstAttribute="top" secondItem="whi-jN-odv" secondAttribute="bottom" constant="24" id="QqV-SP-EIG"/>
-                        <constraint firstAttribute="trailing" secondItem="Hbd-Au-HVO" secondAttribute="trailing" id="Rgn-1H-6vP"/>
-                        <constraint firstItem="972-C6-GND" firstAttribute="leading" secondItem="pii-x4-YtS" secondAttribute="trailing" constant="20" id="Rlx-5Z-6Ld"/>
+                        <constraint firstAttribute="trailing" secondItem="d68-wP-nqr" secondAttribute="trailing" constant="12" id="I0M-Uk-GhE"/>
+                        <constraint firstAttribute="height" constant="208" id="PaS-i3-rbj"/>
+                        <constraint firstItem="3o6-xF-kdP" firstAttribute="top" secondItem="whi-jN-odv" secondAttribute="bottom" constant="17" id="QqV-SP-EIG"/>
+                        <constraint firstItem="972-C6-GND" firstAttribute="leading" secondItem="pii-x4-YtS" secondAttribute="trailing" constant="30" id="Rlx-5Z-6Ld"/>
                         <constraint firstItem="pii-x4-YtS" firstAttribute="centerY" secondItem="3o6-xF-kdP" secondAttribute="centerY" id="YaR-Tg-ZcD"/>
-                        <constraint firstItem="whi-jN-odv" firstAttribute="top" secondItem="xxd-Rj-n4H" secondAttribute="top" constant="15" id="ZWU-fk-uQU"/>
-                        <constraint firstItem="cJu-Gs-vEw" firstAttribute="leading" secondItem="xxd-Rj-n4H" secondAttribute="leading" constant="13" id="bD5-oG-A0K"/>
-                        <constraint firstAttribute="bottom" secondItem="Hbd-Au-HVO" secondAttribute="bottom" id="bw7-c0-8jw"/>
-                        <constraint firstItem="KgM-5w-lll" firstAttribute="centerX" secondItem="xxd-Rj-n4H" secondAttribute="centerX" id="iF6-pQ-QO3"/>
-                        <constraint firstItem="Hbd-Au-HVO" firstAttribute="leading" secondItem="xxd-Rj-n4H" secondAttribute="leading" id="mdL-48-aTV"/>
-                        <constraint firstItem="KgM-5w-lll" firstAttribute="top" secondItem="cJu-Gs-vEw" secondAttribute="bottom" constant="15" id="oKd-gp-JKZ"/>
+                        <constraint firstItem="whi-jN-odv" firstAttribute="top" secondItem="xxd-Rj-n4H" secondAttribute="top" constant="23" id="ZWU-fk-uQU"/>
+                        <constraint firstAttribute="bottom" secondItem="Hbd-Au-HVO" secondAttribute="bottom" constant="18" id="bw7-c0-8jw"/>
+                        <constraint firstItem="Hbd-Au-HVO" firstAttribute="centerX" secondItem="xxd-Rj-n4H" secondAttribute="centerX" id="q6Z-FK-gGd"/>
                         <constraint firstItem="972-C6-GND" firstAttribute="centerY" secondItem="3o6-xF-kdP" secondAttribute="centerY" id="q9s-ei-XU2"/>
-                        <constraint firstItem="d68-wP-nqr" firstAttribute="top" secondItem="xxd-Rj-n4H" secondAttribute="top" constant="11" id="qKv-jP-uao"/>
-                        <constraint firstAttribute="width" constant="300" id="tqA-Z0-lUX"/>
+                        <constraint firstItem="d68-wP-nqr" firstAttribute="top" secondItem="xxd-Rj-n4H" secondAttribute="top" constant="12" id="qKv-jP-uao"/>
+                        <constraint firstItem="972-C6-GND" firstAttribute="top" secondItem="whi-jN-odv" secondAttribute="bottom" constant="17" id="tfW-cA-bP3"/>
+                        <constraint firstAttribute="width" constant="287" id="tqA-Z0-lUX"/>
                     </constraints>
                     <userDefinedRuntimeAttributes>
                         <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
@@ -236,14 +230,13 @@
             <nil key="simulatedBottomBarMetrics"/>
             <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
             <connections>
-                <outlet property="bottomSpace" destination="KaZ-ue-dRl" id="xJR-P0-MOI"/>
                 <outlet property="containerView" destination="xxd-Rj-n4H" id="xuA-Pw-lve"/>
             </connections>
             <point key="canvasLocation" x="104.58015267175573" y="-166.90140845070422"/>
         </view>
     </objects>
     <resources>
-        <image name="cancle_button" width="20" height="20"/>
+        <image name="musc_publish_cancel" width="14" height="14"/>
         <image name="save_linkIcon" width="44" height="44"/>
         <image name="share_friendCircle" width="44" height="44"/>
         <image name="share_friendIcon" width="44" height="44"/>

+ 22 - 3
KulexiuForStudent/KulexiuForStudent/InstitutionModule/Mine/Controller/INSSettingViewController.m

@@ -21,8 +21,10 @@
 #import "AccountDeleteViewController.h"
 #import <KSSmallChoosePicker.h>
 #import "CustomNavViewController.h"
+#import "KSBaseWKWebViewController.h"
 
 #import "CoursewareDownloadManager.h"
+#import "KSBaseGuideManager.h"
 
 @interface INSSettingViewController ()<RSKImageCropViewControllerDelegate>
 
@@ -153,12 +155,29 @@
     }
 }
 
-- (void)clearCache {
-    [VoNetworking clearDownloadData];
-    
+- (void)closeDownload {
     if (COURSEWARE_MANAGER.isDownloading) { // 如果在下载 取消
         [COURSEWARE_MANAGER cancleDownloadCourseware];
     }
+}
+
+- (void)deleteWebCache {
+
+    //allWebsiteDataTypes清除所有缓存
+    NSSet *websiteDataTypes = [WKWebsiteDataStore allWebsiteDataTypes];
+    NSDate *dateFrom = [NSDate dateWithTimeIntervalSince1970:0];
+    
+    [[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:websiteDataTypes modifiedSince:dateFrom completionHandler:^{
+        
+    }];
+}
+
+- (void)clearCache {
+    [self closeDownload];
+    [self deleteWebCache];
+    [VoNetworking clearDownloadData];
+    UserDefaultSetBoolForKey(NO, MERGE_GUIDEKEY);
+    
     
     NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
     NSString *bundlePath = [documentsPath stringByAppendingPathComponent:@"CoursewarePath"];

+ 21 - 3
KulexiuForStudent/KulexiuForStudent/InstitutionModule/TabbarController/InstitutionTabBarController.m

@@ -15,7 +15,7 @@
 #import "AnimationHelper.h"
 #import "MineWorksViewController.h"
 #import "CustomNavViewController.h"
-
+#import "KSBaseWKWebViewController.h"
 
 @interface InstitutionTabBarController ()<UITabBarControllerDelegate>
 
@@ -28,20 +28,38 @@
     // Do any additional setup after loading the view.
     self.delegate = self;
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showDraftPage) name:@"DisplayDraft" object:nil];
+    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showWorksPage:) name:@"displayWorks" object:nil];
 
     [self configItems];
 }
 
-- (void)showDraftPage {
+- (void)showWorksPage:(NSNotification *)notification {
+    [self showWorksDraft:NO info:notification.object];
+}
+
+- (void)showWorksDraft:(BOOL)isDraft info:(NSDictionary *)info {
     [self tabBarSelectedWithIndex:2];
     dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
         CustomNavViewController *navCtrl = self.selectedViewController;
         MineWorksViewController *ctrl = [[MineWorksViewController alloc] init];
-        [ctrl displayDraft:YES];
+        [ctrl displayDraft:isDraft];
         [navCtrl pushViewController:ctrl animated:YES];
+        if (isDraft == NO) {
+            // 显示作品详情
+            NSString *url = [info ks_stringValueForKey:@"url"];
+            if (![NSString isEmptyString:url]) {
+                KSBaseWKWebViewController *ctrl = [[KSBaseWKWebViewController alloc] init];
+                ctrl.url = url;
+                [navCtrl pushViewController:ctrl animated:YES];
+            }
+        }
     });
 }
 
+- (void)showDraftPage {
+    [self showWorksDraft:YES info:nil];
+}
+
 - (void)configItems {
     // 处理 pad上 tabbar样式
     if (@available(iOS 18.0, *)) {

+ 20 - 2
KulexiuForStudent/KulexiuForStudent/Module/Mine/Setting/Controller/SettingViewController.m

@@ -18,6 +18,7 @@
 #import "UserInfoManager.h"
 #import "AccountDeleteViewController.h"
 #import "UserInfoManager.h"
+#import "KSBaseGuideManager.h"
 
 @interface SettingViewController ()
 
@@ -123,11 +124,28 @@
     }
 }
 
-- (void)clearCache {
-    [VoNetworking clearDownloadData];
+- (void)closeDownload {
     if (COURSEWARE_MANAGER.isDownloading) { // 如果在下载 取消
         [COURSEWARE_MANAGER cancleDownloadCourseware];
     }
+}
+
+- (void)deleteWebCache {
+
+    //allWebsiteDataTypes清除所有缓存
+    NSSet *websiteDataTypes = [WKWebsiteDataStore allWebsiteDataTypes];
+    NSDate *dateFrom = [NSDate dateWithTimeIntervalSince1970:0];
+    
+    [[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:websiteDataTypes modifiedSince:dateFrom completionHandler:^{
+        
+    }];
+}
+
+- (void)clearCache {
+    [self closeDownload];
+    [self deleteWebCache];
+    [VoNetworking clearDownloadData];
+    UserDefaultSetBoolForKey(NO, MERGE_GUIDEKEY);
     
     NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
     NSString *bundlePath = [documentsPath stringByAppendingPathComponent:@"CoursewarePath"];

+ 21 - 4
KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/Controller/MineWorksViewController.m

@@ -10,6 +10,7 @@
 #import "MineWorksBodyView.h"
 #import "JXCategoryView.h"
 #import "JXPagerListRefreshView.h"
+#import "KSBaseWKWebViewController.h"
 
 @interface MineWorksViewController ()<JXPagerViewDelegate, JXPagerMainTableViewGestureDelegate,JXCategoryViewDelegate>
 
@@ -35,6 +36,20 @@
     [super viewDidLoad];
     // Do any additional setup after loading the view.
     [self configUI];
+    //    displayWorksPage
+    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showFirstPage:) name:@"displayWorksPage" object:nil];
+}
+
+- (void)showFirstPage:(NSNotification *)notification {
+    [self.categoryView selectItemAtIndex:0];
+    NSDictionary *info = notification.object;
+    NSString *url = [info ks_stringValueForKey:@"url"];
+    if (![NSString isEmptyString:url]) {
+        KSBaseWKWebViewController *ctrl = [[KSBaseWKWebViewController alloc] init];
+        ctrl.url = url;
+        ctrl.ks_landScape = NO;
+        [self.navigationController pushViewController:ctrl animated:YES];
+    }
 }
 
 - (void)configUI {
@@ -58,8 +73,8 @@
 }
 
 - (void)configCategoryUI:(NSInteger)topHeight {
-    _categoryView = [[JXCategoryTitleView alloc] initWithFrame:CGRectMake(0, topHeight-20, KPortraitWidth, 58)];
-    UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KPortraitWidth, 58) byRoundingCorners:UIRectCornerTopLeft|UIRectCornerTopRight cornerRadii:CGSizeMake(20, 20)];
+    _categoryView = [[JXCategoryTitleView alloc] initWithFrame:CGRectMake(0, topHeight-20, KPortraitWidth, 44)];
+    UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KPortraitWidth, 44) byRoundingCorners:UIRectCornerTopLeft|UIRectCornerTopRight cornerRadii:CGSizeMake(20, 20)];
     CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
     maskLayer.frame = _categoryView.bounds;
     maskLayer.path = maskPath.CGPath;
@@ -73,11 +88,13 @@
     self.categoryView.titleSelectedColor = HexRGB(0x333333);
     self.categoryView.titleColor = HexRGB(0x777777);
     self.categoryView.titleColorGradientEnabled = YES;
+    self.categoryView.cellWidth = 70;
+    self.categoryView.contentEdgeInsetLeft = (KPortraitWidth - 70 * 2) / 4;
+    self.categoryView.contentEdgeInsetRight = (KPortraitWidth - 70 * 2) / 4;
     
     JXCategoryIndicatorImageView *lineView = [[JXCategoryIndicatorImageView alloc] init];
     [lineView.indicatorImageView setImage:[UIImage imageNamed:@"minework_Line"]];
     lineView.indicatorImageViewSize = CGSizeMake(16, 4);
-    lineView.verticalMargin = 10;
     self.categoryView.indicators = @[lineView];
     
     _pagerView = [self preferredPagingView];
@@ -142,7 +159,7 @@
 }
 
 - (NSUInteger)heightForPinSectionHeaderInPagerView:(JXPagerView *)pagerView {
-    return 58;
+    return 44;
 }
 
 - (NSInteger)numberOfListsInPagerView:(JXPagerView *)pagerView {

+ 5 - 5
KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/KSCropImageNavView.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22155" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23094" 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="22131"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23084"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -34,14 +34,14 @@
                             </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="GGz-C6-Tp4">
-                            <rect key="frame" x="163.66666666666666" y="20.666666666666668" width="66" height="20.000000000000004"/>
+                            <rect key="frame" x="164.66666666666666" y="20.666666666666668" width="63.666666666666657" height="20.000000000000004"/>
                             <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="16"/>
                             <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                             <nil key="highlightedColor"/>
                         </label>
                         <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="dGw-mB-Z1v">
                             <rect key="frame" x="305" y="14.666666666666664" width="64" height="32"/>
-                            <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                            <color key="backgroundColor" red="0.1764705882" green="0.78039215689999997" blue="0.66666666669999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             <constraints>
                                 <constraint firstAttribute="width" constant="64" id="UdM-ZV-lN9"/>
                                 <constraint firstAttribute="height" constant="32" id="k09-mz-AeM"/>
@@ -49,7 +49,7 @@
                             <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="16"/>
                             <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                             <state key="normal" title="保存">
-                                <color key="titleColor" red="0.1764705882352941" green="0.7803921568627451" blue="0.66666666666666663" alpha="1" colorSpace="calibratedRGB"/>
+                                <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                             </state>
                             <userDefinedRuntimeAttributes>
                                 <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/KSVideoImageSlider.m

@@ -70,7 +70,7 @@
     if (_knobView == nil) {
         _knobView = [[UIImageView alloc]init];
         _knobView.layer.cornerRadius = 10.0f;
-        _knobView.layer.borderColor = HexRGB(0x279FFE).CGColor;
+        _knobView.layer.borderColor = HexRGB(0x2DC7AA).CGColor;
         _knobView.layer.borderWidth = 4.0f;
         _knobView.layer.masksToBounds = YES;
         _knobView.contentMode = UIViewContentModeScaleAspectFill;

+ 35 - 0
KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MineWorkSortView.h

@@ -0,0 +1,35 @@
+//
+//  MineWorkSortView.h
+//  StudentDaya
+//
+//  Created by 王智 on 2024/10/14.
+//  Copyright © 2024 DayaMusic. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+typedef NS_ENUM(NSInteger, MINEWORKS_SEARCH) {
+    MINEWORKS_SEARCH_SORT,   // 筛选
+    MINEWORKS_SEARCH_SEARCH, // 搜索
+};
+typedef void(^MineWorksSortCallback)(MINEWORKS_SEARCH type, NSString * _Nullable searchKey);
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface MineWorkSortView : UIView
+
++ (instancetype)shareInstance;
+
+- (void)configSortDesc:(NSString *)sortDesc;
+
+- (void)configPlaceholder:(NSString *)placeholder;
+
+- (void)searchAction:(MineWorksSortCallback)callback;
+
+- (void)changeArrowDisplay:(BOOL)isSort;
+
++ (CGFloat)getViewHeight;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 103 - 0
KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MineWorkSortView.m

@@ -0,0 +1,103 @@
+//
+//  MineWorkSortView.m
+//  StudentDaya
+//
+//  Created by 王智 on 2024/10/14.
+//  Copyright © 2024 DayaMusic. All rights reserved.
+//
+
+#import "MineWorkSortView.h"
+
+@interface MineWorkSortView ()<UITextFieldDelegate>
+
+@property (weak, nonatomic) IBOutlet UILabel *sortTitle;
+
+@property (weak, nonatomic) IBOutlet UIImageView *arrowImage;
+
+@property (weak, nonatomic) IBOutlet UITextField *searchField;
+
+@property (nonatomic, copy) MineWorksSortCallback callback;
+
+@end
+
+@implementation MineWorkSortView
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    self.searchField.delegate = self;
+}
+
++ (instancetype)shareInstance {
+    MineWorkSortView *view = [[[NSBundle mainBundle] loadNibNamed:@"MineWorkSortView" owner:nil options:nil] firstObject];
+    return view;
+}
+
+- (void)configSortDesc:(NSString *)sortDesc {
+    if ([NSString isEmptyString:sortDesc]) {
+        sortDesc = @"全部";
+    }
+    if (sortDesc.length > 3) {
+        sortDesc = [NSString stringWithFormat:@"%@...",[sortDesc substringWithRange:NSMakeRange(0, 3)]];
+    }
+    self.sortTitle.text = sortDesc;
+}
+
+- (void)configPlaceholder:(NSString *)placeholder {
+    self.searchField.placeholder = placeholder;
+}
+
+- (void)searchAction:(MineWorksSortCallback)callback {
+    if (callback) {
+        self.callback = callback;
+    }
+}
+
+- (IBAction)sortAction:(id)sender {
+    [self changeArrowDisplay:YES];
+    [self endEditing:YES];
+    if (self.callback) {
+        self.callback(MINEWORKS_SEARCH_SORT, self.searchField.text);
+    }
+}
+
+- (IBAction)searchButtonAction:(id)sender {
+    [self endEditing:YES];
+    if (self.callback) {
+        self.callback(MINEWORKS_SEARCH_SEARCH, self.searchField.text);
+    }
+}
+
+- (void)changeArrowDisplay:(BOOL)isSort {
+    if (isSort) {
+        self.sortTitle.textColor = THEMECOLOR;
+        [self.arrowImage setImage:[UIImage imageNamed:@"sort_up_blue"]];
+    }
+    else {
+        self.sortTitle.textColor = HexRGB(0x333333);
+        [self.arrowImage setImage:[UIImage imageNamed:@"sort_up_grey"]];
+    }
+}
+
+- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
+    if ([string isEqualToString:@" "]) {
+        return NO;
+    }
+    if ([string isEqualToString:@"\n"]) {
+        [self endEditing:YES];
+        return YES;
+    }
+    return YES;
+}
+
++ (CGFloat)getViewHeight {
+    return 35.0f + 12 * 2;
+}
+/*
+// Only override drawRect: if you perform custom drawing.
+// An empty implementation adversely affects performance during animation.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+
+@end

+ 136 - 0
KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MineWorkSortView.xib

@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23094" 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="23084"/>
+        <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="MineWorkSortView">
+            <rect key="frame" x="0.0" y="0.0" width="393" height="62"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="dOb-hY-YVi">
+                    <rect key="frame" x="80" y="13.666666666666664" width="295" height="35"/>
+                    <subviews>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="search_green" translatesAutoresizingMaskIntoConstraints="NO" id="vVA-3n-RKC">
+                            <rect key="frame" x="12" y="10" width="15" height="15"/>
+                        </imageView>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="yH8-3p-M3A">
+                            <rect key="frame" x="234" y="4" width="56" height="27"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="56" id="4PL-Qr-Nlm"/>
+                                <constraint firstAttribute="height" constant="27" id="t9h-73-Jd6"/>
+                            </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="搜索" backgroundImage="search_button_bg">
+                                <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                            </state>
+                            <connections>
+                                <action selector="searchButtonAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="L0a-Je-BxT"/>
+                            </connections>
+                        </button>
+                        <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入曲目名称" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="zBY-uY-xzS">
+                            <rect key="frame" x="32" y="0.0" width="197" height="35"/>
+                            <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                            <textInputTraits key="textInputTraits" returnKeyType="done" enablesReturnKeyAutomatically="YES"/>
+                        </textField>
+                    </subviews>
+                    <color key="backgroundColor" red="1" green="1" blue="1" alpha="0.60999999999999999" colorSpace="custom" customColorSpace="calibratedRGB"/>
+                    <constraints>
+                        <constraint firstItem="zBY-uY-xzS" firstAttribute="leading" secondItem="vVA-3n-RKC" secondAttribute="trailing" constant="5" id="2ZY-C9-lg1"/>
+                        <constraint firstItem="vVA-3n-RKC" firstAttribute="centerY" secondItem="dOb-hY-YVi" secondAttribute="centerY" id="4vM-tN-xLb"/>
+                        <constraint firstAttribute="trailing" secondItem="yH8-3p-M3A" secondAttribute="trailing" constant="5" id="6BM-Zp-sv6"/>
+                        <constraint firstItem="vVA-3n-RKC" firstAttribute="leading" secondItem="dOb-hY-YVi" secondAttribute="leading" constant="12" id="AVs-FY-0Fc"/>
+                        <constraint firstItem="yH8-3p-M3A" firstAttribute="centerY" secondItem="dOb-hY-YVi" secondAttribute="centerY" id="Eiu-kb-ht4"/>
+                        <constraint firstItem="yH8-3p-M3A" firstAttribute="leading" secondItem="zBY-uY-xzS" secondAttribute="trailing" constant="5" id="K94-dI-Ohg"/>
+                        <constraint firstItem="zBY-uY-xzS" firstAttribute="top" secondItem="dOb-hY-YVi" secondAttribute="top" id="Scm-vn-9yB"/>
+                        <constraint firstAttribute="bottom" secondItem="zBY-uY-xzS" secondAttribute="bottom" id="U4T-eT-Y4e"/>
+                        <constraint firstAttribute="height" constant="35" id="WBQ-4Y-Kfg"/>
+                    </constraints>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                            <real key="value" value="17.5"/>
+                        </userDefinedRuntimeAttribute>
+                        <userDefinedRuntimeAttribute type="number" keyPath="borderWidth">
+                            <real key="value" value="0.5"/>
+                        </userDefinedRuntimeAttribute>
+                        <userDefinedRuntimeAttribute type="color" keyPath="borderColor">
+                            <color key="value" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                        </userDefinedRuntimeAttribute>
+                    </userDefinedRuntimeAttributes>
+                </view>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="phd-bA-adF">
+                    <rect key="frame" x="6" y="13.666666666666664" width="74" height="35"/>
+                    <subviews>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="全部" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8On-rE-dYl">
+                            <rect key="frame" x="16" y="7.3333333333333357" width="28" height="20"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="20" id="BB2-Aw-5a7"/>
+                            </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_up_grey" translatesAutoresizingMaskIntoConstraints="NO" id="Yma-bz-br4">
+                            <rect key="frame" x="48" y="15" width="9" height="5"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="9" id="YHw-Ic-aQL"/>
+                                <constraint firstAttribute="height" constant="5" id="kgC-zg-tN5"/>
+                            </constraints>
+                        </imageView>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="31m-mg-pv6">
+                            <rect key="frame" x="0.0" y="0.0" width="74" height="35"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="35" id="zuG-dX-YUg"/>
+                            </constraints>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <connections>
+                                <action selector="sortAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="7kg-Z5-GZe"/>
+                            </connections>
+                        </button>
+                    </subviews>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    <constraints>
+                        <constraint firstItem="Yma-bz-br4" firstAttribute="leading" secondItem="8On-rE-dYl" secondAttribute="trailing" constant="4" id="5DF-Uq-w2b"/>
+                        <constraint firstItem="31m-mg-pv6" firstAttribute="width" secondItem="phd-bA-adF" secondAttribute="width" id="OKo-tA-ecs"/>
+                        <constraint firstAttribute="trailing" secondItem="Yma-bz-br4" secondAttribute="trailing" constant="17" id="Rb1-uT-U8L"/>
+                        <constraint firstItem="8On-rE-dYl" firstAttribute="centerY" secondItem="phd-bA-adF" secondAttribute="centerY" id="Xds-gu-eag"/>
+                        <constraint firstItem="31m-mg-pv6" firstAttribute="centerY" secondItem="phd-bA-adF" secondAttribute="centerY" id="a6K-cE-3Aa"/>
+                        <constraint firstAttribute="height" constant="35" id="aVM-5Z-oSR"/>
+                        <constraint firstItem="Yma-bz-br4" firstAttribute="centerY" secondItem="8On-rE-dYl" secondAttribute="centerY" id="pSH-qs-Lhk"/>
+                        <constraint firstItem="31m-mg-pv6" firstAttribute="centerX" secondItem="phd-bA-adF" secondAttribute="centerX" id="y8l-VI-2qG"/>
+                    </constraints>
+                </view>
+            </subviews>
+            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+            <constraints>
+                <constraint firstItem="dOb-hY-YVi" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="80" id="E1m-bM-wEz"/>
+                <constraint firstItem="dOb-hY-YVi" firstAttribute="leading" secondItem="phd-bA-adF" secondAttribute="trailing" id="JNt-Ab-nRP"/>
+                <constraint firstItem="phd-bA-adF" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="6" id="M0I-cX-rmb"/>
+                <constraint firstItem="dOb-hY-YVi" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="centerY" id="hJS-7l-T4A"/>
+                <constraint firstItem="dOb-hY-YVi" firstAttribute="centerY" secondItem="phd-bA-adF" secondAttribute="centerY" id="iai-2s-Vj2"/>
+                <constraint firstAttribute="trailing" secondItem="dOb-hY-YVi" secondAttribute="trailing" constant="18" id="zWu-RX-jC3"/>
+            </constraints>
+            <nil key="simulatedTopBarMetrics"/>
+            <nil key="simulatedBottomBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <connections>
+                <outlet property="arrowImage" destination="Yma-bz-br4" id="8Pz-35-iRz"/>
+                <outlet property="searchField" destination="zBY-uY-xzS" id="wln-n3-QCl"/>
+                <outlet property="sortTitle" destination="8On-rE-dYl" id="MZM-Ke-cyL"/>
+            </connections>
+            <point key="canvasLocation" x="41.984732824427482" y="135.91549295774649"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="search_button_bg" width="56" height="27"/>
+        <image name="search_green" width="15" height="15"/>
+        <image name="sort_up_grey" width="9" height="5"/>
+    </resources>
+</document>

+ 78 - 1
KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MineWorksBodyView.m

@@ -16,6 +16,8 @@
 #import "MineWorksBottomView.h"
 #import "KSNewAlertView.h"
 #import "KSDraftMergeViewController.h"
+#import "MineWorkSortView.h"
+#import "KSSmallChoosePicker.h"
 
 @interface MineWorksBodyView ()<UITableViewDelegate,UITableViewDataSource>
 
@@ -37,6 +39,16 @@
 
 @property (nonatomic, assign) NSInteger chooseCount;
 
+@property (nonatomic, strong) MineWorkSortView *sortView;
+
+@property (nonatomic, strong) NSString *searchKey;
+
+@property (nonatomic, strong) NSString *fileType;
+
+@property (nonatomic, assign) NSInteger lastChooseIndex;
+
+@property (nonatomic, strong) NSMutableArray *fileTypeArray;
+
 @end
 
 @implementation MineWorksBodyView
@@ -86,6 +98,11 @@
     }
     return self;
 }
+
+- (void)configChooseIndex {
+    self.lastChooseIndex = 1;
+}
+
 - (void)endRefresh {
     [self.tableView.mj_header endRefreshing];
     [self.tableView.mj_footer endRefreshing];
@@ -112,7 +129,7 @@
     else {
         self.type = @"DRAFT";
     }
-    [KSNetworkingManager userMusicPageRequest:KS_POST type:self.type page:self.page rows:self.rows success:^(NSDictionary * _Nonnull dic) {
+    [KSNetworkingManager userMusicPageRequest:KS_POST type:self.type keyword:self.searchKey fileType:self.fileType page:self.page rows:self.rows success:^(NSDictionary * _Nonnull dic) {
         [self endRefresh];
         if ([dic ks_integerValueForKey:@"code"] == 200) {
             NSArray *fileArray = [[dic ks_dictionaryValueForKey:@"data"] ks_arrayValueForKey:@"rows"];
@@ -147,6 +164,19 @@
     [self requestData];
 }
 
+- (void)layoutSubviews {
+    [super layoutSubviews];
+    CGFloat height = [MineWorkSortView getViewHeight];
+    if (![self.subviews containsObject:self.sortView]) {
+        [self configChooseIndex];
+        [self addSubview:self.sortView];
+        self.sortView.frame = CGRectMake(0, 0, self.bounds.size.width, height);
+    }
+    [self.tableView mas_updateConstraints:^(MASConstraintMaker *make) {
+        make.top.mas_equalTo(self).mas_offset(height);
+    }];
+}
+
 - (void)selectCellAtIndexPath:(NSIndexPath *)indexPath {
     
     if (self.lastSelectedIndexPath == indexPath) {
@@ -444,6 +474,53 @@
     }];
 }
 
+- (MineWorkSortView *)sortView {
+    if (!_sortView) {
+        _sortView = [MineWorkSortView shareInstance];
+        [_sortView configPlaceholder:@"请输入曲目名称"];
+        MJWeakSelf;
+        [_sortView searchAction:^(MINEWORKS_SEARCH type, NSString * _Nullable searchKey) {
+            [weakSelf searchWithType:type searchKey:searchKey];
+        }];
+    }
+    return _sortView;
+}
+
+- (void)searchWithType:(MINEWORKS_SEARCH)type searchKey:(NSString *)searchKey {
+    if (type == MINEWORKS_SEARCH_SORT) {
+        [self sortTypeAction];
+    }
+    else {
+        self.searchKey = searchKey;
+        [self refreshAndRequestData];
+    }
+}
+
+- (void)sortTypeAction {
+    KSSmallChoosePicker *picker = [[KSSmallChoosePicker alloc] initWithTitle:@"" sourceData:@[@"全部",@"视频",@"音频"] lastChoose:self.lastChooseIndex chooseColor:THEMECOLOR chooseReturnWithBlock:^(NSString * _Nonnull returnValue, NSInteger chooseIndex) {
+        [self.sortView changeArrowDisplay:NO];
+        self.lastChooseIndex = chooseIndex;
+        if (chooseIndex == 1) {
+            [self.sortView configSortDesc:@"全部"];
+            self.fileType = nil;
+        }
+        else {
+            [self.sortView configSortDesc:returnValue];
+            self.fileType = self.fileTypeArray[chooseIndex-1];
+        }
+        [self refreshAndRequestData];
+    } cancel:^{
+        [self.sortView changeArrowDisplay:NO];
+    }];
+    [picker showPicker];
+}
+
+- (NSMutableArray *)fileTypeArray {
+    if (!_fileTypeArray) {
+        _fileTypeArray = [NSMutableArray arrayWithArray:@[@"",@"VIDEO",@"AUDIO"]];
+    }
+    return _fileTypeArray;
+}
 /*
 // Only override drawRect: if you perform custom drawing.
 // An empty implementation adversely affects performance during animation.

+ 9 - 0
KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MineWorksDraftsCell.m

@@ -8,6 +8,7 @@
 #import "MineWorksDraftsCell.h"
 
 @interface MineWorksDraftsCell ()
+@property (weak, nonatomic) IBOutlet UIImageView *worksTypeImage;
 
 @property (weak, nonatomic) IBOutlet UIImageView *chooseStatusImage;
 
@@ -83,6 +84,14 @@
         self.chooseStatusImage.hidden = YES;
         self.publishTips.hidden = NO;
     }
+    NSString *imgName = @"";
+    if ([model.videoUrl hasSuffix:@".mp4"]) {
+        imgName = @"workType_video";
+    }
+    else {
+        imgName = @"workType_audio";
+    }
+    [self.worksTypeImage setImage:[UIImage imageNamed:imgName]];
 }
 
 - (void)setSelected:(BOOL)selected animated:(BOOL)animated {

+ 18 - 7
KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MineWorksDraftsCell.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="23094" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
     <device id="retina6_12" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23084"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
@@ -18,7 +18,7 @@
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="sbM-p5-CSI">
-                        <rect key="frame" x="13" y="12" width="351" height="122"/>
+                        <rect key="frame" x="13" y="0.0" width="351" height="122"/>
                         <subviews>
                             <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="music_coverBg" translatesAutoresizingMaskIntoConstraints="NO" id="1jM-kS-ueU">
                                 <rect key="frame" x="19" y="16" width="54" height="54"/>
@@ -35,7 +35,7 @@
                                 </constraints>
                                 <userDefinedRuntimeAttributes>
                                     <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                                        <real key="value" value="4"/>
+                                        <integer key="value" value="8"/>
                                     </userDefinedRuntimeAttribute>
                                 </userDefinedRuntimeAttributes>
                             </imageView>
@@ -117,7 +117,7 @@
                                 <rect key="frame" x="277" y="88" width="62" height="25"/>
                                 <subviews>
                                     <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="去发布" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cZL-qI-9zG">
-                                        <rect key="frame" x="12.666666666666686" y="5.3333333333333295" width="37" height="14.333333333333336"/>
+                                        <rect key="frame" x="13" y="5.3333333333333295" width="36" height="14.333333333333336"/>
                                         <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
                                         <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                         <nil key="highlightedColor"/>
@@ -136,11 +136,20 @@
                                     </userDefinedRuntimeAttribute>
                                 </userDefinedRuntimeAttributes>
                             </view>
+                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="workType_audio" translatesAutoresizingMaskIntoConstraints="NO" id="0wP-95-f3A">
+                                <rect key="frame" x="40" y="15" width="28" height="14"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="14" id="Gpf-5K-4pG"/>
+                                    <constraint firstAttribute="width" constant="28" id="asi-VV-3nu"/>
+                                </constraints>
+                            </imageView>
                         </subviews>
                         <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                         <constraints>
+                            <constraint firstItem="0wP-95-f3A" firstAttribute="top" secondItem="rxQ-sS-z9K" secondAttribute="top" id="0tF-h1-Xel"/>
                             <constraint firstItem="Gqj-ha-fWI" firstAttribute="leading" secondItem="sbM-p5-CSI" secondAttribute="leading" id="4AR-Vh-8JS"/>
                             <constraint firstAttribute="trailing" secondItem="r93-WW-AsM" secondAttribute="trailing" constant="12" id="D1J-RL-A86"/>
+                            <constraint firstItem="0wP-95-f3A" firstAttribute="trailing" secondItem="rxQ-sS-z9K" secondAttribute="trailing" id="E6l-fk-avS"/>
                             <constraint firstItem="WOO-8s-BT6" firstAttribute="top" secondItem="r93-WW-AsM" secondAttribute="bottom" constant="8" id="EUI-Xl-W83"/>
                             <constraint firstItem="rxQ-sS-z9K" firstAttribute="leading" secondItem="Gqj-ha-fWI" secondAttribute="trailing" constant="12" id="FzA-y3-tKP"/>
                             <constraint firstAttribute="trailing" secondItem="09X-I4-Gx4" secondAttribute="trailing" constant="12" id="G5Q-X3-MPL"/>
@@ -172,10 +181,10 @@
                     </view>
                 </subviews>
                 <constraints>
-                    <constraint firstAttribute="bottom" secondItem="sbM-p5-CSI" secondAttribute="bottom" id="8cN-OE-pt7"/>
+                    <constraint firstAttribute="bottom" secondItem="sbM-p5-CSI" secondAttribute="bottom" constant="12" id="8cN-OE-pt7"/>
                     <constraint firstItem="sbM-p5-CSI" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="13" id="aI1-xv-OmA"/>
                     <constraint firstAttribute="trailing" secondItem="sbM-p5-CSI" secondAttribute="trailing" constant="13" id="ajT-AN-Seb"/>
-                    <constraint firstItem="sbM-p5-CSI" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="12" id="lqh-S6-Y8o"/>
+                    <constraint firstItem="sbM-p5-CSI" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" id="lqh-S6-Y8o"/>
                 </constraints>
             </tableViewCellContentView>
             <viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
@@ -189,6 +198,7 @@
                 <outlet property="musicName" destination="r93-WW-AsM" id="7LH-IV-lKm"/>
                 <outlet property="publishTips" destination="09X-I4-Gx4" id="Fo4-im-dZy"/>
                 <outlet property="timeLabel" destination="MCo-vL-Avx" id="4oT-ak-gLh"/>
+                <outlet property="worksTypeImage" destination="0wP-95-f3A" id="5aU-gb-VSJ"/>
             </connections>
             <point key="canvasLocation" x="95.419847328244273" y="55.633802816901408"/>
         </tableViewCell>
@@ -198,5 +208,6 @@
         <image name="pub_music_placeholder" width="205" height="205"/>
         <image name="time_grey" width="12" height="12"/>
         <image name="unChoose_status" width="18" height="18"/>
+        <image name="workType_audio" width="28" height="14"/>
     </resources>
 </document>

+ 9 - 0
KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MineWorksOpenDisplayCell.m

@@ -8,6 +8,7 @@
 #import "MineWorksOpenDisplayCell.h"
 
 @interface MineWorksOpenDisplayCell ()
+@property (weak, nonatomic) IBOutlet UIImageView *worksTypeImage;
 
 @property (weak, nonatomic) IBOutlet UIImageView *musicCoverImg;
 
@@ -42,6 +43,14 @@
     self.likeLabel.text = countString;
     // 设置渐变色
     [self configGrandLayer:countString];
+    NSString *imgName = @"";
+    if ([model.videoUrl hasSuffix:@".mp4"]) {
+        imgName = @"workType_video";
+    }
+    else {
+        imgName = @"workType_audio";
+    }
+    [self.worksTypeImage setImage:[UIImage imageNamed:imgName]];
 }
 
 - (void)configGrandLayer:(NSString *)countString {

+ 18 - 7
KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MineWorksOpenDisplayCell.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22155" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23094" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
     <device id="retina6_12" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22131"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23084"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
@@ -18,7 +18,7 @@
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="dg0-fR-1bH">
-                        <rect key="frame" x="13" y="12" width="362" height="88"/>
+                        <rect key="frame" x="13" y="0.0" width="362" height="88"/>
                         <subviews>
                             <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="music_coverBg" translatesAutoresizingMaskIntoConstraints="NO" id="8WS-Si-IGE">
                                 <rect key="frame" x="19" y="17" width="54" height="54"/>
@@ -35,12 +35,12 @@
                                 </constraints>
                                 <userDefinedRuntimeAttributes>
                                     <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                                        <real key="value" value="4"/>
+                                        <integer key="value" value="8"/>
                                     </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="EaD-CA-BJf">
-                                <rect key="frame" x="83" y="20" width="147" height="22"/>
+                                <rect key="frame" x="83" y="20" width="143" height="22"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="22" id="Da0-04-OcQ"/>
                                 </constraints>
@@ -94,6 +94,13 @@
                                 <color key="textColor" red="0.66666666666666663" green="0.66666666666666663" blue="0.66666666666666663" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
+                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="workType_audio" translatesAutoresizingMaskIntoConstraints="NO" id="3wk-Vx-nC5">
+                                <rect key="frame" x="40" y="16" width="28" height="14"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="14" id="Tfm-Kf-RgT"/>
+                                    <constraint firstAttribute="width" constant="28" id="ksb-OD-Urw"/>
+                                </constraints>
+                            </imageView>
                         </subviews>
                         <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                         <constraints>
@@ -112,8 +119,10 @@
                             <constraint firstItem="DyO-nc-d96" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="EaD-CA-BJf" secondAttribute="trailing" constant="10" id="hPk-V9-Hq1"/>
                             <constraint firstItem="puC-Bo-Iu5" firstAttribute="top" secondItem="6oO-oK-DFO" secondAttribute="top" id="lub-yj-j6z"/>
                             <constraint firstItem="puC-Bo-Iu5" firstAttribute="trailing" secondItem="6oO-oK-DFO" secondAttribute="trailing" id="msR-70-5oX"/>
+                            <constraint firstItem="3wk-Vx-nC5" firstAttribute="top" secondItem="Dmr-3m-MAH" secondAttribute="top" id="oIM-CW-gch"/>
                             <constraint firstAttribute="trailing" secondItem="DyO-nc-d96" secondAttribute="trailing" constant="18" id="oaK-yU-qfr"/>
                             <constraint firstItem="olA-a5-JqX" firstAttribute="centerY" secondItem="puC-Bo-Iu5" secondAttribute="centerY" id="pBK-0I-Kjb"/>
+                            <constraint firstItem="3wk-Vx-nC5" firstAttribute="trailing" secondItem="Dmr-3m-MAH" secondAttribute="trailing" id="tyI-4O-chH"/>
                             <constraint firstItem="puC-Bo-Iu5" firstAttribute="bottom" secondItem="6oO-oK-DFO" secondAttribute="bottom" id="vkS-6o-1Ue"/>
                         </constraints>
                         <userDefinedRuntimeAttributes>
@@ -124,9 +133,9 @@
                     </view>
                 </subviews>
                 <constraints>
-                    <constraint firstAttribute="bottom" secondItem="dg0-fR-1bH" secondAttribute="bottom" id="FDj-hV-kEh"/>
+                    <constraint firstAttribute="bottom" secondItem="dg0-fR-1bH" secondAttribute="bottom" constant="12" id="FDj-hV-kEh"/>
                     <constraint firstItem="dg0-fR-1bH" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="13" id="MI9-SF-RaG"/>
-                    <constraint firstItem="dg0-fR-1bH" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="12" id="MMy-Vo-38a"/>
+                    <constraint firstItem="dg0-fR-1bH" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" id="MMy-Vo-38a"/>
                     <constraint firstAttribute="trailing" secondItem="dg0-fR-1bH" secondAttribute="trailing" constant="13" id="lFf-q5-f2W"/>
                 </constraints>
             </tableViewCellContentView>
@@ -138,6 +147,7 @@
                 <outlet property="musicCoverImg" destination="Dmr-3m-MAH" id="6Pa-PQ-dRj"/>
                 <outlet property="musicName" destination="EaD-CA-BJf" id="rUI-ik-QCe"/>
                 <outlet property="publishTime" destination="olA-a5-JqX" id="pwO-QV-m9Q"/>
+                <outlet property="worksTypeImage" destination="3wk-Vx-nC5" id="nGL-fO-70v"/>
             </connections>
             <point key="canvasLocation" x="103.81679389312977" y="12.67605633802817"/>
         </tableViewCell>
@@ -147,5 +157,6 @@
         <image name="product_like" width="13" height="13"/>
         <image name="product_play" width="20" height="20"/>
         <image name="pub_music_placeholder" width="205" height="205"/>
+        <image name="workType_audio" width="28" height="14"/>
     </resources>
 </document>

+ 29 - 0
KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MusicCoverChooseView.h

@@ -0,0 +1,29 @@
+//
+//  MusicCoverChooseView.h
+//  KulexiuSchoolStudent
+//
+//  Created by 王智 on 2024/7/16.
+//
+
+#import <UIKit/UIKit.h>
+#import "MusicPubHeader.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface MusicCoverChooseView : UIView
+
+@property (weak, nonatomic) IBOutlet UIImageView *musicImage;
+
+@property (weak, nonatomic) IBOutlet UILabel *musicName;
+
+@property (weak, nonatomic) IBOutlet UILabel *userName;
+
++ (instancetype)shareInstance;
+
+- (void)musicCoverChooseAction:(MusicPublishCallback)callback;
+
++ (CGFloat)getViewHeight;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 55 - 0
KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MusicCoverChooseView.m

@@ -0,0 +1,55 @@
+//
+//  MusicCoverChooseView.m
+//  KulexiuSchoolStudent
+//
+//  Created by 王智 on 2024/7/16.
+//
+
+#import "MusicCoverChooseView.h"
+
+@interface MusicCoverChooseView ()
+
+@property (weak, nonatomic) IBOutlet UIView *backView;
+
+@property (nonatomic, copy) MusicPublishCallback callback;
+
+@end
+
+@implementation MusicCoverChooseView
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    self.backView.layer.cornerRadius = 4;
+    self.backView.layer.maskedCorners = kCALayerMinXMaxYCorner | kCALayerMaxXMaxYCorner;
+}
+
+
++ (instancetype)shareInstance {
+    MusicCoverChooseView *view = [[[NSBundle mainBundle] loadNibNamed:@"MusicCoverChooseView" owner:nil options:nil] firstObject];
+    return view;
+}
+
+- (void)musicCoverChooseAction:(MusicPublishCallback)callback {
+    if (callback) {
+        self.callback = callback;
+    }
+}
+
+- (IBAction)chooseCover:(id)sender {
+    if (self.callback) {
+        self.callback(PUBLISH_ACTION_CHOOSEIMG);
+    }
+}
+
++ (CGFloat)getViewHeight {
+    return 98.0f;
+}
+/*
+// Only override drawRect: if you perform custom drawing.
+// An empty implementation adversely affects performance during animation.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+
+@end

+ 145 - 0
KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MusicCoverChooseView.xib

@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23094" 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="23084"/>
+        <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="MusicCoverChooseView">
+            <rect key="frame" x="0.0" y="0.0" width="393" height="98"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="cMP-G6-hso">
+                    <rect key="frame" x="12" y="0.0" width="369" height="86"/>
+                    <subviews>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="music_coverBg" translatesAutoresizingMaskIntoConstraints="NO" id="Mdq-N4-IqT">
+                            <rect key="frame" x="19" y="12.666666666666664" width="61" height="60.999999999999993"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="61" id="B7l-Cr-pak"/>
+                                <constraint firstAttribute="height" constant="61" id="PwF-2O-nCE"/>
+                            </constraints>
+                        </imageView>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="pub_music_placeholder" translatesAutoresizingMaskIntoConstraints="NO" id="3xZ-ol-W91">
+                            <rect key="frame" x="12" y="12" width="62" height="62"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="62" id="7Yp-5c-Fpy"/>
+                                <constraint firstAttribute="width" constant="62" id="MpJ-Yl-0B7"/>
+                            </constraints>
+                            <userDefinedRuntimeAttributes>
+                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                    <real key="value" value="8"/>
+                                </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="vc1-Mv-UUI">
+                            <rect key="frame" x="90" y="20" width="267" height="22"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="22" id="KRW-L0-cIT"/>
+                            </constraints>
+                            <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="16"/>
+                            <color key="textColor" red="0.074509803921568626" green="0.078431372549019607" blue="0.082352941176470587" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <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="A4v-BC-yQS">
+                            <rect key="frame" x="90" y="46" width="267" height="20"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="20" id="ZA7-4R-xEp"/>
+                            </constraints>
+                            <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                            <color key="textColor" red="0.46666666666666667" green="0.46666666666666667" blue="0.46666666666666667" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="unChoose_status" translatesAutoresizingMaskIntoConstraints="NO" id="bYf-0x-hjj">
+                            <rect key="frame" x="0.0" y="34" width="0.0" height="18"/>
+                            <constraints>
+                                <constraint firstAttribute="width" id="6En-J5-ZYc"/>
+                                <constraint firstAttribute="height" constant="18" id="bgH-Wd-GJp"/>
+                            </constraints>
+                        </imageView>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="aTa-Oq-dt0">
+                            <rect key="frame" x="12" y="54" width="62" height="20"/>
+                            <subviews>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="选封面" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ZVh-f1-NZj">
+                                    <rect key="frame" x="11.666666666666664" y="0.0" width="39" height="18"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="18" id="Utn-Yy-k8W"/>
+                                    </constraints>
+                                    <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                            </subviews>
+                            <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.37" colorSpace="custom" customColorSpace="calibratedRGB"/>
+                            <constraints>
+                                <constraint firstItem="ZVh-f1-NZj" firstAttribute="top" secondItem="aTa-Oq-dt0" secondAttribute="top" id="SuC-Vu-BPr"/>
+                                <constraint firstItem="ZVh-f1-NZj" firstAttribute="centerX" secondItem="aTa-Oq-dt0" secondAttribute="centerX" id="XnG-HM-Dr4"/>
+                                <constraint firstAttribute="width" constant="62" id="jeH-9k-buy"/>
+                                <constraint firstAttribute="height" constant="20" id="r5u-HE-uFj"/>
+                            </constraints>
+                        </view>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="VQ1-cH-3SS">
+                            <rect key="frame" x="12" y="12" width="62" height="62"/>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <connections>
+                                <action selector="chooseCover:" destination="iN0-l3-epB" eventType="touchUpInside" id="PxD-VD-ISS"/>
+                            </connections>
+                        </button>
+                    </subviews>
+                    <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    <constraints>
+                        <constraint firstItem="A4v-BC-yQS" firstAttribute="top" secondItem="vc1-Mv-UUI" secondAttribute="bottom" constant="4" id="1EZ-0J-Gag"/>
+                        <constraint firstItem="bYf-0x-hjj" firstAttribute="leading" secondItem="cMP-G6-hso" secondAttribute="leading" id="3oQ-xq-dM4"/>
+                        <constraint firstItem="aTa-Oq-dt0" firstAttribute="bottom" secondItem="3xZ-ol-W91" secondAttribute="bottom" id="5nN-Mv-Cgy"/>
+                        <constraint firstItem="VQ1-cH-3SS" firstAttribute="top" secondItem="3xZ-ol-W91" secondAttribute="top" id="Aem-8K-1r9"/>
+                        <constraint firstItem="Mdq-N4-IqT" firstAttribute="centerY" secondItem="cMP-G6-hso" secondAttribute="centerY" id="Ahc-xH-uUa"/>
+                        <constraint firstItem="3xZ-ol-W91" firstAttribute="leading" secondItem="bYf-0x-hjj" secondAttribute="trailing" constant="12" id="BAc-jQ-Eph"/>
+                        <constraint firstItem="VQ1-cH-3SS" firstAttribute="leading" secondItem="3xZ-ol-W91" secondAttribute="leading" id="Ssi-uk-lLX"/>
+                        <constraint firstItem="3xZ-ol-W91" firstAttribute="trailing" secondItem="Mdq-N4-IqT" secondAttribute="trailing" constant="-6" id="Vtp-2L-Py4"/>
+                        <constraint firstItem="vc1-Mv-UUI" firstAttribute="top" secondItem="cMP-G6-hso" secondAttribute="top" constant="20" id="Xec-4j-7cX"/>
+                        <constraint firstItem="vc1-Mv-UUI" firstAttribute="leading" secondItem="Mdq-N4-IqT" secondAttribute="trailing" constant="10" id="YZH-lD-bU4"/>
+                        <constraint firstItem="VQ1-cH-3SS" firstAttribute="bottom" secondItem="3xZ-ol-W91" secondAttribute="bottom" id="aFr-23-Fxu"/>
+                        <constraint firstAttribute="height" constant="86" id="cdA-zU-iQ8"/>
+                        <constraint firstItem="3xZ-ol-W91" firstAttribute="centerY" secondItem="cMP-G6-hso" secondAttribute="centerY" id="flX-54-iJf"/>
+                        <constraint firstItem="aTa-Oq-dt0" firstAttribute="leading" secondItem="3xZ-ol-W91" secondAttribute="leading" id="ka9-wK-3XG"/>
+                        <constraint firstAttribute="trailing" secondItem="A4v-BC-yQS" secondAttribute="trailing" constant="12" id="o8h-NS-XfJ"/>
+                        <constraint firstItem="VQ1-cH-3SS" firstAttribute="trailing" secondItem="3xZ-ol-W91" secondAttribute="trailing" id="oXZ-SA-d2b"/>
+                        <constraint firstItem="bYf-0x-hjj" firstAttribute="centerY" secondItem="cMP-G6-hso" secondAttribute="centerY" id="ovY-U6-dgp"/>
+                        <constraint firstAttribute="trailing" secondItem="vc1-Mv-UUI" secondAttribute="trailing" constant="12" id="pUn-0v-fne"/>
+                        <constraint firstItem="aTa-Oq-dt0" firstAttribute="trailing" secondItem="3xZ-ol-W91" secondAttribute="trailing" id="rRf-xn-FAl"/>
+                        <constraint firstItem="A4v-BC-yQS" firstAttribute="leading" secondItem="vc1-Mv-UUI" secondAttribute="leading" id="tcq-IG-KwY"/>
+                    </constraints>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                            <real key="value" value="10"/>
+                        </userDefinedRuntimeAttribute>
+                    </userDefinedRuntimeAttributes>
+                </view>
+            </subviews>
+            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+            <constraints>
+                <constraint firstAttribute="trailing" secondItem="cMP-G6-hso" secondAttribute="trailing" constant="12" id="03W-P9-zbd"/>
+                <constraint firstItem="cMP-G6-hso" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="FjV-jh-FQW"/>
+                <constraint firstItem="cMP-G6-hso" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="12" id="mup-Ab-oVh"/>
+            </constraints>
+            <nil key="simulatedTopBarMetrics"/>
+            <nil key="simulatedBottomBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <connections>
+                <outlet property="backView" destination="aTa-Oq-dt0" id="YBv-h6-cwq"/>
+                <outlet property="musicImage" destination="3xZ-ol-W91" id="alh-l5-JB7"/>
+                <outlet property="musicName" destination="vc1-Mv-UUI" id="62J-LY-lhy"/>
+                <outlet property="userName" destination="A4v-BC-yQS" id="434-9F-QBh"/>
+            </connections>
+            <point key="canvasLocation" x="-2.2900763358778624" y="-161.61971830985917"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="music_coverBg" width="54" height="54"/>
+        <image name="pub_music_placeholder" width="205" height="205"/>
+        <image name="unChoose_status" width="18" height="18"/>
+    </resources>
+</document>

+ 2 - 7
KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MusicPublicContentView.h

@@ -16,17 +16,12 @@ NS_ASSUME_NONNULL_BEGIN
 
 @property (weak, nonatomic) IBOutlet UITextView *textView;
 
-@property (weak, nonatomic) IBOutlet UIImageView *musicImage;
+@property (nonatomic, assign) BOOL hideScore;
 
-@property (weak, nonatomic) IBOutlet UILabel *musicName;
-
-@property (weak, nonatomic) IBOutlet UILabel *userName;
 
 + (instancetype)shareInstance;
 
-- (void)musicContentPubAction:(MusicPublishCallback)callback;
-
-- (void)publishEditCallback:(PublishInputCallback)callback;
+- (void)musicContentPubAction:(PublishInputCallback)callback;
 
 + (CGFloat)getViewHeight;
 

+ 25 - 30
KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MusicPublicContentView.m

@@ -9,17 +9,13 @@
 
 @interface MusicPublicContentView ()<UITextViewDelegate>
 
-@property (weak, nonatomic) IBOutlet UIButton *sureButton;
+@property (weak, nonatomic) IBOutlet UIImageView *statusImage;
 
 @property (weak, nonatomic) IBOutlet UILabel *countLabel;
 
 @property (weak, nonatomic) IBOutlet UILabel *tipsLabel;
 
-@property (weak, nonatomic) IBOutlet UIView *backView;
-
-@property (nonatomic, copy) MusicPublishCallback callback;
-
-@property (nonatomic, copy) PublishInputCallback editCallback;
+@property (nonatomic, copy) PublishInputCallback callback;
 
 @end
 
@@ -28,9 +24,6 @@
 - (void)awakeFromNib {
     [super awakeFromNib];
     self.textView.delegate = self;
-    
-    self.backView.layer.cornerRadius = 4;
-    self.backView.layer.maskedCorners = kCALayerMinXMaxYCorner | kCALayerMaxXMaxYCorner;
 }
 
 + (instancetype)shareInstance {
@@ -38,45 +31,35 @@
     return view;
 }
 
-- (void)musicContentPubAction:(MusicPublishCallback)callback {
+- (void)musicContentPubAction:(PublishInputCallback)callback; {
     if (callback) {
         self.callback = callback;
     }
 }
 
-- (void)publishEditCallback:(PublishInputCallback)callback {
-    if (callback) {
-        self.editCallback = callback;
-    }
+- (IBAction)statusButtonAction:(id)sender {
+    self.hideScore = !self.hideScore;
 }
 
-- (IBAction)sureAction:(id)sender {
-    if (self.callback) {
-        self.callback(PUBLISH_ACTION_PUBLISH);
-    }
-}
-
-- (IBAction)chooseCover:(id)sender {
-    if (self.callback) {
-        self.callback(PUBLISH_ACTION_CHOOSEIMG);
-    }
-}
 
 #pragma mark   ---- delegate
 - (BOOL)textViewShouldBeginEditing:(UITextView *)textView {
-    if (self.editCallback) {
-        self.editCallback(YES);
+    if (self.callback) {
+        self.callback(YES);
     }
     return YES;
 }
-
 - (void)textViewDidBeginEditing:(UITextView *)textView {
     self.tipsLabel.hidden = YES;
 }
+
 - (void)textViewDidEndEditing:(UITextView *)textView {
     if ([NSString isEmptyString:textView.text]) {
         self.tipsLabel.hidden = NO;
     }
+    if (self.callback) {
+        self.callback(NO);
+    }
 }
 
 - (BOOL)textViewShouldEndEditing:(UITextView *)textView {
@@ -128,10 +111,22 @@
     [self updateTextViewLineHeight:textView];
 }
 
-
 + (CGFloat)getViewHeight {
-    return 230.0f;
+    return 207.0f - 60.0f;
 }
+
+- (void)setHideScore:(BOOL)hideScore {
+    _hideScore = hideScore;
+    NSString *imageName = @"";
+    if (hideScore) {
+        imageName = @"choose_status";
+    }
+    else {
+        imageName = @"unChoose_status";
+    }
+    [self.statusImage setImage:[UIImage imageNamed:imageName]];
+}
+
 /*
 // Only override drawRect: if you perform custom drawing.
 // An empty implementation adversely affects performance during animation.

+ 38 - 126
KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MusicPublicContentView.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22155" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23094" 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="22131"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23084"/>
         <capability name="System colors in document resources" minToolsVersion="11.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
@@ -11,107 +11,47 @@
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
         <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="MusicPublicContentView">
-            <rect key="frame" x="0.0" y="0.0" width="393" height="246"/>
+            <rect key="frame" x="0.0" y="0.0" width="393" height="160"/>
             <autoresizingMask key="autoresizingMask"/>
             <subviews>
-                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ySm-Or-cry">
-                    <rect key="frame" x="12" y="99" width="369" height="73"/>
+                <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ySm-Or-cry">
+                    <rect key="frame" x="12" y="99" width="369" height="48"/>
                     <subviews>
-                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="music_coverBg" translatesAutoresizingMaskIntoConstraints="NO" id="vJP-em-vzJ">
-                            <rect key="frame" x="19" y="6" width="61" height="61"/>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="unChoose_status" translatesAutoresizingMaskIntoConstraints="NO" id="Z2c-Y5-JPA">
+                            <rect key="frame" x="11" y="15" width="18" height="18"/>
                             <constraints>
-                                <constraint firstAttribute="height" constant="61" id="7rv-9b-MmO"/>
-                                <constraint firstAttribute="width" constant="61" id="DAq-YP-o88"/>
-                            </constraints>
-                        </imageView>
-                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="pub_music_placeholder" translatesAutoresizingMaskIntoConstraints="NO" id="IbR-gO-EMr">
-                            <rect key="frame" x="12" y="5.6666666666666714" width="62" height="62"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="62" id="FyK-dq-xsq"/>
-                                <constraint firstAttribute="width" constant="62" id="v2f-ci-KsA"/>
+                                <constraint firstAttribute="width" constant="18" id="Hkp-6N-xov"/>
+                                <constraint firstAttribute="height" constant="18" id="ihT-D0-sko"/>
                             </constraints>
-                            <userDefinedRuntimeAttributes>
-                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                                    <real key="value" value="8"/>
-                                </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="Lq4-ga-A7R">
-                            <rect key="frame" x="90" y="20" width="267" height="22"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="22" id="Q4v-O1-QEK"/>
-                            </constraints>
-                            <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="16"/>
-                            <color key="textColor" red="0.074509803920000006" green="0.078431372550000003" blue="0.08235294118" alpha="1" colorSpace="calibratedRGB"/>
-                            <nil key="highlightedColor"/>
-                        </label>
-                        <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="I8N-pM-mro">
-                            <rect key="frame" x="90" y="46" width="267" height="20"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="20" id="NGk-7d-ARq"/>
-                            </constraints>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="发布时不让别人看到我的评级和分数" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xhd-vA-KJ5">
+                            <rect key="frame" x="35.000000000000014" y="15.666666666666671" width="222.33333333333337" height="17"/>
                             <fontDescription key="fontDescription" type="system" pointSize="14"/>
-                            <color key="textColor" red="0.46666666670000001" green="0.46666666670000001" blue="0.46666666670000001" alpha="1" colorSpace="calibratedRGB"/>
+                            <color key="textColor" red="0.46666666666666667" green="0.46666666666666667" blue="0.46666666666666667" alpha="1" colorSpace="calibratedRGB"/>
                             <nil key="highlightedColor"/>
                         </label>
-                        <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="unChoose_status" translatesAutoresizingMaskIntoConstraints="NO" id="Z2c-Y5-JPA">
-                            <rect key="frame" x="0.0" y="27.666666666666671" width="0.0" height="18"/>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="UyH-Gn-xpc">
+                            <rect key="frame" x="0.0" y="0.0" width="44" height="48"/>
                             <constraints>
-                                <constraint firstAttribute="width" id="Hkp-6N-xov"/>
-                                <constraint firstAttribute="height" constant="18" id="ihT-D0-sko"/>
+                                <constraint firstAttribute="width" constant="44" id="6YB-sI-mzg"/>
                             </constraints>
-                        </imageView>
-                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xB0-uR-3Vs">
-                            <rect key="frame" x="12" y="47.666666666666657" width="62" height="20"/>
-                            <subviews>
-                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="选封面" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Dcs-Oi-GdD">
-                                    <rect key="frame" x="11" y="0.0" width="40" height="18"/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="18" id="b6r-rS-afy"/>
-                                    </constraints>
-                                    <fontDescription key="fontDescription" type="system" pointSize="13"/>
-                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                                    <nil key="highlightedColor"/>
-                                </label>
-                            </subviews>
-                            <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.37" colorSpace="custom" customColorSpace="calibratedRGB"/>
-                            <constraints>
-                                <constraint firstItem="Dcs-Oi-GdD" firstAttribute="centerX" secondItem="xB0-uR-3Vs" secondAttribute="centerX" id="0wX-YL-1c6"/>
-                                <constraint firstAttribute="height" constant="20" id="brl-Li-9m9"/>
-                                <constraint firstItem="Dcs-Oi-GdD" firstAttribute="top" secondItem="xB0-uR-3Vs" secondAttribute="top" id="e1c-2K-Qry"/>
-                                <constraint firstAttribute="width" constant="62" id="ls3-YT-lFD"/>
-                            </constraints>
-                        </view>
-                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="mGl-dI-rCl">
-                            <rect key="frame" x="12" y="5.6666666666666714" width="62" height="62"/>
                             <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                             <connections>
-                                <action selector="chooseCover:" destination="iN0-l3-epB" eventType="touchUpInside" id="5Fe-41-6ZC"/>
+                                <action selector="statusButtonAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="EPo-Ho-g2g"/>
                             </connections>
                         </button>
                     </subviews>
                     <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                     <constraints>
-                        <constraint firstItem="IbR-gO-EMr" firstAttribute="centerY" secondItem="ySm-Or-cry" secondAttribute="centerY" id="2m2-TL-KDB"/>
-                        <constraint firstItem="IbR-gO-EMr" firstAttribute="trailing" secondItem="vJP-em-vzJ" secondAttribute="trailing" constant="-6" id="3Vr-NZ-5Yj"/>
-                        <constraint firstItem="vJP-em-vzJ" firstAttribute="centerY" secondItem="ySm-Or-cry" secondAttribute="centerY" id="4to-6o-TIt"/>
                         <constraint firstItem="Z2c-Y5-JPA" firstAttribute="centerY" secondItem="ySm-Or-cry" secondAttribute="centerY" id="7ab-Ws-Xuo"/>
-                        <constraint firstAttribute="height" constant="73" id="87D-Tq-Ioq"/>
-                        <constraint firstItem="mGl-dI-rCl" firstAttribute="trailing" secondItem="IbR-gO-EMr" secondAttribute="trailing" id="8Ta-sM-fmj"/>
-                        <constraint firstAttribute="trailing" secondItem="I8N-pM-mro" secondAttribute="trailing" constant="12" id="AGz-Fb-LnU"/>
-                        <constraint firstItem="Lq4-ga-A7R" firstAttribute="leading" secondItem="vJP-em-vzJ" secondAttribute="trailing" constant="10" id="AHW-HU-zhs"/>
-                        <constraint firstItem="I8N-pM-mro" firstAttribute="leading" secondItem="Lq4-ga-A7R" secondAttribute="leading" id="FUA-xc-X82"/>
-                        <constraint firstItem="mGl-dI-rCl" firstAttribute="leading" secondItem="IbR-gO-EMr" secondAttribute="leading" id="FyH-Bg-WrU"/>
-                        <constraint firstItem="Lq4-ga-A7R" firstAttribute="top" secondItem="ySm-Or-cry" secondAttribute="top" constant="20" id="Mth-9R-s6K"/>
-                        <constraint firstItem="xB0-uR-3Vs" firstAttribute="leading" secondItem="IbR-gO-EMr" secondAttribute="leading" id="PGo-MX-r0D"/>
-                        <constraint firstItem="mGl-dI-rCl" firstAttribute="bottom" secondItem="IbR-gO-EMr" secondAttribute="bottom" id="UKV-dP-jb4"/>
-                        <constraint firstAttribute="trailing" secondItem="Lq4-ga-A7R" secondAttribute="trailing" constant="12" id="Wir-QO-mim"/>
-                        <constraint firstItem="I8N-pM-mro" firstAttribute="top" secondItem="Lq4-ga-A7R" secondAttribute="bottom" constant="4" id="XVM-Ko-OkK"/>
-                        <constraint firstItem="Z2c-Y5-JPA" firstAttribute="leading" secondItem="ySm-Or-cry" secondAttribute="leading" id="Xjv-we-kqb"/>
-                        <constraint firstItem="IbR-gO-EMr" firstAttribute="leading" secondItem="Z2c-Y5-JPA" secondAttribute="trailing" constant="12" id="cuD-f9-C1r"/>
-                        <constraint firstItem="mGl-dI-rCl" firstAttribute="top" secondItem="IbR-gO-EMr" secondAttribute="top" id="gfW-zB-wrB"/>
-                        <constraint firstItem="xB0-uR-3Vs" firstAttribute="trailing" secondItem="IbR-gO-EMr" secondAttribute="trailing" id="ikF-Uo-fWR"/>
-                        <constraint firstItem="xB0-uR-3Vs" firstAttribute="bottom" secondItem="IbR-gO-EMr" secondAttribute="bottom" id="qJA-gK-5iK"/>
+                        <constraint firstItem="UyH-Gn-xpc" firstAttribute="leading" secondItem="ySm-Or-cry" secondAttribute="leading" id="E8F-Aj-pc0"/>
+                        <constraint firstAttribute="height" constant="48" id="JcC-3M-WxK"/>
+                        <constraint firstItem="xhd-vA-KJ5" firstAttribute="leading" secondItem="Z2c-Y5-JPA" secondAttribute="trailing" constant="6" id="OiV-Je-UDy"/>
+                        <constraint firstItem="Z2c-Y5-JPA" firstAttribute="leading" secondItem="ySm-Or-cry" secondAttribute="leading" constant="11" id="Xjv-we-kqb"/>
+                        <constraint firstAttribute="bottom" secondItem="UyH-Gn-xpc" secondAttribute="bottom" id="bYu-4e-8qv"/>
+                        <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="xhd-vA-KJ5" secondAttribute="trailing" constant="12" id="eWd-aK-iHd"/>
+                        <constraint firstItem="UyH-Gn-xpc" firstAttribute="top" secondItem="ySm-Or-cry" secondAttribute="top" id="hbT-br-vym"/>
+                        <constraint firstItem="xhd-vA-KJ5" firstAttribute="centerY" secondItem="Z2c-Y5-JPA" secondAttribute="centerY" id="tro-Ne-Pyp"/>
                     </constraints>
                     <userDefinedRuntimeAttributes>
                         <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
@@ -119,62 +59,43 @@
                         </userDefinedRuntimeAttribute>
                     </userDefinedRuntimeAttributes>
                 </view>
-                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="0wJ-e7-ouI">
-                    <rect key="frame" x="86.666666666666686" y="190" width="220" height="38"/>
-                    <color key="backgroundColor" red="0.1764705882352941" green="0.7803921568627451" blue="0.66666666666666663" alpha="1" colorSpace="calibratedRGB"/>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="38" id="K9L-wd-aJd"/>
-                        <constraint firstAttribute="width" constant="220" id="WV4-5d-yoT"/>
-                    </constraints>
-                    <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="16"/>
-                    <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="19"/>
-                        </userDefinedRuntimeAttribute>
-                    </userDefinedRuntimeAttributes>
-                    <connections>
-                        <action selector="sureAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="TwC-pw-oyY"/>
-                    </connections>
-                </button>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="NpE-3V-eM1">
                     <rect key="frame" x="12" y="0.0" width="369" height="87"/>
                     <subviews>
-                        <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="EYP-nq-h0J">
-                            <rect key="frame" x="12" y="0.0" width="345" height="87"/>
+                        <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" translatesAutoresizingMaskIntoConstraints="NO" id="EYP-nq-h0J">
+                            <rect key="frame" x="12" y="2" width="345" height="61"/>
                             <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                            <color key="textColor" red="0.2666666667" green="0.2666666667" blue="0.2666666667" alpha="1" colorSpace="calibratedRGB"/>
+                            <color key="textColor" red="0.26666666666666666" green="0.26666666666666666" blue="0.26666666666666666" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             <fontDescription key="fontDescription" type="system" pointSize="14"/>
                             <textInputTraits key="textInputTraits" autocapitalizationType="sentences" enablesReturnKeyAutomatically="YES"/>
                         </textView>
                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="我发布了一首演奏作品,快来听听吧~" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="glk-go-0oW">
-                            <rect key="frame" x="12" y="10" width="243" height="17"/>
+                            <rect key="frame" x="11.999999999999986" y="12" width="236.66666666666663" height="17"/>
                             <fontDescription key="fontDescription" type="system" pointSize="14"/>
-                            <color key="textColor" red="0.66666666669999997" green="0.66666666669999997" blue="0.66666666669999997" alpha="1" colorSpace="calibratedRGB"/>
+                            <color key="textColor" red="0.66666666666666663" green="0.66666666666666663" blue="0.66666666666666663" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             <nil key="highlightedColor"/>
                         </label>
                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0/150" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="lro-Xx-AAz">
-                            <rect key="frame" x="325" y="58" width="32" height="20"/>
+                            <rect key="frame" x="325" y="63" width="32" height="20"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="20" id="83V-tz-Cpg"/>
                             </constraints>
                             <fontDescription key="fontDescription" type="system" pointSize="12"/>
-                            <color key="textColor" red="0.66666666669999997" green="0.66666666669999997" blue="0.66666666669999997" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
+                            <color key="textColor" red="0.66666666666666663" green="0.66666666666666663" blue="0.66666666666666663" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             <nil key="highlightedColor"/>
                         </label>
                     </subviews>
                     <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                     <constraints>
                         <constraint firstItem="glk-go-0oW" firstAttribute="leading" secondItem="NpE-3V-eM1" secondAttribute="leading" constant="12" id="3kw-tz-XVV"/>
-                        <constraint firstItem="EYP-nq-h0J" firstAttribute="top" secondItem="NpE-3V-eM1" secondAttribute="top" id="GLb-KA-3Zz"/>
-                        <constraint firstAttribute="height" constant="87" id="MM1-lx-Cmu"/>
-                        <constraint firstAttribute="bottom" secondItem="lro-Xx-AAz" secondAttribute="bottom" constant="9" id="c5Y-ih-yEg"/>
+                        <constraint firstItem="EYP-nq-h0J" firstAttribute="top" secondItem="NpE-3V-eM1" secondAttribute="top" constant="2" id="GLb-KA-3Zz"/>
+                        <constraint firstAttribute="bottom" secondItem="lro-Xx-AAz" secondAttribute="bottom" constant="4" id="c5Y-ih-yEg"/>
                         <constraint firstItem="EYP-nq-h0J" firstAttribute="leading" secondItem="NpE-3V-eM1" secondAttribute="leading" constant="12" id="erk-lD-qR7"/>
-                        <constraint firstItem="glk-go-0oW" firstAttribute="top" secondItem="NpE-3V-eM1" secondAttribute="top" constant="10" id="ncg-6K-1re"/>
+                        <constraint firstItem="lro-Xx-AAz" firstAttribute="top" secondItem="EYP-nq-h0J" secondAttribute="bottom" id="hul-qi-OeR"/>
+                        <constraint firstItem="glk-go-0oW" firstAttribute="top" secondItem="NpE-3V-eM1" secondAttribute="top" constant="12" id="ncg-6K-1re"/>
                         <constraint firstAttribute="trailing" secondItem="lro-Xx-AAz" secondAttribute="trailing" constant="12" id="sOe-Ih-nSR"/>
+                        <constraint firstAttribute="height" constant="87" id="slu-bJ-Ylp"/>
                         <constraint firstAttribute="trailing" secondItem="EYP-nq-h0J" secondAttribute="trailing" constant="12" id="tXY-CK-lhd"/>
-                        <constraint firstAttribute="bottom" secondItem="EYP-nq-h0J" secondAttribute="bottom" id="vZM-tS-pb2"/>
                     </constraints>
                     <userDefinedRuntimeAttributes>
                         <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
@@ -185,35 +106,26 @@
             </subviews>
             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
             <constraints>
-                <constraint firstAttribute="bottom" secondItem="0wJ-e7-ouI" secondAttribute="bottom" constant="18" id="Ba7-0l-oGc"/>
                 <constraint firstAttribute="trailing" secondItem="NpE-3V-eM1" secondAttribute="trailing" constant="12" id="H3O-rj-Pdv"/>
                 <constraint firstAttribute="trailing" secondItem="ySm-Or-cry" secondAttribute="trailing" constant="12" id="Pqm-nZ-Nhi"/>
-                <constraint firstItem="0wJ-e7-ouI" firstAttribute="centerX" secondItem="iN0-l3-epB" secondAttribute="centerX" id="Qhu-ND-VFC"/>
                 <constraint firstItem="ySm-Or-cry" firstAttribute="top" secondItem="NpE-3V-eM1" secondAttribute="bottom" constant="12" id="RVK-fV-L77"/>
                 <constraint firstItem="NpE-3V-eM1" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="YZ5-PY-Ced"/>
                 <constraint firstItem="ySm-Or-cry" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="12" id="ev9-kC-cbD"/>
                 <constraint firstItem="NpE-3V-eM1" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="12" id="jir-QV-hWq"/>
-                <constraint firstItem="0wJ-e7-ouI" firstAttribute="top" secondItem="ySm-Or-cry" secondAttribute="bottom" constant="18" id="n6Y-mi-EJu"/>
             </constraints>
             <nil key="simulatedTopBarMetrics"/>
             <nil key="simulatedBottomBarMetrics"/>
             <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
             <connections>
-                <outlet property="backView" destination="xB0-uR-3Vs" id="J3a-fb-kKX"/>
                 <outlet property="countLabel" destination="lro-Xx-AAz" id="hyn-Cm-7d9"/>
-                <outlet property="musicImage" destination="IbR-gO-EMr" id="GX0-pM-jOo"/>
-                <outlet property="musicName" destination="Lq4-ga-A7R" id="hLK-Cr-9Vv"/>
-                <outlet property="sureButton" destination="0wJ-e7-ouI" id="qo3-HE-Z5X"/>
+                <outlet property="statusImage" destination="Z2c-Y5-JPA" id="MS7-AP-mld"/>
                 <outlet property="textView" destination="EYP-nq-h0J" id="yCJ-fa-yQp"/>
                 <outlet property="tipsLabel" destination="glk-go-0oW" id="V2E-OK-68E"/>
-                <outlet property="userName" destination="I8N-pM-mro" id="zzf-Zy-vet"/>
             </connections>
-            <point key="canvasLocation" x="58.778625954198468" y="-188.02816901408451"/>
+            <point key="canvasLocation" x="58.778625954198468" y="-219.71830985915494"/>
         </view>
     </objects>
     <resources>
-        <image name="music_coverBg" width="54" height="54"/>
-        <image name="pub_music_placeholder" width="205" height="205"/>
         <image name="unChoose_status" width="18" height="18"/>
         <systemColor name="systemBackgroundColor">
             <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>

+ 3 - 0
KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MusicPublistAlert.h

@@ -9,6 +9,7 @@
 #import "VideoCoverChooseView.h"
 #import "MusicPublicContentView.h"
 #import "MusicPubHeader.h"
+#import "MusicCoverChooseView.h"
 
 NS_ASSUME_NONNULL_BEGIN
 
@@ -16,6 +17,8 @@ NS_ASSUME_NONNULL_BEGIN
 
 @property (nonatomic, strong) VideoCoverChooseView *coverView;
 
+@property (nonatomic, strong) MusicCoverChooseView *musicCoverView;
+
 @property (nonatomic, strong) MusicPublicContentView *publishContainView;
 
 + (instancetype)shareInstance;

+ 76 - 24
KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MusicPublistAlert.m

@@ -8,13 +8,14 @@
 #import "MusicPublistAlert.h"
 
 
-@interface MusicPublistAlert ()
+@interface MusicPublistAlert ()<UIScrollViewDelegate>
+
+@property (weak, nonatomic) IBOutlet UIImageView *buttonBottomLayer;
 
 @property (nonatomic, strong) UIScrollView *scrollView;
 
 @property (weak, nonatomic) IBOutlet UIView *containerView;
 
-
 @property (nonatomic, copy) MusicPublishCallback callback;
 
 @end
@@ -26,14 +27,32 @@
     [self.scrollView mas_makeConstraints:^(MASConstraintMaker *make) {
         make.left.right.top.bottom.mas_equalTo(self.containerView);
     }];
+    self.scrollView.delegate = self;
 }
+
 + (instancetype)shareInstance {
     MusicPublistAlert *view = [[[NSBundle mainBundle] loadNibNamed:@"MusicPublistAlert" owner:nil options:nil] firstObject];
     return view;
 }
 
 - (void)configUI:(BOOL)isVideoPublish {
+    self.buttonBottomLayer.hidden = isVideoPublish ? NO : YES;
     MJWeakSelf;
+    self.musicCoverView = [MusicCoverChooseView shareInstance];
+    [self.musicCoverView musicCoverChooseAction:^(PUBLISH_ACTION type) {
+        [weakSelf endEditing:YES];
+        if (weakSelf.callback) {
+            weakSelf.callback(type);
+        }
+    }];
+    [self.scrollView addSubview:self.musicCoverView];
+    CGFloat musicCoverHeigt = [MusicCoverChooseView getViewHeight];
+    [self.musicCoverView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.right.mas_equalTo(self.containerView);
+        make.top.mas_equalTo(self.scrollView.mas_top);
+        make.height.mas_equalTo(musicCoverHeigt);
+    }];
+    
     if (isVideoPublish) {
         self.coverView = [VideoCoverChooseView shareInstance];
         [self.coverView chooseImageCallback:^(PUBLISH_ACTION type) {
@@ -46,9 +65,10 @@
         CGFloat coverHeigt = [VideoCoverChooseView getViewHeight];
         [self.coverView mas_makeConstraints:^(MASConstraintMaker *make) {
             make.left.right.mas_equalTo(self.containerView);
-            make.top.mas_equalTo(self.scrollView.mas_top);
+            make.top.mas_equalTo(self.musicCoverView.mas_bottom);
             make.height.mas_equalTo(coverHeigt);
         }];
+        
         // container
         self.publishContainView = [MusicPublicContentView shareInstance];
         [self.scrollView addSubview:self.publishContainView];
@@ -59,27 +79,25 @@
             make.bottom.mas_equalTo(self.scrollView.mas_bottom);
             make.height.mas_equalTo(height);
         }];
+        [self.publishContainView musicContentPubAction:^(BOOL isEdit) {
+            [weakSelf changeStatus:isEdit];
+        }];
     }
     else {
         // container
         self.publishContainView = [MusicPublicContentView shareInstance];
-        [self addSubview:self.publishContainView];
+        [self.scrollView addSubview:self.publishContainView];
+        CGFloat height = [MusicPublicContentView getViewHeight];
         [self.publishContainView mas_makeConstraints:^(MASConstraintMaker *make) {
-            make.left.right.top.bottom.mas_equalTo(self.containerView);
+            make.top.mas_equalTo(self.musicCoverView.mas_bottom);
+            make.left.right.mas_equalTo(self.containerView);
+            make.bottom.mas_equalTo(self.scrollView.mas_bottom);
+            make.height.mas_equalTo(height);
+        }];
+        [self.publishContainView musicContentPubAction:^(BOOL isEdit) {
+            [weakSelf changeStatus:isEdit];
         }];
     }
-    [self.publishContainView musicContentPubAction:^(PUBLISH_ACTION type) {
-        [weakSelf endEditing:YES];
-        if (type == PUBLISH_ACTION_PUBLISH) {
-            [weakSelf hideAlert];
-        }
-        if (weakSelf.callback) {
-            weakSelf.callback(type);
-        }
-    }];
-    [self.publishContainView publishEditCallback:^(BOOL isEdit) {
-        [weakSelf changeStatus:isEdit];
-    }];
 }
 
 // 编辑状态下调整scroll 是否支持滚动
@@ -91,10 +109,11 @@
         self.scrollView.scrollEnabled = YES;
     }
 }
+
 - (void)evaluateMusicName:(NSString *)musicName userName:(NSString *)userName musicImage:(NSString *)musicImage {
-    self.publishContainView.musicName.text = [NSString returnNoNullStringWithString:musicName];
-    [self.publishContainView.musicImage sd_setImageWithURL:[NSURL URLWithString:[musicImage getUrlEndcodeString]] placeholderImage:[UIImage imageNamed:@"pub_music_placeholder"]];
-    self.publishContainView.userName.text = [NSString returnNoNullStringWithString:userName];
+    self.musicCoverView.musicName.text = [NSString returnNoNullStringWithString:musicName];
+    [self.musicCoverView.musicImage sd_setImageWithURL:[NSURL URLWithString:[musicImage getUrlEndcodeString]] placeholderImage:[UIImage imageNamed:@"pub_music_placeholder"]];
+    self.musicCoverView.userName.text = [NSString returnNoNullStringWithString:userName];
 }
 
 - (void)chooseAction:(MusicPublishCallback)callback {
@@ -103,6 +122,13 @@
     }
 }
 
+- (IBAction)sureAction:(id)sender {
+    [self endEditing:YES];
+    if (self.callback) {
+        self.callback(PUBLISH_ACTION_PUBLISH);
+    }
+    [self hideAlert];
+}
 
 - (IBAction)cancleAction:(id)sender {
     if (self.callback) {
@@ -111,11 +137,13 @@
     [self hideAlert];
 }
 
-- (void)showAlert {
-    UIWindow *window = [NSObject getKeyWindow];
-    [window addSubview:self];
+- (void)showAlertInView:(UIView *)displayView {
+    if (!displayView) {
+        displayView = [NSObject getKeyWindow];
+    }
+    [displayView addSubview:self];
     [self mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.right.top.bottom.mas_equalTo(window);
+        make.left.right.top.bottom.mas_equalTo(displayView);
     }];
 }
 
@@ -132,6 +160,30 @@
     }
     return _scrollView;
 }
+
+- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
+    // 获取滚动视图的内容高度
+    CGFloat contentHeight = scrollView.contentSize.height;
+    
+    // 获取滚动视图的可见高度
+    CGFloat visibleHeight = scrollView.bounds.size.height;
+    
+    // 获取当前滚动的偏移量
+    CGFloat yOffset = scrollView.contentOffset.y;
+    
+    // 计算到达底部时的偏移量
+    CGFloat threshold = contentHeight - visibleHeight;
+    
+    // 判断是否滚动到底部
+    if (yOffset >= threshold) {
+        NSLog(@"Scrolled to bottom");
+        // 在此处执行滚动到底部后的操作
+        self.buttonBottomLayer.hidden = YES;
+    }
+    else {
+        self.buttonBottomLayer.hidden = NO;
+    }
+}
 /*
 // Only override drawRect: if you perform custom drawing.
 // An empty implementation adversely affects performance during animation.

+ 39 - 10
KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MusicPublistAlert.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22155" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23094" 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="22131"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23084"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -17,7 +17,7 @@
                     <rect key="frame" x="185.66666666666663" y="104.66666666666669" width="316" height="311"/>
                     <subviews>
                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="作品详情" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="te4-O1-RAs">
-                            <rect key="frame" x="125.33333333333334" y="15" width="65.333333333333343" height="22"/>
+                            <rect key="frame" x="126.00000000000004" y="15" width="63.666666666666671" height="22"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="22" id="9P9-gf-TQs"/>
                             </constraints>
@@ -29,11 +29,33 @@
                             <rect key="frame" x="0.0" y="56" width="316" height="255"/>
                             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                         </view>
-                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="cancle_button" translatesAutoresizingMaskIntoConstraints="NO" id="uSL-RT-oX5">
-                            <rect key="frame" x="287" y="11" width="19" height="19"/>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="publish_colorLayer" translatesAutoresizingMaskIntoConstraints="NO" id="vn4-XS-h2J">
+                            <rect key="frame" x="0.0" y="237.33333333333329" width="316" height="73.666666666666657"/>
+                        </imageView>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="0oK-CV-rll">
+                            <rect key="frame" x="86.000000000000028" y="265" width="144" height="36"/>
+                            <color key="backgroundColor" red="0.1764705882352941" green="0.7803921568627451" blue="0.66666666666666663" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="144" id="M5f-Qd-bWa"/>
+                                <constraint firstAttribute="height" constant="36" id="gXT-YX-dId"/>
+                            </constraints>
+                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/>
+                            <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">
+                                    <integer key="value" value="18"/>
+                                </userDefinedRuntimeAttribute>
+                            </userDefinedRuntimeAttributes>
+                            <connections>
+                                <action selector="sureAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="ipm-pf-Cov"/>
+                            </connections>
+                        </button>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="musc_publish_cancel" translatesAutoresizingMaskIntoConstraints="NO" id="uSL-RT-oX5">
+                            <rect key="frame" x="290" y="19" width="14" height="14"/>
                             <constraints>
-                                <constraint firstAttribute="width" constant="19" id="LRY-32-rBI"/>
-                                <constraint firstAttribute="height" constant="19" id="dWq-Go-3Vb"/>
+                                <constraint firstAttribute="width" constant="14" id="LRY-32-rBI"/>
+                                <constraint firstAttribute="height" constant="14" id="dWq-Go-3Vb"/>
                             </constraints>
                         </imageView>
                         <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="8mM-Qw-PGH">
@@ -50,16 +72,21 @@
                     </subviews>
                     <color key="backgroundColor" red="0.97254901960784312" green="0.97254901960784312" blue="0.97254901960784312" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                     <constraints>
+                        <constraint firstAttribute="trailing" secondItem="vn4-XS-h2J" secondAttribute="trailing" id="07i-Bm-IfQ"/>
                         <constraint firstAttribute="height" constant="311" id="3bE-RT-gdX"/>
                         <constraint firstAttribute="width" constant="316" id="5Vp-Nm-Phf"/>
                         <constraint firstItem="VSu-Ld-Rbu" firstAttribute="leading" secondItem="crp-Dg-bEh" secondAttribute="leading" id="Ar8-21-yBw"/>
-                        <constraint firstAttribute="trailing" secondItem="uSL-RT-oX5" secondAttribute="trailing" constant="10" id="JvH-Ld-uxt"/>
+                        <constraint firstAttribute="bottom" secondItem="vn4-XS-h2J" secondAttribute="bottom" id="ESX-4d-mqy"/>
+                        <constraint firstAttribute="trailing" secondItem="uSL-RT-oX5" secondAttribute="trailing" constant="12" id="JvH-Ld-uxt"/>
                         <constraint firstItem="8mM-Qw-PGH" firstAttribute="top" secondItem="crp-Dg-bEh" secondAttribute="top" id="P4Y-hH-uUz"/>
                         <constraint firstAttribute="bottom" secondItem="VSu-Ld-Rbu" secondAttribute="bottom" id="Qul-Iw-vdi"/>
+                        <constraint firstAttribute="bottom" secondItem="0oK-CV-rll" secondAttribute="bottom" constant="10" id="ZUh-Th-fdK"/>
+                        <constraint firstItem="vn4-XS-h2J" firstAttribute="leading" secondItem="crp-Dg-bEh" secondAttribute="leading" id="aGo-ZK-gHr"/>
                         <constraint firstItem="te4-O1-RAs" firstAttribute="top" secondItem="crp-Dg-bEh" secondAttribute="top" constant="15" id="ci5-BA-awW"/>
                         <constraint firstAttribute="trailing" secondItem="8mM-Qw-PGH" secondAttribute="trailing" id="ehJ-JA-HqW"/>
+                        <constraint firstItem="0oK-CV-rll" firstAttribute="centerX" secondItem="crp-Dg-bEh" secondAttribute="centerX" id="f9f-9u-rMK"/>
                         <constraint firstItem="VSu-Ld-Rbu" firstAttribute="top" secondItem="te4-O1-RAs" secondAttribute="bottom" constant="19" id="ncm-iM-Is7"/>
-                        <constraint firstItem="uSL-RT-oX5" firstAttribute="top" secondItem="crp-Dg-bEh" secondAttribute="top" constant="11" id="nwL-G4-dhm"/>
+                        <constraint firstItem="uSL-RT-oX5" firstAttribute="top" secondItem="crp-Dg-bEh" secondAttribute="top" constant="19" id="nwL-G4-dhm"/>
                         <constraint firstItem="te4-O1-RAs" firstAttribute="centerX" secondItem="crp-Dg-bEh" secondAttribute="centerX" id="xB7-AF-HP0"/>
                         <constraint firstAttribute="trailing" secondItem="VSu-Ld-Rbu" secondAttribute="trailing" id="z0h-ml-YDQ"/>
                     </constraints>
@@ -79,12 +106,14 @@
             <nil key="simulatedBottomBarMetrics"/>
             <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
             <connections>
+                <outlet property="buttonBottomLayer" destination="vn4-XS-h2J" id="Vu9-60-SW2"/>
                 <outlet property="containerView" destination="VSu-Ld-Rbu" id="IVZ-aq-krM"/>
             </connections>
             <point key="canvasLocation" x="121.37404580152672" y="-23.239436619718312"/>
         </view>
     </objects>
     <resources>
-        <image name="cancle_button" width="20" height="20"/>
+        <image name="musc_publish_cancel" width="14" height="14"/>
+        <image name="publish_colorLayer" width="316" height="73.666664123535156"/>
     </resources>
 </document>

+ 4 - 1
KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/VideoCoverChooseView.m

@@ -6,8 +6,10 @@
 //
 
 #import "VideoCoverChooseView.h"
+#import "UIView+KSLayer.h"
 
 @interface VideoCoverChooseView ()
+
 @property (weak, nonatomic) IBOutlet UIView *layerView;
 
 @property (nonatomic, copy) VideoCoverChooseCallback callback;
@@ -20,6 +22,7 @@
     CAGradientLayer *viewLayer = [UIView createGradientLayerFromColor:HexRGB(0x80B1C8) startPoint:CGPointMake(0, 0.5) endColor:HexRGB(0x3A98A2) endPoint:CGPointMake(0.5, 1) bounds:CGRectMake(0, 0, 248, 30)];
     [self.layerView.layer addSublayer:viewLayer];
 }
+
 + (instancetype)shareInstance {
     VideoCoverChooseView *view = [[[NSBundle mainBundle] loadNibNamed:@"VideoCoverChooseView" owner:nil options:nil] firstObject];
     return view;
@@ -45,7 +48,7 @@
 
 
 + (CGFloat)getViewHeight {
-    return 163.0f;
+    return 172.0f;
 }
 /*
 // Only override drawRect: if you perform custom drawing.

+ 20 - 16
KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/VideoCoverChooseView.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22155" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23094" 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="22131"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23084"/>
         <capability name="System colors in document resources" minToolsVersion="11.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
@@ -11,14 +11,18 @@
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
         <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="VideoCoverChooseView">
-            <rect key="frame" x="0.0" y="0.0" width="316" height="163"/>
+            <rect key="frame" x="0.0" y="0.0" width="316" height="172"/>
             <autoresizingMask key="autoresizingMask"/>
             <subviews>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Rod-ju-kqd">
-                    <rect key="frame" x="13" y="0.0" width="290" height="136"/>
+                    <rect key="frame" x="12" y="0.0" width="292" height="163"/>
                     <subviews>
                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="videoMerge_cover" translatesAutoresizingMaskIntoConstraints="NO" id="Yfw-f3-ca2">
-                            <rect key="frame" x="0.0" y="0.0" width="290" height="136"/>
+                            <rect key="frame" x="0.0" y="0.0" width="292" height="163"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="163" id="45m-PE-reM"/>
+                                <constraint firstAttribute="width" constant="292" id="8U0-4o-sSv"/>
+                            </constraints>
                             <userDefinedRuntimeAttributes>
                                 <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
                                     <real key="value" value="10"/>
@@ -29,15 +33,15 @@
                     <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                     <constraints>
                         <constraint firstAttribute="trailing" secondItem="Yfw-f3-ca2" secondAttribute="trailing" id="2ZX-mF-kFV"/>
-                        <constraint firstAttribute="height" constant="136" id="C6o-HO-W1z"/>
+                        <constraint firstAttribute="height" constant="163" id="C6o-HO-W1z"/>
                         <constraint firstAttribute="bottom" secondItem="Yfw-f3-ca2" secondAttribute="bottom" id="GsL-sh-WZO"/>
                         <constraint firstItem="Yfw-f3-ca2" firstAttribute="leading" secondItem="Rod-ju-kqd" secondAttribute="leading" id="I70-AY-OHA"/>
                         <constraint firstItem="Yfw-f3-ca2" firstAttribute="top" secondItem="Rod-ju-kqd" secondAttribute="top" id="WVR-yM-gfe"/>
                     </constraints>
                 </view>
                 <view alpha="0.58999999999999997" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Eoj-tF-ifL">
-                    <rect key="frame" x="34" y="121" width="248" height="30"/>
-                    <color key="backgroundColor" red="0.50196078431372548" green="0.61960784313725492" blue="0.78431372549019607" alpha="1" colorSpace="calibratedRGB"/>
+                    <rect key="frame" x="34" y="123" width="248" height="30"/>
+                    <color key="backgroundColor" red="0.50196078431372548" green="0.69411764705882351" blue="0.78431372549019607" alpha="1" colorSpace="calibratedRGB"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="30" id="7rL-iS-MKS"/>
                         <constraint firstAttribute="width" constant="248" id="hHH-4o-745"/>
@@ -49,7 +53,7 @@
                     </userDefinedRuntimeAttributes>
                 </view>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="TOX-dY-1lt">
-                    <rect key="frame" x="34" y="121" width="248" height="30"/>
+                    <rect key="frame" x="34" y="123" width="248" height="30"/>
                     <subviews>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="sPz-fl-Upn">
                             <rect key="frame" x="0.0" y="0.0" width="123" height="30"/>
@@ -62,7 +66,7 @@
                                     </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="wD9-9N-1Ea">
-                                    <rect key="frame" x="35" y="7.6666666666666572" width="74" height="15"/>
+                                    <rect key="frame" x="35.000000000000007" y="7.6666666666666572" width="71.666666666666686" height="15"/>
                                     <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
                                     <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                     <nil key="highlightedColor"/>
@@ -95,7 +99,7 @@
                                     <rect key="frame" x="16" y="7" width="16" height="16"/>
                                 </imageView>
                                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="视频截取封面" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="oaL-43-caz">
-                                    <rect key="frame" x="36.000000000000007" y="7.6666666666666572" width="73.666666666666686" height="15"/>
+                                    <rect key="frame" x="36.000000000000007" y="7.6666666666666572" width="71.666666666666686" height="15"/>
                                     <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
                                     <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                     <nil key="highlightedColor"/>
@@ -148,13 +152,13 @@
             <constraints>
                 <constraint firstItem="Eoj-tF-ifL" firstAttribute="trailing" secondItem="TOX-dY-1lt" secondAttribute="trailing" id="0LO-uR-sgt"/>
                 <constraint firstItem="Eoj-tF-ifL" firstAttribute="bottom" secondItem="TOX-dY-1lt" secondAttribute="bottom" id="1sv-yO-kGe"/>
-                <constraint firstItem="Rod-ju-kqd" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="13" id="J0h-Tv-qF6"/>
+                <constraint firstItem="Rod-ju-kqd" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="12" id="J0h-Tv-qF6"/>
                 <constraint firstItem="Eoj-tF-ifL" firstAttribute="centerX" secondItem="iN0-l3-epB" secondAttribute="centerX" id="U1o-fC-wzj"/>
                 <constraint firstItem="Eoj-tF-ifL" firstAttribute="leading" secondItem="TOX-dY-1lt" secondAttribute="leading" id="aJA-3E-8js"/>
                 <constraint firstItem="Eoj-tF-ifL" firstAttribute="top" secondItem="TOX-dY-1lt" secondAttribute="top" id="aVH-Me-QLU"/>
                 <constraint firstItem="Rod-ju-kqd" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="plL-e8-8KF"/>
-                <constraint firstAttribute="trailing" secondItem="Rod-ju-kqd" secondAttribute="trailing" constant="13" id="rTU-2d-xDG"/>
-                <constraint firstItem="Eoj-tF-ifL" firstAttribute="centerY" secondItem="Rod-ju-kqd" secondAttribute="bottom" id="uG3-w7-Tgg"/>
+                <constraint firstAttribute="trailing" secondItem="Rod-ju-kqd" secondAttribute="trailing" constant="12" id="rTU-2d-xDG"/>
+                <constraint firstItem="Eoj-tF-ifL" firstAttribute="bottom" secondItem="Rod-ju-kqd" secondAttribute="bottom" constant="-10" id="uG3-w7-Tgg"/>
             </constraints>
             <nil key="simulatedTopBarMetrics"/>
             <nil key="simulatedBottomBarMetrics"/>
@@ -163,13 +167,13 @@
                 <outlet property="coverImage" destination="Yfw-f3-ca2" id="Ejy-W6-GpP"/>
                 <outlet property="layerView" destination="Eoj-tF-ifL" id="qsd-FK-3bg"/>
             </connections>
-            <point key="canvasLocation" x="58.015267175572518" y="-171.83098591549296"/>
+            <point key="canvasLocation" x="58.015267175572518" y="-165.14084507042256"/>
         </view>
     </objects>
     <resources>
         <image name="cover_choose_image" width="16" height="16"/>
         <image name="cover_crop_image" width="16" height="16"/>
-        <image name="videoMerge_cover" width="291" height="136"/>
+        <image name="videoMerge_cover" width="292" height="164"/>
         <systemColor name="systemBackgroundColor">
             <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
         </systemColor>

+ 20 - 4
KulexiuForStudent/KulexiuForStudent/Module/TXClassRoom/View/NewWhiteboard/KSNewWhiteBoard.m

@@ -332,12 +332,27 @@
     [_myWebView loadHTMLString:@"" baseURL:nil];
     [_myWebView removeFromSuperview];
     _myWebView = nil;
-    [[NSURLCache sharedURLCache] removeAllCachedResponses];
-    [[NSURLCache sharedURLCache] setDiskCapacity:0];
+    [self clearWebCache];
+//    [[NSURLCache sharedURLCache] removeAllCachedResponses];
+//    [[NSURLCache sharedURLCache] setDiskCapacity:0];
     [[NSURLCache sharedURLCache] setMemoryCapacity:0];
     [[NSNotificationCenter defaultCenter] removeObserver:self];
 }
 
+- (void)clearWebCache {
+    NSSet *websiteDataTypes = [NSSet setWithArray:@[
+        WKWebsiteDataTypeMemoryCache,
+    ]];
+
+    NSDate *dateFrom = [NSDate dateWithTimeIntervalSince1970:0];
+    [[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:websiteDataTypes
+                                               modifiedSince:dateFrom
+                                           completionHandler:^{
+        NSLog(@"Caches cleared");
+    }];
+}
+
+
 #pragma mark ------- 曲库下载或者相册选择
 - (void)uploadImage {
     UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:IS_IPAD ? UIAlertControllerStyleAlert : UIAlertControllerStyleActionSheet];
@@ -649,8 +664,9 @@
     [_myWebView removeFromSuperview];
     
     _myWebView = nil;
-    [[NSURLCache sharedURLCache] removeAllCachedResponses];
-    [[NSURLCache sharedURLCache] setDiskCapacity:0];
+    [self clearWebCache];
+//    [[NSURLCache sharedURLCache] removeAllCachedResponses];
+//    [[NSURLCache sharedURLCache] setDiskCapacity:0];
     [[NSURLCache sharedURLCache] setMemoryCapacity:0];
     [[NSNotificationCenter defaultCenter] removeObserver:self];
 }