Steven 2 vuotta sitten
vanhempi
commit
63a8867a19
57 muutettua tiedostoa jossa 2976 lisäystä ja 1848 poistoa
  1. 80 0
      KulexiuForTeacher/KulexiuForTeacher.xcodeproj/project.pbxproj
  2. 1 1
      KulexiuForTeacher/KulexiuForTeacher.xcodeproj/xcuserdata/wangzhi.xcuserdatad/xcschemes/xcschememanagement.plist
  3. BIN
      KulexiuForTeacher/KulexiuForTeacher.xcworkspace/xcuserdata/wangzhi.xcuserdatad/UserInterfaceState.xcuserstate
  4. 0 48
      KulexiuForTeacher/KulexiuForTeacher.xcworkspace/xcuserdata/wangzhi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
  5. 2 0
      KulexiuForTeacher/KulexiuForTeacher/AppDelegate.h
  6. 25 9
      KulexiuForTeacher/KulexiuForTeacher/AppDelegate.m
  7. 6 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Guide/Contents.json
  8. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Guide/guidePage1.imageset/Contents.json
  9. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Guide/guidePage1.imageset/guidePage1@2x.png
  10. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Guide/guidePage1.imageset/guidePage1@3x.png
  11. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Guide/guidePage2.imageset/Contents.json
  12. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Guide/guidePage2.imageset/guidePage2@2x.png
  13. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Guide/guidePage2.imageset/guidePage2@3x.png
  14. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Guide/guidePage3.imageset/Contents.json
  15. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Guide/guidePage3.imageset/guidePage3@2x.png
  16. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Guide/guidePage3.imageset/guidePage3@3x.png
  17. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/ScanView.imageset/Contents.json
  18. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/ScanView.imageset/ScanView@2x.png
  19. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/ScanView.imageset/ScanView@3x.png
  20. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/home_scan.imageset/Contents.json
  21. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/home_scan.imageset/home_scan@2x.png
  22. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/home_scan.imageset/home_scan@3x.png
  23. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/scan_photo.imageset/Contents.json
  24. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/scan_photo.imageset/scan_photo@2x.png
  25. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/scan_photo.imageset/scan_photo@3x.png
  26. 2 1
      KulexiuForTeacher/KulexiuForTeacher/Common/Base/BaseViewController.h
  27. 19 0
      KulexiuForTeacher/KulexiuForTeacher/Common/Base/BaseViewController.m
  28. 1 0
      KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSNetworkingManager.m
  29. 3 0
      KulexiuForTeacher/KulexiuForTeacher/Common/Define/PrefixHeader.pch
  30. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/Controller/KSChatConversationViewController.m
  31. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/ShareMusic/View/MusicChooseCell.m
  32. 40 2
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Controller/HomeViewController.m
  33. 3 4
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/Model/stacked_line_chart.html
  34. 4 7
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/NotiferMessage/View/NotiferMessageCell.xib
  35. 16 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/ScanView/Controller/KSScanViewController.h
  36. 213 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/ScanView/Controller/KSScanViewController.m
  37. 27 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/ScanView/View/ScanNavView.h
  38. 47 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/ScanView/View/ScanNavView.m
  39. 82 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/ScanView/View/ScanNavView.xib
  40. 6 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeNavView.h
  41. 6 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeNavView.m
  42. 19 3
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeNavView.xib
  43. 18 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Login/Guide/Controller/GuideViewController.h
  44. 161 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Login/Guide/Controller/GuideViewController.m
  45. 24 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Login/Guide/View/GuideListView.h
  46. 75 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Login/Guide/View/GuideListView.m
  47. 95 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Login/Guide/View/GuideListView.xib
  48. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageMusicCell.m
  49. 2 0
      KulexiuForTeacher/Podfile
  50. 5 1
      KulexiuForTeacher/Podfile.lock
  51. 5 1
      KulexiuForTeacher/Pods/Manifest.lock
  52. 1780 1755
      KulexiuForTeacher/Pods/Pods.xcodeproj/project.pbxproj
  53. 10 3
      KulexiuForTeacher/Pods/Pods.xcodeproj/xcuserdata/wangzhi.xcuserdatad/xcschemes/xcschememanagement.plist
  54. 25 0
      KulexiuForTeacher/Pods/Target Support Files/Pods-KulexiuForTeacher/Pods-KulexiuForTeacher-acknowledgements.markdown
  55. 31 0
      KulexiuForTeacher/Pods/Target Support Files/Pods-KulexiuForTeacher/Pods-KulexiuForTeacher-acknowledgements.plist
  56. 4 4
      KulexiuForTeacher/Pods/Target Support Files/Pods-KulexiuForTeacher/Pods-KulexiuForTeacher.debug.xcconfig
  57. 4 4
      KulexiuForTeacher/Pods/Target Support Files/Pods-KulexiuForTeacher/Pods-KulexiuForTeacher.release.xcconfig

+ 80 - 0
KulexiuForTeacher/KulexiuForTeacher.xcodeproj/project.pbxproj

@@ -688,6 +688,12 @@
 		BCB909042851E25D00F5FF69 /* KSShareChooseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB909032851E25D00F5FF69 /* KSShareChooseViewController.m */; };
 		BCB909072851E32C00F5FF69 /* ShareChooseMainView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB909062851E32C00F5FF69 /* ShareChooseMainView.m */; };
 		BCB9FA13286C7C6C005D766B /* KSShareGroupViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB9FA12286C7C6C005D766B /* KSShareGroupViewController.m */; };
+		BCB9FA1C286D537E005D766B /* KSScanViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB9FA1B286D537E005D766B /* KSScanViewController.m */; };
+		BCB9FA1F286D539A005D766B /* ScanNavView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB9FA1E286D539A005D766B /* ScanNavView.m */; };
+		BCB9FA21286D53A1005D766B /* ScanNavView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCB9FA20286D53A1005D766B /* ScanNavView.xib */; };
+		BCB9FA40286DA337005D766B /* GuideViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB9FA3B286DA337005D766B /* GuideViewController.m */; };
+		BCB9FA41286DA337005D766B /* GuideListView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCB9FA3D286DA337005D766B /* GuideListView.xib */; };
+		BCB9FA42286DA337005D766B /* GuideListView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB9FA3F286DA337005D766B /* GuideListView.m */; };
 		BCC03F88280460C000461B7C /* InstrumentHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCC03F86280460C000461B7C /* InstrumentHeaderView.m */; };
 		BCC03F89280460C000461B7C /* InstrumentHeaderView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCC03F87280460C000461B7C /* InstrumentHeaderView.xib */; };
 		BCC03F8C280526B300461B7C /* MyStyleVideoChooseView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCC03F8B280526B300461B7C /* MyStyleVideoChooseView.m */; };
