Steven 3 år sedan
förälder
incheckning
3b5f900c22
68 ändrade filer med 3211 tillägg och 1964 borttagningar
  1. 221 5
      KulexiuForTeacher/KulexiuForTeacher.xcodeproj/project.pbxproj
  2. BIN
      KulexiuForTeacher/KulexiuForTeacher.xcworkspace/xcuserdata/wangzhi.xcuserdatad/UserInterfaceState.xcuserstate
  3. 28 12
      KulexiuForTeacher/KulexiuForTeacher.xcworkspace/xcuserdata/wangzhi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
  4. 32 24
      KulexiuForTeacher/KulexiuForTeacher/AppDelegate.m
  5. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSNetworkingManager.h
  6. 26 1
      KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSTabBarViewController.m
  7. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Common/Base/TabbarAnimation/AnimationHelper.h
  8. 37 0
      KulexiuForTeacher/KulexiuForTeacher/Common/Base/TabbarAnimation/AnimationHelper.m
  9. 0 0
      KulexiuForTeacher/KulexiuForTeacher/Common/Base/TabbarAnimation/tabbar1.json
  10. 0 0
      KulexiuForTeacher/KulexiuForTeacher/Common/Base/TabbarAnimation/tabbar2.json
  11. 0 0
      KulexiuForTeacher/KulexiuForTeacher/Common/Base/TabbarAnimation/tabbar3.json
  12. 0 0
      KulexiuForTeacher/KulexiuForTeacher/Common/Base/TabbarAnimation/tabbar4.json
  13. 0 0
      KulexiuForTeacher/KulexiuForTeacher/Common/Base/TabbarAnimation/tabbar5.json
  14. 14 14
      KulexiuForTeacher/KulexiuForTeacher/Common/Define/PrefixHeader.pch
  15. 97 38
      KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.m
  16. 92 24
      KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.m
  17. 0 0
      KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/teacher_refresh.json
  18. 1 1
      KulexiuForTeacher/KulexiuForTeacher/KulexiuForTeacher.entitlements
  19. 20 0
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Controller/LaunchAnimationViewController.h
  20. 78 0
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Controller/LaunchAnimationViewController.m
  21. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_0.png
  22. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_1.png
  23. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_10.png
  24. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_11.png
  25. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_12.png
  26. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_13.png
  27. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_14.png
  28. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_15.png
  29. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_16.png
  30. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_17.png
  31. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_18.png
  32. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_19.png
  33. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_2.png
  34. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_20.png
  35. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_21.png
  36. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_22.png
  37. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_23.png
  38. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_24.png
  39. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_25.png
  40. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_26.png
  41. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_27.png
  42. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_28.png
  43. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_29.png
  44. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_3.png
  45. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_30.png
  46. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_31.png
  47. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_4.png
  48. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_5.png
  49. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_6.png
  50. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_7.png
  51. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_8.png
  52. BIN
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_9.png
  53. 0 0
      KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/launchAni.json
  54. 0 0
      KulexiuForTeacher/KulexiuForTeacher/Module/MidiPlayer/ShareInChat/Controller/KSShareChooseViewController.h
  55. 0 0
      KulexiuForTeacher/KulexiuForTeacher/Module/MidiPlayer/ShareInChat/Controller/KSShareChooseViewController.m
  56. 0 0
      KulexiuForTeacher/KulexiuForTeacher/Module/MidiPlayer/ShareInChat/Controller/KSShareGroupViewController.h
  57. 0 0
      KulexiuForTeacher/KulexiuForTeacher/Module/MidiPlayer/ShareInChat/Controller/KSShareGroupViewController.m
  58. 0 0
      KulexiuForTeacher/KulexiuForTeacher/Module/MidiPlayer/ShareInChat/View/ShareChooseMainView.h
  59. 0 0
      KulexiuForTeacher/KulexiuForTeacher/Module/MidiPlayer/ShareInChat/View/ShareChooseMainView.m
  60. 3 1
      KulexiuForTeacher/Podfile
  61. 5 1
      KulexiuForTeacher/Podfile.lock
  62. 5 1
      KulexiuForTeacher/Pods/Manifest.lock
  63. 2104 1833
      KulexiuForTeacher/Pods/Pods.xcodeproj/project.pbxproj
  64. 5 0
      KulexiuForTeacher/Pods/Pods.xcodeproj/xcuserdata/wangzhi.xcuserdatad/xcschemes/xcschememanagement.plist
  65. 205 0
      KulexiuForTeacher/Pods/Target Support Files/Pods-KulexiuForTeacher/Pods-KulexiuForTeacher-acknowledgements.markdown
  66. 211 0
      KulexiuForTeacher/Pods/Target Support Files/Pods-KulexiuForTeacher/Pods-KulexiuForTeacher-acknowledgements.plist
  67. 2 4
      KulexiuForTeacher/Pods/Target Support Files/Pods-KulexiuForTeacher/Pods-KulexiuForTeacher.debug.xcconfig
  68. 2 4
      KulexiuForTeacher/Pods/Target Support Files/Pods-KulexiuForTeacher/Pods-KulexiuForTeacher.release.xcconfig

+ 221 - 5
KulexiuForTeacher/KulexiuForTeacher.xcodeproj/project.pbxproj

@@ -553,6 +553,47 @@
 		BC60E3C0287D447F00B05441 /* DeleteAccountBodyView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC60E3BF287D447F00B05441 /* DeleteAccountBodyView.m */; };
 		BC60E3C0287D447F00B05441 /* DeleteAccountBodyView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC60E3BF287D447F00B05441 /* DeleteAccountBodyView.m */; };
 		BC60E3C2287D448600B05441 /* DeleteAccountBodyView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC60E3C1287D448600B05441 /* DeleteAccountBodyView.xib */; };
 		BC60E3C2287D448600B05441 /* DeleteAccountBodyView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC60E3C1287D448600B05441 /* DeleteAccountBodyView.xib */; };
 		BC6C303A27F586A60044BC0F /* KSRCMessageModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BC6C303927F586A60044BC0F /* KSRCMessageModel.m */; };
 		BC6C303A27F586A60044BC0F /* KSRCMessageModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BC6C303927F586A60044BC0F /* KSRCMessageModel.m */; };
+		BC71D1332887ADDA0010F14B /* teacher_refresh.json in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1322887ADDA0010F14B /* teacher_refresh.json */; };
+		BC71D1A62887FDAC0010F14B /* LaunchAnimationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC71D1802887FDAB0010F14B /* LaunchAnimationViewController.m */; };
+		BC71D1EA2887FDD40010F14B /* img_10.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1C92887FDD40010F14B /* img_10.png */; };
+		BC71D1EB2887FDD40010F14B /* img_1.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1CA2887FDD40010F14B /* img_1.png */; };
+		BC71D1EC2887FDD40010F14B /* img_0.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1CB2887FDD40010F14B /* img_0.png */; };
+		BC71D1ED2887FDD40010F14B /* img_11.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1CC2887FDD40010F14B /* img_11.png */; };
+		BC71D1EE2887FDD40010F14B /* img_13.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1CD2887FDD40010F14B /* img_13.png */; };
+		BC71D1EF2887FDD40010F14B /* img_2.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1CE2887FDD40010F14B /* img_2.png */; };
+		BC71D1F02887FDD40010F14B /* img_3.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1CF2887FDD40010F14B /* img_3.png */; };
+		BC71D1F12887FDD40010F14B /* img_12.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1D02887FDD40010F14B /* img_12.png */; };
+		BC71D1F22887FDD40010F14B /* img_16.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1D12887FDD40010F14B /* img_16.png */; };
+		BC71D1F32887FDD40010F14B /* img_7.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1D22887FDD40010F14B /* img_7.png */; };
+		BC71D1F42887FDD40010F14B /* img_6.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1D32887FDD40010F14B /* img_6.png */; };
+		BC71D1F52887FDD40010F14B /* img_17.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1D42887FDD40010F14B /* img_17.png */; };
+		BC71D1F62887FDD40010F14B /* img_29.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1D52887FDD40010F14B /* img_29.png */; };
+		BC71D1F72887FDD40010F14B /* img_15.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1D62887FDD40010F14B /* img_15.png */; };
+		BC71D1F82887FDD40010F14B /* img_4.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1D72887FDD40010F14B /* img_4.png */; };
+		BC71D1F92887FDD40010F14B /* img_5.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1D82887FDD40010F14B /* img_5.png */; };
+		BC71D1FA2887FDD40010F14B /* img_14.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1D92887FDD40010F14B /* img_14.png */; };
+		BC71D1FB2887FDD40010F14B /* img_28.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1DA2887FDD40010F14B /* img_28.png */; };
+		BC71D1FC2887FDD40010F14B /* img_25.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1DB2887FDD40010F14B /* img_25.png */; };
+		BC71D1FD2887FDD40010F14B /* img_31.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1DC2887FDD40010F14B /* img_31.png */; };
+		BC71D1FE2887FDD40010F14B /* img_19.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1DD2887FDD40010F14B /* img_19.png */; };
+		BC71D1FF2887FDD40010F14B /* img_8.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1DE2887FDD40010F14B /* img_8.png */; };
+		BC71D2002887FDD40010F14B /* img_9.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1DF2887FDD40010F14B /* img_9.png */; };
+		BC71D2012887FDD40010F14B /* img_18.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1E02887FDD40010F14B /* img_18.png */; };
+		BC71D2022887FDD40010F14B /* img_30.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1E12887FDD40010F14B /* img_30.png */; };
+		BC71D2032887FDD40010F14B /* img_24.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1E22887FDD40010F14B /* img_24.png */; };
+		BC71D2042887FDD40010F14B /* img_26.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1E32887FDD40010F14B /* img_26.png */; };
+		BC71D2052887FDD40010F14B /* img_27.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1E42887FDD40010F14B /* img_27.png */; };
+		BC71D2062887FDD40010F14B /* img_23.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1E52887FDD40010F14B /* img_23.png */; };
+		BC71D2072887FDD40010F14B /* img_22.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1E62887FDD40010F14B /* img_22.png */; };
+		BC71D2082887FDD40010F14B /* img_20.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1E72887FDD40010F14B /* img_20.png */; };
+		BC71D2092887FDD40010F14B /* img_21.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1E82887FDD40010F14B /* img_21.png */; };
+		BC71D20A2887FDD40010F14B /* launchAni.json in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1E92887FDD40010F14B /* launchAni.json */; };
+		BC71D292288811BF0010F14B /* tabbar1.json in Resources */ = {isa = PBXBuildFile; fileRef = BC71D28B288811BF0010F14B /* tabbar1.json */; };
+		BC71D293288811BF0010F14B /* AnimationHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = BC71D28C288811BF0010F14B /* AnimationHelper.m */; };
+		BC71D294288811BF0010F14B /* tabbar5.json in Resources */ = {isa = PBXBuildFile; fileRef = BC71D28D288811BF0010F14B /* tabbar5.json */; };
+		BC71D295288811BF0010F14B /* tabbar4.json in Resources */ = {isa = PBXBuildFile; fileRef = BC71D28E288811BF0010F14B /* tabbar4.json */; };
+		BC71D296288811BF0010F14B /* tabbar3.json in Resources */ = {isa = PBXBuildFile; fileRef = BC71D28F288811BF0010F14B /* tabbar3.json */; };
+		BC71D297288811BF0010F14B /* tabbar2.json in Resources */ = {isa = PBXBuildFile; fileRef = BC71D290288811BF0010F14B /* tabbar2.json */; };
 		BC73A1F42809693F00FA8F6F /* EvaluateSortView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC73A1F32809693F00FA8F6F /* EvaluateSortView.xib */; };
 		BC73A1F42809693F00FA8F6F /* EvaluateSortView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC73A1F32809693F00FA8F6F /* EvaluateSortView.xib */; };
 		BC76146A280D4F670080FD1F /* HomeworkDetailModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BC761468280D4F660080FD1F /* HomeworkDetailModel.m */; };
 		BC76146A280D4F670080FD1F /* HomeworkDetailModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BC761468280D4F660080FD1F /* HomeworkDetailModel.m */; };
 		BC76146D280D571B0080FD1F /* HomeworkVideoView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC76146C280D571B0080FD1F /* HomeworkVideoView.m */; };
 		BC76146D280D571B0080FD1F /* HomeworkVideoView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC76146C280D571B0080FD1F /* HomeworkVideoView.m */; };
@@ -1873,6 +1914,49 @@
 		BC60E3C1287D448600B05441 /* DeleteAccountBodyView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = DeleteAccountBodyView.xib; sourceTree = "<group>"; };
 		BC60E3C1287D448600B05441 /* DeleteAccountBodyView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = DeleteAccountBodyView.xib; sourceTree = "<group>"; };
 		BC6C303827F586A60044BC0F /* KSRCMessageModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSRCMessageModel.h; sourceTree = "<group>"; };
 		BC6C303827F586A60044BC0F /* KSRCMessageModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSRCMessageModel.h; sourceTree = "<group>"; };
 		BC6C303927F586A60044BC0F /* KSRCMessageModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSRCMessageModel.m; sourceTree = "<group>"; };
 		BC6C303927F586A60044BC0F /* KSRCMessageModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSRCMessageModel.m; sourceTree = "<group>"; };
+		BC71D1322887ADDA0010F14B /* teacher_refresh.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = teacher_refresh.json; sourceTree = "<group>"; };
+		BC71D1802887FDAB0010F14B /* LaunchAnimationViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LaunchAnimationViewController.m; sourceTree = "<group>"; };
+		BC71D1812887FDAB0010F14B /* LaunchAnimationViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LaunchAnimationViewController.h; sourceTree = "<group>"; };
+		BC71D1C92887FDD40010F14B /* img_10.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_10.png; sourceTree = "<group>"; };
+		BC71D1CA2887FDD40010F14B /* img_1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_1.png; sourceTree = "<group>"; };
+		BC71D1CB2887FDD40010F14B /* img_0.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_0.png; sourceTree = "<group>"; };
+		BC71D1CC2887FDD40010F14B /* img_11.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_11.png; sourceTree = "<group>"; };
+		BC71D1CD2887FDD40010F14B /* img_13.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_13.png; sourceTree = "<group>"; };
+		BC71D1CE2887FDD40010F14B /* img_2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_2.png; sourceTree = "<group>"; };
+		BC71D1CF2887FDD40010F14B /* img_3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_3.png; sourceTree = "<group>"; };
+		BC71D1D02887FDD40010F14B /* img_12.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_12.png; sourceTree = "<group>"; };
+		BC71D1D12887FDD40010F14B /* img_16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_16.png; sourceTree = "<group>"; };
+		BC71D1D22887FDD40010F14B /* img_7.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_7.png; sourceTree = "<group>"; };
+		BC71D1D32887FDD40010F14B /* img_6.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_6.png; sourceTree = "<group>"; };
+		BC71D1D42887FDD40010F14B /* img_17.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_17.png; sourceTree = "<group>"; };
+		BC71D1D52887FDD40010F14B /* img_29.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_29.png; sourceTree = "<group>"; };
+		BC71D1D62887FDD40010F14B /* img_15.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_15.png; sourceTree = "<group>"; };
+		BC71D1D72887FDD40010F14B /* img_4.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_4.png; sourceTree = "<group>"; };
+		BC71D1D82887FDD40010F14B /* img_5.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_5.png; sourceTree = "<group>"; };
+		BC71D1D92887FDD40010F14B /* img_14.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_14.png; sourceTree = "<group>"; };
+		BC71D1DA2887FDD40010F14B /* img_28.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_28.png; sourceTree = "<group>"; };
+		BC71D1DB2887FDD40010F14B /* img_25.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_25.png; sourceTree = "<group>"; };
+		BC71D1DC2887FDD40010F14B /* img_31.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_31.png; sourceTree = "<group>"; };
+		BC71D1DD2887FDD40010F14B /* img_19.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_19.png; sourceTree = "<group>"; };
+		BC71D1DE2887FDD40010F14B /* img_8.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_8.png; sourceTree = "<group>"; };
+		BC71D1DF2887FDD40010F14B /* img_9.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_9.png; sourceTree = "<group>"; };
+		BC71D1E02887FDD40010F14B /* img_18.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_18.png; sourceTree = "<group>"; };
+		BC71D1E12887FDD40010F14B /* img_30.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_30.png; sourceTree = "<group>"; };
+		BC71D1E22887FDD40010F14B /* img_24.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_24.png; sourceTree = "<group>"; };
+		BC71D1E32887FDD40010F14B /* img_26.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_26.png; sourceTree = "<group>"; };
+		BC71D1E42887FDD40010F14B /* img_27.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_27.png; sourceTree = "<group>"; };
+		BC71D1E52887FDD40010F14B /* img_23.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_23.png; sourceTree = "<group>"; };
+		BC71D1E62887FDD40010F14B /* img_22.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_22.png; sourceTree = "<group>"; };
+		BC71D1E72887FDD40010F14B /* img_20.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_20.png; sourceTree = "<group>"; };
+		BC71D1E82887FDD40010F14B /* img_21.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_21.png; sourceTree = "<group>"; };
+		BC71D1E92887FDD40010F14B /* launchAni.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = launchAni.json; sourceTree = "<group>"; };
+		BC71D28B288811BF0010F14B /* tabbar1.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = tabbar1.json; sourceTree = "<group>"; };
+		BC71D28C288811BF0010F14B /* AnimationHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AnimationHelper.m; sourceTree = "<group>"; };
+		BC71D28D288811BF0010F14B /* tabbar5.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = tabbar5.json; sourceTree = "<group>"; };
+		BC71D28E288811BF0010F14B /* tabbar4.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = tabbar4.json; sourceTree = "<group>"; };
+		BC71D28F288811BF0010F14B /* tabbar3.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = tabbar3.json; sourceTree = "<group>"; };
+		BC71D290288811BF0010F14B /* tabbar2.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = tabbar2.json; sourceTree = "<group>"; };
+		BC71D291288811BF0010F14B /* AnimationHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AnimationHelper.h; sourceTree = "<group>"; };
 		BC73A1F32809693F00FA8F6F /* EvaluateSortView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EvaluateSortView.xib; sourceTree = "<group>"; };
 		BC73A1F32809693F00FA8F6F /* EvaluateSortView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EvaluateSortView.xib; sourceTree = "<group>"; };
 		BC761468280D4F660080FD1F /* HomeworkDetailModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HomeworkDetailModel.m; sourceTree = "<group>"; };
 		BC761468280D4F660080FD1F /* HomeworkDetailModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HomeworkDetailModel.m; sourceTree = "<group>"; };
 		BC761469280D4F660080FD1F /* HomeworkDetailModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HomeworkDetailModel.h; sourceTree = "<group>"; };
 		BC761469280D4F660080FD1F /* HomeworkDetailModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HomeworkDetailModel.h; sourceTree = "<group>"; };
@@ -2811,6 +2895,7 @@
 		2779309627E30F2D0010E277 /* Base */ = {
 		2779309627E30F2D0010E277 /* Base */ = {
 			isa = PBXGroup;
 			isa = PBXGroup;
 			children = (
 			children = (
+				BC71D28A288811BF0010F14B /* TabbarAnimation */,
 				BC023801286594EA005560CA /* KSTipsAlert.h */,
 				BC023801286594EA005560CA /* KSTipsAlert.h */,
 				BC023800286594EA005560CA /* KSTipsAlert.m */,
 				BC023800286594EA005560CA /* KSTipsAlert.m */,
 				BC0237FF286594EA005560CA /* KSTipsAlert.xib */,
 				BC0237FF286594EA005560CA /* KSTipsAlert.xib */,
@@ -2994,10 +3079,11 @@
 		277930BC27E30FBC0010E277 /* GifRefresh */ = {
 		277930BC27E30FBC0010E277 /* GifRefresh */ = {
 			isa = PBXGroup;
 			isa = PBXGroup;
 			children = (
 			children = (
-				277930BD27E30FBC0010E277 /* KSGifRefreshHeader.m */,
-				277930BE27E30FBC0010E277 /* KSGifRefreshFooter.m */,
+				BC71D1322887ADDA0010F14B /* teacher_refresh.json */,
 				277930BF27E30FBC0010E277 /* KSGifRefreshFooter.h */,
 				277930BF27E30FBC0010E277 /* KSGifRefreshFooter.h */,
+				277930BE27E30FBC0010E277 /* KSGifRefreshFooter.m */,
 				277930C027E30FBC0010E277 /* KSGifRefreshHeader.h */,
 				277930C027E30FBC0010E277 /* KSGifRefreshHeader.h */,
+				277930BD27E30FBC0010E277 /* KSGifRefreshHeader.m */,
 			);
 			);
 			path = GifRefresh;
 			path = GifRefresh;
 			sourceTree = "<group>";
 			sourceTree = "<group>";
@@ -3546,10 +3632,10 @@
 		277935D927E325B90010E277 /* Module */ = {
 		277935D927E325B90010E277 /* Module */ = {
 			isa = PBXGroup;
 			isa = PBXGroup;
 			children = (
 			children = (
+				BC71D17E2887FDAB0010F14B /* AnimationLaunch */,
 				BC24570E286C437D00D1F7C0 /* SoundFontFile */,
 				BC24570E286C437D00D1F7C0 /* SoundFontFile */,
 				BC245708286C436E00D1F7C0 /* beat */,
 				BC245708286C436E00D1F7C0 /* beat */,
 				BC2456FB286C434800D1F7C0 /* MidiPlayer */,
 				BC2456FB286C434800D1F7C0 /* MidiPlayer */,
-				BCB908FE2851BE8700F5FF69 /* ShareInChat */,
 				BCB633D527F6A18100ACFDCF /* Classroom */,
 				BCB633D527F6A18100ACFDCF /* Classroom */,
 				BCC9F35A27F69BD100647449 /* SealClass */,
 				BCC9F35A27F69BD100647449 /* SealClass */,
 				27D83F4327F3EBAA00062476 /* Live */,
 				27D83F4327F3EBAA00062476 /* Live */,
@@ -4544,6 +4630,7 @@
 		BC2456FB286C434800D1F7C0 /* MidiPlayer */ = {
 		BC2456FB286C434800D1F7C0 /* MidiPlayer */ = {
 			isa = PBXGroup;
 			isa = PBXGroup;
 			children = (
 			children = (
+				BCB908FE2851BE8700F5FF69 /* ShareInChat */,
 				BC245703286C434800D1F7C0 /* CAudioUnit.h */,
 				BC245703286C434800D1F7C0 /* CAudioUnit.h */,
 				BC2456FF286C434800D1F7C0 /* CAudioUnit.m */,
 				BC2456FF286C434800D1F7C0 /* CAudioUnit.m */,
 				BC2456FE286C434800D1F7C0 /* CoreAudioUtils.c */,
 				BC2456FE286C434800D1F7C0 /* CoreAudioUtils.c */,
@@ -4828,6 +4915,94 @@
 			path = View;
 			path = View;
 			sourceTree = "<group>";
 			sourceTree = "<group>";
 		};
 		};
+		BC71D17E2887FDAB0010F14B /* AnimationLaunch */ = {
+			isa = PBXGroup;
+			children = (
+				BC71D17F2887FDAB0010F14B /* Controller */,
+				BC71D1822887FDAB0010F14B /* Model */,
+				BC71D1A52887FDAB0010F14B /* View */,
+			);
+			path = AnimationLaunch;
+			sourceTree = "<group>";
+		};
+		BC71D17F2887FDAB0010F14B /* Controller */ = {
+			isa = PBXGroup;
+			children = (
+				BC71D1802887FDAB0010F14B /* LaunchAnimationViewController.m */,
+				BC71D1812887FDAB0010F14B /* LaunchAnimationViewController.h */,
+			);
+			path = Controller;
+			sourceTree = "<group>";
+		};
+		BC71D1822887FDAB0010F14B /* Model */ = {
+			isa = PBXGroup;
+			children = (
+				BC71D1E92887FDD40010F14B /* launchAni.json */,
+				BC71D1C82887FDD40010F14B /* images */,
+			);
+			path = Model;
+			sourceTree = "<group>";
+		};
+		BC71D1A52887FDAB0010F14B /* View */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			path = View;
+			sourceTree = "<group>";
+		};
+		BC71D1C82887FDD40010F14B /* images */ = {
+			isa = PBXGroup;
+			children = (
+				BC71D1C92887FDD40010F14B /* img_10.png */,
+				BC71D1CA2887FDD40010F14B /* img_1.png */,
+				BC71D1CB2887FDD40010F14B /* img_0.png */,
+				BC71D1CC2887FDD40010F14B /* img_11.png */,
+				BC71D1CD2887FDD40010F14B /* img_13.png */,
+				BC71D1CE2887FDD40010F14B /* img_2.png */,
+				BC71D1CF2887FDD40010F14B /* img_3.png */,
+				BC71D1D02887FDD40010F14B /* img_12.png */,
+				BC71D1D12887FDD40010F14B /* img_16.png */,
+				BC71D1D22887FDD40010F14B /* img_7.png */,
+				BC71D1D32887FDD40010F14B /* img_6.png */,
+				BC71D1D42887FDD40010F14B /* img_17.png */,
+				BC71D1D52887FDD40010F14B /* img_29.png */,
+				BC71D1D62887FDD40010F14B /* img_15.png */,
+				BC71D1D72887FDD40010F14B /* img_4.png */,
+				BC71D1D82887FDD40010F14B /* img_5.png */,
+				BC71D1D92887FDD40010F14B /* img_14.png */,
+				BC71D1DA2887FDD40010F14B /* img_28.png */,
+				BC71D1DB2887FDD40010F14B /* img_25.png */,
+				BC71D1DC2887FDD40010F14B /* img_31.png */,
+				BC71D1DD2887FDD40010F14B /* img_19.png */,
+				BC71D1DE2887FDD40010F14B /* img_8.png */,
+				BC71D1DF2887FDD40010F14B /* img_9.png */,
+				BC71D1E02887FDD40010F14B /* img_18.png */,
+				BC71D1E12887FDD40010F14B /* img_30.png */,
+				BC71D1E22887FDD40010F14B /* img_24.png */,
+				BC71D1E32887FDD40010F14B /* img_26.png */,
+				BC71D1E42887FDD40010F14B /* img_27.png */,
+				BC71D1E52887FDD40010F14B /* img_23.png */,
+				BC71D1E62887FDD40010F14B /* img_22.png */,
+				BC71D1E72887FDD40010F14B /* img_20.png */,
+				BC71D1E82887FDD40010F14B /* img_21.png */,
+			);
+			path = images;
+			sourceTree = "<group>";
+		};
+		BC71D28A288811BF0010F14B /* TabbarAnimation */ = {
+			isa = PBXGroup;
+			children = (
+				BC71D291288811BF0010F14B /* AnimationHelper.h */,
+				BC71D28C288811BF0010F14B /* AnimationHelper.m */,
+				BC71D28B288811BF0010F14B /* tabbar1.json */,
+				BC71D290288811BF0010F14B /* tabbar2.json */,
+				BC71D28F288811BF0010F14B /* tabbar3.json */,
+				BC71D28E288811BF0010F14B /* tabbar4.json */,
+				BC71D28D288811BF0010F14B /* tabbar5.json */,
+			);
+			path = TabbarAnimation;
+			sourceTree = "<group>";
+		};
 		BC7CFF992817CBC400CAEB21 /* WithDraw */ = {
 		BC7CFF992817CBC400CAEB21 /* WithDraw */ = {
 			isa = PBXGroup;
 			isa = PBXGroup;
 			children = (
 			children = (
@@ -6171,6 +6346,8 @@
 			isa = PBXResourcesBuildPhase;
 			isa = PBXResourcesBuildPhase;
 			buildActionMask = 2147483647;
 			buildActionMask = 2147483647;
 			files = (
 			files = (
+				BC71D2002887FDD40010F14B /* img_9.png in Resources */,
+				BC71D292288811BF0010F14B /* tabbar1.json in Resources */,
 				BCE6A0A027F84E4500C97704 /* MineIntroduceCell.xib in Resources */,
 				BCE6A0A027F84E4500C97704 /* MineIntroduceCell.xib in Resources */,
 				2728086C27E6C12900DB71EA /* FirstSettingBodyView.xib in Resources */,
 				2728086C27E6C12900DB71EA /* FirstSettingBodyView.xib in Resources */,
 				275E8A7727E18F2800DD3F6E /* LaunchScreen.storyboard in Resources */,
 				275E8A7727E18F2800DD3F6E /* LaunchScreen.storyboard in Resources */,
@@ -6180,6 +6357,7 @@
 				275B172B27EB269F0081FDEF /* ChatAddressHeaderView.xib in Resources */,
 				275B172B27EB269F0081FDEF /* ChatAddressHeaderView.xib in Resources */,
 				BC41104F280678ED00800BD9 /* HomeworkSortView.xib in Resources */,
 				BC41104F280678ED00800BD9 /* HomeworkSortView.xib in Resources */,
 				275FA56427F31AEE00EB6240 /* MinePageHeadView.xib in Resources */,
 				275FA56427F31AEE00EB6240 /* MinePageHeadView.xib in Resources */,
+				BC71D294288811BF0010F14B /* tabbar5.json in Resources */,
 				275B173127EB27960081FDEF /* GroupCreateView.xib in Resources */,
 				275B173127EB27960081FDEF /* GroupCreateView.xib in Resources */,
 				BCB908F82850C6EF00F5FF69 /* MusicChooseCell.xib in Resources */,
 				BCB908F82850C6EF00F5FF69 /* MusicChooseCell.xib in Resources */,
 				BC24570C286C436E00D1F7C0 /* KSCloudBeatView.xib in Resources */,
 				BC24570C286C436E00D1F7C0 /* KSCloudBeatView.xib in Resources */,
@@ -6188,6 +6366,7 @@
 				2755C08E27ED5DB2007D9070 /* GroupApplyChooseCell.xib in Resources */,
 				2755C08E27ED5DB2007D9070 /* GroupApplyChooseCell.xib in Resources */,
 				BCF61BE9280425DA0000ACFE /* InstrumentChooseCell.xib in Resources */,
 				BCF61BE9280425DA0000ACFE /* InstrumentChooseCell.xib in Resources */,
 				BC76146F280D57220080FD1F /* HomeworkVideoView.xib in Resources */,
 				BC76146F280D57220080FD1F /* HomeworkVideoView.xib in Resources */,
+				BC71D1FD2887FDD40010F14B /* img_31.png in Resources */,
 				277931CE27E30FC20010E277 /* KSPremissionAlert.xib in Resources */,
 				277931CE27E30FC20010E277 /* KSPremissionAlert.xib in Resources */,
 				BC4058942863028C00111BC5 /* NotiferNavView.xib in Resources */,
 				BC4058942863028C00111BC5 /* NotiferNavView.xib in Resources */,
 				BCA353CF2858A86200377661 /* MusicRoomCourseCell.xib in Resources */,
 				BCA353CF2858A86200377661 /* MusicRoomCourseCell.xib in Resources */,
@@ -6197,6 +6376,7 @@
 				275E8A7427E18F2800DD3F6E /* Assets.xcassets in Resources */,
 				275E8A7427E18F2800DD3F6E /* Assets.xcassets in Resources */,
 				BC0A22AB284751F80065C1AB /* FullVideoCell.xib in Resources */,
 				BC0A22AB284751F80065C1AB /* FullVideoCell.xib in Resources */,
 				2755C06927EC71C8007D9070 /* GroupSettingBodyView.xib in Resources */,
 				2755C06927EC71C8007D9070 /* GroupSettingBodyView.xib in Resources */,
+				BC71D1EF2887FDD40010F14B /* img_2.png in Resources */,
 				BC48C3B028292FBE00EE65C5 /* ReceiveHeaderView.xib in Resources */,
 				BC48C3B028292FBE00EE65C5 /* ReceiveHeaderView.xib in Resources */,
 				BC8B6DBA285327EE00866917 /* MusicShareDisplayView.xib in Resources */,
 				BC8B6DBA285327EE00866917 /* MusicShareDisplayView.xib in Resources */,
 				BC58E7D5281B9637004B0893 /* PublicNoticeView.xib in Resources */,
 				BC58E7D5281B9637004B0893 /* PublicNoticeView.xib in Resources */,
@@ -6212,6 +6392,9 @@
 				BCA9CE4427FD947C00D558C6 /* AccompanyArrangeCell.xib in Resources */,
 				BCA9CE4427FD947C00D558C6 /* AccompanyArrangeCell.xib in Resources */,
 				BCF61BF128042FA90000ACFE /* InstrumentChooseBottonView.xib in Resources */,
 				BCF61BF128042FA90000ACFE /* InstrumentChooseBottonView.xib in Resources */,
 				277D433027E9A50800107DB7 /* PhoneChangeBodyView.xib in Resources */,
 				277D433027E9A50800107DB7 /* PhoneChangeBodyView.xib in Resources */,
+				BC71D1EC2887FDD40010F14B /* img_0.png in Resources */,
+				BC71D1EA2887FDD40010F14B /* img_10.png in Resources */,
+				BC71D2052887FDD40010F14B /* img_27.png in Resources */,
 				BC542E3828406F8000633781 /* UserAuthBodyView.xib in Resources */,
 				BC542E3828406F8000633781 /* UserAuthBodyView.xib in Resources */,
 				27A54CEE27E9B986007309A3 /* ModifyNameBodyView.xib in Resources */,
 				27A54CEE27E9B986007309A3 /* ModifyNameBodyView.xib in Resources */,
 				2708565E27EDA83100EC8E72 /* GroupMemberListCell.xib in Resources */,
 				2708565E27EDA83100EC8E72 /* GroupMemberListCell.xib in Resources */,
@@ -6223,6 +6406,7 @@
 				BCB399B327F94B5A00AFF376 /* LTSCalendarBottomView.xib in Resources */,
 				BCB399B327F94B5A00AFF376 /* LTSCalendarBottomView.xib in Resources */,
 				2708565327ED8B8C00EC8E72 /* GroupApplyChooseAllCell.xib in Resources */,
 				2708565327ED8B8C00EC8E72 /* GroupApplyChooseAllCell.xib in Resources */,
 				275E3DEE27F467BF0010EC30 /* LiveRoomBottomView.xib in Resources */,
 				275E3DEE27F467BF0010EC30 /* LiveRoomBottomView.xib in Resources */,
+				BC71D1FF2887FDD40010F14B /* img_8.png in Resources */,
 				BC023802286594EA005560CA /* KSTipsAlert.xib in Resources */,
 				BC023802286594EA005560CA /* KSTipsAlert.xib in Resources */,
 				BC4BCE6D28239EEB00522C8B /* MyAddressListCell.xib in Resources */,
 				BC4BCE6D28239EEB00522C8B /* MyAddressListCell.xib in Resources */,
 				27BC3B2B27F2DB9600D81E30 /* MusicUploadView.xib in Resources */,
 				27BC3B2B27F2DB9600D81E30 /* MusicUploadView.xib in Resources */,
@@ -6230,13 +6414,16 @@
 				BC2456F4286BEFDA00D1F7C0 /* MineEmptyVideoCell.xib in Resources */,
 				BC2456F4286BEFDA00D1F7C0 /* MineEmptyVideoCell.xib in Resources */,
 				BCE6A09B27F83E8E00C97704 /* MinePageVideoCell.xib in Resources */,
 				BCE6A09B27F83E8E00C97704 /* MinePageVideoCell.xib in Resources */,
 				BCE06F2D2818147000234817 /* KSConfirmAlertView.xib in Resources */,
 				BCE06F2D2818147000234817 /* KSConfirmAlertView.xib in Resources */,
+				BC71D295288811BF0010F14B /* tabbar4.json in Resources */,
 				BCA7C34428476533009D20EC /* KSBoardAddStaffView.xib in Resources */,
 				BCA7C34428476533009D20EC /* KSBoardAddStaffView.xib in Resources */,
 				BCA353E52859797500377661 /* MusicRoomStudentCell.xib in Resources */,
 				BCA353E52859797500377661 /* MusicRoomStudentCell.xib in Resources */,
 				BC58E7DF281B96A4004B0893 /* MinePageTopView.xib in Resources */,
 				BC58E7DF281B96A4004B0893 /* MinePageTopView.xib in Resources */,
 				BCEA75322819336A00886A86 /* WithdrawBodyView.xib in Resources */,
 				BCEA75322819336A00886A86 /* WithdrawBodyView.xib in Resources */,
+				BC71D20A2887FDD40010F14B /* launchAni.json in Resources */,
 				BC0A22A5284751F80065C1AB /* AccompanySongCell.xib in Resources */,
 				BC0A22A5284751F80065C1AB /* AccompanySongCell.xib in Resources */,
 				2723B68E27F1686100E0B90B /* HomeNavView.xib in Resources */,
 				2723B68E27F1686100E0B90B /* HomeNavView.xib in Resources */,
 				BC5EB5C62804087700B4A3B0 /* MyStyleBottomView.xib in Resources */,
 				BC5EB5C62804087700B4A3B0 /* MyStyleBottomView.xib in Resources */,
+				BC71D1F22887FDD40010F14B /* img_16.png in Resources */,
 				BCDB093F2805C0EF00D0BDAD /* NewClassPopCell.xib in Resources */,
 				BCDB093F2805C0EF00D0BDAD /* NewClassPopCell.xib in Resources */,
 				BCAD01C22872F5560002CC40 /* LiveVideoListView.xib in Resources */,
 				BCAD01C22872F5560002CC40 /* LiveVideoListView.xib in Resources */,
 				275E3DE927F4679E0010EC30 /* LiveRoomHeadView.xib in Resources */,
 				275E3DE927F4679E0010EC30 /* LiveRoomHeadView.xib in Resources */,
@@ -6244,30 +6431,39 @@
 				BCEA75282819103B00886A86 /* UnbindBodyView.xib in Resources */,
 				BCEA75282819103B00886A86 /* UnbindBodyView.xib in Resources */,
 				BC8B6E602856ED0600866917 /* WeiboSDK.bundle in Resources */,
 				BC8B6E602856ED0600866917 /* WeiboSDK.bundle in Resources */,
 				27F9030827E86CCB00C08A19 /* DeviceCheckView.xib in Resources */,
 				27F9030827E86CCB00C08A19 /* DeviceCheckView.xib in Resources */,
+				BC71D1FA2887FDD40010F14B /* img_14.png in Resources */,
 				2723B69327F1806500E0B90B /* HomeHeadView.xib in Resources */,
 				2723B69327F1806500E0B90B /* HomeHeadView.xib in Resources */,
 				275B16F127EAF9DD0081FDEF /* ChatNavView.xib in Resources */,
 				275B16F127EAF9DD0081FDEF /* ChatNavView.xib in Resources */,
 				2773205327EDB75B008FAECA /* GroupNoticeCell.xib in Resources */,
 				2773205327EDB75B008FAECA /* GroupNoticeCell.xib in Resources */,
 				2755C08627ED5770007D9070 /* GroupApplyMemberCell.xib in Resources */,
 				2755C08627ED5770007D9070 /* GroupApplyMemberCell.xib in Resources */,
+				BC71D297288811BF0010F14B /* tabbar2.json in Resources */,
 				27BC3B3027F2FC7200D81E30 /* VideoCourseCell.xib in Resources */,
 				27BC3B3027F2FC7200D81E30 /* VideoCourseCell.xib in Resources */,
 				BC7CFFB62817E90700CAEB21 /* KSSegView.xib in Resources */,
 				BC7CFFB62817E90700CAEB21 /* KSSegView.xib in Resources */,
 				2779362227E334470010E277 /* KSUpdateAlert.xib in Resources */,
 				2779362227E334470010E277 /* KSUpdateAlert.xib in Resources */,
+				BC71D2072887FDD40010F14B /* img_22.png in Resources */,
 				277D433127E9A50800107DB7 /* PhoneCheckBodyView.xib in Resources */,
 				277D433127E9A50800107DB7 /* PhoneCheckBodyView.xib in Resources */,
+				BC71D2082887FDD40010F14B /* img_20.png in Resources */,
 				BC7705FF287676DC003EFA7F /* HomeActionView.xib in Resources */,
 				BC7705FF287676DC003EFA7F /* HomeActionView.xib in Resources */,
 				BC5EB5C12804085500B4A3B0 /* MyStyleVideoCell.xib in Resources */,
 				BC5EB5C12804085500B4A3B0 /* MyStyleVideoCell.xib in Resources */,
 				BC4BCE772823AA3F00522C8B /* areainfo.json in Resources */,
 				BC4BCE772823AA3F00522C8B /* areainfo.json in Resources */,
+				BC71D1F62887FDD40010F14B /* img_29.png in Resources */,
 				BCF1BA5627F5CBA100FA36C4 /* LiveSeatApplyView.xib in Resources */,
 				BCF1BA5627F5CBA100FA36C4 /* LiveSeatApplyView.xib in Resources */,
 				BC8B6E562856ED0600866917 /* iOS集成升级必读.pdf in Resources */,
 				BC8B6E562856ED0600866917 /* iOS集成升级必读.pdf in Resources */,
 				BC8B6E6A28575DEE00866917 /* MusicDisplayView.xib in Resources */,
 				BC8B6E6A28575DEE00866917 /* MusicDisplayView.xib in Resources */,
 				BCB9FA21286D53A1005D766B /* ScanNavView.xib in Resources */,
 				BCB9FA21286D53A1005D766B /* ScanNavView.xib in Resources */,
+				BC71D1EB2887FDD40010F14B /* img_1.png in Resources */,
 				BCB9FA4F28717BBD005D766B /* MyMusicSearchView.xib in Resources */,
 				BCB9FA4F28717BBD005D766B /* MyMusicSearchView.xib in Resources */,
 				BC483233282A6473005F534C /* HomeRecentCourseView.xib in Resources */,
 				BC483233282A6473005F534C /* HomeRecentCourseView.xib in Resources */,
 				2708565927ED961900EC8E72 /* ApplyBottomView.xib in Resources */,
 				2708565927ED961900EC8E72 /* ApplyBottomView.xib in Resources */,
 				BCB399AE27F946AA00AFF376 /* CourseNavView.xib in Resources */,
 				BCB399AE27F946AA00AFF376 /* CourseNavView.xib in Resources */,
 				BC0A22A8284751F80065C1AB /* DownloadStatusCell.xib in Resources */,
 				BC0A22A8284751F80065C1AB /* DownloadStatusCell.xib in Resources */,
+				BC71D1F42887FDD40010F14B /* img_6.png in Resources */,
 				275B170D27EB14AC0081FDEF /* KSChatListSearchView.xib in Resources */,
 				275B170D27EB14AC0081FDEF /* KSChatListSearchView.xib in Resources */,
+				BC71D1332887ADDA0010F14B /* teacher_refresh.json in Resources */,
 				BC7CFFCA2817F2FF00CAEB21 /* CashRecordListCell.xib in Resources */,
 				BC7CFFCA2817F2FF00CAEB21 /* CashRecordListCell.xib in Resources */,
 				BCB9FA41286DA337005D766B /* GuideListView.xib in Resources */,
 				BCB9FA41286DA337005D766B /* GuideListView.xib in Resources */,
 				BCB908DD2850A71800F5FF69 /* ShareMusicCellContentView.xib in Resources */,
 				BCB908DD2850A71800F5FF69 /* ShareMusicCellContentView.xib in Resources */,
+				BC71D2062887FDD40010F14B /* img_23.png in Resources */,
 				27D83F5927F4225D00062476 /* LivePreviewBodyView.xib in Resources */,
 				27D83F5927F4225D00062476 /* LivePreviewBodyView.xib in Resources */,
 				BC41104A2806706800800BD9 /* HomeworkListCell.xib in Resources */,
 				BC41104A2806706800800BD9 /* HomeworkListCell.xib in Resources */,
 				BCD457A72863196F0010B493 /* CourseTimeSegView.xib in Resources */,
 				BCD457A72863196F0010B493 /* CourseTimeSegView.xib in Resources */,
@@ -6276,12 +6472,14 @@
 				BCB399BD27F9831D00AFF376 /* CourseForLiveCell.xib in Resources */,
 				BCB399BD27F9831D00AFF376 /* CourseForLiveCell.xib in Resources */,
 				2723B68927F1643B00E0B90B /* HomeBodyView.xib in Resources */,
 				2723B68927F1643B00E0B90B /* HomeBodyView.xib in Resources */,
 				BCFE541A2817BE0800AD6786 /* IncomeHeaderView.xib in Resources */,
 				BCFE541A2817BE0800AD6786 /* IncomeHeaderView.xib in Resources */,
+				BC71D1F32887FDD40010F14B /* img_7.png in Resources */,
 				BCE6A0A527F8517900C97704 /* MineVideoCell.xib in Resources */,
 				BCE6A0A527F8517900C97704 /* MineVideoCell.xib in Resources */,
 				BCC9F40727F69BD200647449 /* SealClass.strings in Resources */,
 				BCC9F40727F69BD200647449 /* SealClass.strings in Resources */,
 				BCD6D16C28195FC5009A773E /* CashRecordHeadView.xib in Resources */,
 				BCD6D16C28195FC5009A773E /* CashRecordHeadView.xib in Resources */,
 				BC5EB5AB2803D86500B4A3B0 /* AccompanyAlertView.xib in Resources */,
 				BC5EB5AB2803D86500B4A3B0 /* AccompanyAlertView.xib in Resources */,
 				BCE6A08C27F823A300C97704 /* AccompanyCourseCell.xib in Resources */,
 				BCE6A08C27F823A300C97704 /* AccompanyCourseCell.xib in Resources */,
 				BC7CFFBA2817E9FC00CAEB21 /* echarts.min.js in Resources */,
 				BC7CFFBA2817E9FC00CAEB21 /* echarts.min.js in Resources */,
+				BC71D2012887FDD40010F14B /* img_18.png in Resources */,
 				BC0A22A0284751F80065C1AB /* KSCloseCourseView.xib in Resources */,
 				BC0A22A0284751F80065C1AB /* KSCloseCourseView.xib in Resources */,
 				BCE6A08727F81B4D00C97704 /* MinePageSubmitView.xib in Resources */,
 				BCE6A08727F81B4D00C97704 /* MinePageSubmitView.xib in Resources */,
 				BC73A1F42809693F00FA8F6F /* EvaluateSortView.xib in Resources */,
 				BC73A1F42809693F00FA8F6F /* EvaluateSortView.xib in Resources */,
@@ -6292,6 +6490,7 @@
 				BCC03F9A2805681100461B7C /* MyLessonSearchView.xib in Resources */,
 				BCC03F9A2805681100461B7C /* MyLessonSearchView.xib in Resources */,
 				BCC03F9F280579A500461B7C /* MyLiveCourseCell.xib in Resources */,
 				BCC03F9F280579A500461B7C /* MyLiveCourseCell.xib in Resources */,
 				BCB6340627F6A2F000ACFDCF /* tick.wav in Resources */,
 				BCB6340627F6A2F000ACFDCF /* tick.wav in Resources */,
+				BC71D1FB2887FDD40010F14B /* img_28.png in Resources */,
 				BC8B6E522856ED0600866917 /* UMCommonLog.bundle in Resources */,
 				BC8B6E522856ED0600866917 /* UMCommonLog.bundle in Resources */,
 				BCA353EA2859A6FB00377661 /* MusicRoomHomeworkCell.xib in Resources */,
 				BCA353EA2859A6FB00377661 /* MusicRoomHomeworkCell.xib in Resources */,
 				2755C07127EC7F21007D9070 /* ChatComplainBodyView.xib in Resources */,
 				2755C07127EC7F21007D9070 /* ChatComplainBodyView.xib in Resources */,
@@ -6300,18 +6499,25 @@
 				BCFE54152817918600AD6786 /* MyIncomeListCell.xib in Resources */,
 				BCFE54152817918600AD6786 /* MyIncomeListCell.xib in Resources */,
 				BCA9CE1727FD339D00D558C6 /* AuthDisplayView.xib in Resources */,
 				BCA9CE1727FD339D00D558C6 /* AuthDisplayView.xib in Resources */,
 				BC245710286C437D00D1F7C0 /* synthgms.sf2 in Resources */,
 				BC245710286C437D00D1F7C0 /* synthgms.sf2 in Resources */,
+				BC71D1EE2887FDD40010F14B /* img_13.png in Resources */,
 				BCF1BA5B27F5CF3C00FA36C4 /* LiveSeatApplyCell.xib in Resources */,
 				BCF1BA5B27F5CF3C00FA36C4 /* LiveSeatApplyCell.xib in Resources */,
 				2780C92427E4903500A95A4F /* PasswordBodyView.xib in Resources */,
 				2780C92427E4903500A95A4F /* PasswordBodyView.xib in Resources */,
 				27F902FF27E864AE00C08A19 /* KSNetworkAlert.xib in Resources */,
 				27F902FF27E864AE00C08A19 /* KSNetworkAlert.xib in Resources */,
+				BC71D2092887FDD40010F14B /* img_21.png in Resources */,
 				BC60E3C2287D448600B05441 /* DeleteAccountBodyView.xib in Resources */,
 				BC60E3C2287D448600B05441 /* DeleteAccountBodyView.xib in Resources */,
 				BC32E10E286AB326001434DD /* KSPublicAlertView.xib in Resources */,
 				BC32E10E286AB326001434DD /* KSPublicAlertView.xib in Resources */,
+				BC71D296288811BF0010F14B /* tabbar3.json in Resources */,
+				BC71D2022887FDD40010F14B /* img_30.png in Resources */,
 				BC7CFFAA2817E3BD00CAEB21 /* IncomeCountTopView.xib in Resources */,
 				BC7CFFAA2817E3BD00CAEB21 /* IncomeCountTopView.xib in Resources */,
 				BC0A22B82847523E0065C1AB /* MemberListCell.xib in Resources */,
 				BC0A22B82847523E0065C1AB /* MemberListCell.xib in Resources */,
 				BCB9FA632872C8D2005D766B /* UnderwayLiveCell.xib in Resources */,
 				BCB9FA632872C8D2005D766B /* UnderwayLiveCell.xib in Resources */,
+				BC71D1ED2887FDD40010F14B /* img_11.png in Resources */,
 				BCA9CE3A27FD93EB00D558C6 /* AccompanyStudentEvaCell.xib in Resources */,
 				BCA9CE3A27FD93EB00D558C6 /* AccompanyStudentEvaCell.xib in Resources */,
 				BCE6A09627F823DC00C97704 /* MinePageMusicCell.xib in Resources */,
 				BCE6A09627F823DC00C97704 /* MinePageMusicCell.xib in Resources */,
 				BC4BCE722823A03A00522C8B /* AddressBottomView.xib in Resources */,
 				BC4BCE722823A03A00522C8B /* AddressBottomView.xib in Resources */,
 				BCA353E0285976CF00377661 /* MusicRoomCourseInfoCell.xib in Resources */,
 				BCA353E0285976CF00377661 /* MusicRoomCourseInfoCell.xib in Resources */,
+				BC71D1F82887FDD40010F14B /* img_4.png in Resources */,
+				BC71D1FE2887FDD40010F14B /* img_19.png in Resources */,
 				277D431F27E999A000107DB7 /* ModifyBodyView.xib in Resources */,
 				277D431F27E999A000107DB7 /* ModifyBodyView.xib in Resources */,
 				BC8B6E5D2856ED0600866917 /* README.txt in Resources */,
 				BC8B6E5D2856ED0600866917 /* README.txt in Resources */,
 				BC7CFFBB2817E9FC00CAEB21 /* stacked_line_chart.html in Resources */,
 				BC7CFFBB2817E9FC00CAEB21 /* stacked_line_chart.html in Resources */,
@@ -6323,6 +6529,8 @@
 				27BC3B2627F2B76900D81E30 /* MusicMessageCell.xib in Resources */,
 				27BC3B2627F2B76900D81E30 /* MusicMessageCell.xib in Resources */,
 				BC2858302809451B0024697C /* EvaluateCouseCell.xib in Resources */,
 				BC2858302809451B0024697C /* EvaluateCouseCell.xib in Resources */,
 				BC8B6E6D285836B600866917 /* high_staff.png in Resources */,
 				BC8B6E6D285836B600866917 /* high_staff.png in Resources */,
+				BC71D1F72887FDD40010F14B /* img_15.png in Resources */,
+				BC71D1F92887FDD40010F14B /* img_5.png in Resources */,
 				BCA724002806AEA000DA0D0D /* AccompanyHomeworkCell.xib in Resources */,
 				BCA724002806AEA000DA0D0D /* AccompanyHomeworkCell.xib in Resources */,
 				BC7CFFD22817FF6D00CAEB21 /* CardDisplayView.xib in Resources */,
 				BC7CFFD22817FF6D00CAEB21 /* CardDisplayView.xib in Resources */,
 				BC2456E5286BE86600D1F7C0 /* MineStyleEmptyView.xib in Resources */,
 				BC2456E5286BE86600D1F7C0 /* MineStyleEmptyView.xib in Resources */,
@@ -6333,17 +6541,23 @@
 				BCA9CE3527FD93C700D558C6 /* AccompanyEvaluateCell.xib in Resources */,
 				BCA9CE3527FD93C700D558C6 /* AccompanyEvaluateCell.xib in Resources */,
 				27D5D5D227EDBA9400B4720C /* NoticeEditBodyView.xib in Resources */,
 				27D5D5D227EDBA9400B4720C /* NoticeEditBodyView.xib in Resources */,
 				BC7CFFD7281801B700CAEB21 /* CardBandBodyView.xib in Resources */,
 				BC7CFFD7281801B700CAEB21 /* CardBandBodyView.xib in Resources */,
+				BC71D1F02887FDD40010F14B /* img_3.png in Resources */,
 				275E3DE327F467410010EC30 /* BaseEmoji.plist in Resources */,
 				275E3DE327F467410010EC30 /* BaseEmoji.plist in Resources */,
 				273C75A027E9681700F7C26F /* SettingBodyView.xib in Resources */,
 				273C75A027E9681700F7C26F /* SettingBodyView.xib in Resources */,
+				BC71D1F12887FDD40010F14B /* img_12.png in Resources */,
 				BC8C2C662824EB9800FBA5D5 /* NotiferHeadView.xib in Resources */,
 				BC8C2C662824EB9800FBA5D5 /* NotiferHeadView.xib in Resources */,
 				2779329A27E30FEB0010E277 /* mss_browseLoading@2x.png in Resources */,
 				2779329A27E30FEB0010E277 /* mss_browseLoading@2x.png in Resources */,
+				BC71D2042887FDD40010F14B /* img_26.png in Resources */,
 				27F9CAFC27EC1AF3003E0FE4 /* ContractListCell.xib in Resources */,
 				27F9CAFC27EC1AF3003E0FE4 /* ContractListCell.xib in Resources */,
+				BC71D2032887FDD40010F14B /* img_24.png in Resources */,
+				BC71D1F52887FDD40010F14B /* img_17.png in Resources */,
 				BCA9CE5127FD954800D558C6 /* AccompanyRemarkCell.xib in Resources */,
 				BCA9CE5127FD954800D558C6 /* AccompanyRemarkCell.xib in Resources */,
 				BCB9FA682872C8F0005D766B /* FinishedLiveCell.xib in Resources */,
 				BCB9FA682872C8F0005D766B /* FinishedLiveCell.xib in Resources */,
 				BCF61BDE280417190000ACFE /* MyStyleVideoView.xib in Resources */,
 				BCF61BDE280417190000ACFE /* MyStyleVideoView.xib in Resources */,
 				BCC03F89280460C000461B7C /* InstrumentHeaderView.xib in Resources */,
 				BCC03F89280460C000461B7C /* InstrumentHeaderView.xib in Resources */,
 				BCD6D16728195A98009A773E /* WithdrawApplyBodyView.xib in Resources */,
 				BCD6D16728195A98009A773E /* WithdrawApplyBodyView.xib in Resources */,
 				BC5EB5BC2804083800B4A3B0 /* MyStyleIntroduceCell.xib in Resources */,
 				BC5EB5BC2804083800B4A3B0 /* MyStyleIntroduceCell.xib in Resources */,
+				BC71D1FC2887FDD40010F14B /* img_25.png in Resources */,
 			);
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			runOnlyForDeploymentPostprocessing = 0;
 		};
 		};
@@ -6609,6 +6823,7 @@
 				BCC9F41127F69BD200647449 /* MessageCell.m in Sources */,
 				BCC9F41127F69BD200647449 /* MessageCell.m in Sources */,
 				277935E227E327F00010E277 /* KSTabBarViewController.m in Sources */,
 				277935E227E327F00010E277 /* KSTabBarViewController.m in Sources */,
 				2779322727E30FC30010E277 /* KSInputView.m in Sources */,
 				2779322727E30FC30010E277 /* KSInputView.m in Sources */,
+				BC71D293288811BF0010F14B /* AnimationHelper.m in Sources */,
 				BC60E3C0287D447F00B05441 /* DeleteAccountBodyView.m in Sources */,
 				BC60E3C0287D447F00B05441 /* DeleteAccountBodyView.m in Sources */,
 				2779320D27E30FC30010E277 /* ShopMessBtn.m in Sources */,
 				2779320D27E30FC30010E277 /* ShopMessBtn.m in Sources */,
 				2779323C27E30FC30010E277 /* VoLRUManager.m in Sources */,
 				2779323C27E30FC30010E277 /* VoLRUManager.m in Sources */,
@@ -6783,6 +6998,7 @@
 				275E3DE027F467410010EC30 /* KSChatEmojiBoardView.m in Sources */,
 				275E3DE027F467410010EC30 /* KSChatEmojiBoardView.m in Sources */,
 				BC542E4628407B3D00633781 /* UseBodyView.m in Sources */,
 				BC542E4628407B3D00633781 /* UseBodyView.m in Sources */,
 				BCC9F44927F69BD200647449 /* ClassroomService.m in Sources */,
 				BCC9F44927F69BD200647449 /* ClassroomService.m in Sources */,
+				BC71D1A62887FDAC0010F14B /* LaunchAnimationViewController.m in Sources */,
 				277931CC27E30FC20010E277 /* KSGifRefreshFooter.m in Sources */,
 				277931CC27E30FC20010E277 /* KSGifRefreshFooter.m in Sources */,
 				2779321127E30FC30010E277 /* YKMultiLevelTableView.m in Sources */,
 				2779321127E30FC30010E277 /* YKMultiLevelTableView.m in Sources */,
 				BCF1BA5127F5C4DD00FA36C4 /* KSLiveChatroomMemberCount.m in Sources */,
 				BCF1BA5127F5C4DD00FA36C4 /* KSLiveChatroomMemberCount.m in Sources */,
@@ -7258,7 +7474,7 @@
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CODE_SIGN_ENTITLEMENTS = KulexiuForTeacher/KulexiuForTeacher.entitlements;
 				CODE_SIGN_ENTITLEMENTS = KulexiuForTeacher/KulexiuForTeacher.entitlements;
 				CODE_SIGN_STYLE = Automatic;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 1.0.2;
+				CURRENT_PROJECT_VERSION = 1.0.3;
 				DEVELOPMENT_TEAM = B2AP53HHTU;
 				DEVELOPMENT_TEAM = B2AP53HHTU;
 				ENABLE_BITCODE = NO;
 				ENABLE_BITCODE = NO;
 				FRAMEWORK_SEARCH_PATHS = (
 				FRAMEWORK_SEARCH_PATHS = (
@@ -7320,7 +7536,7 @@
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CODE_SIGN_ENTITLEMENTS = KulexiuForTeacher/KulexiuForTeacher.entitlements;
 				CODE_SIGN_ENTITLEMENTS = KulexiuForTeacher/KulexiuForTeacher.entitlements;
 				CODE_SIGN_STYLE = Automatic;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 1.0.2;
+				CURRENT_PROJECT_VERSION = 1.0.3;
 				DEVELOPMENT_TEAM = B2AP53HHTU;
 				DEVELOPMENT_TEAM = B2AP53HHTU;
 				ENABLE_BITCODE = NO;
 				ENABLE_BITCODE = NO;
 				FRAMEWORK_SEARCH_PATHS = (
 				FRAMEWORK_SEARCH_PATHS = (

BIN
KulexiuForTeacher/KulexiuForTeacher.xcworkspace/xcuserdata/wangzhi.xcuserdatad/UserInterfaceState.xcuserstate


+ 28 - 12
KulexiuForTeacher/KulexiuForTeacher.xcworkspace/xcuserdata/wangzhi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -464,7 +464,7 @@
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
          <BreakpointContent
             uuid = "8B301842-497E-4618-9DC2-36C235BA6745"
             uuid = "8B301842-497E-4618-9DC2-36C235BA6745"
-            shouldBeEnabled = "No"
+            shouldBeEnabled = "Yes"
             ignoreCount = "0"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             continueAfterRunningActions = "No"
             filePath = "KulexiuForTeacher/Module/Home/Income/Controller/IncomeCountViewController.m"
             filePath = "KulexiuForTeacher/Module/Home/Income/Controller/IncomeCountViewController.m"
@@ -745,8 +745,8 @@
             filePath = "KulexiuForTeacher/AppDelegate.m"
             filePath = "KulexiuForTeacher/AppDelegate.m"
             startingColumnNumber = "9223372036854775807"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "630"
-            endingLineNumber = "630"
+            startingLineNumber = "639"
+            endingLineNumber = "639"
             landmarkName = "-getVCUserInfoDict:"
             landmarkName = "-getVCUserInfoDict:"
             landmarkType = "7">
             landmarkType = "7">
          </BreakpointContent>
          </BreakpointContent>
@@ -777,8 +777,8 @@
             filePath = "KulexiuForTeacher/AppDelegate.m"
             filePath = "KulexiuForTeacher/AppDelegate.m"
             startingColumnNumber = "9223372036854775807"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "613"
-            endingLineNumber = "613"
+            startingLineNumber = "622"
+            endingLineNumber = "622"
             landmarkName = "-getVCUserInfoDict:"
             landmarkName = "-getVCUserInfoDict:"
             landmarkType = "7">
             landmarkType = "7">
          </BreakpointContent>
          </BreakpointContent>
@@ -793,8 +793,8 @@
             filePath = "KulexiuForTeacher/AppDelegate.m"
             filePath = "KulexiuForTeacher/AppDelegate.m"
             startingColumnNumber = "9223372036854775807"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "570"
-            endingLineNumber = "570"
+            startingLineNumber = "579"
+            endingLineNumber = "579"
             landmarkName = "-jpushNotificationCenter:didReceiveNotificationResponse:withCompletionHandler:"
             landmarkName = "-jpushNotificationCenter:didReceiveNotificationResponse:withCompletionHandler:"
             landmarkType = "7">
             landmarkType = "7">
          </BreakpointContent>
          </BreakpointContent>
@@ -1089,16 +1089,32 @@
       <BreakpointProxy
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
          <BreakpointContent
-            uuid = "DC9917E2-27CA-4C2C-9A51-17E4A16A3BA6"
+            uuid = "09850B8F-2D01-4B92-8C57-70A2742814E5"
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForTeacher/Module/Mine/MinePage/View/MinePageMienBodyView.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "100"
+            endingLineNumber = "100"
+            landmarkName = "-requestTeacherGroup"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "7262111F-38B6-41C3-9BAF-49AE5E5F1820"
             shouldBeEnabled = "Yes"
             shouldBeEnabled = "Yes"
             ignoreCount = "0"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             continueAfterRunningActions = "No"
-            filePath = "KulexiuForTeacher/AppDelegate.m"
+            filePath = "KulexiuForTeacher/Module/Home/Income/Controller/IncomeCountViewController.m"
             startingColumnNumber = "9223372036854775807"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "196"
-            endingLineNumber = "196"
-            landmarkName = "-configUM"
+            startingLineNumber = "136"
+            endingLineNumber = "136"
+            landmarkName = "-requestData"
             landmarkType = "7">
             landmarkType = "7">
          </BreakpointContent>
          </BreakpointContent>
       </BreakpointProxy>
       </BreakpointProxy>

+ 32 - 24
KulexiuForTeacher/KulexiuForTeacher/AppDelegate.m

@@ -39,6 +39,7 @@
 #import "GuideViewController.h"
 #import "GuideViewController.h"
 #import "MyCourseViewController.h"
 #import "MyCourseViewController.h"
 #import "NotiferMessageViewController.h"
 #import "NotiferMessageViewController.h"
+#import "LaunchAnimationViewController.h"
 
 
 @interface RCNaviDataInfo : NSObject
 @interface RCNaviDataInfo : NSObject
 
 
@@ -54,7 +55,7 @@
 
 
 @end
 @end
 
 
-@interface AppDelegate ()<UITabBarControllerDelegate,RCIMReceiveMessageDelegate,JPUSHRegisterDelegate>
+@interface AppDelegate ()<RCIMReceiveMessageDelegate,JPUSHRegisterDelegate>
 
 
 @property (nonatomic, assign) BOOL isNeedUpdate;
 @property (nonatomic, assign) BOOL isNeedUpdate;
 
 
@@ -110,28 +111,12 @@
     [self configJPUSHWithLaunchOptions:launchOptions];
     [self configJPUSHWithLaunchOptions:launchOptions];
     // 融云相关配置
     // 融云相关配置
     [self configIM];
     [self configIM];
-    
-    BOOL hasLaunchGuide = UserDefaultBoolForKey(FIRST_LOGIN_KEY);
-    if (hasLaunchGuide == NO) {
-        GuideViewController *guideVC = [[GuideViewController alloc] init];
-        CustomNavViewController *navCtrl = [[CustomNavViewController alloc] initWithRootViewController:guideVC];
-        self.window.rootViewController = navCtrl;
-    }
-    else {
-        NSString *token = UserDefault(TokenKey);
-        NSLog(@"------token  %@",token);
-        if ([NSString isEmptyString:token]) { // 未登录
-            LoginViewController *logonVC = [[LoginViewController alloc] init];
-            CustomNavViewController *navCtrl = [[CustomNavViewController alloc] initWithRootViewController:logonVC];
-            self.window.rootViewController = navCtrl;
-        }
-        else {
-            [KSNetworkingManager configRequestHeader];
-            [USER_MANAGER queryUserInfoConnectRongCloud:YES];
-            [self initTableBar];
-            self.window.rootViewController=_tabBarController;
-        }
-    }
+    LaunchAnimationViewController *animationVC = [[LaunchAnimationViewController alloc] init];
+    MJWeakSelf;
+    [animationVC launchAnimationFinish:^{
+        [weakSelf configRootVC];
+    }];
+    self.window.rootViewController = animationVC;
     
     
     [self.window makeKeyAndVisible];
     [self.window makeKeyAndVisible];
     
     
@@ -169,6 +154,30 @@
     return YES;
     return YES;
 }
 }
 
 
+- (void)configRootVC {
+    BOOL hasLaunchGuide = UserDefaultBoolForKey(FIRST_LOGIN_KEY);
+    if (hasLaunchGuide == NO) {
+        GuideViewController *guideVC = [[GuideViewController alloc] init];
+        CustomNavViewController *navCtrl = [[CustomNavViewController alloc] initWithRootViewController:guideVC];
+        self.window.rootViewController = navCtrl;
+    }
+    else {
+        NSString *token = UserDefault(TokenKey);
+        NSLog(@"------token  %@",token);
+        if ([NSString isEmptyString:token]) { // 未登录
+            LoginViewController *logonVC = [[LoginViewController alloc] init];
+            CustomNavViewController *navCtrl = [[CustomNavViewController alloc] initWithRootViewController:logonVC];
+            self.window.rootViewController = navCtrl;
+        }
+        else {
+            [KSNetworkingManager configRequestHeader];
+            [USER_MANAGER queryUserInfoConnectRongCloud:YES];
+            [self initTableBar];
+            self.window.rootViewController=_tabBarController;
+        }
+    }
+}
+
 - (void)registerSDK {
 - (void)registerSDK {
     [WXApi registerApp:@"wx149a928c415c137a" universalLink:@"https://dev.colexiu.com/teacherApp/"];
     [WXApi registerApp:@"wx149a928c415c137a" universalLink:@"https://dev.colexiu.com/teacherApp/"];
 }
 }
@@ -755,7 +764,6 @@ didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
     }
     }
 
 
     self.tabBarController = [[KSTabBarViewController alloc] init];
     self.tabBarController = [[KSTabBarViewController alloc] init];
-    self.tabBarController.delegate = self;
     self.window.rootViewController = self.tabBarController;
     self.window.rootViewController = self.tabBarController;
     int unreadMsgCount = [[RCIMClient sharedRCIMClient] getUnreadCount:@[ @(ConversationType_PRIVATE),@(ConversationType_APPSERVICE), @(ConversationType_GROUP),@(ConversationType_SYSTEM)
     int unreadMsgCount = [[RCIMClient sharedRCIMClient] getUnreadCount:@[ @(ConversationType_PRIVATE),@(ConversationType_APPSERVICE), @(ConversationType_GROUP),@(ConversationType_SYSTEM)
     ]];
     ]];

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSNetworkingManager.h

@@ -192,7 +192,7 @@ NS_ASSUME_NONNULL_BEGIN
 
 
 
 
 // 注销账号功能
 // 注销账号功能
-// /auth-server/user/logoff/{smsCode}
+// /api-auth/user/logoff/{smsCode}
 
 
 /// 注销账号
 /// 注销账号
 /// @param get get
 /// @param get get

+ 26 - 1
KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSTabBarViewController.m

@@ -9,8 +9,9 @@
 #import "CustomNavViewController.h"
 #import "CustomNavViewController.h"
 #import "KSBaseViewController.h"
 #import "KSBaseViewController.h"
 #import "UIImage+Color.h"
 #import "UIImage+Color.h"
+#import "AnimationHelper.h"
 
 
-@interface KSTabBarViewController ()
+@interface KSTabBarViewController ()<UITabBarControllerDelegate>
 
 
 @end
 @end
 
 
@@ -19,6 +20,7 @@
 - (void)viewDidLoad {
 - (void)viewDidLoad {
     [super viewDidLoad];
     [super viewDidLoad];
     // Do any additional setup after loading the view.
     // Do any additional setup after loading the view.
+    self.delegate = self;
     [self configItems];
     [self configItems];
 }
 }
 
 
@@ -95,6 +97,29 @@
     UITabBarItem * tabBarItem = self.tabBar.items[index];
     UITabBarItem * tabBarItem = self.tabBar.items[index];
     [tabBarItem setBadgeValue:nil];
     [tabBarItem setBadgeValue:nil];
 }
 }
+
+#pragma mark ----- UITabBarControllerDelegate
+- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
+    [self setAnaimationWithTabBarController:tabBarController selectViewController:viewController];
+}
+- (void)setAnaimationWithTabBarController:(UITabBarController *)tabBarController selectViewController:(UIViewController *)viewController {
+    //1.
+    NSInteger index = [tabBarController.viewControllers indexOfObject:viewController];
+    __block NSMutableArray <UIView *>*tabBarSwappableImageViews = [NSMutableArray arrayWithCapacity:4];
+    //2.
+    for (UIView *tempView in tabBarController.tabBar.subviews) {
+        if ([tempView isKindOfClass:NSClassFromString(@"UITabBarButton")]) {
+            for (UIImageView *tempImageView in tempView.subviews) {
+                if ([tempImageView isKindOfClass:NSClassFromString(@"UITabBarSwappableImageView")]) {
+                    [tabBarSwappableImageViews addObject:tempImageView];
+                }
+            }
+        }
+    }
+    //3.
+    __block UIView *currentTabBarSwappableImageView = tabBarSwappableImageViews[index];
+    [AnimationHelper lottieAnimation:currentTabBarSwappableImageView index:index];
+}
 /*
 /*
 #pragma mark - Navigation
 #pragma mark - Navigation
 
 

+ 22 - 0
KulexiuForTeacher/KulexiuForTeacher/Common/Base/TabbarAnimation/AnimationHelper.h

@@ -0,0 +1,22 @@
+//
+//  AnimationHelper.h
+//  KulexiuForStudent
+//
+//  Created by 王智 on 2022/7/20.
+//
+
+#import <Foundation/Foundation.h>
+#import <Lottie/Lottie.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface AnimationHelper : NSObject
+
+/// lottie动画
+/// @param currentAnimationView 当前动画视图
+/// @param index 当前动画视图索引
++ (void)lottieAnimation:(UIView *)currentAnimationView index:(NSInteger)index;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 37 - 0
KulexiuForTeacher/KulexiuForTeacher/Common/Base/TabbarAnimation/AnimationHelper.m

@@ -0,0 +1,37 @@
+//
+//  AnimationHelper.m
+//  KulexiuForStudent
+//
+//  Created by 王智 on 2022/7/20.
+//
+
+#import "AnimationHelper.h"
+
+@implementation AnimationHelper
+
+/// lottie动画
+/// @param currentAnimationView 当前动画视图
+/// @param index 当前动画视图索引
++ (void)lottieAnimation:(UIView *)currentAnimationView index:(NSInteger)index {
+    CGRect frame = currentAnimationView.frame;
+    frame.origin.x = 0;
+    frame.origin.y = 0;
+    //__block LOTAnimationView *lottieAnimationView = [self getAnimationViewAtTabbarIndex:index frame:frame];
+    __block LOTAnimationView *lottieAnimationView = [LOTAnimationView animationNamed:[NSString stringWithFormat:@"tabbar%ld",index+1]];
+    lottieAnimationView.frame = frame;
+    lottieAnimationView.contentMode = UIViewContentModeScaleAspectFill;
+    lottieAnimationView.animationSpeed = 1;
+    
+    //self.animationView = animationView;
+    lottieAnimationView.center = currentAnimationView.center;
+    [currentAnimationView.superview addSubview:lottieAnimationView];
+    currentAnimationView.hidden = YES;
+    [lottieAnimationView playFromProgress:0 toProgress:1 withCompletion:^(BOOL animationFinished) {
+        currentAnimationView.hidden = NO;
+        [lottieAnimationView removeFromSuperview];
+        lottieAnimationView = nil;
+    }];
+    
+}
+
+@end

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
KulexiuForTeacher/KulexiuForTeacher/Common/Base/TabbarAnimation/tabbar1.json


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
KulexiuForTeacher/KulexiuForTeacher/Common/Base/TabbarAnimation/tabbar2.json


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
KulexiuForTeacher/KulexiuForTeacher/Common/Base/TabbarAnimation/tabbar3.json


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
KulexiuForTeacher/KulexiuForTeacher/Common/Base/TabbarAnimation/tabbar4.json


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
KulexiuForTeacher/KulexiuForTeacher/Common/Base/TabbarAnimation/tabbar5.json


+ 14 - 14
KulexiuForTeacher/KulexiuForTeacher/Common/Define/PrefixHeader.pch

@@ -116,23 +116,23 @@ shouldPrevent = NO; \
 
 
 //#ifdef DEBUG
 //#ifdef DEBUG
 
 
-//#define hostURL (@"https://dev.colexiu.com")
-//#define SEALCLASSHOST (@"https://dev.colexiu.com/api-classroom")
-//#define WEBHOST (@"https://dev.colexiu.com/teacher")
-//#define SOCKET_URL (@"wss://dev.colexiu.com/audioAnalysis")
-//#define JSPUSH_ENVIRONMENT (NO)
-//#define RCIM_KEY (@"0vnjpoad0jbdz")
-//#define SUBMIT_UUID (YES)
+#define hostURL (@"https://dev.colexiu.com")
+#define SEALCLASSHOST (@"https://dev.colexiu.com/api-classroom")
+#define WEBHOST (@"https://dev.colexiu.com/teacher")
+#define SOCKET_URL (@"wss://dev.colexiu.com/audioAnalysis")
+#define JSPUSH_ENVIRONMENT (NO)
+#define RCIM_KEY (@"0vnjpoad0jbdz")
+#define SUBMIT_UUID (YES)
 
 
 //#else
 //#else
 
 
-#define hostURL (@"https://online.colexiu.com")
-#define SEALCLASSHOST (@"https://online.colexiu.com/api-classroom")
-#define WEBHOST (@"https://online.colexiu.com/teacher")
-#define SOCKET_URL (@"wss://online.colexiu.com/audioAnalysis")
-#define JSPUSH_ENVIRONMENT (YES)
-#define RCIM_KEY (@"e5t4ouvpe42pa")
-#define SUBMIT_UUID (YES)
+//#define hostURL (@"https://online.colexiu.com")
+//#define SEALCLASSHOST (@"https://online.colexiu.com/api-classroom")
+//#define WEBHOST (@"https://online.colexiu.com/teacher")
+//#define SOCKET_URL (@"wss://online.colexiu.com/audioAnalysis")
+//#define JSPUSH_ENVIRONMENT (YES)
+//#define RCIM_KEY (@"e5t4ouvpe42pa")
+//#define SUBMIT_UUID (YES)
 
 
 
 
 //#endif
 //#endif

+ 97 - 38
KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.m

@@ -7,54 +7,113 @@
 //
 //
 
 
 #import "KSGifRefreshFooter.h"
 #import "KSGifRefreshFooter.h"
+#import <Lottie/Lottie.h>
+
+@interface KSGifRefreshFooter ()
+
+@property(nonatomic, strong) LOTAnimationView *loadingView;
+@property(nonatomic, strong) NSString *jsonString;
+
+@end
 
 
 @implementation KSGifRefreshFooter
 @implementation KSGifRefreshFooter
 
 
-#pragma mark - 重写方法
-#pragma mark 基本设置
-- (void)prepare
-{
-    [super prepare];
-    
-    // 设置普通状态的动画图片
-    NSMutableArray *idleImages = [NSMutableArray array];
-    for (NSUInteger i = 1; i<=25; i++) {
-        UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"dropdown_anim__000%zd", i]];
-        [idleImages addObject:image];
+- (instancetype)init {
+    if (self = [super init]) {
+//        self.stateLabel.hidden = YES;
+        [self setJsonName:@"teacher_refresh.json"];
+    }
+    return self;
+}
+
+- (void)setJsonName:(NSString *)jsonName {
+    self.jsonString = jsonName;
+    [self addSubview:self.loadingView];
+}
+
+- (LOTAnimationView *)loadingView {
+    if(_loadingView == nil) {
+        //1.加载本地json
+        _loadingView = [LOTAnimationView animationNamed:self.jsonString];
+        //2.加载后台给的json(url)
+        _loadingView.frame = CGRectMake(([UIScreen mainScreen].bounds.size.width / 2.0) - 21, 0, 42, 55);
+        _loadingView.loopAnimation = YES;
+        _loadingView.contentMode = UIViewContentModeScaleAspectFill;
+        _loadingView.animationSpeed = 1.0;
+        _loadingView.loopAnimation = YES;
+    }
+    return _loadingView;
+}
+
+#pragma mark - innerMethod
+- (void)endRefreshing {
+    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+        [super endRefreshing];
+    });
+}
+
+#pragma mark - 监听控件的刷新状态
+
+- (void)setState:(MJRefreshState)state {
+    MJRefreshCheckState;
+    if(self.jsonString.length > 0) {
+        switch (state) {
+            case MJRefreshStateIdle: //普通闲置状态
+            {
+                [self.loadingView stop];
+                //self.loadingView.hidden = YES;
+                break;
+            }
+            case MJRefreshStatePulling: //松开就可以进行刷新的状态
+            {
+                //self.loadingView.hidden = NO;
+            }
+                break;
+
+            case MJRefreshStateRefreshing: //正在刷新中的状态
+            {
+                self.loadingView.animationProgress = 0;
+                [self.loadingView play];
+            }
+                break;
+            default:
+                break;
+        }
     }
     }
-    [self setImages:idleImages forState:MJRefreshStateIdle];
-    
-    // 设置即将刷新状态的动画图片(一松开就会刷新的状态)
-    NSMutableArray *refreshingImages = [NSMutableArray array];
-    for (NSUInteger i = 1; i<=67; i++) {
-        UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"dropdown_anim__000%zd", i]];
-        [refreshingImages addObject:image];
+}
+
+#pragma mark - 实时监听控件 scrollViewContentOffset
+
+- (void)scrollViewContentOffsetDidChange:(NSDictionary *)change {
+    [super scrollViewContentOffsetDidChange:change];
+    if(self.jsonString.length > 0) {
+        CGPoint point;
+        id newVelue = [change valueForKey:NSKeyValueChangeNewKey];
+        [(NSValue *)newVelue getValue:&point];
+        
+        //id newVelue1 = [change objectForKey:NSKeyValueChangeNewKey];
+        //CGPoint point1 = ((NSValue *)newVelue1).CGPointValue;//可以取值
+        
+        //id newVelue2 = [change objectForKey:@"new"];
+        //CGPoint point2 = *((__bridge CGPoint *)(newVelue2));//无法取到值
+        
+        self.loadingView.hidden = !(self.pullingPercent);
+        CGFloat progress = point.y / ([UIScreen mainScreen].bounds.size.height / 3.0);
+        if(self.state != MJRefreshStateRefreshing) {
+            self.loadingView.animationProgress = -progress;
+        }
     }
     }
-    [self setImages:refreshingImages duration:2.0f forState:MJRefreshStatePulling];
-    
-    // 设置正在刷新状态的动画图片
-    [self setImages:refreshingImages duration:1.0f forState:MJRefreshStateRefreshing];
+}
+
+- (void)prepare {
+    [super prepare];
+    // 设置控件的高度
+        self.mj_h = 55;
     // 初始化文字
     // 初始化文字
     [self setTitle:@"" forState:MJRefreshStateIdle];
     [self setTitle:@"" forState:MJRefreshStateIdle];
     [self setTitle:@"" forState:MJRefreshStatePulling];
     [self setTitle:@"" forState:MJRefreshStatePulling];
     [self setTitle:@"" forState:MJRefreshStateRefreshing];
     [self setTitle:@"" forState:MJRefreshStateRefreshing];
     [self setTitle:[NSBundle mj_localizedStringForKey:MJRefreshBackFooterNoMoreDataText] forState:MJRefreshStateNoMoreData];
     [self setTitle:[NSBundle mj_localizedStringForKey:MJRefreshBackFooterNoMoreDataText] forState:MJRefreshStateNoMoreData];
-    
-}
-
-- (void)placeSubviews
-{
-    [super placeSubviews];
-    
-    if (self.gifView.constraints.count) return;
-    
-    self.gifView.frame = self.bounds;
-    if (self.stateLabel.hidden || [NSString isEmptyString:self.stateLabel.text]) {
-        self.gifView.contentMode = UIViewContentModeCenter;
-    } else {
-        self.gifView.contentMode = UIViewContentModeRight;
-        self.gifView.mj_w = self.mj_w * 0.5 - self.labelLeftInset - self.stateLabel.mj_textWith * 0.5;
-    }
 }
 }
 
 
 /*
 /*

+ 92 - 24
KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.m

@@ -7,35 +7,103 @@
 //
 //
 
 
 #import "KSGifRefreshHeader.h"
 #import "KSGifRefreshHeader.h"
+#import <Lottie/Lottie.h>
+
+@interface KSGifRefreshHeader ()
+
+@property(nonatomic, strong) LOTAnimationView *loadingView;
+@property(nonatomic, strong) NSString *jsonString;
+
+@end
 
 
 @implementation KSGifRefreshHeader
 @implementation KSGifRefreshHeader
 
 
-#pragma mark - 重写方法
-#pragma mark 基本设置
-- (void)prepare {
-    [super prepare];
-    
-    // 设置普通状态的动画图片
-    NSMutableArray *idleImages = [NSMutableArray array];
-    for (NSUInteger i = 1; i<=3; i++) {
-        UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"dropdown_anim__000%zd", i]];
-        [idleImages addObject:image];
+- (instancetype)init {
+    if (self = [super init]) {
+        self.lastUpdatedTimeLabel.hidden = YES;
+        self.stateLabel.hidden = YES;
+        [self setJsonName:@"teacher_refresh.json"];
+    }
+    return self;
+}
+
+- (void)setJsonName:(NSString *)jsonName {
+    self.jsonString = jsonName;
+    [self addSubview:self.loadingView];
+}
+
+- (LOTAnimationView *)loadingView {
+    if(_loadingView == nil) {
+        //1.加载本地json
+        _loadingView = [LOTAnimationView animationNamed:self.jsonString];
+        //2.加载后台给的json(url)
+        _loadingView.frame = CGRectMake(([UIScreen mainScreen].bounds.size.width / 2.0) - 21, 0, 42, 55);
+        _loadingView.loopAnimation = YES;
+        _loadingView.contentMode = UIViewContentModeScaleAspectFill;
+        _loadingView.animationSpeed = 1.0;
+        _loadingView.loopAnimation = YES;
     }
     }
-     [self setImages:idleImages forState:MJRefreshStateIdle];
-    
-    // 设置即将刷新状态的动画图片(一松开就会刷新的状态)
-    NSMutableArray *refreshingImages = [NSMutableArray array];
-    for (NSUInteger i = 1; i<=67; i++) {
-        UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"dropdown_anim__000%zd", i]];
-        [refreshingImages addObject:image];
+    return _loadingView;
+}
+
+#pragma mark - innerMethod
+- (void)endRefreshing {
+    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+        [super endRefreshing];
+    });
+}
+
+#pragma mark - 监听控件的刷新状态
+
+- (void)setState:(MJRefreshState)state {
+    MJRefreshCheckState;
+    if(self.jsonString.length > 0) {
+        switch (state) {
+            case MJRefreshStateIdle: //普通闲置状态
+            {
+                [self.loadingView stop];
+                //self.loadingView.hidden = YES;
+                break;
+            }
+            case MJRefreshStatePulling: //松开就可以进行刷新的状态
+            {
+                //self.loadingView.hidden = NO;
+            }
+                break;
+
+            case MJRefreshStateRefreshing: //正在刷新中的状态
+            {
+                self.loadingView.animationProgress = 0;
+                [self.loadingView play];
+            }
+                break;
+            default:
+                break;
+        }
+    }
+}
+
+#pragma mark - 实时监听控件 scrollViewContentOffset
+
+- (void)scrollViewContentOffsetDidChange:(NSDictionary *)change {
+    [super scrollViewContentOffsetDidChange:change];
+    if(self.jsonString.length > 0) {
+        CGPoint point;
+        id newVelue = [change valueForKey:NSKeyValueChangeNewKey];
+        [(NSValue *)newVelue getValue:&point];
+        
+        //id newVelue1 = [change objectForKey:NSKeyValueChangeNewKey];
+        //CGPoint point1 = ((NSValue *)newVelue1).CGPointValue;//可以取值
+        
+        //id newVelue2 = [change objectForKey:@"new"];
+        //CGPoint point2 = *((__bridge CGPoint *)(newVelue2));//无法取到值
+        
+//        self.loadingView.hidden = !(self.pullingPercent);
+        CGFloat progress = point.y / ([UIScreen mainScreen].bounds.size.height / 3.0);
+        if(self.state != MJRefreshStateRefreshing) {
+            self.loadingView.animationProgress = -progress;
+        }
     }
     }
-    [self setImages:refreshingImages duration:2.0f forState:MJRefreshStatePulling];
-    
-    // 设置正在刷新状态的动画图片
-    [self setImages:refreshingImages duration:1.0f forState:MJRefreshStateRefreshing];
-    
-    self.lastUpdatedTimeLabel.hidden = YES;
-    self.stateLabel.hidden = YES;
 }
 }
 
 
 /*
 /*

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/teacher_refresh.json


+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/KulexiuForTeacher.entitlements

@@ -6,7 +6,7 @@
 	<string>development</string>
 	<string>development</string>
 	<key>com.apple.developer.associated-domains</key>
 	<key>com.apple.developer.associated-domains</key>
 	<array>
 	<array>
-		<string>applinks:dev.colexiu.com</string>
+		<string>applinks:online.colexiu.com</string>
 	</array>
 	</array>
 	<key>com.apple.developer.icloud-container-identifiers</key>
 	<key>com.apple.developer.icloud-container-identifiers</key>
 	<array>
 	<array>

+ 20 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Controller/LaunchAnimationViewController.h

@@ -0,0 +1,20 @@
+//
+//  LaunchAnimationViewController.h
+//  KulexiuForStudent
+//
+//  Created by 王智 on 2022/7/20.
+//
+
+#import <UIKit/UIKit.h>
+
+typedef void(^LaunchFinishCallback)(void);
+NS_ASSUME_NONNULL_BEGIN
+
+@interface LaunchAnimationViewController : UIViewController
+
+// 结束的回调
+- (void)launchAnimationFinish:(LaunchFinishCallback)callback;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 78 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Controller/LaunchAnimationViewController.m

@@ -0,0 +1,78 @@
+//
+//  LaunchAnimationViewController.m
+//  KulexiuForStudent
+//
+//  Created by 王智 on 2022/7/20.
+//
+
+#import "LaunchAnimationViewController.h"
+#import <Lottie/Lottie.h>
+
+@interface LaunchAnimationViewController ()
+
+@property (nonatomic, strong) LOTAnimationView *loadingView;
+
+@property (nonatomic, strong) NSString *jsonString;
+
+@property (nonatomic, copy) LaunchFinishCallback callback;
+
+@end
+
+@implementation LaunchAnimationViewController
+- (void)launchAnimationFinish:(LaunchFinishCallback)callback {
+    if (callback) {
+        self.callback = callback;
+    }
+}
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    // Do any additional setup after loading the view.
+    [self configUI];
+}
+
+- (void)configUI {
+    self.view.backgroundColor = [UIColor whiteColor];
+    
+    [self setJsonName:@"launchAni.json"];
+}
+
+- (void)setJsonName:(NSString *)jsonName {
+    self.jsonString = jsonName;
+    [self.view addSubview:self.loadingView];
+    MJWeakSelf;
+    [self.loadingView playWithCompletion:^(BOOL animationFinished) {
+        [weakSelf successBack];
+    }];
+}
+
+- (void)successBack {
+    if (self.callback) {
+        self.callback();
+    }
+}
+
+- (LOTAnimationView *)loadingView {
+    if(_loadingView == nil) {
+        //1.加载本地json
+        _loadingView = [LOTAnimationView animationNamed:self.jsonString];
+        //2.加载后台给的json(url)
+        _loadingView.frame = CGRectMake(0, 0, KPortraitWidth, KPortraitHeight);
+        _loadingView.loopAnimation = YES;
+        _loadingView.contentMode = UIViewContentModeScaleAspectFill;
+        _loadingView.animationSpeed = 1.0;
+        _loadingView.loopAnimation = NO;
+    }
+    return _loadingView;
+}
+/*
+#pragma mark - Navigation
+
+// In a storyboard-based application, you will often want to do a little preparation before navigation
+- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
+    // Get the new view controller using [segue destinationViewController].
+    // Pass the selected object to the new view controller.
+}
+*/
+
+@end

BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_0.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_1.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_10.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_11.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_12.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_13.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_14.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_15.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_16.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_17.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_18.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_19.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_2.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_20.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_21.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_22.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_23.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_24.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_25.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_26.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_27.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_28.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_29.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_3.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_30.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_31.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_4.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_5.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_6.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_7.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_8.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/images/img_9.png


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/AnimationLaunch/Model/launchAni.json


+ 0 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/ShareInChat/Controller/KSShareChooseViewController.h → KulexiuForTeacher/KulexiuForTeacher/Module/MidiPlayer/ShareInChat/Controller/KSShareChooseViewController.h


+ 0 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/ShareInChat/Controller/KSShareChooseViewController.m → KulexiuForTeacher/KulexiuForTeacher/Module/MidiPlayer/ShareInChat/Controller/KSShareChooseViewController.m


+ 0 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/ShareInChat/Controller/KSShareGroupViewController.h → KulexiuForTeacher/KulexiuForTeacher/Module/MidiPlayer/ShareInChat/Controller/KSShareGroupViewController.h


+ 0 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/ShareInChat/Controller/KSShareGroupViewController.m → KulexiuForTeacher/KulexiuForTeacher/Module/MidiPlayer/ShareInChat/Controller/KSShareGroupViewController.m


+ 0 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/ShareInChat/View/ShareChooseMainView.h → KulexiuForTeacher/KulexiuForTeacher/Module/MidiPlayer/ShareInChat/View/ShareChooseMainView.h


+ 0 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/ShareInChat/View/ShareChooseMainView.m → KulexiuForTeacher/KulexiuForTeacher/Module/MidiPlayer/ShareInChat/View/ShareChooseMainView.m


+ 3 - 1
KulexiuForTeacher/Podfile

@@ -24,7 +24,9 @@
   pod 'Whiteboard'
   pod 'Whiteboard'
   pod 'RSKImageCropper'
   pod 'RSKImageCropper'
   pod 'TYCyclePagerView'
   pod 'TYCyclePagerView'
-
+  
+  #lottie 动画库
+  pod 'lottie-ios', '~> 2.5'
 #  友盟
 #  友盟
 #  pod 'UMCommon'
 #  pod 'UMCommon'
 #  pod 'UMDevice'
 #  pod 'UMDevice'

+ 5 - 1
KulexiuForTeacher/Podfile.lock

@@ -23,6 +23,7 @@ PODS:
     - JCore (< 3.0.0, >= 2.0.0)
     - JCore (< 3.0.0, >= 2.0.0)
   - JXCategoryView (1.5.9)
   - JXCategoryView (1.5.9)
   - JXPagingView/Pager (2.1.2)
   - JXPagingView/Pager (2.1.2)
+  - lottie-ios (2.5.3)
   - Masonry (1.1.0)
   - Masonry (1.1.0)
   - MBProgressHUD (1.2.0)
   - MBProgressHUD (1.2.0)
   - MJExtension (3.3.0)
   - MJExtension (3.3.0)
@@ -97,6 +98,7 @@ DEPENDENCIES:
   - JPush (= 4.3.0)
   - JPush (= 4.3.0)
   - JXCategoryView
   - JXCategoryView
   - JXPagingView/Pager
   - JXPagingView/Pager
+  - lottie-ios (~> 2.5)
   - Masonry (~> 1.1.0)
   - Masonry (~> 1.1.0)
   - MBProgressHUD (~> 1.2.0)
   - MBProgressHUD (~> 1.2.0)
   - MJExtension (~> 3.3.0)
   - MJExtension (~> 3.3.0)
@@ -125,6 +127,7 @@ SPEC REPOS:
     - JPush
     - JPush
     - JXCategoryView
     - JXCategoryView
     - JXPagingView
     - JXPagingView
+    - lottie-ios
     - Masonry
     - Masonry
     - MBProgressHUD
     - MBProgressHUD
     - MJExtension
     - MJExtension
@@ -151,6 +154,7 @@ SPEC CHECKSUMS:
   JPush: 88d6361fbec4be7c8b55b20b7fe1c292228f6bc2
   JPush: 88d6361fbec4be7c8b55b20b7fe1c292228f6bc2
   JXCategoryView: 2ef9ecfd3735158d009ce02d1f29811aa822da65
   JXCategoryView: 2ef9ecfd3735158d009ce02d1f29811aa822da65
   JXPagingView: 90924b364a2ff7e94db534fad1fa50925ff69ee4
   JXPagingView: 90924b364a2ff7e94db534fad1fa50925ff69ee4
+  lottie-ios: a50d5c0160425cd4b01b852bb9578963e6d92d31
   Masonry: 678fab65091a9290e40e2832a55e7ab731aad201
   Masonry: 678fab65091a9290e40e2832a55e7ab731aad201
   MBProgressHUD: 3ee5efcc380f6a79a7cc9b363dd669c5e1ae7406
   MBProgressHUD: 3ee5efcc380f6a79a7cc9b363dd669c5e1ae7406
   MJExtension: 01704cca2b60a214c10761b6491eab74069d68a9
   MJExtension: 01704cca2b60a214c10761b6491eab74069d68a9
@@ -167,6 +171,6 @@ SPEC CHECKSUMS:
   Whiteboard: dc3d59f1f826e6065bd054bf499650c829753aff
   Whiteboard: dc3d59f1f826e6065bd054bf499650c829753aff
   YYModel: 2a7fdd96aaa4b86a824e26d0c517de8928c04b30
   YYModel: 2a7fdd96aaa4b86a824e26d0c517de8928c04b30
 
 
-PODFILE CHECKSUM: 0caee30b8f6bff6e69eccce77afbaa62f4038a98
+PODFILE CHECKSUM: cf2d25529bb7afc537ba3188b6ef15ad3edac34b
 
 
 COCOAPODS: 1.11.3
 COCOAPODS: 1.11.3

+ 5 - 1
KulexiuForTeacher/Pods/Manifest.lock

@@ -23,6 +23,7 @@ PODS:
     - JCore (< 3.0.0, >= 2.0.0)
     - JCore (< 3.0.0, >= 2.0.0)
   - JXCategoryView (1.5.9)
   - JXCategoryView (1.5.9)
   - JXPagingView/Pager (2.1.2)
   - JXPagingView/Pager (2.1.2)
+  - lottie-ios (2.5.3)
   - Masonry (1.1.0)
   - Masonry (1.1.0)
   - MBProgressHUD (1.2.0)
   - MBProgressHUD (1.2.0)
   - MJExtension (3.3.0)
   - MJExtension (3.3.0)
@@ -97,6 +98,7 @@ DEPENDENCIES:
   - JPush (= 4.3.0)
   - JPush (= 4.3.0)
   - JXCategoryView
   - JXCategoryView
   - JXPagingView/Pager
   - JXPagingView/Pager
+  - lottie-ios (~> 2.5)
   - Masonry (~> 1.1.0)
   - Masonry (~> 1.1.0)
   - MBProgressHUD (~> 1.2.0)
   - MBProgressHUD (~> 1.2.0)
   - MJExtension (~> 3.3.0)
   - MJExtension (~> 3.3.0)
@@ -125,6 +127,7 @@ SPEC REPOS:
     - JPush
     - JPush
     - JXCategoryView
     - JXCategoryView
     - JXPagingView
     - JXPagingView
+    - lottie-ios
     - Masonry
     - Masonry
     - MBProgressHUD
     - MBProgressHUD
     - MJExtension
     - MJExtension
@@ -151,6 +154,7 @@ SPEC CHECKSUMS:
   JPush: 88d6361fbec4be7c8b55b20b7fe1c292228f6bc2
   JPush: 88d6361fbec4be7c8b55b20b7fe1c292228f6bc2
   JXCategoryView: 2ef9ecfd3735158d009ce02d1f29811aa822da65
   JXCategoryView: 2ef9ecfd3735158d009ce02d1f29811aa822da65
   JXPagingView: 90924b364a2ff7e94db534fad1fa50925ff69ee4
   JXPagingView: 90924b364a2ff7e94db534fad1fa50925ff69ee4
+  lottie-ios: a50d5c0160425cd4b01b852bb9578963e6d92d31
   Masonry: 678fab65091a9290e40e2832a55e7ab731aad201
   Masonry: 678fab65091a9290e40e2832a55e7ab731aad201
   MBProgressHUD: 3ee5efcc380f6a79a7cc9b363dd669c5e1ae7406
   MBProgressHUD: 3ee5efcc380f6a79a7cc9b363dd669c5e1ae7406
   MJExtension: 01704cca2b60a214c10761b6491eab74069d68a9
   MJExtension: 01704cca2b60a214c10761b6491eab74069d68a9
@@ -167,6 +171,6 @@ SPEC CHECKSUMS:
   Whiteboard: dc3d59f1f826e6065bd054bf499650c829753aff
   Whiteboard: dc3d59f1f826e6065bd054bf499650c829753aff
   YYModel: 2a7fdd96aaa4b86a824e26d0c517de8928c04b30
   YYModel: 2a7fdd96aaa4b86a824e26d0c517de8928c04b30
 
 
-PODFILE CHECKSUM: 0caee30b8f6bff6e69eccce77afbaa62f4038a98
+PODFILE CHECKSUM: cf2d25529bb7afc537ba3188b6ef15ad3edac34b
 
 
 COCOAPODS: 1.11.3
 COCOAPODS: 1.11.3

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2104 - 1833
KulexiuForTeacher/Pods/Pods.xcodeproj/project.pbxproj


+ 5 - 0
KulexiuForTeacher/Pods/Pods.xcodeproj/xcuserdata/wangzhi.xcuserdatad/xcschemes/xcschememanagement.plist

@@ -134,6 +134,11 @@
 			<key>isShown</key>
 			<key>isShown</key>
 			<false/>
 			<false/>
 		</dict>
 		</dict>
+		<key>lottie-ios.xcscheme</key>
+		<dict>
+			<key>isShown</key>
+			<false/>
+		</dict>
 	</dict>
 	</dict>
 	<key>SuppressBuildableAutocreation</key>
 	<key>SuppressBuildableAutocreation</key>
 	<dict/>
 	<dict/>

+ 205 - 0
KulexiuForTeacher/Pods/Target Support Files/Pods-KulexiuForTeacher/Pods-KulexiuForTeacher-acknowledgements.markdown

@@ -468,4 +468,209 @@ You may obtain a copy of the License at
     See the License for the specific language governing permissions and
     See the License for the specific language governing permissions and
     limitations under the License.
     limitations under the License.
 
 
+
+## lottie-ios
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright 2018 Airbnb, Inc.
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
 Generated by CocoaPods - https://cocoapods.org
 Generated by CocoaPods - https://cocoapods.org

+ 211 - 0
KulexiuForTeacher/Pods/Target Support Files/Pods-KulexiuForTeacher/Pods-KulexiuForTeacher-acknowledgements.plist

@@ -626,6 +626,217 @@ You may obtain a copy of the License at
 		</dict>
 		</dict>
 		<dict>
 		<dict>
 			<key>FooterText</key>
 			<key>FooterText</key>
+			<string>                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright 2018 Airbnb, Inc.
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+</string>
+			<key>License</key>
+			<string>Apache</string>
+			<key>Title</key>
+			<string>lottie-ios</string>
+			<key>Type</key>
+			<string>PSGroupSpecifier</string>
+		</dict>
+		<dict>
+			<key>FooterText</key>
 			<string>Generated by CocoaPods - https://cocoapods.org</string>
 			<string>Generated by CocoaPods - https://cocoapods.org</string>
 			<key>Title</key>
 			<key>Title</key>
 			<string></string>
 			<string></string>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 4
KulexiuForTeacher/Pods/Target Support Files/Pods-KulexiuForTeacher/Pods-KulexiuForTeacher.debug.xcconfig


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 4
KulexiuForTeacher/Pods/Target Support Files/Pods-KulexiuForTeacher/Pods-KulexiuForTeacher.release.xcconfig


Vissa filer visades inte eftersom för många filer har ändrats