@@ -2074,6 +2080,16 @@
 		BCB909062851E32C00F5FF69 /* ShareChooseMainView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ShareChooseMainView.m; sourceTree = "<group>"; };
 		BCB9FA11286C7C6C005D766B /* KSShareGroupViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSShareGroupViewController.h; sourceTree = "<group>"; };
 		BCB9FA12286C7C6C005D766B /* KSShareGroupViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSShareGroupViewController.m; sourceTree = "<group>"; };
+		BCB9FA1A286D537E005D766B /* KSScanViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSScanViewController.h; sourceTree = "<group>"; };
+		BCB9FA1B286D537E005D766B /* KSScanViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSScanViewController.m; sourceTree = "<group>"; };
+		BCB9FA1D286D539A005D766B /* ScanNavView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ScanNavView.h; sourceTree = "<group>"; };
+		BCB9FA1E286D539A005D766B /* ScanNavView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ScanNavView.m; sourceTree = "<group>"; };
+		BCB9FA20286D53A1005D766B /* ScanNavView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ScanNavView.xib; sourceTree = "<group>"; };
+		BCB9FA3A286DA337005D766B /* GuideViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GuideViewController.h; sourceTree = "<group>"; };
+		BCB9FA3B286DA337005D766B /* GuideViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GuideViewController.m; sourceTree = "<group>"; };
+		BCB9FA3D286DA337005D766B /* GuideListView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = GuideListView.xib; sourceTree = "<group>"; };
+		BCB9FA3E286DA337005D766B /* GuideListView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GuideListView.h; sourceTree = "<group>"; };
+		BCB9FA3F286DA337005D766B /* GuideListView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GuideListView.m; sourceTree = "<group>"; };
 		BCC03F85280460C000461B7C /* InstrumentHeaderView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InstrumentHeaderView.h; sourceTree = "<group>"; };
 		BCC03F86280460C000461B7C /* InstrumentHeaderView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = InstrumentHeaderView.m; sourceTree = "<group>"; };
 		BCC03F87280460C000461B7C /* InstrumentHeaderView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = InstrumentHeaderView.xib; sourceTree = "<group>"; };
@@ -3514,6 +3530,7 @@
 		277935F227E32BBF0010E277 /* Login */ = {
 			isa = PBXGroup;
 			children = (
+				BCB9FA38286DA337005D766B /* Guide */,
 				277935F327E32BBF0010E277 /* Controller */,
 				277935F427E32BBF0010E277 /* Model */,
 				277935F527E32BBF0010E277 /* View */,
@@ -3602,6 +3619,7 @@
 		277935FA27E32BBF0010E277 /* Home */ = {
 			isa = PBXGroup;
 			children = (
+				BCB9FA17286D52CF005D766B /* ScanView */,
 				BC8C2C7428264CCE00FBA5D5 /* ReceiveEvaluate */,
 				BCFE540A28178BD100AD6786 /* Income */,
 				BC1365BE280D44D500EB03E2 /* NotiferMessage */,
@@ -5366,6 +5384,62 @@
 			path = View;
 			sourceTree = "<group>";
 		};
+		BCB9FA17286D52CF005D766B /* ScanView */ = {
+			isa = PBXGroup;
+			children = (
+				BCB9FA18286D52CF005D766B /* Controller */,
+				BCB9FA19286D52CF005D766B /* View */,
+			);
+			path = ScanView;
+			sourceTree = "<group>";
+		};
+		BCB9FA18286D52CF005D766B /* Controller */ = {
+			isa = PBXGroup;
+			children = (
+				BCB9FA1A286D537E005D766B /* KSScanViewController.h */,
+				BCB9FA1B286D537E005D766B /* KSScanViewController.m */,
+			);
+			path = Controller;
+			sourceTree = "<group>";
+		};
+		BCB9FA19286D52CF005D766B /* View */ = {
+			isa = PBXGroup;
+			children = (
+				BCB9FA1D286D539A005D766B /* ScanNavView.h */,
+				BCB9FA1E286D539A005D766B /* ScanNavView.m */,
+				BCB9FA20286D53A1005D766B /* ScanNavView.xib */,
+			);
+			path = View;
+			sourceTree = "<group>";
+		};
+		BCB9FA38286DA337005D766B /* Guide */ = {
+			isa = PBXGroup;
+			children = (
+				BCB9FA39286DA337005D766B /* Controller */,
+				BCB9FA3C286DA337005D766B /* View */,
+			);
+			path = Guide;
+			sourceTree = "<group>";
+		};
+		BCB9FA39286DA337005D766B /* Controller */ = {
+			isa = PBXGroup;
+			children = (
+				BCB9FA3A286DA337005D766B /* GuideViewController.h */,
+				BCB9FA3B286DA337005D766B /* GuideViewController.m */,
+			);
+			path = Controller;
+			sourceTree = "<group>";
+		};
+		BCB9FA3C286DA337005D766B /* View */ = {
+			isa = PBXGroup;
+			children = (
+				BCB9FA3D286DA337005D766B /* GuideListView.xib */,
+				BCB9FA3E286DA337005D766B /* GuideListView.h */,
+				BCB9FA3F286DA337005D766B /* GuideListView.m */,
+			);
+			path = View;
+			sourceTree = "<group>";
+		};
 		BCC9F35A27F69BD100647449 /* SealClass */ = {
 			isa = PBXGroup;
 			children = (
@@ -6055,12 +6129,14 @@
 				BCF1BA5627F5CBA100FA36C4 /* LiveSeatApplyView.xib in Resources */,
 				BC8B6E562856ED0600866917 /* iOS集成升级必读.pdf in Resources */,
 				BC8B6E6A28575DEE00866917 /* MusicDisplayView.xib in Resources */,
+				BCB9FA21286D53A1005D766B /* ScanNavView.xib in Resources */,
 				BC483233282A6473005F534C /* HomeRecentCourseView.xib in Resources */,
 				2708565927ED961900EC8E72 /* ApplyBottomView.xib in Resources */,
 				BCB399AE27F946AA00AFF376 /* CourseNavView.xib in Resources */,
 				BC0A22A8284751F80065C1AB /* DownloadStatusCell.xib in Resources */,
 				275B170D27EB14AC0081FDEF /* KSChatListSearchView.xib in Resources */,
 				BC7CFFCA2817F2FF00CAEB21 /* CashRecordListCell.xib in Resources */,
+				BCB9FA41286DA337005D766B /* GuideListView.xib in Resources */,
 				BCB908DD2850A71800F5FF69 /* ShareMusicCellContentView.xib in Resources */,
 				27D83F5927F4225D00062476 /* LivePreviewBodyView.xib in Resources */,
 				BC41104A2806706800800BD9 /* HomeworkListCell.xib in Resources */,
@@ -6436,6 +6512,7 @@
 				BCED5CB4285083AC009A42DE /* ShareMusicViewController.m in Sources */,
 				BC1365B8280D130C00EB03E2 /* MyVideoCourseBodyView.m in Sources */,
 				2779323F27E30FC30010E277 /* VoMemoryCache.m in Sources */,
+				BCB9FA40286DA337005D766B /* GuideViewController.m in Sources */,
 				BCC9F44B27F69BD200647449 /* KSIMService.m in Sources */,
 				277931C027E30FC20010E277 /* ArchiveTools.m in Sources */,
 				277931FA27E30FC20010E277 /* CALayer+Layout.m in Sources */,
@@ -6711,6 +6788,7 @@
 				277932E827E310070010E277 /* NSBundle+TZImagePicker.m in Sources */,
 				BC8A2CF828476C3000122BBE /* MusicScoreViewController.m in Sources */,
 				BC0A2282284751DF0065C1AB /* MetronomeAlertView.m in Sources */,
+				BCB9FA1F286D539A005D766B /* ScanNavView.m in Sources */,
 				2779330E27E3105F0010E277 /* DZNSegmentedControl.m in Sources */,
 				BC245707286C434800D1F7C0 /* CAudioUnit.m in Sources */,
 				277931D027E30FC20010E277 /* UILabel+QWTopLeftLabel.m in Sources */,
@@ -6813,6 +6891,7 @@
 				2708565627ED8BD000EC8E72 /* ApplyBottomView.m in Sources */,
 				277931EE27E30FC20010E277 /* UIView+Dealloc.m in Sources */,
 				2779320B27E30FC30010E277 /* KSFullDatePicker.m in Sources */,
+				BCB9FA1C286D537E005D766B /* KSScanViewController.m in Sources */,
 				277931F427E30FC20010E277 /* NSDate+Extension.m in Sources */,
 				277931C127E30FC20010E277 /* NSDictionary+KSSafe.m in Sources */,
 				277931FF27E30FC30010E277 /* GRCreateManager.m in Sources */,
@@ -6834,6 +6913,7 @@
 				BC483231282A646A005F534C /* HomeRecentCourseView.m in Sources */,
 				275B172127EB1BE60081FDEF /* KSSearchResultViewCell.m in Sources */,
 				277931C327E30FC20010E277 /* NSArray+KSSafe.m in Sources */,
+				BCB9FA42286DA337005D766B /* GuideListView.m in Sources */,
 				BCE6A09527F823DC00C97704 /* MinePageMusicCell.m in Sources */,
 				27D83F3F27F3EA8A00062476 /* MinePageCourseView.m in Sources */,
 				BCC9F41D27F69BD200647449 /* RecentSharedVideoCell.m in Sources */,

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher.xcodeproj/xcuserdata/wangzhi.xcuserdatad/xcschemes/xcschememanagement.plist

@@ -7,7 +7,7 @@
 		<key>KulexiuForTeacher.xcscheme_^#shared#^_</key>
 		<dict>
 			<key>orderHint</key>
-			<integer>25</integer>
+			<integer>26</integer>
 		</dict>
 	</dict>
 </dict>

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


+ 0 - 48
KulexiuForTeacher/KulexiuForTeacher.xcworkspace/xcuserdata/wangzhi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -712,54 +712,6 @@
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "DCE33DC0-A81A-435E-9A5A-44028AAD5CE7"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "KulexiuForTeacher/Common/Base/KSBaseWKWebViewController.m"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "97"
-            endingLineNumber = "97"
-            landmarkName = "-setParmDic:"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "6DC5AB8D-4C47-4AA6-8CEF-718ADDD5742E"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "KulexiuForTeacher/Module/Home/Income/Controller/IncomeCountViewController.m"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "311"
-            endingLineNumber = "311"
-            landmarkName = "-configMessage:headSource:"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "8D42E391-ED0E-405D-ACB1-767DC454B3DE"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "KulexiuForTeacher/Module/Home/Income/Controller/IncomeCountViewController.m"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "347"
-            endingLineNumber = "347"
-            landmarkName = "-configMessage:headSource:"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
             uuid = "F7171A21-1BB6-44FD-88C5-DDEDFC27482C"
             shouldBeEnabled = "Yes"
             ignoreCount = "0"

+ 2 - 0
KulexiuForTeacher/KulexiuForTeacher/AppDelegate.h

@@ -22,5 +22,7 @@
 - (void)requestRongCloudToken;
 - (void)appTrackActionAuth;
 
+- (void)initLoginView;
+
 @end
 

+ 25 - 9
KulexiuForTeacher/KulexiuForTeacher/AppDelegate.m

@@ -36,6 +36,7 @@
 #import "ReceiveEvaluateListController.h"
 #import "HomeworkDetailViewController.h"
 #import "WXApi.h"
+#import "GuideViewController.h"
 
 @interface RCNaviDataInfo : NSObject
 
@@ -108,19 +109,28 @@
     // 融云相关配置
     [self configIM];
     
-    NSString *token = UserDefault(TokenKey);
-    NSLog(@"------token  %@",token);
-    if ([NSString isEmptyString:token]) { // 未登录
-        LoginViewController *logonVC = [[LoginViewController alloc] init];
-        CustomNavViewController *navCtrl = [[CustomNavViewController alloc] initWithRootViewController:logonVC];
+    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 {
-        [KSNetworkingManager configRequestHeader];
-        [USER_MANAGER queryUserInfoConnectRongCloud:YES];
-        [self initTableBar];
-        self.window.rootViewController=_tabBarController;
+        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;
+        }
     }
+    
     [self.window makeKeyAndVisible];
     
     if (@available(iOS 15.0, *)) {
@@ -666,6 +676,12 @@ didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
     [[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];
 }
 
+- (void)initLoginView {
+    LoginViewController *logonVC = [[LoginViewController alloc] init];
+    CustomNavViewController *navCtrl = [[CustomNavViewController alloc] initWithRootViewController:logonVC];
+    self.window.rootViewController = navCtrl;
+}
+
 - (void)applicationWillResignActive:(UIApplication *)application {
     // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
     // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.

+ 6 - 0
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Guide/Contents.json

@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 22 - 0
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Guide/guidePage1.imageset/Contents.json

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

BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Guide/guidePage1.imageset/guidePage1@2x.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Guide/guidePage1.imageset/guidePage1@3x.png


+ 22 - 0
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Guide/guidePage2.imageset/Contents.json

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

BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Guide/guidePage2.imageset/guidePage2@2x.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Guide/guidePage2.imageset/guidePage2@3x.png


+ 22 - 0
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Guide/guidePage3.imageset/Contents.json

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

BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Guide/guidePage3.imageset/guidePage3@2x.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Guide/guidePage3.imageset/guidePage3@3x.png


+ 22 - 0
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/ScanView.imageset/Contents.json

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

BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/ScanView.imageset/ScanView@2x.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/ScanView.imageset/ScanView@3x.png


+ 22 - 0
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/home_scan.imageset/Contents.json

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

BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/home_scan.imageset/home_scan@2x.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/home_scan.imageset/home_scan@3x.png


+ 22 - 0
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/scan_photo.imageset/Contents.json

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

BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/scan_photo.imageset/scan_photo@2x.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/scan_photo.imageset/scan_photo@3x.png


+ 2 - 1
KulexiuForTeacher/KulexiuForTeacher/Common/Base/BaseViewController.h

@@ -19,7 +19,8 @@ NS_ASSUME_NONNULL_BEGIN
 - (void)showhud;
 - (void)removehub;
 - (void)MBPShow:(NSString*)str;
-
+// 提示后续操作
+- (void)KSShowMsg:(NSString *)message promptCompletion:(void(^)(void))promptCompletion;
 @end
 
 

+ 19 - 0
KulexiuForTeacher/KulexiuForTeacher/Common/Base/BaseViewController.m

@@ -8,6 +8,8 @@
 #import "BaseViewController.h"
 #import "UIView+Hints.h"
 
+#define PROMPT_TIME  1.5f
+
 @interface BaseViewController ()
 {
     MBProgressHUD *t_MBProgressHUD;
@@ -91,6 +93,23 @@
     [hud hideAnimated:YES afterDelay:hiddenTime];
 }
 
+
+- (void)KSShowMsg:(NSString *)message promptCompletion:(void (^)(void))promptCompletion {
+    [MBProgressHUD hideHUD];
+    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:[UIApplication sharedApplication].keyWindow animated:YES];
+    hud.removeFromSuperViewOnHide = YES;
+    hud.mode = MBProgressHUDModeText;
+    hud.label.text = message;
+    hud.label.numberOfLines = 0;
+    hud.label.textColor = [UIColor whiteColor];
+    hud.minSize = CGSizeMake(132.0f, 40.0f);
+    hud.bezelView.style = MBProgressHUDBackgroundStyleSolidColor;
+    hud.bezelView.backgroundColor = HexRGBAlpha(0x000000, 0.8);
+    [hud hideAnimated:YES afterDelay:PROMPT_TIME];
+    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(PROMPT_TIME * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+        promptCompletion();
+    });
+}
 /*
 #pragma mark - Navigation
 

+ 1 - 0
KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSNetworkingManager.m

@@ -734,6 +734,7 @@
     NSMutableDictionary *parm = [NSMutableDictionary dictionary];
     [parm setValue:@"2" forKey:@"catalogIds"];
     [parm setValue:@"TEACHER" forKey:@"catalogType"];
+    [parm setValue:@(1) forKey:@"status"];
     [parm setValue:@(1) forKey:@"page"];
     [parm setValue:@(5) forKey:@"rows"];
     [self request:post andWithUrl:url and:parm success:success faliure:faliure];

+ 3 - 0
KulexiuForTeacher/KulexiuForTeacher/Common/Define/PrefixHeader.pch

@@ -36,6 +36,9 @@
 
 #import "KSUploadManager.h"
 
+#define FIRST_LOGIN_KEY (@"FirstLoginKey")
+
+
 #define DEALCALLBACKNOTICIFATION (@"DEALCALLBACKNOTICIFATION")
 
 // 加密使用 NSString+MD5

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Chat/Controller/KSChatConversationViewController.m

@@ -428,7 +428,7 @@
     }
     musicMsg.teacherName = owner;
     
-    musicMsg.musicTagNames = musicModel.musicTagNames;
+    musicMsg.musicTagNames = musicModel.subjectNames;
     musicMsg.songId = [NSString stringWithFormat:@"%.0f",musicModel.internalBaseClassIdentifier];
     RCMessage *musicMessage = [[RCMessage alloc] initWithType:self.conversationType targetId:self.targetId direction:MessageDirection_SEND content:musicMsg];
     [[RCIM sharedRCIM] sendMessage:musicMessage pushContent:nil pushData:nil successBlock:^(RCMessage *successMessage) {

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Chat/ShareMusic/View/MusicChooseCell.m

@@ -31,7 +31,7 @@
 - (void)configWithMessage:(MusicMessageModel *)songMessage {
     self.songName.text = [NSString returnNoNullStringWithString:songMessage.musicSheetName];
     self.songAuth.text = [NSString returnNoNullStringWithString:songMessage.composer];
-    NSArray *tagArray = [songMessage.musicTagNames componentsSeparatedByString:@","];
+    NSArray *tagArray = [songMessage.subjectNames componentsSeparatedByString:@","];
     NSString *owner = @"";
     if ([NSString isEmptyString:songMessage.addName]) {
         owner = [NSString stringWithFormat:@"游客%.0f",songMessage.userId];

+ 40 - 2
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Controller/HomeViewController.m

@@ -27,6 +27,9 @@
 #import "RecentCourseModel.h"
 #import "AppDelegate.h"
 #import "MusicRoomViewController.h"
+#import "KSScanViewController.h"
+#import "KSPremissionAlert.h"
+#import "RecordCheckManager.h"
 
 @interface HomeViewController ()<SDCycleScrollViewDelegate>
 
@@ -352,13 +355,48 @@
     if (!_navView) {
         _navView = [HomeNavView shareInstance];
         MJWeakSelf;
-        [_navView displayMessageCenter:^{
-            [weakSelf toMessageCenter];
+        [_navView displayMessageCenter:^(HOMENAV_ACTION action) {
+            if (action == HOMENAV_ACTION_MESSAGE) {
+                [weakSelf toMessageCenter];
+            }
+            else {
+                [weakSelf scanAction];
+            }
         }];
     }
     return _navView;
 }
 
+- (void)scanAction {
+    // 判断是否有权限
+    PREMISSIONTYPE albumEnable = [RecordCheckManager checkCameraPremissionAvaiable:NO showInView:nil];
+    if (albumEnable == PREMISSIONTYPE_YES) { // 如果有权限
+        KSScanViewController *ctrl = [[KSScanViewController alloc] init];
+        [self.navigationController pushViewController:ctrl animated:YES];
+    }
+    else {
+        if (albumEnable == PREMISSIONTYPE_NO) {
+            [self showAlertWithMessage:@"请开启相机访问权限" type:CHECKDEVICETYPE_CAMREA];
+        }
+    }
+}
+
+- (void)showAlertWithMessage:(NSString *)message type:(CHECKDEVICETYPE)deviceType {
+    [KSPremissionAlert shareInstanceDisplayImage:deviceType message:message showInView:self.view cancel:^{
+        
+    } confirm:^{
+        [self openSettingView];
+    }];
+    
+}
+
+- (void)openSettingView {
+    if (@available(iOS 10, *)) {
+        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString] options:@{} completionHandler:nil];
+    } else {
+        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
+    }
+}
 - (void)toMessageCenter {
     NotiferMessageViewController *messageCenter = [[NotiferMessageViewController alloc] init];
     [self.navigationController pushViewController:messageCenter animated:YES];

+ 3 - 4
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/Model/stacked_line_chart.html

@@ -17,16 +17,15 @@
                 </head>
     <body>
         <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
-        <div id="main" style="width: 100%;height:calc(100vh - 15pt);"></div>
+        <div id="main" style="width: 100%;height:calc(100vh - 15pt);margin-top: 5px;"></div>
         <script type="text/javascript">
             // 基于准备好的dom,初始化echarts实例
             var myChart = echarts.init(document.getElementById('main'));
             
             function loadEcharts(echartJson){
                 var option = JSON.parse(echartJson);
-                option.tooltip.position = function (point, params, dom) {
-                        return [point[0], '10%'];
-                      }
+                option.tooltip.confine = true;
+
                 myChart.setOption(option,true);
             }
         

+ 4 - 7
KulexiuForTeacher/KulexiuForTeacher/Module/Home/NotiferMessage/View/NotiferMessageCell.xib

@@ -16,7 +16,7 @@
                 <rect key="frame" x="0.0" y="0.0" width="425" height="108"/>
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
-                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="course_cell" translatesAutoresizingMaskIntoConstraints="NO" id="3FS-75-ZgU">
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="3FS-75-ZgU">
                         <rect key="frame" x="16" y="32" width="44" height="44"/>
                         <constraints>
                             <constraint firstAttribute="height" constant="44" id="Abw-Pq-4OW"/>
@@ -53,7 +53,7 @@
                         <nil key="highlightedColor"/>
                     </label>
                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="heX-9o-hn0">
-                        <rect key="frame" x="140.5" y="19" width="6" height="6"/>
+                        <rect key="frame" x="136.5" y="22" width="6" height="6"/>
                         <color key="backgroundColor" red="1" green="0.074509803921568626" blue="0.074509803921568626" alpha="1" colorSpace="calibratedRGB"/>
                         <constraints>
                             <constraint firstAttribute="width" constant="6" id="4aE-tI-b0y"/>
@@ -72,8 +72,8 @@
                     <constraint firstItem="dWN-rA-dKm" firstAttribute="leading" secondItem="3FS-75-ZgU" secondAttribute="trailing" constant="10" id="FNS-ca-wiG"/>
                     <constraint firstItem="aCp-hw-uSQ" firstAttribute="leading" secondItem="dWN-rA-dKm" secondAttribute="leading" id="GSa-tm-lZr"/>
                     <constraint firstItem="3FS-75-ZgU" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="Lvw-p8-dTf"/>
-                    <constraint firstItem="heX-9o-hn0" firstAttribute="leading" secondItem="dWN-rA-dKm" secondAttribute="trailing" constant="5" id="Pz3-5h-Y3h"/>
-                    <constraint firstItem="heX-9o-hn0" firstAttribute="centerY" secondItem="dWN-rA-dKm" secondAttribute="top" id="Rcd-NR-oK0"/>
+                    <constraint firstItem="heX-9o-hn0" firstAttribute="leading" secondItem="dWN-rA-dKm" secondAttribute="trailing" constant="1" id="Pz3-5h-Y3h"/>
+                    <constraint firstItem="heX-9o-hn0" firstAttribute="centerY" secondItem="dWN-rA-dKm" secondAttribute="top" constant="3" id="Rcd-NR-oK0"/>
                     <constraint firstItem="PnY-EC-LkF" firstAttribute="centerY" secondItem="dWN-rA-dKm" secondAttribute="centerY" id="U2W-vQ-SXe"/>
                     <constraint firstItem="aCp-hw-uSQ" firstAttribute="top" secondItem="dWN-rA-dKm" secondAttribute="bottom" constant="2" id="X0T-fD-Ccl"/>
                     <constraint firstAttribute="trailing" secondItem="aCp-hw-uSQ" secondAttribute="trailing" constant="16" id="YQg-oV-3Kc"/>
@@ -93,7 +93,4 @@
             <point key="canvasLocation" x="207.97101449275365" y="58.258928571428569"/>
         </tableViewCell>
     </objects>
-    <resources>
-        <image name="course_cell" width="44" height="43"/>
-    </resources>
 </document>

+ 16 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/ScanView/Controller/KSScanViewController.h

@@ -0,0 +1,16 @@
+//
+//  KSScanViewController.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/6/30.
+//
+
+#import "BaseViewController.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface KSScanViewController : BaseViewController
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 213 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/ScanView/Controller/KSScanViewController.m

@@ -0,0 +1,213 @@
+//
+//  KSScanViewController.m
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/6/30.
+//
+
+#import "KSScanViewController.h"
+#import "GRScanManager.h"
+#import "ScanNavView.h"
+#import "KSBaseWKWebViewController.h"
+#import "KSMediaManager.h"
+#import "KSPremissionAlert.h"
+#import "RecordCheckManager.h"
+
+@interface KSScanViewController ()
+
+@property (nonatomic, strong) KSMediaManager *mediaManager;
+@property (nonatomic, strong) NSMutableArray *imageArray;    // 图片数组
+@property (nonatomic, strong) NSMutableArray *imageAsset;    // 图片 asset
+
+@property (nonatomic, strong) GRScanManager *scanManager;
+
+@property (nonatomic, strong) ScanNavView *navView;
+
+@property (nonatomic, strong) UIImageView *scanView;
+
+@property (nonatomic, strong) UIView *maskView;
+
+
+@end
+
+@implementation KSScanViewController
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    // Do any additional setup after loading the view.
+    self.ks_prefersNavigationBarHidden = YES;
+}
+
+- (void)viewWillAppear:(BOOL)animated {
+    [super viewWillAppear:animated];
+    [self configUI];
+}
+
+- (void)configUI {
+    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake((KPortraitWidth - 255) / 2.0f, (KPortraitHeight - 255) / 2.0f, 255, 255)];
+    CGRect qrViweFrame = imageView.frame;
+    imageView.image = [UIImage imageNamed:@"ScanView"];
+    [self.view addSubview:imageView];
+    
+    self.scanView = imageView;
+    
+    CAShapeLayer *shperLayer = [[CAShapeLayer alloc]init];
+    
+    CGMutablePathRef path = CGPathCreateMutable();
+    // 保留顶部
+    CGPathAddRect(path, nil, CGRectMake(0, 0, KPortraitWidth, CGRectGetMinY(qrViweFrame)));
+    // 保留底部
+    CGPathAddRect(path, nil, CGRectMake(0,CGRectGetMaxY(qrViweFrame), KPortraitWidth,KPortraitHeight - CGRectGetMaxY(qrViweFrame)));
+    //保留左边
+    CGPathAddRect(path, nil, CGRectMake(0,CGRectGetMinY(qrViweFrame), CGRectGetMinX(qrViweFrame),300));
+    //保留右边
+    CGPathAddRect(path, nil, CGRectMake(CGRectGetMaxX(qrViweFrame),CGRectGetMinY(qrViweFrame),KPortraitWidth - CGRectGetMaxX(qrViweFrame),300));
+    shperLayer.path = path;
+    CGPathRelease(path);
+    
+    UIView *view = [[UIView alloc] initWithFrame:self.view.bounds];
+    view.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.7];
+    [self.view addSubview:view];
+    self.maskView = view;
+    view.layer.mask = shperLayer;
+    
+    [self.view addSubview:self.navView];
+    [self.navView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.right.top.mas_equalTo(self.view);
+        make.height.mas_equalTo(kNaviBarHeight);
+    }];
+    
+    UILabel *msg = [[UILabel alloc] initWithFrame:CGRectMake(30, CGRectGetMaxY(imageView.frame) + 15, KPortraitWidth - 60, 22)];
+    msg.backgroundColor = [UIColor clearColor];
+    msg.textColor = HexRGB(0xffffff);
+    msg.textAlignment = NSTextAlignmentCenter;
+    msg.font = [UIFont systemFontOfSize:16];
+    msg.text = @"请对准需要识别的二维码。";
+    [self.view addSubview:msg];
+    MJWeakSelf;
+    [self.scanManager startScanningQRCodeWithInView:self.view scanView:self.scanView resultCallback:^(NSString *result) {
+        [weakSelf.scanManager stopScanning];
+        [weakSelf dealWithCheckSource:result];
+        NSLog(@"%@",result);
+    }];
+}
+
+- (void)dealWithCheckSource:(NSString *)result {
+    if (result) {
+        if ([result containsString:@"http://"] || [result containsString:@"https://"]) {
+            KSBaseWKWebViewController *webCtrl = [[KSBaseWKWebViewController alloc] init];
+            webCtrl.url = result;
+            [self.navigationController pushViewController:webCtrl animated:YES];
+        }
+        else {
+            [self backPreView];
+        }
+    }
+}
+
+- (void)backPreView {
+    MJWeakSelf;
+    [self KSShowMsg:@"无法识别" promptCompletion:^{
+        [weakSelf.navigationController popViewControllerAnimated:YES];
+    }];
+}
+
+
+- (GRScanManager *)scanManager {
+    if (!_scanManager) {
+        _scanManager = [[GRScanManager alloc] init];
+        _scanManager.supportBarCode = YES;
+        _scanManager.supportQRCode  = YES;
+    }
+    return _scanManager;
+}
+
+- (ScanNavView *)navView {
+    if (!_navView) {
+        _navView = [ScanNavView shareInstance];
+        MJWeakSelf;
+        [_navView scanActionCallback:^(SCANNAV_ACTION action) {
+            [weakSelf topNavAction:action];
+        }];
+    }
+    return _navView;
+}
+
+- (void)topNavAction:(SCANNAV_ACTION)action {
+    if (action == SCANNAV_ACTION_BACK) {
+        [self.navigationController popViewControllerAnimated:YES];
+    }
+    else {  // 选择相册
+        // 判断是否有权限
+        PREMISSIONTYPE albumEnable = [RecordCheckManager checkPhotoLibraryPremissionAvaiable:NO showInView:nil];
+        if (albumEnable == PREMISSIONTYPE_YES) { // 如果有权限
+            [self choosePhoneScan];
+        }
+        else {
+            if (albumEnable == PREMISSIONTYPE_NO) {
+                [self showAlertWithMessage:@"请开启相册访问权限" type:CHECKDEVICETYPE_CAMREA];
+            }
+        }
+        
+    }
+}
+- (void)showAlertWithMessage:(NSString *)message type:(CHECKDEVICETYPE)deviceType {
+    [KSPremissionAlert shareInstanceDisplayImage:deviceType message:message showInView:self.view cancel:^{
+        
+    } confirm:^{
+        [self openSettingView];
+    }];
+    
+}
+
+- (void)openSettingView {
+    if (@available(iOS 10, *)) {
+        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString] options:@{} completionHandler:nil];
+    } else {
+        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
+    }
+}
+
+- (void)choosePhoneScan {
+    // 调用相册
+    self.mediaManager = [[KSMediaManager alloc] init];
+    self.mediaManager.mediaType = MEDIATYPE_PHOTO;
+    self.mediaManager.maxPhotoNumber = 1;
+    self.mediaManager.baseCtrl = self;
+    self.mediaManager.imageArray = [self.imageArray mutableCopy];
+    self.mediaManager.imageAsset = [self.imageAsset mutableCopy];
+    self.mediaManager.needCropImage = NO;
+    MJWeakSelf;
+    [self.mediaManager noAlertCallback:^(NSString * _Nullable videoUrl, NSMutableArray * _Nullable imageArray, NSMutableArray * _Nullable imageAsset) {
+        [weakSelf scanImage:[imageArray lastObject]];
+    }];
+    [self.mediaManager pushImagePickerController];
+}
+
+- (void)scanImage:(UIImage *)image {
+    CIDetector *detector = [CIDetector detectorOfType:CIDetectorTypeQRCode context:nil options:@{ CIDetectorAccuracy : CIDetectorAccuracyHigh }];
+    
+    NSArray *features = [detector featuresInImage:[CIImage imageWithCGImage:image.CGImage]];
+    if (features.count > 0) {
+        CIQRCodeFeature *feature = [features objectAtIndex:0];
+        NSString *scannedResult = feature.messageString;
+        NSLog(@"result:%@",scannedResult);
+        [self dealWithCheckSource:scannedResult];
+    }
+    else {
+        [self MBPShow:@"无法识别"];
+    }
+
+}
+
+/*
+#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

+ 27 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/ScanView/View/ScanNavView.h

@@ -0,0 +1,27 @@
+//
+//  ScanNavView.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/6/30.
+//
+
+#import <UIKit/UIKit.h>
+
+typedef NS_ENUM(NSInteger, SCANNAV_ACTION) {
+    SCANNAV_ACTION_BACK,
+    SCANNAV_ACTION_IMAGE,
+};
+
+typedef void(^ScanCallback)(SCANNAV_ACTION action);
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface ScanNavView : UIView
+
++ (instancetype)shareInstance;
+
+- (void)scanActionCallback:(ScanCallback)callback;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 47 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/ScanView/View/ScanNavView.m

@@ -0,0 +1,47 @@
+//
+//  ScanNavView.m
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/6/30.
+//
+
+#import "ScanNavView.h"
+
+@interface ScanNavView ()
+
+@property (nonatomic, copy) ScanCallback callback;
+
+@end
+
+@implementation ScanNavView
++ (instancetype)shareInstance {
+    ScanNavView *view = [[[NSBundle mainBundle] loadNibNamed:@"ScanNavView" owner:nil options:nil] firstObject];
+    return view;
+}
+
+- (void)scanActionCallback:(ScanCallback)callback {
+    if (callback) {
+        self.callback = callback;
+    }
+}
+
+- (IBAction)backAction:(id)sender {
+    if (self.callback) {
+        self.callback(SCANNAV_ACTION_BACK);
+    }
+}
+- (IBAction)chooseImage:(id)sender {
+    if (self.callback) {
+        self.callback(SCANNAV_ACTION_IMAGE);
+    }
+}
+
+/*
+// Only override drawRect: if you perform custom drawing.
+// An empty implementation adversely affects performance during animation.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+
+@end

+ 82 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/ScanView/View/ScanNavView.xib

@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="20037" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+    <device id="retina6_1" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="20020"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="ScanNavView">
+            <rect key="frame" x="0.0" y="0.0" width="414" height="88"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ko6-5H-Ofb">
+                    <rect key="frame" x="0.0" y="44" width="414" height="44"/>
+                    <subviews>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="back_white" translatesAutoresizingMaskIntoConstraints="NO" id="3Mq-8O-oLD">
+                            <rect key="frame" x="15" y="12" width="12" height="20"/>
+                        </imageView>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="nyu-Tz-I7I">
+                            <rect key="frame" x="0.0" y="2" width="40" height="40"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="40" id="XtN-Dg-FZW"/>
+                                <constraint firstAttribute="width" constant="40" id="Zhs-SB-Iw0"/>
+                            </constraints>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <connections>
+                                <action selector="backAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="Aeh-Ka-WRk"/>
+                            </connections>
+                        </button>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="扫码登录" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="owv-JM-vXm">
+                            <rect key="frame" x="170" y="11" width="74" height="22"/>
+                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
+                            <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="pd2-Uc-9LK">
+                            <rect key="frame" x="364" y="2" width="40" height="40"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="40" id="JMN-iD-4wD"/>
+                                <constraint firstAttribute="height" constant="40" id="e5J-en-Kd1"/>
+                            </constraints>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <state key="normal" image="scan_photo"/>
+                            <connections>
+                                <action selector="chooseImage:" destination="iN0-l3-epB" eventType="touchUpInside" id="gLY-4C-anz"/>
+                            </connections>
+                        </button>
+                    </subviews>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    <constraints>
+                        <constraint firstAttribute="trailing" secondItem="pd2-Uc-9LK" secondAttribute="trailing" constant="10" id="FWb-r0-tBQ"/>
+                        <constraint firstAttribute="height" constant="44" id="KvG-uI-yim"/>
+                        <constraint firstItem="pd2-Uc-9LK" firstAttribute="centerY" secondItem="ko6-5H-Ofb" secondAttribute="centerY" id="PZs-fa-oZW"/>
+                        <constraint firstItem="owv-JM-vXm" firstAttribute="centerX" secondItem="ko6-5H-Ofb" secondAttribute="centerX" id="QEs-lu-PjL"/>
+                        <constraint firstItem="nyu-Tz-I7I" firstAttribute="leading" secondItem="ko6-5H-Ofb" secondAttribute="leading" id="SKH-bi-ZqL"/>
+                        <constraint firstItem="nyu-Tz-I7I" firstAttribute="centerY" secondItem="ko6-5H-Ofb" secondAttribute="centerY" id="VUv-ce-tTf"/>
+                        <constraint firstItem="3Mq-8O-oLD" firstAttribute="leading" secondItem="ko6-5H-Ofb" secondAttribute="leading" constant="15" id="o3V-YQ-5DK"/>
+                        <constraint firstItem="owv-JM-vXm" firstAttribute="centerY" secondItem="ko6-5H-Ofb" secondAttribute="centerY" id="qGP-mp-Ae6"/>
+                        <constraint firstItem="nyu-Tz-I7I" firstAttribute="centerY" secondItem="3Mq-8O-oLD" secondAttribute="centerY" id="uHP-uX-P1e"/>
+                    </constraints>
+                </view>
+            </subviews>
+            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+            <constraints>
+                <constraint firstAttribute="trailing" secondItem="ko6-5H-Ofb" secondAttribute="trailing" id="3oZ-gF-xsD"/>
+                <constraint firstItem="ko6-5H-Ofb" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="TaS-8Q-t87"/>
+                <constraint firstAttribute="bottom" secondItem="ko6-5H-Ofb" secondAttribute="bottom" id="fRC-g2-xug"/>
+            </constraints>
+            <nil key="simulatedTopBarMetrics"/>
+            <nil key="simulatedBottomBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <point key="canvasLocation" x="131.8840579710145" y="45.535714285714285"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="back_white" width="12" height="20"/>
+        <image name="scan_photo" width="20" height="16"/>
+    </resources>
+</document>

+ 6 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeNavView.h

@@ -7,8 +7,13 @@
 
 #import <UIKit/UIKit.h>
 
+typedef NS_ENUM(NSInteger, HOMENAV_ACTION) {
+    HOMENAV_ACTION_MESSAGE,   // 消息
+    HOMENAV_ACTION_SCAN,      // 扫一扫
+};
+
 NS_ASSUME_NONNULL_BEGIN
-typedef void(^HomeNavCallback)(void);
+typedef void(^HomeNavCallback)(HOMENAV_ACTION action);
 
 @interface HomeNavView : UIView
 

+ 6 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeNavView.m

@@ -29,10 +29,15 @@
 
 - (IBAction)navAction:(id)sender {
     if (self.callback) {
-        self.callback();
+        self.callback(HOMENAV_ACTION_MESSAGE);
     }
 }
 
+- (IBAction)scanAction:(id)sender {
+    if (self.callback) {
+        self.callback(HOMENAV_ACTION_SCAN);
+    }
+}
 
 /*
 // Only override drawRect: if you perform custom drawing.

+ 19 - 3
KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeNavView.xib

@@ -31,7 +31,7 @@
                             </connections>
                         </button>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="t1J-uq-ROg">
-                            <rect key="frame" x="391" y="12" width="8" height="8"/>
+                            <rect key="frame" x="390" y="10" width="8" height="8"/>
                             <subviews>
                                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="g4A-fh-p63">
                                     <rect key="frame" x="1" y="1" width="6" height="6"/>
@@ -58,14 +58,29 @@
                                 </userDefinedRuntimeAttribute>
                             </userDefinedRuntimeAttributes>
                         </view>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="q6l-Iv-Tbq">
+                            <rect key="frame" x="311" y="0.0" width="44" height="44"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="44" id="5RK-8c-0uc"/>
+                                <constraint firstAttribute="width" constant="44" id="UNi-JF-ydf"/>
+                                <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="44" id="WIj-bC-lz5"/>
+                            </constraints>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <state key="normal" image="home_scan"/>
+                            <connections>
+                                <action selector="scanAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="Gqi-Yj-iGI"/>
+                            </connections>
+                        </button>
                     </subviews>
                     <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                     <constraints>
+                        <constraint firstItem="qSz-FE-UVP" firstAttribute="leading" secondItem="q6l-Iv-Tbq" secondAttribute="trailing" constant="5" id="38X-Iz-sbM"/>
                         <constraint firstItem="dZB-va-AMI" firstAttribute="centerY" secondItem="vOh-9c-b3r" secondAttribute="centerY" id="5Gz-Yr-ocE"/>
-                        <constraint firstAttribute="trailing" secondItem="t1J-uq-ROg" secondAttribute="trailing" constant="15" id="81p-OQ-M7S"/>
-                        <constraint firstItem="t1J-uq-ROg" firstAttribute="top" secondItem="vOh-9c-b3r" secondAttribute="top" constant="12" id="FcH-GF-jbv"/>
+                        <constraint firstAttribute="trailing" secondItem="t1J-uq-ROg" secondAttribute="trailing" constant="16" id="81p-OQ-M7S"/>
+                        <constraint firstItem="t1J-uq-ROg" firstAttribute="top" secondItem="vOh-9c-b3r" secondAttribute="top" constant="10" id="FcH-GF-jbv"/>
                         <constraint firstAttribute="trailing" secondItem="qSz-FE-UVP" secondAttribute="trailing" constant="10" id="Hpm-xn-doL"/>
                         <constraint firstAttribute="bottom" secondItem="qSz-FE-UVP" secondAttribute="bottom" id="N2N-9O-f5N"/>
+                        <constraint firstItem="qSz-FE-UVP" firstAttribute="centerY" secondItem="q6l-Iv-Tbq" secondAttribute="centerY" id="Tpt-zB-iEz"/>
                         <constraint firstItem="dZB-va-AMI" firstAttribute="leading" secondItem="vOh-9c-b3r" secondAttribute="leading" constant="14" id="ajM-qq-6hC"/>
                         <constraint firstAttribute="height" constant="44" id="cj7-26-Plu"/>
                         <constraint firstItem="qSz-FE-UVP" firstAttribute="top" secondItem="vOh-9c-b3r" secondAttribute="top" id="dgb-Bb-S6e"/>
@@ -90,5 +105,6 @@
     <resources>
         <image name="home_head_title" width="75" height="21"/>
         <image name="home_message" width="25" height="23"/>
+        <image name="home_scan" width="22" height="22"/>
     </resources>
 </document>

+ 18 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Login/Guide/Controller/GuideViewController.h

@@ -0,0 +1,18 @@
+//
+//  GuideViewController.h
+//  KulexiuForStudent
+//
+//  Created by 王智 on 2022/6/30.
+//
+
+#import "BaseViewController.h"
+
+NS_ASSUME_NONNULL_BEGIN
+// 初次登录引导
+@interface GuideViewController : BaseViewController
+
+
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 161 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Login/Guide/Controller/GuideViewController.m

@@ -0,0 +1,161 @@
+//
+//  GuideViewController.m
+//  KulexiuForStudent
+//
+//  Created by 王智 on 2022/6/30.
+//
+
+#import "GuideViewController.h"
+#import "GuideListView.h"
+#import "TYPageControl.h"
+#import "AppDelegate.h"
+#import "UserInfoManager.h"
+
+@interface GuideViewController ()<UIScrollViewDelegate,CAAnimationDelegate>
+
+@property (nonatomic, strong) UIScrollView *scrollView;
+
+@property (nonatomic, strong) NSMutableArray *imgArray;
+
+@property (nonatomic, strong) NSMutableArray *titleArray;
+
+@property (nonatomic, strong) NSMutableArray *descArray;
+
+@property (nonatomic, strong) TYPageControl *pageControl;
+
+@end
+
+@implementation GuideViewController
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    // Do any additional setup after loading the view.
+    self.ks_prefersNavigationBarHidden = YES;
+    [self defaultSource];
+    [self configUI];
+}
+
+- (void)defaultSource {
+    self.imgArray = [NSMutableArray arrayWithArray:@[@"guidePage1",@"guidePage2",@"guidePage3"]];
+    self.titleArray = [NSMutableArray arrayWithArray:@[@"轻松教学",@"直播互动",@"个人主页"]];
+    self.descArray = [NSMutableArray arrayWithArray:@[@"一站式乐器教学平台",@"师生面对面讲解,解锁新技巧",@"展示个人风采,传播专业知识"]];
+}
+
+- (void)configUI {
+    [self.view addSubview:self.scrollView];
+    [self.scrollView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.right.top.bottom.mas_equalTo(self.view);
+    }];
+    if (@available(iOS 11.0, *)) {
+        self.scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
+    } else {
+        // Fallback on earlier versions
+        self.automaticallyAdjustsScrollViewInsets = NO;
+    }
+    
+    [self createListView];
+    [self.view addSubview:self.pageControl];
+    self.pageControl.numberOfPages = self.imgArray.count;
+    
+}
+
+- (void)createListView {
+    for (NSInteger i = 0; i < self.imgArray.count; i++) {
+        GuideListView *listView = [GuideListView shareInstance];
+        BOOL showButton = NO;
+        if (i == self.imgArray.count - 1) {
+            showButton = YES;
+            [listView enterCallback:^{
+                [self animationAcion];
+            }];
+        }
+        [listView configViewWithImageName:self.imgArray[i] topTitle:self.titleArray[i] desc:self.descArray[i] showButton:showButton];
+        [self.scrollView addSubview:listView];
+        [listView mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.top.bottom.mas_equalTo(self.view);
+            make.left.mas_equalTo(self.scrollView.mas_left).offset(KPortraitWidth * i);
+            make.width.mas_equalTo(KPortraitWidth);
+            if (showButton) {
+                make.right.mas_equalTo(self.scrollView.mas_right);
+            }
+        }];
+    }
+}
+
+- (void)toNextPage {
+    
+    UserDefaultSetBoolForKey(YES, FIRST_LOGIN_KEY);
+    NSString *token = UserDefault(TokenKey);
+    if ([NSString isEmptyString:token]) { // 未登录
+        [self toLoginView];
+    }
+    else {
+        [self toHomeView];
+    }
+}
+
+- (void)animationAcion {
+    
+    [UIView animateWithDuration:1.5f delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{
+        self.view.layer.opacity = 0.0f;
+    } completion:^(BOOL finished) {
+        [self toNextPage];
+    }];
+    
+}
+
+- (void)toLoginView {
+    AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
+    [appDelegate initLoginView];
+}
+- (void)toHomeView {
+    [KSNetworkingManager configRequestHeader];
+    [USER_MANAGER queryUserInfoConnectRongCloud:YES];
+    AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
+    [appDelegate initTableBar];
+    UITabBarController *tabBarController = appDelegate.tabBarController;
+    [tabBarController setSelectedIndex:0];
+}
+
+#pragma mark --- scroll view delegate
+- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
+    NSInteger index = (NSInteger)(scrollView.contentOffset.x / kScreenWidth);
+    [self.pageControl setCurrentPage:index animate:YES];
+}
+
+#pragma mark --- lazying
+- (UIScrollView *)scrollView {
+    if (!_scrollView) {
+        _scrollView = [[UIScrollView alloc] init];
+        _scrollView.delegate = self;
+        _scrollView.pagingEnabled = YES;
+        _scrollView.bounces = NO;
+        _scrollView.backgroundColor = HexRGB(0xf6f8f9);
+        _scrollView.showsHorizontalScrollIndicator = NO;
+        _scrollView.showsVerticalScrollIndicator = NO;
+    }
+    return _scrollView;
+}
+
+- (TYPageControl *)pageControl {
+    if (!_pageControl) {
+        _pageControl = [[TYPageControl alloc] init];
+        _pageControl.frame = CGRectMake(0, KPortraitHeight - iPhoneXSafeBottomMargin - 60, KPortraitWidth, 10);
+        _pageControl.currentPageIndicatorTintColor = HexRGB(0x2DC7AA);
+        _pageControl.pageIndicatorTintColor = HexRGB(0xD8EDE3);
+        _pageControl.pageIndicatorSize = CGSizeMake(7, 7);
+        _pageControl.currentPageIndicatorSize = CGSizeMake(14, 7);
+    }
+    return _pageControl;
+}
+/*
+#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

+ 24 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Login/Guide/View/GuideListView.h

@@ -0,0 +1,24 @@
+//
+//  GuideListView.h
+//  KulexiuForStudent
+//
+//  Created by 王智 on 2022/6/30.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef void(^GuideSureCallback)(void);
+
+@interface GuideListView : UIView
+
++ (instancetype)shareInstance;
+
+- (void)configViewWithImageName:(NSString *)imageName topTitle:(NSString *)topTitle desc:(NSString *)descMsg showButton:(BOOL)showButton;
+
+- (void)enterCallback:(GuideSureCallback)callback;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 75 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Login/Guide/View/GuideListView.m

@@ -0,0 +1,75 @@
+//
+//  GuideListView.m
+//  KulexiuForStudent
+//
+//  Created by 王智 on 2022/6/30.
+//
+
+#import "GuideListView.h"
+
+@interface GuideListView ()
+
+@property (weak, nonatomic) IBOutlet UIView *colorView;
+
+@property (weak, nonatomic) IBOutlet UIImageView *imageView;
+@property (weak, nonatomic) IBOutlet UILabel *headTitle;
+@property (weak, nonatomic) IBOutlet UILabel *descLabel;
+
+@property (weak, nonatomic) IBOutlet UIButton *enterButton;
+
+@property (nonatomic, copy) GuideSureCallback callback;
+
+@end
+
+@implementation GuideListView
+
+- (void)enterCallback:(GuideSureCallback)callback {
+    if (callback) {
+        self.callback = callback;
+    }
+}
++ (instancetype)shareInstance {
+    GuideListView *view = [[[NSBundle mainBundle] loadNibNamed:@"GuideListView" owner:nil options:nil] firstObject];
+    return view;
+}
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    CAGradientLayer * gradientLayer = [CAGradientLayer layer];
+    gradientLayer.colors = @[(__bridge id)HexRGBAlpha(0xCEFBE3, 1.0f).CGColor,(__bridge id)HexRGBAlpha(0xffffff, 0.0f).CGColor];
+    gradientLayer.startPoint = CGPointMake(0.5, 0);
+    gradientLayer.endPoint = CGPointMake(0.5, 1);
+    gradientLayer.locations = @[@(0),@(1)];
+    gradientLayer.frame = CGRectMake(0, 0, KPortraitWidth, 360);
+    [self.colorView.layer addSublayer:gradientLayer];
+}
+
+- (void)configViewWithImageName:(NSString *)imageName topTitle:(NSString *)topTitle desc:(NSString *)descMsg showButton:(BOOL)showButton {
+    [self.imageView setImage:[UIImage imageNamed:imageName]];
+    [self.headTitle setText:topTitle];
+    self.descLabel.text = descMsg;
+    if (showButton) {
+        self.enterButton.hidden = NO;
+        self.enterButton.userInteractionEnabled = YES;
+    }
+    else {
+        self.enterButton.hidden = YES;
+        self.enterButton.userInteractionEnabled = NO;
+    }
+}
+
+- (IBAction)enterAction:(id)sender {
+    if (self.callback) {
+        self.callback();
+    }
+}
+
+/*
+// Only override drawRect: if you perform custom drawing.
+// An empty implementation adversely affects performance during animation.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+
+@end

+ 95 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Login/Guide/View/GuideListView.xib

@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="20037" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+    <device id="retina6_1" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="20020"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="GuideListView">
+            <rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="V0F-XR-LOW">
+                    <rect key="frame" x="0.0" y="0.0" width="414" height="360"/>
+                    <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="360" id="lht-Xt-v17"/>
+                    </constraints>
+                </view>
+                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="yUN-KZ-L1M">
+                    <rect key="frame" x="14" y="174" width="386" height="366"/>
+                    <constraints>
+                        <constraint firstAttribute="width" secondItem="yUN-KZ-L1M" secondAttribute="height" multiplier="348:330" id="orE-1k-zHV"/>
+                    </constraints>
+                </imageView>
+                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="多维沟通" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5BZ-aV-ZqC">
+                    <rect key="frame" x="158.5" y="564" width="97.5" height="33"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="33" id="ymd-fR-kou"/>
+                    </constraints>
+                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="24"/>
+                    <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                    <nil key="highlightedColor"/>
+                </label>
+                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="师生即时互动,经验交流分享" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="40p-7F-M6I">
+                    <rect key="frame" x="10" y="607" width="394" height="25"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="25" id="TEP-nB-4oq"/>
+                    </constraints>
+                    <fontDescription key="fontDescription" type="system" weight="light" pointSize="18"/>
+                    <color key="textColor" red="0.61960784313725492" green="0.61960784313725492" blue="0.61960784313725492" alpha="1" colorSpace="calibratedRGB"/>
+                    <nil key="highlightedColor"/>
+                </label>
+                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ykp-ax-0bg">
+                    <rect key="frame" x="117" y="658" width="180" height="40"/>
+                    <color key="backgroundColor" red="0.1764705882" green="0.78039215689999997" blue="0.66666666669999997" alpha="1" colorSpace="calibratedRGB"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="180" id="aZb-Af-529"/>
+                        <constraint firstAttribute="height" constant="40" id="z9L-sA-42a"/>
+                    </constraints>
+                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                    <state key="normal" title="立即体验"/>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                            <real key="value" value="20"/>
+                        </userDefinedRuntimeAttribute>
+                    </userDefinedRuntimeAttributes>
+                    <connections>
+                        <action selector="enterAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="INd-VF-rxd"/>
+                    </connections>
+                </button>
+            </subviews>
+            <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+            <constraints>
+                <constraint firstItem="40p-7F-M6I" firstAttribute="top" secondItem="5BZ-aV-ZqC" secondAttribute="bottom" constant="10" id="2v3-3C-ylP"/>
+                <constraint firstItem="V0F-XR-LOW" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="EMN-a8-r6N"/>
+                <constraint firstAttribute="trailing" secondItem="yUN-KZ-L1M" secondAttribute="trailing" constant="14" id="Fzi-Wu-PNu"/>
+                <constraint firstAttribute="trailing" secondItem="V0F-XR-LOW" secondAttribute="trailing" id="OIe-Jn-wBV"/>
+                <constraint firstItem="yUN-KZ-L1M" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="174" id="Op6-Wp-jtd"/>
+                <constraint firstItem="yUN-KZ-L1M" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="XsY-jo-nmn"/>
+                <constraint firstItem="V0F-XR-LOW" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="Xul-rB-VdW"/>
+                <constraint firstItem="5BZ-aV-ZqC" firstAttribute="top" secondItem="yUN-KZ-L1M" secondAttribute="bottom" constant="24" id="ZEA-Cz-g9B"/>
+                <constraint firstItem="40p-7F-M6I" firstAttribute="centerX" secondItem="iN0-l3-epB" secondAttribute="centerX" id="bAT-LT-afE"/>
+                <constraint firstItem="5BZ-aV-ZqC" firstAttribute="centerX" secondItem="iN0-l3-epB" secondAttribute="centerX" id="fBJ-c2-scA"/>
+                <constraint firstAttribute="trailing" secondItem="40p-7F-M6I" secondAttribute="trailing" constant="10" id="vgd-eT-UZy"/>
+                <constraint firstItem="ykp-ax-0bg" firstAttribute="top" secondItem="40p-7F-M6I" secondAttribute="bottom" constant="26" id="wLg-9o-nU5"/>
+                <constraint firstItem="ykp-ax-0bg" firstAttribute="centerX" secondItem="iN0-l3-epB" secondAttribute="centerX" id="yvn-U5-zhs"/>
+            </constraints>
+            <nil key="simulatedTopBarMetrics"/>
+            <nil key="simulatedBottomBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <connections>
+                <outlet property="colorView" destination="V0F-XR-LOW" id="Rkl-pw-kyS"/>
+                <outlet property="descLabel" destination="40p-7F-M6I" id="wCM-U9-TPH"/>
+                <outlet property="enterButton" destination="ykp-ax-0bg" id="zla-N1-sVW"/>
+                <outlet property="headTitle" destination="5BZ-aV-ZqC" id="83k-rz-XwT"/>
+                <outlet property="imageView" destination="yUN-KZ-L1M" id="Mpv-wD-FBe"/>
+            </connections>
+            <point key="canvasLocation" x="131.8840579710145" y="79.6875"/>
+        </view>
+    </objects>
+</document>

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageMusicCell.m

@@ -30,7 +30,7 @@
     self.songName.text = [NSString returnNoNullStringWithString:songMessage.musicSheetName];
     self.songAuth.text = [NSString returnNoNullStringWithString:songMessage.composer];
     
-    NSArray *tagArray = [songMessage.musicTagNames componentsSeparatedByString:@","];
+    NSArray *tagArray = [songMessage.subjectNames componentsSeparatedByString:@","];
     NSString *owner = @"";
     if ([NSString isEmptyString:songMessage.addName]) {
         owner = [NSString stringWithFormat:@"游客%.0f",songMessage.userId];

+ 2 - 0
KulexiuForTeacher/Podfile

@@ -23,6 +23,8 @@
   pod 'Bugly'
   pod 'Whiteboard'
   pod 'RSKImageCropper'
+  pod 'TYCyclePagerView'
+
 #  友盟
 #  pod 'UMCommon'
 #  pod 'UMDevice'

+ 5 - 1
KulexiuForTeacher/Podfile.lock

@@ -61,6 +61,7 @@ PODS:
   - SDWebImage/Core (5.12.5)
   - SocketRocket (0.6.0)
   - SSZipArchive (2.4.3)
+  - TYCyclePagerView (1.2.0)
   - Whiteboard (2.16.0):
     - Whiteboard/Base (= 2.16.0)
     - Whiteboard/Converter (= 2.16.0)
@@ -110,6 +111,7 @@ DEPENDENCIES:
   - SDWebImage (~> 5.12.5)
   - SocketRocket
   - SSZipArchive
+  - TYCyclePagerView
   - Whiteboard
 
 SPEC REPOS:
@@ -135,6 +137,7 @@ SPEC REPOS:
     - SDWebImage
     - SocketRocket
     - SSZipArchive
+    - TYCyclePagerView
     - Whiteboard
     - YYModel
 
@@ -160,9 +163,10 @@ SPEC CHECKSUMS:
   SDWebImage: 0905f1b7760fc8ac4198cae0036600d67478751e
   SocketRocket: fccef3f9c5cedea1353a9ef6ada904fde10d6608
   SSZipArchive: fe6a26b2a54d5a0890f2567b5cc6de5caa600aef
+  TYCyclePagerView: 2b051dade0615c70784aa34f40c646feeddb7344
   Whiteboard: 16568e7e14f7f451d2aad2536f5fab9c06119934
   YYModel: 2a7fdd96aaa4b86a824e26d0c517de8928c04b30
 
-PODFILE CHECKSUM: e715dc051d07b39ae5835af66364113b4e8cd801
+PODFILE CHECKSUM: 0caee30b8f6bff6e69eccce77afbaa62f4038a98
 
 COCOAPODS: 1.11.3

+ 5 - 1
KulexiuForTeacher/Pods/Manifest.lock

@@ -61,6 +61,7 @@ PODS:
   - SDWebImage/Core (5.12.5)
   - SocketRocket (0.6.0)
   - SSZipArchive (2.4.3)
+  - TYCyclePagerView (1.2.0)
   - Whiteboard (2.16.0):
     - Whiteboard/Base (= 2.16.0)
     - Whiteboard/Converter (= 2.16.0)
@@ -110,6 +111,7 @@ DEPENDENCIES:
   - SDWebImage (~> 5.12.5)
   - SocketRocket
   - SSZipArchive
+  - TYCyclePagerView
   - Whiteboard
 
 SPEC REPOS:
@@ -135,6 +137,7 @@ SPEC REPOS:
     - SDWebImage
     - SocketRocket
     - SSZipArchive
+    - TYCyclePagerView
     - Whiteboard
     - YYModel
 
@@ -160,9 +163,10 @@ SPEC CHECKSUMS:
   SDWebImage: 0905f1b7760fc8ac4198cae0036600d67478751e
   SocketRocket: fccef3f9c5cedea1353a9ef6ada904fde10d6608
   SSZipArchive: fe6a26b2a54d5a0890f2567b5cc6de5caa600aef
+  TYCyclePagerView: 2b051dade0615c70784aa34f40c646feeddb7344
   Whiteboard: 16568e7e14f7f451d2aad2536f5fab9c06119934
   YYModel: 2a7fdd96aaa4b86a824e26d0c517de8928c04b30
 
-PODFILE CHECKSUM: e715dc051d07b39ae5835af66364113b4e8cd801
+PODFILE CHECKSUM: 0caee30b8f6bff6e69eccce77afbaa62f4038a98
 
 COCOAPODS: 1.11.3

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 1780 - 1755
KulexiuForTeacher/Pods/Pods.xcodeproj/project.pbxproj


+ 10 - 3
KulexiuForTeacher/Pods/Pods.xcodeproj/xcuserdata/wangzhi.xcuserdatad/xcschemes/xcschememanagement.plist

@@ -144,26 +144,33 @@
 			<key>orderHint</key>
 			<integer>20</integer>
 		</dict>
+		<key>TYCyclePagerView.xcscheme</key>
+		<dict>
+			<key>isShown</key>
+			<false/>
+			<key>orderHint</key>
+			<integer>22</integer>
+		</dict>
 		<key>Whiteboard-Whiteboard.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
 			<key>orderHint</key>
-			<integer>23</integer>
+			<integer>24</integer>
 		</dict>
 		<key>Whiteboard.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
 			<key>orderHint</key>
-			<integer>22</integer>
+			<integer>23</integer>
 		</dict>
 		<key>YYModel.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
 			<key>orderHint</key>
-			<integer>24</integer>
+			<integer>25</integer>
 		</dict>
 		<key>dsBridge.xcscheme</key>
 		<dict>

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

@@ -353,6 +353,31 @@ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+## TYCyclePagerView
+
+MIT License
+
+Copyright (c) 2017 yeBlueColor
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
 ## Whiteboard
 
 Copyright (c) 2018 leavesster <a412739861@qq.com>

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

@@ -480,6 +480,37 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</string>
 		</dict>
 		<dict>
 			<key>FooterText</key>
+			<string>MIT License
+
+Copyright (c) 2017 yeBlueColor
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+</string>
+			<key>License</key>
+			<string>MIT</string>
+			<key>Title</key>
+			<string>TYCyclePagerView</string>
+			<key>Type</key>
+			<string>PSGroupSpecifier</string>
+		</dict>
+		<dict>
+			<key>FooterText</key>
 			<string>Copyright (c) 2018 leavesster &lt;a412739861@qq.com&gt;
 
 Permission is hereby granted, free of charge, to any person obtaining a copy

+ 4 - 4
KulexiuForTeacher/Pods/Target Support Files/Pods-KulexiuForTeacher/Pods-KulexiuForTeacher.debug.xcconfig

@@ -2,11 +2,11 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64
 FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/AlipaySDK-iOS" "${PODS_ROOT}/Bugly" "${PODS_ROOT}/RongCloudIM/RongCloudIM" "${PODS_ROOT}/RongCloudRTC/RongCloudRTC" "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/ChatRoom" "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/CustomerService" "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/Discussion" "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/IMKit" "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/IMLib" "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/IMLibCore" "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/Location" "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/PublicService" "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/Sight" "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudRTC/RongFaceBeautifier" "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudRTC/RongRTCLib"
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
-HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/IQKeyboardManager" "${PODS_ROOT}/Headers/Public/JPush" "${PODS_ROOT}/Headers/Public/JXCategoryView" "${PODS_ROOT}/Headers/Public/JXPagingView" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJExtension" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Masonry" "${PODS_ROOT}/Headers/Public/RSKImageCropper" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/SSZipArchive" "${PODS_ROOT}/Headers/Public/SocketRocket" "${PODS_ROOT}/Headers/Public/Whiteboard" "${PODS_ROOT}/Headers/Public/YYModel" "${PODS_ROOT}/Headers/Public/dsBridge" "${PODS_ROOT}/Headers/Public/iOS-KS3SDK"
+HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/IQKeyboardManager" "${PODS_ROOT}/Headers/Public/JPush" "${PODS_ROOT}/Headers/Public/JXCategoryView" "${PODS_ROOT}/Headers/Public/JXPagingView" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJExtension" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Masonry" "${PODS_ROOT}/Headers/Public/RSKImageCropper" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/SSZipArchive" "${PODS_ROOT}/Headers/Public/SocketRocket" "${PODS_ROOT}/Headers/Public/TYCyclePagerView" "${PODS_ROOT}/Headers/Public/Whiteboard" "${PODS_ROOT}/Headers/Public/YYModel" "${PODS_ROOT}/Headers/Public/dsBridge" "${PODS_ROOT}/Headers/Public/iOS-KS3SDK"
 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
-LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "${PODS_CONFIGURATION_BUILD_DIR}/RSKImageCropper" "${PODS_CONFIGURATION_BUILD_DIR}/Reachability" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive" "${PODS_CONFIGURATION_BUILD_DIR}/SocketRocket" "${PODS_CONFIGURATION_BUILD_DIR}/Whiteboard" "${PODS_CONFIGURATION_BUILD_DIR}/YYModel" "${PODS_CONFIGURATION_BUILD_DIR}/dsBridge" "${PODS_CONFIGURATION_BUILD_DIR}/iOS-KS3SDK" "${PODS_ROOT}/JCore" "${PODS_ROOT}/JPush"
-OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_ROOT}/Headers/Public/SSZipArchive/SSZipArchive.modulemap" -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/AFNetworking" -isystem "${PODS_ROOT}/Headers/Public/IQKeyboardManager" -isystem "${PODS_ROOT}/Headers/Public/JPush" -isystem "${PODS_ROOT}/Headers/Public/JXCategoryView" -isystem "${PODS_ROOT}/Headers/Public/JXPagingView" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/MJExtension" -isystem "${PODS_ROOT}/Headers/Public/MJRefresh" -isystem "${PODS_ROOT}/Headers/Public/Masonry" -isystem "${PODS_ROOT}/Headers/Public/RSKImageCropper" -isystem "${PODS_ROOT}/Headers/Public/Reachability" -isystem "${PODS_ROOT}/Headers/Public/SDWebImage" -isystem "${PODS_ROOT}/Headers/Public/SocketRocket" -isystem "${PODS_ROOT}/Headers/Public/Whiteboard" -isystem "${PODS_ROOT}/Headers/Public/YYModel" -isystem "${PODS_ROOT}/Headers/Public/dsBridge" -isystem "${PODS_ROOT}/Headers/Public/iOS-KS3SDK" -iframework "${PODS_ROOT}/AlipaySDK-iOS" -iframework "${PODS_ROOT}/Bugly" -iframework "${PODS_ROOT}/RongCloudIM/RongCloudIM" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/ChatRoom" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/CustomerService" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/Discussion" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/IMKit" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/IMLib" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/IMLibCore" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/Location" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/PublicService" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/Sight" -iframework "${PODS_ROOT}/RongCloudRTC/RongCloudRTC" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudRTC/RongFaceBeautifier" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudRTC/RongRTCLib"
-OTHER_LDFLAGS = $(inherited) -ObjC -l"AFNetworking" -l"IQKeyboardManager" -l"JXCategoryView" -l"JXPagingView" -l"MBProgressHUD" -l"MJExtension" -l"MJRefresh" -l"Masonry" -l"RSKImageCropper" -l"Reachability" -l"SDWebImage" -l"SSZipArchive" -l"SocketRocket" -l"Whiteboard" -l"YYModel" -l"c++" -l"dsBridge" -l"iOS-KS3SDK" -l"iconv" -l"icucore" -l"jcore-noidfa-ios-2.7.1" -l"jpush-ios-4.3.0" -l"resolv" -l"z" -framework "AVFoundation" -framework "AlipaySDK" -framework "Bugly" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreMotion" -framework "CoreTelephony" -framework "CoreText" -framework "Foundation" -framework "GLKit" -framework "ImageIO" -framework "QuartzCore" -framework "RongChatRoom" -framework "RongCustomerService" -framework "RongDiscussion" -framework "RongFaceBeautifier" -framework "RongIMKit" -framework "RongIMLib" -framework "RongIMLibCore" -framework "RongLocation" -framework "RongPublicService" -framework "RongRTCLib" -framework "RongSight" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" -framework "VideoToolbox" -framework "WebKit" -weak_framework "UserNotifications"
+LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "${PODS_CONFIGURATION_BUILD_DIR}/RSKImageCropper" "${PODS_CONFIGURATION_BUILD_DIR}/Reachability" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive" "${PODS_CONFIGURATION_BUILD_DIR}/SocketRocket" "${PODS_CONFIGURATION_BUILD_DIR}/TYCyclePagerView" "${PODS_CONFIGURATION_BUILD_DIR}/Whiteboard" "${PODS_CONFIGURATION_BUILD_DIR}/YYModel" "${PODS_CONFIGURATION_BUILD_DIR}/dsBridge" "${PODS_CONFIGURATION_BUILD_DIR}/iOS-KS3SDK" "${PODS_ROOT}/JCore" "${PODS_ROOT}/JPush"
+OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_ROOT}/Headers/Public/SSZipArchive/SSZipArchive.modulemap" -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/AFNetworking" -isystem "${PODS_ROOT}/Headers/Public/IQKeyboardManager" -isystem "${PODS_ROOT}/Headers/Public/JPush" -isystem "${PODS_ROOT}/Headers/Public/JXCategoryView" -isystem "${PODS_ROOT}/Headers/Public/JXPagingView" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/MJExtension" -isystem "${PODS_ROOT}/Headers/Public/MJRefresh" -isystem "${PODS_ROOT}/Headers/Public/Masonry" -isystem "${PODS_ROOT}/Headers/Public/RSKImageCropper" -isystem "${PODS_ROOT}/Headers/Public/Reachability" -isystem "${PODS_ROOT}/Headers/Public/SDWebImage" -isystem "${PODS_ROOT}/Headers/Public/SocketRocket" -isystem "${PODS_ROOT}/Headers/Public/TYCyclePagerView" -isystem "${PODS_ROOT}/Headers/Public/Whiteboard" -isystem "${PODS_ROOT}/Headers/Public/YYModel" -isystem "${PODS_ROOT}/Headers/Public/dsBridge" -isystem "${PODS_ROOT}/Headers/Public/iOS-KS3SDK" -iframework "${PODS_ROOT}/AlipaySDK-iOS" -iframework "${PODS_ROOT}/Bugly" -iframework "${PODS_ROOT}/RongCloudIM/RongCloudIM" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/ChatRoom" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/CustomerService" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/Discussion" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/IMKit" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/IMLib" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/IMLibCore" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/Location" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/PublicService" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/Sight" -iframework "${PODS_ROOT}/RongCloudRTC/RongCloudRTC" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudRTC/RongFaceBeautifier" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudRTC/RongRTCLib"
+OTHER_LDFLAGS = $(inherited) -ObjC -l"AFNetworking" -l"IQKeyboardManager" -l"JXCategoryView" -l"JXPagingView" -l"MBProgressHUD" -l"MJExtension" -l"MJRefresh" -l"Masonry" -l"RSKImageCropper" -l"Reachability" -l"SDWebImage" -l"SSZipArchive" -l"SocketRocket" -l"TYCyclePagerView" -l"Whiteboard" -l"YYModel" -l"c++" -l"dsBridge" -l"iOS-KS3SDK" -l"iconv" -l"icucore" -l"jcore-noidfa-ios-2.7.1" -l"jpush-ios-4.3.0" -l"resolv" -l"z" -framework "AVFoundation" -framework "AlipaySDK" -framework "Bugly" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreMotion" -framework "CoreTelephony" -framework "CoreText" -framework "Foundation" -framework "GLKit" -framework "ImageIO" -framework "QuartzCore" -framework "RongChatRoom" -framework "RongCustomerService" -framework "RongDiscussion" -framework "RongFaceBeautifier" -framework "RongIMKit" -framework "RongIMLib" -framework "RongIMLibCore" -framework "RongLocation" -framework "RongPublicService" -framework "RongRTCLib" -framework "RongSight" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" -framework "VideoToolbox" -framework "WebKit" -weak_framework "UserNotifications"
 OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/SSZipArchive/SSZipArchive.modulemap"
 PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)

+ 4 - 4
KulexiuForTeacher/Pods/Target Support Files/Pods-KulexiuForTeacher/Pods-KulexiuForTeacher.release.xcconfig

@@ -2,11 +2,11 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64
 FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/AlipaySDK-iOS" "${PODS_ROOT}/Bugly" "${PODS_ROOT}/RongCloudIM/RongCloudIM" "${PODS_ROOT}/RongCloudRTC/RongCloudRTC" "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/ChatRoom" "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/CustomerService" "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/Discussion" "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/IMKit" "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/IMLib" "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/IMLibCore" "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/Location" "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/PublicService" "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/Sight" "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudRTC/RongFaceBeautifier" "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudRTC/RongRTCLib"
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
-HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/IQKeyboardManager" "${PODS_ROOT}/Headers/Public/JPush" "${PODS_ROOT}/Headers/Public/JXCategoryView" "${PODS_ROOT}/Headers/Public/JXPagingView" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJExtension" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Masonry" "${PODS_ROOT}/Headers/Public/RSKImageCropper" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/SSZipArchive" "${PODS_ROOT}/Headers/Public/SocketRocket" "${PODS_ROOT}/Headers/Public/Whiteboard" "${PODS_ROOT}/Headers/Public/YYModel" "${PODS_ROOT}/Headers/Public/dsBridge" "${PODS_ROOT}/Headers/Public/iOS-KS3SDK"
+HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/IQKeyboardManager" "${PODS_ROOT}/Headers/Public/JPush" "${PODS_ROOT}/Headers/Public/JXCategoryView" "${PODS_ROOT}/Headers/Public/JXPagingView" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJExtension" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Masonry" "${PODS_ROOT}/Headers/Public/RSKImageCropper" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/SSZipArchive" "${PODS_ROOT}/Headers/Public/SocketRocket" "${PODS_ROOT}/Headers/Public/TYCyclePagerView" "${PODS_ROOT}/Headers/Public/Whiteboard" "${PODS_ROOT}/Headers/Public/YYModel" "${PODS_ROOT}/Headers/Public/dsBridge" "${PODS_ROOT}/Headers/Public/iOS-KS3SDK"
 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
-LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "${PODS_CONFIGURATION_BUILD_DIR}/RSKImageCropper" "${PODS_CONFIGURATION_BUILD_DIR}/Reachability" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive" "${PODS_CONFIGURATION_BUILD_DIR}/SocketRocket" "${PODS_CONFIGURATION_BUILD_DIR}/Whiteboard" "${PODS_CONFIGURATION_BUILD_DIR}/YYModel" "${PODS_CONFIGURATION_BUILD_DIR}/dsBridge" "${PODS_CONFIGURATION_BUILD_DIR}/iOS-KS3SDK" "${PODS_ROOT}/JCore" "${PODS_ROOT}/JPush"
-OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_ROOT}/Headers/Public/SSZipArchive/SSZipArchive.modulemap" -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/AFNetworking" -isystem "${PODS_ROOT}/Headers/Public/IQKeyboardManager" -isystem "${PODS_ROOT}/Headers/Public/JPush" -isystem "${PODS_ROOT}/Headers/Public/JXCategoryView" -isystem "${PODS_ROOT}/Headers/Public/JXPagingView" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/MJExtension" -isystem "${PODS_ROOT}/Headers/Public/MJRefresh" -isystem "${PODS_ROOT}/Headers/Public/Masonry" -isystem "${PODS_ROOT}/Headers/Public/RSKImageCropper" -isystem "${PODS_ROOT}/Headers/Public/Reachability" -isystem "${PODS_ROOT}/Headers/Public/SDWebImage" -isystem "${PODS_ROOT}/Headers/Public/SocketRocket" -isystem "${PODS_ROOT}/Headers/Public/Whiteboard" -isystem "${PODS_ROOT}/Headers/Public/YYModel" -isystem "${PODS_ROOT}/Headers/Public/dsBridge" -isystem "${PODS_ROOT}/Headers/Public/iOS-KS3SDK" -iframework "${PODS_ROOT}/AlipaySDK-iOS" -iframework "${PODS_ROOT}/Bugly" -iframework "${PODS_ROOT}/RongCloudIM/RongCloudIM" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/ChatRoom" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/CustomerService" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/Discussion" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/IMKit" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/IMLib" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/IMLibCore" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/Location" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/PublicService" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/Sight" -iframework "${PODS_ROOT}/RongCloudRTC/RongCloudRTC" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudRTC/RongFaceBeautifier" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudRTC/RongRTCLib"
-OTHER_LDFLAGS = $(inherited) -ObjC -l"AFNetworking" -l"IQKeyboardManager" -l"JXCategoryView" -l"JXPagingView" -l"MBProgressHUD" -l"MJExtension" -l"MJRefresh" -l"Masonry" -l"RSKImageCropper" -l"Reachability" -l"SDWebImage" -l"SSZipArchive" -l"SocketRocket" -l"Whiteboard" -l"YYModel" -l"c++" -l"dsBridge" -l"iOS-KS3SDK" -l"iconv" -l"icucore" -l"jcore-noidfa-ios-2.7.1" -l"jpush-ios-4.3.0" -l"resolv" -l"z" -framework "AVFoundation" -framework "AlipaySDK" -framework "Bugly" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreMotion" -framework "CoreTelephony" -framework "CoreText" -framework "Foundation" -framework "GLKit" -framework "ImageIO" -framework "QuartzCore" -framework "RongChatRoom" -framework "RongCustomerService" -framework "RongDiscussion" -framework "RongFaceBeautifier" -framework "RongIMKit" -framework "RongIMLib" -framework "RongIMLibCore" -framework "RongLocation" -framework "RongPublicService" -framework "RongRTCLib" -framework "RongSight" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" -framework "VideoToolbox" -framework "WebKit" -weak_framework "UserNotifications"
+LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "${PODS_CONFIGURATION_BUILD_DIR}/RSKImageCropper" "${PODS_CONFIGURATION_BUILD_DIR}/Reachability" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive" "${PODS_CONFIGURATION_BUILD_DIR}/SocketRocket" "${PODS_CONFIGURATION_BUILD_DIR}/TYCyclePagerView" "${PODS_CONFIGURATION_BUILD_DIR}/Whiteboard" "${PODS_CONFIGURATION_BUILD_DIR}/YYModel" "${PODS_CONFIGURATION_BUILD_DIR}/dsBridge" "${PODS_CONFIGURATION_BUILD_DIR}/iOS-KS3SDK" "${PODS_ROOT}/JCore" "${PODS_ROOT}/JPush"
+OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_ROOT}/Headers/Public/SSZipArchive/SSZipArchive.modulemap" -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/AFNetworking" -isystem "${PODS_ROOT}/Headers/Public/IQKeyboardManager" -isystem "${PODS_ROOT}/Headers/Public/JPush" -isystem "${PODS_ROOT}/Headers/Public/JXCategoryView" -isystem "${PODS_ROOT}/Headers/Public/JXPagingView" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/MJExtension" -isystem "${PODS_ROOT}/Headers/Public/MJRefresh" -isystem "${PODS_ROOT}/Headers/Public/Masonry" -isystem "${PODS_ROOT}/Headers/Public/RSKImageCropper" -isystem "${PODS_ROOT}/Headers/Public/Reachability" -isystem "${PODS_ROOT}/Headers/Public/SDWebImage" -isystem "${PODS_ROOT}/Headers/Public/SocketRocket" -isystem "${PODS_ROOT}/Headers/Public/TYCyclePagerView" -isystem "${PODS_ROOT}/Headers/Public/Whiteboard" -isystem "${PODS_ROOT}/Headers/Public/YYModel" -isystem "${PODS_ROOT}/Headers/Public/dsBridge" -isystem "${PODS_ROOT}/Headers/Public/iOS-KS3SDK" -iframework "${PODS_ROOT}/AlipaySDK-iOS" -iframework "${PODS_ROOT}/Bugly" -iframework "${PODS_ROOT}/RongCloudIM/RongCloudIM" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/ChatRoom" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/CustomerService" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/Discussion" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/IMKit" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/IMLib" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/IMLibCore" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/Location" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/PublicService" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudIM/Sight" -iframework "${PODS_ROOT}/RongCloudRTC/RongCloudRTC" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudRTC/RongFaceBeautifier" -iframework "${PODS_XCFRAMEWORKS_BUILD_DIR}/RongCloudRTC/RongRTCLib"
+OTHER_LDFLAGS = $(inherited) -ObjC -l"AFNetworking" -l"IQKeyboardManager" -l"JXCategoryView" -l"JXPagingView" -l"MBProgressHUD" -l"MJExtension" -l"MJRefresh" -l"Masonry" -l"RSKImageCropper" -l"Reachability" -l"SDWebImage" -l"SSZipArchive" -l"SocketRocket" -l"TYCyclePagerView" -l"Whiteboard" -l"YYModel" -l"c++" -l"dsBridge" -l"iOS-KS3SDK" -l"iconv" -l"icucore" -l"jcore-noidfa-ios-2.7.1" -l"jpush-ios-4.3.0" -l"resolv" -l"z" -framework "AVFoundation" -framework "AlipaySDK" -framework "Bugly" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreMotion" -framework "CoreTelephony" -framework "CoreText" -framework "Foundation" -framework "GLKit" -framework "ImageIO" -framework "QuartzCore" -framework "RongChatRoom" -framework "RongCustomerService" -framework "RongDiscussion" -framework "RongFaceBeautifier" -framework "RongIMKit" -framework "RongIMLib" -framework "RongIMLibCore" -framework "RongLocation" -framework "RongPublicService" -framework "RongRTCLib" -framework "RongSight" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" -framework "VideoToolbox" -framework "WebKit" -weak_framework "UserNotifications"
 OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/SSZipArchive/SSZipArchive.modulemap"
 PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä