Commit 9bc764766d089dc64c52bc3084e51fd61b56ddc6

Authored by 左丞
2 parents 9d367c56 aa722845
Exists in newLive

Merge branch 'newLive' of http://git.shunzhi.net/iosgroup/newlive into newLive

Showing 55 changed files with 1010 additions and 74 deletions   Show diff stats
YouerLiveVideo/YouerLiveVideo.xcodeproj/project.pbxproj
@@ -146,6 +146,10 @@ @@ -146,6 +146,10 @@
146 BF6977981E2DEC98006FA934 /* userId.png in Resources */ = {isa = PBXBuildFile; fileRef = BF6977951E2DEC98006FA934 /* userId.png */; }; 146 BF6977981E2DEC98006FA934 /* userId.png in Resources */ = {isa = PBXBuildFile; fileRef = BF6977951E2DEC98006FA934 /* userId.png */; };
147 BF6977991E2DEC98006FA934 /* userPassword.png in Resources */ = {isa = PBXBuildFile; fileRef = BF6977961E2DEC98006FA934 /* userPassword.png */; }; 147 BF6977991E2DEC98006FA934 /* userPassword.png in Resources */ = {isa = PBXBuildFile; fileRef = BF6977961E2DEC98006FA934 /* userPassword.png */; };
148 BF7722F31ED283D400226D44 /* FilterViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF7722F21ED283D400226D44 /* FilterViewController.swift */; }; 148 BF7722F31ED283D400226D44 /* FilterViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF7722F21ED283D400226D44 /* FilterViewController.swift */; };
  149 + BF7722F71ED3C3CD00226D44 /* FilterView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BF7722F61ED3C3CD00226D44 /* FilterView.xib */; };
  150 + BF7722F91ED3C3E900226D44 /* FilterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF7722F81ED3C3E900226D44 /* FilterView.swift */; };
  151 + BF7722FC1ED3C54B00226D44 /* FilterCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF7722FA1ED3C54B00226D44 /* FilterCollectionViewCell.swift */; };
  152 + BF7722FD1ED3C54B00226D44 /* FilterCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = BF7722FB1ED3C54B00226D44 /* FilterCollectionViewCell.xib */; };
149 BF7B75961E305A6D0011D5C7 /* MJRefreshAutoFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B756A1E305A6D0011D5C7 /* MJRefreshAutoFooter.m */; }; 153 BF7B75961E305A6D0011D5C7 /* MJRefreshAutoFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B756A1E305A6D0011D5C7 /* MJRefreshAutoFooter.m */; };
150 BF7B75971E305A6D0011D5C7 /* MJRefreshBackFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B756C1E305A6D0011D5C7 /* MJRefreshBackFooter.m */; }; 154 BF7B75971E305A6D0011D5C7 /* MJRefreshBackFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B756C1E305A6D0011D5C7 /* MJRefreshBackFooter.m */; };
151 BF7B75981E305A6D0011D5C7 /* MJRefreshComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B756E1E305A6D0011D5C7 /* MJRefreshComponent.m */; }; 155 BF7B75981E305A6D0011D5C7 /* MJRefreshComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B756E1E305A6D0011D5C7 /* MJRefreshComponent.m */; };
@@ -472,6 +476,10 @@ @@ -472,6 +476,10 @@
472 BF6977951E2DEC98006FA934 /* userId.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = userId.png; sourceTree = "<group>"; }; 476 BF6977951E2DEC98006FA934 /* userId.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = userId.png; sourceTree = "<group>"; };
473 BF6977961E2DEC98006FA934 /* userPassword.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = userPassword.png; sourceTree = "<group>"; }; 477 BF6977961E2DEC98006FA934 /* userPassword.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = userPassword.png; sourceTree = "<group>"; };
474 BF7722F21ED283D400226D44 /* FilterViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FilterViewController.swift; sourceTree = "<group>"; }; 478 BF7722F21ED283D400226D44 /* FilterViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FilterViewController.swift; sourceTree = "<group>"; };
  479 + BF7722F61ED3C3CD00226D44 /* FilterView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FilterView.xib; sourceTree = "<group>"; };
  480 + BF7722F81ED3C3E900226D44 /* FilterView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FilterView.swift; sourceTree = "<group>"; };
  481 + BF7722FA1ED3C54B00226D44 /* FilterCollectionViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FilterCollectionViewCell.swift; sourceTree = "<group>"; };
  482 + BF7722FB1ED3C54B00226D44 /* FilterCollectionViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FilterCollectionViewCell.xib; sourceTree = "<group>"; };
475 BF7B75691E305A6D0011D5C7 /* MJRefreshAutoFooter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MJRefreshAutoFooter.h; sourceTree = "<group>"; }; 483 BF7B75691E305A6D0011D5C7 /* MJRefreshAutoFooter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MJRefreshAutoFooter.h; sourceTree = "<group>"; };
476 BF7B756A1E305A6D0011D5C7 /* MJRefreshAutoFooter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MJRefreshAutoFooter.m; sourceTree = "<group>"; }; 484 BF7B756A1E305A6D0011D5C7 /* MJRefreshAutoFooter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MJRefreshAutoFooter.m; sourceTree = "<group>"; };
477 BF7B756B1E305A6D0011D5C7 /* MJRefreshBackFooter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MJRefreshBackFooter.h; sourceTree = "<group>"; }; 485 BF7B756B1E305A6D0011D5C7 /* MJRefreshBackFooter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MJRefreshBackFooter.h; sourceTree = "<group>"; };
@@ -638,6 +646,7 @@ @@ -638,6 +646,7 @@
638 59AE3DFA1ECECD7D003E2C62 /* LiveInforViewController.swift */, 646 59AE3DFA1ECECD7D003E2C62 /* LiveInforViewController.swift */,
639 59AE3DFC1ECED5B1003E2C62 /* MoivePlayerViewController.swift */, 647 59AE3DFC1ECED5B1003E2C62 /* MoivePlayerViewController.swift */,
640 597185B41ECA990C00D7F478 /* Resource.storyboard */, 648 597185B41ECA990C00D7F478 /* Resource.storyboard */,
  649 + BF7722F51ED3C3A500226D44 /* View */,
641 ); 650 );
642 path = Resource; 651 path = Resource;
643 sourceTree = "<group>"; 652 sourceTree = "<group>";
@@ -1070,6 +1079,17 @@ @@ -1070,6 +1079,17 @@
1070 path = SVProgressHUD; 1079 path = SVProgressHUD;
1071 sourceTree = "<group>"; 1080 sourceTree = "<group>";
1072 }; 1081 };
  1082 + BF7722F51ED3C3A500226D44 /* View */ = {
  1083 + isa = PBXGroup;
  1084 + children = (
  1085 + BF7722F81ED3C3E900226D44 /* FilterView.swift */,
  1086 + BF7722F61ED3C3CD00226D44 /* FilterView.xib */,
  1087 + BF7722FA1ED3C54B00226D44 /* FilterCollectionViewCell.swift */,
  1088 + BF7722FB1ED3C54B00226D44 /* FilterCollectionViewCell.xib */,
  1089 + );
  1090 + path = View;
  1091 + sourceTree = "<group>";
  1092 + };
1073 BF7B75671E305A6D0011D5C7 /* MJRefresh */ = { 1093 BF7B75671E305A6D0011D5C7 /* MJRefresh */ = {
1074 isa = PBXGroup; 1094 isa = PBXGroup;
1075 children = ( 1095 children = (
@@ -1430,6 +1450,7 @@ @@ -1430,6 +1450,7 @@
1430 599B2CDB1DE52F7E00B4F7FD /* read_me.txt in Resources */, 1450 599B2CDB1DE52F7E00B4F7FD /* read_me.txt in Resources */,
1431 59BA13551E25D8DB00540DE0 /* video_brightness_bg@2x.png in Resources */, 1451 59BA13551E25D8DB00540DE0 /* video_brightness_bg@2x.png in Resources */,
1432 59BA13491E25D8DB00540DE0 /* movieForward.png in Resources */, 1452 59BA13491E25D8DB00540DE0 /* movieForward.png in Resources */,
  1453 + BF7722FD1ED3C54B00226D44 /* FilterCollectionViewCell.xib in Resources */,
1433 BFF5F4801DD5AA5C00D33B89 /* 竖屏.png in Resources */, 1454 BFF5F4801DD5AA5C00D33B89 /* 竖屏.png in Resources */,
1434 599B2CDC1DE52F7E00B4F7FD /* README.txt in Resources */, 1455 599B2CDC1DE52F7E00B4F7FD /* README.txt in Resources */,
1435 BFF5F4811DD5AA5C00D33B89 /* 编辑.png in Resources */, 1456 BFF5F4811DD5AA5C00D33B89 /* 编辑.png in Resources */,
@@ -1446,6 +1467,7 @@ @@ -1446,6 +1467,7 @@
1446 5904FC501ECA8B8C00E631FF /* TVStation.storyboard in Resources */, 1467 5904FC501ECA8B8C00E631FF /* TVStation.storyboard in Resources */,
1447 BF3E4A771E2F30B700D90659 /* 观看人数.png in Resources */, 1468 BF3E4A771E2F30B700D90659 /* 观看人数.png in Resources */,
1448 599B2CDF1DE52F7E00B4F7FD /* UMSocialSDKResources.bundle in Resources */, 1469 599B2CDF1DE52F7E00B4F7FD /* UMSocialSDKResources.bundle in Resources */,
  1470 + BF7722F71ED3C3CD00226D44 /* FilterView.xib in Resources */,
1449 BFF5F4901DD5B7CA00D33B89 /* Info-tvOS.plist in Resources */, 1471 BFF5F4901DD5B7CA00D33B89 /* Info-tvOS.plist in Resources */,
1450 BFF5F4711DD5AA5C00D33B89 /* attach_file.png in Resources */, 1472 BFF5F4711DD5AA5C00D33B89 /* attach_file.png in Resources */,
1451 599B2CD81DE52F7E00B4F7FD /* WeiboSDK.bundle in Resources */, 1473 599B2CD81DE52F7E00B4F7FD /* WeiboSDK.bundle in Resources */,
@@ -1496,6 +1518,7 @@ @@ -1496,6 +1518,7 @@
1496 BF7B75A21E305A6D0011D5C7 /* MJRefreshNormalHeader.m in Sources */, 1518 BF7B75A21E305A6D0011D5C7 /* MJRefreshNormalHeader.m in Sources */,
1497 BF7B75991E305A6D0011D5C7 /* MJRefreshFooter.m in Sources */, 1519 BF7B75991E305A6D0011D5C7 /* MJRefreshFooter.m in Sources */,
1498 59F801571DD2C7AE000A78B0 /* YouerLiveVideo.xcdatamodeld in Sources */, 1520 59F801571DD2C7AE000A78B0 /* YouerLiveVideo.xcdatamodeld in Sources */,
  1521 + BF7722F91ED3C3E900226D44 /* FilterView.swift in Sources */,
1499 595071031ED02C140056E078 /* ExcellentTVViewController.swift in Sources */, 1522 595071031ED02C140056E078 /* ExcellentTVViewController.swift in Sources */,
1500 59BA13311E25D1C000540DE0 /* Reachability.m in Sources */, 1523 59BA13311E25D1C000540DE0 /* Reachability.m in Sources */,
1501 BFBB83EB1ECC445D008B404B /* UserViewController.swift in Sources */, 1524 BFBB83EB1ECC445D008B404B /* UserViewController.swift in Sources */,
@@ -1592,6 +1615,7 @@ @@ -1592,6 +1615,7 @@
1592 599B2CE31DE52F7E00B4F7FD /* UMSocialUIManager.m in Sources */, 1615 599B2CE31DE52F7E00B4F7FD /* UMSocialUIManager.m in Sources */,
1593 BF25DFF91DDAA36A003EC0C1 /* NSImage+WebCache.m in Sources */, 1616 BF25DFF91DDAA36A003EC0C1 /* NSImage+WebCache.m in Sources */,
1594 BF8E52EE1ECFD16000E472E8 /* RankingTableViewController.swift in Sources */, 1617 BF8E52EE1ECFD16000E472E8 /* RankingTableViewController.swift in Sources */,
  1618 + BF7722FC1ED3C54B00226D44 /* FilterCollectionViewCell.swift in Sources */,
1595 59F8014F1DD2C7AD000A78B0 /* AppDelegate.swift in Sources */, 1619 59F8014F1DD2C7AD000A78B0 /* AppDelegate.swift in Sources */,
1596 BF7722F31ED283D400226D44 /* FilterViewController.swift in Sources */, 1620 BF7722F31ED283D400226D44 /* FilterViewController.swift in Sources */,
1597 BF25DFED1DDAA36A003EC0C1 /* ResponseSerialization.swift in Sources */, 1621 BF25DFED1DDAA36A003EC0C1 /* ResponseSerialization.swift in Sources */,
YouerLiveVideo/YouerLiveVideo.xcodeproj/project.xcworkspace/xcuserdata/Manger.xcuserdatad/UserInterfaceState.xcuserstate
No preview for this file type
YouerLiveVideo/YouerLiveVideo.xcodeproj/project.xcworkspace/xcuserdata/jun.xcuserdatad/UserInterfaceState.xcuserstate
No preview for this file type
YouerLiveVideo/YouerLiveVideo/AppDelegate.swift
@@ -40,20 +40,20 @@ class AppDelegate: UIResponder, UIApplicationDelegate,NIMLoginManagerDelegate { @@ -40,20 +40,20 @@ class AppDelegate: UIResponder, UIApplicationDelegate,NIMLoginManagerDelegate {
40 } 40 }
41 41
42 func applicationDidBecomeActive(_ application: UIApplication) { 42 func applicationDidBecomeActive(_ application: UIApplication) {
43 - let userId = AppDelegate.instance().accountManager.id()  
44 - let phone = AppDelegate.instance().accountManager.phone()  
45 - if userId != ""{  
46 - NIMSDK.shared().loginManager.autoLogin(phone, token: phone.md5().uppercased())  
47 - }  
48 - if let step = self.step {  
49 - if userId != "" && step == NIMLoginStep.loginFailed{//( step == NIMLoginStep.LinkFailed ||  
50 - XSTLiveManager.shareXSTLiveManager().login(userId: phone, completion: { (success) -> Void in  
51 - if !success {  
52 - self.accountManager.cleanUserInfoAndPoptoRootVC()  
53 - }  
54 - })  
55 - }  
56 - } 43 +// let userId = AppDelegate.instance().accountManager.id()
  44 +// let phone = AppDelegate.instance().accountManager.phone()
  45 +// if userId != ""{
  46 +// NIMSDK.shared().loginManager.autoLogin(phone, token: phone.md5().uppercased())
  47 +// }
  48 +// if let step = self.step {
  49 +// if userId != "" && step == NIMLoginStep.loginFailed{//( step == NIMLoginStep.LinkFailed ||
  50 +// XSTLiveManager.shareXSTLiveManager().login(userId: phone, completion: { (success) -> Void in
  51 +// if !success {
  52 +// self.accountManager.cleanUserInfoAndPoptoRootVC()
  53 +// }
  54 +// })
  55 +// }
  56 +// }
57 57
58 58
59 // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 59 // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/Contents.json 0 → 100644
@@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
  1 +{
  2 + "info" : {
  3 + "version" : 1,
  4 + "author" : "xcode"
  5 + }
  6 +}
0 \ No newline at end of file 7 \ No newline at end of file
YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/HomePage/Contents.json 0 → 100644
@@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
  1 +{
  2 + "info" : {
  3 + "version" : 1,
  4 + "author" : "xcode"
  5 + }
  6 +}
0 \ No newline at end of file 7 \ No newline at end of file
YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/HomePage/homepage_courseList.imageset/Contents.json 0 → 100644
@@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "资源.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "scale" : "3x"
  15 + }
  16 + ],
  17 + "info" : {
  18 + "version" : 1,
  19 + "author" : "xcode"
  20 + }
  21 +}
0 \ No newline at end of file 22 \ No newline at end of file
YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/HomePage/homepage_courseList.imageset/资源.png 0 → 100644

1.9 KB

YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/HomePage/homepage_hotcourse.imageset/Contents.json 0 → 100644
@@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "热门微课.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "scale" : "3x"
  15 + }
  16 + ],
  17 + "info" : {
  18 + "version" : 1,
  19 + "author" : "xcode"
  20 + }
  21 +}
0 \ No newline at end of file 22 \ No newline at end of file
YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/HomePage/homepage_hotcourse.imageset/热门微课.png 0 → 100644

1.21 KB

YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/HomePage/homepage_ranking.imageset/Contents.json 0 → 100644
@@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "排行.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "scale" : "3x"
  15 + }
  16 + ],
  17 + "info" : {
  18 + "version" : 1,
  19 + "author" : "xcode"
  20 + }
  21 +}
0 \ No newline at end of file 22 \ No newline at end of file
YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/HomePage/homepage_ranking.imageset/排行.png 0 → 100644

1.07 KB

YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/HomePage/homepage_television.imageset/Contents.json 0 → 100644
@@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "图标_28.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "scale" : "3x"
  15 + }
  16 + ],
  17 + "info" : {
  18 + "version" : 1,
  19 + "author" : "xcode"
  20 + }
  21 +}
0 \ No newline at end of file 22 \ No newline at end of file
YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/HomePage/homepage_television.imageset/图标_28.png 0 → 100644

1.47 KB

YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/icon_back.imageset/Contents.json 0 → 100644
@@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "返回.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "scale" : "3x"
  15 + }
  16 + ],
  17 + "info" : {
  18 + "version" : 1,
  19 + "author" : "xcode"
  20 + }
  21 +}
0 \ No newline at end of file 22 \ No newline at end of file
YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/icon_back.imageset/返回.png 0 → 100644

1.3 KB

YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/icon_courseList.imageset/Contents.json 0 → 100644
@@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "图标_24.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "scale" : "3x"
  15 + }
  16 + ],
  17 + "info" : {
  18 + "version" : 1,
  19 + "author" : "xcode"
  20 + }
  21 +}
0 \ No newline at end of file 22 \ No newline at end of file
YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/icon_courseList.imageset/图标_24.png 0 → 100644

1.9 KB

YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/icon_download.imageset/Contents.json 0 → 100644
@@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "下载数量.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "scale" : "3x"
  15 + }
  16 + ],
  17 + "info" : {
  18 + "version" : 1,
  19 + "author" : "xcode"
  20 + }
  21 +}
0 \ No newline at end of file 22 \ No newline at end of file
YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/icon_download.imageset/下载数量.png 0 → 100644

1.12 KB

YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/icon_homepage.imageset/Contents.json 0 → 100644
@@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "底栏1.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "scale" : "3x"
  15 + }
  16 + ],
  17 + "info" : {
  18 + "version" : 1,
  19 + "author" : "xcode"
  20 + }
  21 +}
0 \ No newline at end of file 22 \ No newline at end of file
YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/icon_homepage.imageset/底栏1.png 0 → 100644

1.58 KB

YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/icon_hotcourse.imageset/Contents.json 0 → 100644
@@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "图标_30.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "scale" : "3x"
  15 + }
  16 + ],
  17 + "info" : {
  18 + "version" : 1,
  19 + "author" : "xcode"
  20 + }
  21 +}
0 \ No newline at end of file 22 \ No newline at end of file
YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/icon_hotcourse.imageset/图标_30.png 0 → 100644

1.56 KB

YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/icon_microcourse.imageset/Contents.json 0 → 100644
@@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "底栏3.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "scale" : "3x"
  15 + }
  16 + ],
  17 + "info" : {
  18 + "version" : 1,
  19 + "author" : "xcode"
  20 + }
  21 +}
0 \ No newline at end of file 22 \ No newline at end of file
YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/icon_microcourse.imageset/底栏3.png 0 → 100644

1.22 KB

YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/icon_more.imageset/Contents.json 0 → 100644
@@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "更多.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "scale" : "3x"
  15 + }
  16 + ],
  17 + "info" : {
  18 + "version" : 1,
  19 + "author" : "xcode"
  20 + }
  21 +}
0 \ No newline at end of file 22 \ No newline at end of file
YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/icon_more.imageset/更多.png 0 → 100644

1.36 KB

YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/icon_open.imageset/Contents.json 0 → 100644
@@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "展开.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "scale" : "3x"
  15 + }
  16 + ],
  17 + "info" : {
  18 + "version" : 1,
  19 + "author" : "xcode"
  20 + }
  21 +}
0 \ No newline at end of file 22 \ No newline at end of file
YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/icon_open.imageset/展开.png 0 → 100644

1.36 KB

YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/icon_ranking.imageset/Contents.json 0 → 100644
@@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "图标_22.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "scale" : "3x"
  15 + }
  16 + ],
  17 + "info" : {
  18 + "version" : 1,
  19 + "author" : "xcode"
  20 + }
  21 +}
0 \ No newline at end of file 22 \ No newline at end of file
YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/icon_ranking.imageset/图标_22.png 0 → 100644

1.08 KB

YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/icon_resource.imageset/Contents.json 0 → 100644
@@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "底栏2.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "scale" : "3x"
  15 + }
  16 + ],
  17 + "info" : {
  18 + "version" : 1,
  19 + "author" : "xcode"
  20 + }
  21 +}
0 \ No newline at end of file 22 \ No newline at end of file
YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/icon_resource.imageset/底栏2.png 0 → 100644

2.02 KB

YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/icon_setting.imageset/Contents.json 0 → 100644
@@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "设置.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "scale" : "3x"
  15 + }
  16 + ],
  17 + "info" : {
  18 + "version" : 1,
  19 + "author" : "xcode"
  20 + }
  21 +}
0 \ No newline at end of file 22 \ No newline at end of file
YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/icon_setting.imageset/设置.png 0 → 100644

2.28 KB

YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/icon_tvstation.imageset/Contents.json 0 → 100644
@@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "底栏4.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "scale" : "3x"
  15 + }
  16 + ],
  17 + "info" : {
  18 + "version" : 1,
  19 + "author" : "xcode"
  20 + }
  21 +}
0 \ No newline at end of file 22 \ No newline at end of file
YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/icon_tvstation.imageset/底栏4.png 0 → 100644

1.39 KB

YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/icon_user.imageset/Contents.json 0 → 100644
@@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "底栏5.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "scale" : "3x"
  15 + }
  16 + ],
  17 + "info" : {
  18 + "version" : 1,
  19 + "author" : "xcode"
  20 + }
  21 +}
0 \ No newline at end of file 22 \ No newline at end of file
YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/icon_user.imageset/底栏5.png 0 → 100644

1.68 KB

YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/icon_watchcount.imageset/Contents.json 0 → 100644
@@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "观看数量.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "scale" : "3x"
  15 + }
  16 + ],
  17 + "info" : {
  18 + "version" : 1,
  19 + "author" : "xcode"
  20 + }
  21 +}
0 \ No newline at end of file 22 \ No newline at end of file
YouerLiveVideo/YouerLiveVideo/Assets.xcassets/z_NewIcon/icon_watchcount.imageset/观看数量.png 0 → 100644

1.43 KB

YouerLiveVideo/YouerLiveVideo/Base.lproj/Main.storyboard
@@ -124,7 +124,7 @@ @@ -124,7 +124,7 @@
124 <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> 124 <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
125 </state> 125 </state>
126 </button> 126 </button>
127 - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="ds9-Gw-nOf"> 127 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_download" translatesAutoresizingMaskIntoConstraints="NO" id="ds9-Gw-nOf">
128 <rect key="frame" x="297" y="90.5" width="20" height="20"/> 128 <rect key="frame" x="297" y="90.5" width="20" height="20"/>
129 <constraints> 129 <constraints>
130 <constraint firstAttribute="width" secondItem="ds9-Gw-nOf" secondAttribute="height" multiplier="1:1" id="Mto-fo-vVR"/> 130 <constraint firstAttribute="width" secondItem="ds9-Gw-nOf" secondAttribute="height" multiplier="1:1" id="Mto-fo-vVR"/>
@@ -273,16 +273,16 @@ @@ -273,16 +273,16 @@
273 <constraint firstAttribute="height" constant="15" id="mtL-aK-O9I"/> 273 <constraint firstAttribute="height" constant="15" id="mtL-aK-O9I"/>
274 </constraints> 274 </constraints>
275 </view> 275 </view>
276 - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="tc9-OD-L9x"> 276 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="homepage_ranking" translatesAutoresizingMaskIntoConstraints="NO" id="tc9-OD-L9x">
277 <rect key="frame" x="15" y="30" width="20" height="20"/> 277 <rect key="frame" x="15" y="30" width="20" height="20"/>
278 <constraints> 278 <constraints>
279 <constraint firstAttribute="height" constant="20" id="dzU-2e-0A0"/> 279 <constraint firstAttribute="height" constant="20" id="dzU-2e-0A0"/>
280 <constraint firstAttribute="width" constant="20" id="jeW-Q1-Yqy"/> 280 <constraint firstAttribute="width" constant="20" id="jeW-Q1-Yqy"/>
281 </constraints> 281 </constraints>
282 </imageView> 282 </imageView>
283 - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="gpI-zw-6qq"> 283 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_more" translatesAutoresizingMaskIntoConstraints="NO" id="gpI-zw-6qq">
284 <rect key="frame" x="352" y="32.5" width="8" height="15"/> 284 <rect key="frame" x="352" y="32.5" width="8" height="15"/>
285 - <color key="backgroundColor" red="0.10980392160000001" green="0.63529411759999999" blue="1" alpha="1" colorSpace="calibratedRGB"/> 285 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
286 <constraints> 286 <constraints>
287 <constraint firstAttribute="width" constant="8" id="X2b-MK-4bQ"/> 287 <constraint firstAttribute="width" constant="8" id="X2b-MK-4bQ"/>
288 <constraint firstAttribute="height" constant="15" id="ZkK-Yr-R26"/> 288 <constraint firstAttribute="height" constant="15" id="ZkK-Yr-R26"/>
@@ -380,14 +380,14 @@ @@ -380,14 +380,14 @@
380 <constraint firstAttribute="height" constant="15" id="cu9-3U-16R"/> 380 <constraint firstAttribute="height" constant="15" id="cu9-3U-16R"/>
381 </constraints> 381 </constraints>
382 </view> 382 </view>
383 - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="JfT-qO-w2b"> 383 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="homepage_hotcourse" translatesAutoresizingMaskIntoConstraints="NO" id="JfT-qO-w2b">
384 <rect key="frame" x="15" y="30" width="20" height="20"/> 384 <rect key="frame" x="15" y="30" width="20" height="20"/>
385 <constraints> 385 <constraints>
386 <constraint firstAttribute="width" constant="20" id="gju-0Y-vbI"/> 386 <constraint firstAttribute="width" constant="20" id="gju-0Y-vbI"/>
387 <constraint firstAttribute="height" constant="20" id="upC-qc-OXv"/> 387 <constraint firstAttribute="height" constant="20" id="upC-qc-OXv"/>
388 </constraints> 388 </constraints>
389 </imageView> 389 </imageView>
390 - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="QcE-wo-WjW"> 390 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_more" translatesAutoresizingMaskIntoConstraints="NO" id="QcE-wo-WjW">
391 <rect key="frame" x="352" y="32.5" width="8" height="15"/> 391 <rect key="frame" x="352" y="32.5" width="8" height="15"/>
392 <constraints> 392 <constraints>
393 <constraint firstAttribute="width" constant="8" id="6rP-92-fox"/> 393 <constraint firstAttribute="width" constant="8" id="6rP-92-fox"/>
@@ -453,7 +453,7 @@ @@ -453,7 +453,7 @@
453 <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/> 453 <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
454 <nil key="highlightedColor"/> 454 <nil key="highlightedColor"/>
455 </label> 455 </label>
456 - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="Ah6-9S-zUX"> 456 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_watchcount" translatesAutoresizingMaskIntoConstraints="NO" id="Ah6-9S-zUX">
457 <rect key="frame" x="154" y="167" width="12" height="8"/> 457 <rect key="frame" x="154" y="167" width="12" height="8"/>
458 <constraints> 458 <constraints>
459 <constraint firstAttribute="width" constant="12" id="Gst-KJ-hy2"/> 459 <constraint firstAttribute="width" constant="12" id="Gst-KJ-hy2"/>
@@ -527,14 +527,14 @@ @@ -527,14 +527,14 @@
527 <constraint firstAttribute="height" constant="15" id="zk7-4f-Srd"/> 527 <constraint firstAttribute="height" constant="15" id="zk7-4f-Srd"/>
528 </constraints> 528 </constraints>
529 </view> 529 </view>
530 - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="UWk-5A-PEj"> 530 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="homepage_courseList" translatesAutoresizingMaskIntoConstraints="NO" id="UWk-5A-PEj">
531 <rect key="frame" x="15" y="30" width="20" height="20"/> 531 <rect key="frame" x="15" y="30" width="20" height="20"/>
532 <constraints> 532 <constraints>
533 <constraint firstAttribute="width" constant="20" id="c35-8L-oxO"/> 533 <constraint firstAttribute="width" constant="20" id="c35-8L-oxO"/>
534 <constraint firstAttribute="height" constant="20" id="iOy-11-gMR"/> 534 <constraint firstAttribute="height" constant="20" id="iOy-11-gMR"/>
535 </constraints> 535 </constraints>
536 </imageView> 536 </imageView>
537 - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="Tib-Fm-A1U"> 537 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_more" translatesAutoresizingMaskIntoConstraints="NO" id="Tib-Fm-A1U">
538 <rect key="frame" x="352" y="32.5" width="8" height="15"/> 538 <rect key="frame" x="352" y="32.5" width="8" height="15"/>
539 <constraints> 539 <constraints>
540 <constraint firstAttribute="height" constant="15" id="5ek-5S-7Cb"/> 540 <constraint firstAttribute="height" constant="15" id="5ek-5S-7Cb"/>
@@ -600,7 +600,7 @@ @@ -600,7 +600,7 @@
600 <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/> 600 <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
601 <nil key="highlightedColor"/> 601 <nil key="highlightedColor"/>
602 </label> 602 </label>
603 - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="j8z-Dm-5mL"> 603 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_download" translatesAutoresizingMaskIntoConstraints="NO" id="j8z-Dm-5mL">
604 <rect key="frame" x="100" y="220" width="8" height="8"/> 604 <rect key="frame" x="100" y="220" width="8" height="8"/>
605 <constraints> 605 <constraints>
606 <constraint firstAttribute="width" constant="8" id="f5p-Mv-Ylo"/> 606 <constraint firstAttribute="width" constant="8" id="f5p-Mv-Ylo"/>
@@ -684,14 +684,14 @@ @@ -684,14 +684,14 @@
684 <constraint firstAttribute="height" constant="15" id="8kZ-Qb-uv0"/> 684 <constraint firstAttribute="height" constant="15" id="8kZ-Qb-uv0"/>
685 </constraints> 685 </constraints>
686 </view> 686 </view>
687 - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="NyS-EO-TLP"> 687 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="homepage_television" translatesAutoresizingMaskIntoConstraints="NO" id="NyS-EO-TLP">
688 <rect key="frame" x="15" y="30" width="20" height="20"/> 688 <rect key="frame" x="15" y="30" width="20" height="20"/>
689 <constraints> 689 <constraints>
690 <constraint firstAttribute="width" constant="20" id="3VH-BC-Dg6"/> 690 <constraint firstAttribute="width" constant="20" id="3VH-BC-Dg6"/>
691 <constraint firstAttribute="height" constant="20" id="FB0-l5-0Jp"/> 691 <constraint firstAttribute="height" constant="20" id="FB0-l5-0Jp"/>
692 </constraints> 692 </constraints>
693 </imageView> 693 </imageView>
694 - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="TE2-1P-sZs"> 694 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_more" translatesAutoresizingMaskIntoConstraints="NO" id="TE2-1P-sZs">
695 <rect key="frame" x="352" y="32.5" width="8" height="15"/> 695 <rect key="frame" x="352" y="32.5" width="8" height="15"/>
696 <constraints> 696 <constraints>
697 <constraint firstAttribute="height" constant="15" id="EJo-or-6w8"/> 697 <constraint firstAttribute="height" constant="15" id="EJo-or-6w8"/>
@@ -1206,7 +1206,7 @@ @@ -1206,7 +1206,7 @@
1206 <scene sceneID="Ztv-WN-7iK"> 1206 <scene sceneID="Ztv-WN-7iK">
1207 <objects> 1207 <objects>
1208 <navigationController title="资源" automaticallyAdjustsScrollViewInsets="NO" id="oPL-zE-5ud" sceneMemberID="viewController"> 1208 <navigationController title="资源" automaticallyAdjustsScrollViewInsets="NO" id="oPL-zE-5ud" sceneMemberID="viewController">
1209 - <tabBarItem key="tabBarItem" title="资源" image="首页.png" id="H9f-Lc-mQs"/> 1209 + <tabBarItem key="tabBarItem" title="资源" image="icon_resource" id="H9f-Lc-mQs"/>
1210 <toolbarItems/> 1210 <toolbarItems/>
1211 <navigationBar key="navigationBar" contentMode="scaleToFill" id="Ca3-cq-bcD"> 1211 <navigationBar key="navigationBar" contentMode="scaleToFill" id="Ca3-cq-bcD">
1212 <rect key="frame" x="0.0" y="0.0" width="375" height="44"/> 1212 <rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
@@ -1225,7 +1225,7 @@ @@ -1225,7 +1225,7 @@
1225 <scene sceneID="cuR-qn-3H2"> 1225 <scene sceneID="cuR-qn-3H2">
1226 <objects> 1226 <objects>
1227 <navigationController title="微课" automaticallyAdjustsScrollViewInsets="NO" id="B6F-S8-zbX" sceneMemberID="viewController"> 1227 <navigationController title="微课" automaticallyAdjustsScrollViewInsets="NO" id="B6F-S8-zbX" sceneMemberID="viewController">
1228 - <tabBarItem key="tabBarItem" title="微课" image="首页.png" id="6vI-fw-Oos"/> 1228 + <tabBarItem key="tabBarItem" title="微课" image="icon_microcourse" id="6vI-fw-Oos"/>
1229 <toolbarItems/> 1229 <toolbarItems/>
1230 <navigationBar key="navigationBar" contentMode="scaleToFill" id="gzA-MB-3BR"> 1230 <navigationBar key="navigationBar" contentMode="scaleToFill" id="gzA-MB-3BR">
1231 <rect key="frame" x="0.0" y="0.0" width="375" height="44"/> 1231 <rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
@@ -1244,7 +1244,7 @@ @@ -1244,7 +1244,7 @@
1244 <scene sceneID="zf3-SG-nOb"> 1244 <scene sceneID="zf3-SG-nOb">
1245 <objects> 1245 <objects>
1246 <navigationController title="电视台" automaticallyAdjustsScrollViewInsets="NO" id="eeQ-qi-Oqc" sceneMemberID="viewController"> 1246 <navigationController title="电视台" automaticallyAdjustsScrollViewInsets="NO" id="eeQ-qi-Oqc" sceneMemberID="viewController">
1247 - <tabBarItem key="tabBarItem" title="电视台" image="首页.png" id="Aq8-EP-9iB"/> 1247 + <tabBarItem key="tabBarItem" title="电视台" image="icon_tvstation" id="Aq8-EP-9iB"/>
1248 <toolbarItems/> 1248 <toolbarItems/>
1249 <navigationBar key="navigationBar" contentMode="scaleToFill" id="zos-0a-mzB"> 1249 <navigationBar key="navigationBar" contentMode="scaleToFill" id="zos-0a-mzB">
1250 <rect key="frame" x="0.0" y="0.0" width="375" height="44"/> 1250 <rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
@@ -1263,7 +1263,7 @@ @@ -1263,7 +1263,7 @@
1263 <scene sceneID="CWh-n7-nxi"> 1263 <scene sceneID="CWh-n7-nxi">
1264 <objects> 1264 <objects>
1265 <navigationController title="用户" automaticallyAdjustsScrollViewInsets="NO" id="Lq6-19-raF" sceneMemberID="viewController"> 1265 <navigationController title="用户" automaticallyAdjustsScrollViewInsets="NO" id="Lq6-19-raF" sceneMemberID="viewController">
1266 - <tabBarItem key="tabBarItem" title="用户" image="首页.png" id="xsr-8R-tgo"/> 1266 + <tabBarItem key="tabBarItem" title="用户" image="icon_user" id="xsr-8R-tgo"/>
1267 <toolbarItems/> 1267 <toolbarItems/>
1268 <navigationBar key="navigationBar" contentMode="scaleToFill" id="aYo-eQ-QLv"> 1268 <navigationBar key="navigationBar" contentMode="scaleToFill" id="aYo-eQ-QLv">
1269 <rect key="frame" x="0.0" y="0.0" width="375" height="44"/> 1269 <rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
@@ -1390,7 +1390,7 @@ @@ -1390,7 +1390,7 @@
1390 <scene sceneID="axA-Q8-m9h"> 1390 <scene sceneID="axA-Q8-m9h">
1391 <objects> 1391 <objects>
1392 <navigationController title="教育视频云" automaticallyAdjustsScrollViewInsets="NO" id="ZF0-NB-klP" sceneMemberID="viewController"> 1392 <navigationController title="教育视频云" automaticallyAdjustsScrollViewInsets="NO" id="ZF0-NB-klP" sceneMemberID="viewController">
1393 - <tabBarItem key="tabBarItem" title="首页" image="首页.png" id="JKA-ml-vLX"/> 1393 + <tabBarItem key="tabBarItem" title="首页" image="icon_homepage" id="JKA-ml-vLX"/>
1394 <toolbarItems/> 1394 <toolbarItems/>
1395 <navigationBar key="navigationBar" contentMode="scaleToFill" id="Xg7-jx-ngw"> 1395 <navigationBar key="navigationBar" contentMode="scaleToFill" id="Xg7-jx-ngw">
1396 <rect key="frame" x="0.0" y="0.0" width="375" height="44"/> 1396 <rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
@@ -1518,7 +1518,7 @@ @@ -1518,7 +1518,7 @@
1518 <action selector="pushDetailVC:" destination="IlC-3c-gI6" eventType="touchUpInside" id="3BZ-om-ppg"/> 1518 <action selector="pushDetailVC:" destination="IlC-3c-gI6" eventType="touchUpInside" id="3BZ-om-ppg"/>
1519 </connections> 1519 </connections>
1520 </button> 1520 </button>
1521 - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="anY-xC-gfl"> 1521 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_watchcount" translatesAutoresizingMaskIntoConstraints="NO" id="anY-xC-gfl">
1522 <rect key="frame" x="297" y="91" width="20" height="20"/> 1522 <rect key="frame" x="297" y="91" width="20" height="20"/>
1523 <constraints> 1523 <constraints>
1524 <constraint firstAttribute="width" constant="20" id="FKY-fi-PSd"/> 1524 <constraint firstAttribute="width" constant="20" id="FKY-fi-PSd"/>
@@ -1639,10 +1639,21 @@ @@ -1639,10 +1639,21 @@
1639 <image name="default_userRoom" width="19" height="17"/> 1639 <image name="default_userRoom" width="19" height="17"/>
1640 <image name="defphoto.png" width="256" height="256"/> 1640 <image name="defphoto.png" width="256" height="256"/>
1641 <image name="divshadow.png" width="771" height="13"/> 1641 <image name="divshadow.png" width="771" height="13"/>
  1642 + <image name="homepage_courseList" width="20" height="20"/>
  1643 + <image name="homepage_hotcourse" width="20" height="20"/>
  1644 + <image name="homepage_ranking" width="20" height="20"/>
  1645 + <image name="homepage_television" width="20" height="20"/>
1642 <image name="icon" width="512" height="512"/> 1646 <image name="icon" width="512" height="512"/>
1643 <image name="icon.png" width="80" height="80"/> 1647 <image name="icon.png" width="80" height="80"/>
  1648 + <image name="icon_download" width="8" height="8"/>
  1649 + <image name="icon_homepage" width="25" height="25"/>
  1650 + <image name="icon_microcourse" width="25" height="25"/>
  1651 + <image name="icon_more" width="8" height="14"/>
  1652 + <image name="icon_resource" width="25" height="25"/>
  1653 + <image name="icon_tvstation" width="25" height="25"/>
  1654 + <image name="icon_user" width="25" height="25"/>
  1655 + <image name="icon_watchcount" width="12" height="7"/>
1644 <image name="starLive" width="22" height="22"/> 1656 <image name="starLive" width="22" height="22"/>
1645 <image name="视窗.png" width="31" height="31"/> 1657 <image name="视窗.png" width="31" height="31"/>
1646 - <image name="首页.png" width="31" height="31"/>  
1647 </resources> 1658 </resources>
1648 </document> 1659 </document>
YouerLiveVideo/YouerLiveVideo/controllers/HomePage/MainHomeTableViewController.swift
@@ -60,10 +60,6 @@ class MainHomeTableViewController: UITableViewController { @@ -60,10 +60,6 @@ class MainHomeTableViewController: UITableViewController {
60 } 60 }
61 } 61 }
62 } 62 }
63 - //右上角搜索按钮点击方法  
64 - @IBAction func rightBarButtonAction(_ sender: UIBarButtonItem) {  
65 -  
66 - }  
67 63
68 64
69 override func didReceiveMemoryWarning() { 65 override func didReceiveMemoryWarning() {
@@ -112,10 +108,10 @@ class MainHomeTableViewController: UITableViewController { @@ -112,10 +108,10 @@ class MainHomeTableViewController: UITableViewController {
112 } 108 }
113 */ 109 */
114 override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 110 override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
115 - NSLog("点击了第\(indexPath.row)个cell")  
116 if indexPath.row==0{ 111 if indexPath.row==0{
117 //排行 112 //排行
118 let vc = UIStoryboard(name: "HomePage", bundle: nil).instantiateViewController(withIdentifier: "RankingTableViewController") as! RankingTableViewController 113 let vc = UIStoryboard(name: "HomePage", bundle: nil).instantiateViewController(withIdentifier: "RankingTableViewController") as! RankingTableViewController
  114 + vc.openIndexAry=[0,4]
119 self.navigationController?.pushViewController(vc, animated: true) 115 self.navigationController?.pushViewController(vc, animated: true)
120 } 116 }
121 } 117 }
@@ -148,10 +144,18 @@ class InLineModel: NSObject { @@ -148,10 +144,18 @@ class InLineModel: NSObject {
148 } 144 }
149 class HomeFirstTableViewCell: UITableViewCell,UICollectionViewDelegate,UICollectionViewDelegateFlowLayout,UICollectionViewDataSource { 145 class HomeFirstTableViewCell: UITableViewCell,UICollectionViewDelegate,UICollectionViewDelegateFlowLayout,UICollectionViewDataSource {
150 func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { 146 func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
151 - if indexPath.row==0{  
152 - //点击进入学校 appRootViewController()  
153 - }else{  
154 - //点击进入教师 147 + if appRootViewController().childViewControllers.count>0 {
  148 + if indexPath.row==0{
  149 + //点击进入学校
  150 + let vc = UIStoryboard(name: "HomePage", bundle: nil).instantiateViewController(withIdentifier: "RankingTableViewController") as! RankingTableViewController
  151 + vc.openIndexAry=[0]
  152 + ((appRootViewController().childViewControllers[0] as! MViewController).selectedViewController as! UINavigationController).pushViewController(vc, animated: true)
  153 + }else{
  154 + //点击进入教师
  155 + let vc = UIStoryboard(name: "HomePage", bundle: nil).instantiateViewController(withIdentifier: "RankingTableViewController") as! RankingTableViewController
  156 + vc.openIndexAry=[4]
  157 + ((appRootViewController().childViewControllers[0] as! MViewController).selectedViewController as! UINavigationController).pushViewController(vc, animated: true)
  158 + }
155 } 159 }
156 } 160 }
157 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 161 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
YouerLiveVideo/YouerLiveVideo/controllers/HomePage/RankingTableViewController.swift
@@ -229,9 +229,9 @@ class RankingTableViewController: UITableViewController { @@ -229,9 +229,9 @@ class RankingTableViewController: UITableViewController {
229 } 229 }
230 cell.titleLabel.text=ary[indexPath.row] 230 cell.titleLabel.text=ary[indexPath.row]
231 if openIndexAry.contains(indexPath.row){ 231 if openIndexAry.contains(indexPath.row){
232 - cell.titleImageView.image=UIImage(named: "botoom_image") 232 + cell.titleImageView.image=UIImage(named: "icon_open")
233 }else{ 233 }else{
234 - cell.titleImageView.image=UIImage(named: "top_image") 234 + cell.titleImageView.image=UIImage(named: "icon_more")
235 } 235 }
236 cell.subTableView.reloadData() 236 cell.subTableView.reloadData()
237 return cell 237 return cell
YouerLiveVideo/YouerLiveVideo/controllers/Resource/FilterViewController.swift
@@ -7,28 +7,224 @@ @@ -7,28 +7,224 @@
7 // 7 //
8 8
9 import UIKit 9 import UIKit
10 -  
11 -class FilterViewController: UIViewController {  
12 - 10 +class FilterViewController: UIViewController,FilterViewDelegate {
  11 + @IBOutlet var scrollContentView: UIStackView!
  12 + var nameAry:[String]=["学段","年级","学科","教材"]
  13 + var dataSchoolSection:[SchoolSection]=[]
  14 + var dataGrade:[Grade]=[]
  15 + var dataSubject:[Subject]=[]
  16 +
  17 + var type=FilterParameter()
13 override func viewDidLoad() { 18 override func viewDidLoad() {
14 super.viewDidLoad() 19 super.viewDidLoad()
15 -// AppDelegate.instance().httpServer.postResourceList(parameters: <#T##[String : AnyObject]?#>, completionHandler: <#T##(String?, NSError?) -> ()#>) 20 + self.configTheme()
  21 + self.navigationItem.title="筛选"
  22 + getSchoolSection()
  23 +// NotificationCenter.default.addObserver(self, selector: #selector(RegisterVC.keyboardWIllChange), name: NSNotification.Name.UIKeyboardWillChangeFrame, object: nil)
  24 +// NotificationCenter.default.post(name: NSNotification.Name(rawValue: "loginOutSuccess"), object: nil)
16 } 25 }
17 26
  27 + @IBAction func dismissAction(_ sender: UIBarButtonItem) {
  28 + self.dismiss(animated: true, completion: nil)
  29 + }
  30 + func setupFilterView(index:Int,arry:[filterModel]){
  31 + let filterView=scrollContentView.subviews[index] as! FilterView
  32 + if arry.count>0{
  33 + filterView.selected = 0
  34 + switch index {
  35 + case 2:
  36 + //年级
  37 + type.grade=arry[0].f_Id
  38 + case 3:
  39 + //学科
  40 + type.subject=arry[0].f_Id
  41 + default:
  42 + break
  43 + }
  44 + }else{
  45 + filterView.selected = -1
  46 + if index==2{
  47 + type.grade=nil
  48 + }
  49 + }
  50 +
  51 + filterView.isOpen=false
  52 + filterView.changeItems(array: arry)
  53 + filterView.constraints.last!.constant=60+(getScreenWidth()-80)/12
  54 + filterView.collectionView.reloadData()
  55 + }
  56 + @IBAction func determineAction(_ sender: UIButton) {
  57 + // AppDelegate.instance().httpServer.postResourceList(parameters: <#T##[String : AnyObject]?#>, completionHandler: <#T##(String?, NSError?) -> ()#>)
  58 + }
  59 + //请求年级 并添加控件
  60 + func getSchoolSection(){
  61 + SVProgressHUD.show(withStatus: "获取学段...")
  62 + SVProgressHUD.setDefaultMaskType(.black)
  63 + AppDelegate.instance().httpServer.getSchoolTypes { (str, error) in
  64 + SVProgressHUD.dismiss()
  65 + if error==nil {
  66 + if JSON.fromString(jsonString: str)!["status"].intValue == 1{
  67 + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in
  68 + for item in JSON.fromString(jsonString: str)!["data"].arrayValue {
  69 + self.dataSchoolSection.append(SchoolSection(j: item))
  70 + }
  71 + }, failHandler: { (error) in
  72 + self.view.makeToast("获取学段失败:\(error.localizedDescription)")
  73 + })
  74 + }else{
  75 + self.view.makeToast("获取学段失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)")
  76 + }
  77 + }else{
  78 + self.view.makeToast("获取学段失败:\(error!.description)")
  79 + }
  80 + let filterView=Bundle.main.loadNibNamed("FilterView", owner: nil, options: nil)![0] as! FilterView
  81 + filterView.frame.size=CGSize(width: getScreenWidth(), height: 60+(getScreenWidth()-80)/12)
  82 + filterView.delegate=self
  83 + filterView.tag=0
  84 + filterView.setUpWithItems(title: self.nameAry[0], array: self.dataSchoolSection)
  85 + if self.dataSchoolSection.count>0{
  86 + filterView.selected=0
  87 + self.type.schoolSection=self.dataSchoolSection[0].f_Id
  88 + }
  89 + self.scrollContentView.addArrangedSubview(filterView)
  90 + filterView.translatesAutoresizingMaskIntoConstraints=false
  91 + filterView.addConstraint(NSLayoutConstraint(item: filterView, attribute: NSLayoutAttribute.height, relatedBy: NSLayoutRelation.equal, toItem: nil, attribute: NSLayoutAttribute.notAnAttribute, multiplier: 1.0, constant: 60+(getScreenWidth()-80)/12))
  92 + for i in 1..<3{
  93 + let filterView=Bundle.main.loadNibNamed("FilterView", owner: nil, options: nil)![0] as! FilterView
  94 + filterView.frame.size=CGSize(width: getScreenWidth(), height: 60+(getScreenWidth()-80)/12)
  95 + filterView.delegate=self
  96 + filterView.tag=i
  97 + filterView.setUpWithItems(title: self.nameAry[i], array: [])
  98 + self.scrollContentView.addArrangedSubview(filterView)
  99 + filterView.translatesAutoresizingMaskIntoConstraints=false
  100 + filterView.addConstraint(NSLayoutConstraint(item: filterView, attribute: NSLayoutAttribute.height, relatedBy: NSLayoutRelation.equal, toItem: nil, attribute: NSLayoutAttribute.notAnAttribute, multiplier: 1.0, constant: 60+(getScreenWidth()-80)/12))
  101 + }
  102 + if self.dataSchoolSection.count>0{
  103 + self.getGradeWithSchoolSectionID(id: self.dataSchoolSection[0].f_Id, index: 2)
  104 + }
  105 + self.getSubjects(index: 3)
  106 + }
  107 + }
  108 + func selectCurrentCount(index: Int,tag:Int) {
  109 + switch tag {
  110 + case 0:
  111 + type.schoolSection=dataSchoolSection[index].f_Id
  112 + getGradeWithSchoolSectionID(id: dataSchoolSection[index].f_Id, index: 2)
  113 + case 1:
  114 + type.grade=dataGrade[index].f_Id
  115 + case 2:
  116 + type.subject=dataSubject[index].f_Id
  117 + case 3: break
  118 +
  119 + default: break
  120 +
  121 + }
  122 + }
  123 + //请求年级 并刷新
  124 + func getGradeWithSchoolSectionID(id:String,index:Int){
  125 + SVProgressHUD.show(withStatus: "获取年级...")
  126 + SVProgressHUD.setDefaultMaskType(.black)
  127 + AppDelegate.instance().httpServer.getGrades(parameters: ["schooltypeid":id as AnyObject]) { (str, error) in
  128 + SVProgressHUD.dismiss()
  129 + self.dataGrade.removeAll()
  130 + if error==nil {
  131 + if JSON.fromString(jsonString: str)!["status"].intValue == 1{
  132 + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in
  133 + for item in JSON.fromString(jsonString: str)!["data"].arrayValue {
  134 + self.dataGrade.append(Grade(j: item))
  135 + }
  136 + }, failHandler: { (error) in
  137 + self.view.makeToast("获取年级失败:\(error.localizedDescription)")
  138 + })
  139 + }else{
  140 + self.view.makeToast("获取年级失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)")
  141 + }
  142 + }else{
  143 + self.view.makeToast("获取年级失败:\(error!.description)")
  144 + }
  145 + self.setupFilterView(index: index, arry: self.dataGrade)
  146 + }
  147 + }
  148 + //请求学科 并刷新
  149 + func getSubjects(index:Int){
  150 + SVProgressHUD.show(withStatus: "获取学科...")
  151 + SVProgressHUD.setDefaultMaskType(.black)
  152 + AppDelegate.instance().httpServer.getSubjects { (str, error) in
  153 + SVProgressHUD.dismiss()
  154 + self.dataSubject.removeAll()
  155 + if error==nil {
  156 + if JSON.fromString(jsonString: str)!["status"].intValue == 1{
  157 + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in
  158 + for item in JSON.fromString(jsonString: str)!["data"].arrayValue {
  159 + self.dataSubject.append(Subject(j: item))
  160 + }
  161 + }, failHandler: { (error) in
  162 + self.view.makeToast("获取学科失败:\(error.localizedDescription)")
  163 + })
  164 + }else{
  165 + self.view.makeToast("获取学科失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)")
  166 + }
  167 + }else{
  168 + self.view.makeToast("获取学科失败:\(error!.description)")
  169 + }
  170 + self.setupFilterView(index: index, arry: self.dataSubject)
  171 + }
  172 + }
18 override func didReceiveMemoryWarning() { 173 override func didReceiveMemoryWarning() {
19 super.didReceiveMemoryWarning() 174 super.didReceiveMemoryWarning()
20 - // Dispose of any resources that can be recreated.  
21 } 175 }
22 -  
23 -  
24 - /*  
25 - // MARK: - Navigation  
26 -  
27 - // In a storyboard-based application, you will often want to do a little preparation before navigation  
28 - override func prepare(for segue: UIStoryboardSegue, sender: Any?) {  
29 - // Get the new view controller using segue.destinationViewController.  
30 - // Pass the selected object to the new view controller. 176 + // MARK: - 销毁通知
  177 + deinit {
  178 + NotificationCenter.default.removeObserver(self)
  179 + }
  180 +}
  181 +class FilterParameter:NSObject {
  182 + var schoolSection:String? //学段
  183 + var grade:String? //年级
  184 + var subject:String? //学科
  185 + var materials:String? //教材
  186 + override init() {
  187 +
  188 + }
  189 +}
  190 +class filterModel:NSObject{
  191 + var f_Id:String=""
  192 + var f_DeleteMark:Bool=false
  193 + var f_CreatorTime:String=""
  194 + var f_CreatorUserId:String=""
  195 + var f_LastModifyTime:String=""
  196 + var f_LastModifyUserId:String=""
  197 + var f_DeleteTime:String=""
  198 + var f_DeleteUserId:String=""
  199 + init(j:JSON) {
  200 + f_Id=j["f_Id"].stringValue
  201 + f_DeleteMark=j["f_DeleteMark"].boolValue
  202 + f_CreatorTime=j["f_CreatorTime"].stringValue
  203 + f_CreatorUserId=j["f_CreatorUserId"].stringValue
  204 + f_LastModifyTime=j["f_LastModifyTime"].stringValue
  205 + f_LastModifyUserId=j["f_LastModifyUserId"].stringValue
  206 + f_DeleteTime=j["f_DeleteTime"].stringValue
  207 + f_DeleteUserId=j["f_DeleteUserId"].stringValue
  208 + }
  209 +}
  210 +class SchoolSection: filterModel {
  211 + var f_SchoolType:String=""
  212 + override init(j:JSON) {
  213 + super.init(j: j)
  214 + f_SchoolType=j["f_SchoolType"].stringValue
  215 + }
  216 +}
  217 +class Grade: filterModel {
  218 + var f_GradeName:String=""
  219 + override init(j:JSON) {
  220 + super.init(j: j)
  221 + f_GradeName=j["f_GradeName"].stringValue
  222 + }
  223 +}
  224 +class Subject: filterModel {
  225 + var f_SubjectName:String=""
  226 + override init(j:JSON) {
  227 + super.init(j: j)
  228 + f_SubjectName=j["f_SubjectName"].stringValue
31 } 229 }
32 - */  
33 -  
34 } 230 }
YouerLiveVideo/YouerLiveVideo/controllers/Resource/Resource.storyboard
@@ -9,10 +9,10 @@ @@ -9,10 +9,10 @@
9 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> 9 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
10 </dependencies> 10 </dependencies>
11 <scenes> 11 <scenes>
12 - <!--Filter View Controller--> 12 + <!--筛选-->
13 <scene sceneID="Rmv-Eo-NBi"> 13 <scene sceneID="Rmv-Eo-NBi">
14 <objects> 14 <objects>
15 - <viewController storyboardIdentifier="FilterViewController" hidesBottomBarWhenPushed="YES" id="J51-bf-ysq" customClass="FilterViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController"> 15 + <viewController storyboardIdentifier="FilterViewController" title="筛选" automaticallyAdjustsScrollViewInsets="NO" hidesBottomBarWhenPushed="YES" id="J51-bf-ysq" customClass="FilterViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController">
16 <layoutGuides> 16 <layoutGuides>
17 <viewControllerLayoutGuide type="top" id="8Fm-xC-jSr"/> 17 <viewControllerLayoutGuide type="top" id="8Fm-xC-jSr"/>
18 <viewControllerLayoutGuide type="bottom" id="bXh-Wr-qy6"/> 18 <viewControllerLayoutGuide type="bottom" id="bXh-Wr-qy6"/>
@@ -20,13 +20,64 @@ @@ -20,13 +20,64 @@
20 <view key="view" contentMode="scaleToFill" id="ao2-Oa-iAS"> 20 <view key="view" contentMode="scaleToFill" id="ao2-Oa-iAS">
21 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> 21 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
22 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> 22 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
  23 + <subviews>
  24 + <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="IYF-5b-c3m">
  25 + <rect key="frame" x="0.0" y="64" width="375" height="603"/>
  26 + <subviews>
  27 + <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="KvN-Pb-Nub">
  28 + <rect key="frame" x="0.0" y="0.0" width="375" height="1"/>
  29 + <subviews>
  30 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="65A-no-dyJ">
  31 + <rect key="frame" x="0.0" y="0.0" width="375" height="1"/>
  32 + <constraints>
  33 + <constraint firstAttribute="height" constant="1" id="xkQ-5h-BMe"/>
  34 + </constraints>
  35 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  36 + <nil key="textColor"/>
  37 + <nil key="highlightedColor"/>
  38 + </label>
  39 + </subviews>
  40 + <color key="backgroundColor" red="0.98431372549999996" green="0.53333333329999999" blue="0.16078431369999999" alpha="1" colorSpace="calibratedRGB"/>
  41 + <constraints>
  42 + <constraint firstAttribute="trailing" secondItem="65A-no-dyJ" secondAttribute="trailing" id="54Y-dd-gNq"/>
  43 + <constraint firstItem="65A-no-dyJ" firstAttribute="top" secondItem="KvN-Pb-Nub" secondAttribute="top" id="ATk-pq-QJJ"/>
  44 + <constraint firstItem="65A-no-dyJ" firstAttribute="leading" secondItem="KvN-Pb-Nub" secondAttribute="leading" id="l5s-Ax-axE"/>
  45 + </constraints>
  46 + </stackView>
  47 + </subviews>
  48 + <constraints>
  49 + <constraint firstItem="KvN-Pb-Nub" firstAttribute="leading" secondItem="IYF-5b-c3m" secondAttribute="leading" id="09s-Vs-jBg"/>
  50 + <constraint firstItem="KvN-Pb-Nub" firstAttribute="width" secondItem="IYF-5b-c3m" secondAttribute="width" id="5wf-4c-5Xd"/>
  51 + <constraint firstItem="KvN-Pb-Nub" firstAttribute="top" secondItem="IYF-5b-c3m" secondAttribute="top" id="LQM-Ax-Q3o"/>
  52 + <constraint firstItem="KvN-Pb-Nub" firstAttribute="centerX" secondItem="IYF-5b-c3m" secondAttribute="centerX" id="QaL-zJ-Vej"/>
  53 + <constraint firstAttribute="trailing" secondItem="KvN-Pb-Nub" secondAttribute="trailing" id="sRO-Ai-dtq"/>
  54 + <constraint firstAttribute="bottom" secondItem="KvN-Pb-Nub" secondAttribute="bottom" id="ygU-WM-4eC"/>
  55 + </constraints>
  56 + </scrollView>
  57 + </subviews>
23 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 58 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  59 + <constraints>
  60 + <constraint firstItem="bXh-Wr-qy6" firstAttribute="top" secondItem="IYF-5b-c3m" secondAttribute="bottom" id="4Fj-ek-MrC"/>
  61 + <constraint firstItem="IYF-5b-c3m" firstAttribute="leading" secondItem="ao2-Oa-iAS" secondAttribute="leading" id="Gw1-De-QXC"/>
  62 + <constraint firstAttribute="trailing" secondItem="IYF-5b-c3m" secondAttribute="trailing" id="lOu-N7-px1"/>
  63 + <constraint firstItem="IYF-5b-c3m" firstAttribute="top" secondItem="8Fm-xC-jSr" secondAttribute="bottom" id="r8a-fu-6SW"/>
  64 + </constraints>
24 </view> 65 </view>
  66 + <navigationItem key="navigationItem" title="筛选" id="XhF-gh-xmO">
  67 + <barButtonItem key="rightBarButtonItem" title="取消" id="sh5-cw-Jab">
  68 + <connections>
  69 + <action selector="dismissAction:" destination="J51-bf-ysq" id="nh3-AE-6cX"/>
  70 + </connections>
  71 + </barButtonItem>
  72 + </navigationItem>
25 <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/> 73 <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
  74 + <connections>
  75 + <outlet property="scrollContentView" destination="KvN-Pb-Nub" id="NiI-XK-4DK"/>
  76 + </connections>
26 </viewController> 77 </viewController>
27 <placeholder placeholderIdentifier="IBFirstResponder" id="ocM-s7-Wga" userLabel="First Responder" sceneMemberID="firstResponder"/> 78 <placeholder placeholderIdentifier="IBFirstResponder" id="ocM-s7-Wga" userLabel="First Responder" sceneMemberID="firstResponder"/>
28 </objects> 79 </objects>
29 - <point key="canvasLocation" x="-737" y="266"/> 80 + <point key="canvasLocation" x="-738.39999999999998" y="265.81709145427288"/>
30 </scene> 81 </scene>
31 <!--Live Infor View Controller--> 82 <!--Live Infor View Controller-->
32 <scene sceneID="QrF-a4-VNS"> 83 <scene sceneID="QrF-a4-VNS">
YouerLiveVideo/YouerLiveVideo/controllers/Resource/ResourceViewController.swift
@@ -107,7 +107,7 @@ class ResourceViewController: UIViewController,UITableViewDelegate,UITableViewDa @@ -107,7 +107,7 @@ class ResourceViewController: UIViewController,UITableViewDelegate,UITableViewDa
107 // MARK: - 跳转到筛选 107 // MARK: - 跳转到筛选
108 @IBAction func jumpFilterVCAction(_ sender: UIButton) { 108 @IBAction func jumpFilterVCAction(_ sender: UIButton) {
109 let vc = UIStoryboard(name: "Resource", bundle: nil).instantiateViewController(withIdentifier: "FilterViewController") as! FilterViewController 109 let vc = UIStoryboard(name: "Resource", bundle: nil).instantiateViewController(withIdentifier: "FilterViewController") as! FilterViewController
110 - self.navigationController?.pushViewController(vc, animated: true) 110 + self.present(vc.wrapWithNavigationController(), animated: true, completion: nil)
111 } 111 }
112 112
113 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 113 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
YouerLiveVideo/YouerLiveVideo/controllers/Resource/View/FilterCollectionViewCell.swift 0 → 100644
@@ -0,0 +1,19 @@ @@ -0,0 +1,19 @@
  1 +//
  2 +// FilterCollectionViewCell.swift
  3 +// YouerLiveVideo
  4 +//
  5 +// Created by 葛建军 on 17/5/23.
  6 +// Copyright © 2017年 左丞. All rights reserved.
  7 +//
  8 +
  9 +import UIKit
  10 +
  11 +class FilterCollectionViewCell: UICollectionViewCell {
  12 +
  13 + @IBOutlet var titleLabel: UILabel!
  14 + override func awakeFromNib() {
  15 + super.awakeFromNib()
  16 + // Initialization code
  17 + }
  18 +
  19 +}
YouerLiveVideo/YouerLiveVideo/controllers/Resource/View/FilterCollectionViewCell.xib 0 → 100644
@@ -0,0 +1,48 @@ @@ -0,0 +1,48 @@
  1 +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2 +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="11762" systemVersion="15G1217" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
  3 + <device id="retina4_7" orientation="portrait">
  4 + <adaptation id="fullscreen"/>
  5 + </device>
  6 + <dependencies>
  7 + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11757"/>
  8 + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
  9 + </dependencies>
  10 + <objects>
  11 + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
  12 + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
  13 + <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="identifier" id="gTV-IL-0wX" customClass="FilterCollectionViewCell" customModule="YouerLiveVideo" customModuleProvider="target">
  14 + <rect key="frame" x="0.0" y="0.0" width="120" height="40"/>
  15 + <autoresizingMask key="autoresizingMask"/>
  16 + <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
  17 + <rect key="frame" x="0.0" y="0.0" width="120" height="40"/>
  18 + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
  19 + <subviews>
  20 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="小学" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="F0D-46-jda">
  21 + <rect key="frame" x="0.0" y="0.0" width="120" height="40"/>
  22 + <color key="backgroundColor" red="0.10980392160000001" green="0.63529411759999999" blue="1" alpha="1" colorSpace="calibratedRGB"/>
  23 + <fontDescription key="fontDescription" type="system" pointSize="15"/>
  24 + <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  25 + <nil key="highlightedColor"/>
  26 + <userDefinedRuntimeAttributes>
  27 + <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
  28 + <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
  29 + <integer key="value" value="5"/>
  30 + </userDefinedRuntimeAttribute>
  31 + </userDefinedRuntimeAttributes>
  32 + </label>
  33 + </subviews>
  34 + </view>
  35 + <constraints>
  36 + <constraint firstItem="F0D-46-jda" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" id="33t-wF-LMs"/>
  37 + <constraint firstAttribute="trailing" secondItem="F0D-46-jda" secondAttribute="trailing" id="M5r-RT-2BD"/>
  38 + <constraint firstAttribute="bottom" secondItem="F0D-46-jda" secondAttribute="bottom" id="NdF-Eb-c7u"/>
  39 + <constraint firstItem="F0D-46-jda" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" id="TNg-FI-q5K"/>
  40 + </constraints>
  41 + <size key="customSize" width="122" height="38"/>
  42 + <connections>
  43 + <outlet property="titleLabel" destination="F0D-46-jda" id="CGy-n4-6ma"/>
  44 + </connections>
  45 + <point key="canvasLocation" x="-80" y="-77"/>
  46 + </collectionViewCell>
  47 + </objects>
  48 +</document>
YouerLiveVideo/YouerLiveVideo/controllers/Resource/View/FilterView.swift 0 → 100644
@@ -0,0 +1,93 @@ @@ -0,0 +1,93 @@
  1 +//
  2 +// FilterView.swift
  3 +// YouerLiveVideo
  4 +//
  5 +// Created by 葛建军 on 17/5/23.
  6 +// Copyright © 2017年 左丞. All rights reserved.
  7 +//
  8 +
  9 +import UIKit
  10 +
  11 +class FilterView: UIView,UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout {
  12 + @IBOutlet var titleLabel: UILabel!
  13 + @IBOutlet var collectionView: UICollectionView!
  14 + var isOpen:Bool=false
  15 + var dataAry:[filterModel]=[]
  16 + var delegate:FilterViewDelegate!
  17 + var selected:Int = -1
  18 + var numberLines:Int!
  19 + var cellWidth=(getScreenWidth()-80)/3
  20 + var cellHeight=(getScreenWidth()-80)/12
  21 + override func awakeFromNib() {
  22 + super.awakeFromNib()
  23 + collectionView.register(UINib(nibName: "FilterCollectionViewCell", bundle: nil), forCellWithReuseIdentifier: "identifier")
  24 + }
  25 + func setUpWithItems(title:String,array:[filterModel]) {
  26 + titleLabel.text=title
  27 + dataAry=array
  28 + numberLines = array.count%3 > 0 ? array.count/3+1 : array.count/3
  29 + self.collectionView.reloadData()
  30 + }
  31 + func changeItems(array:[filterModel]){
  32 + dataAry=array
  33 + numberLines = array.count%3 > 0 ? array.count/3+1 : array.count/3
  34 + self.collectionView.reloadData()
  35 + }
  36 + @IBAction func openOrCloseAction(_ sender: UIButton) {
  37 + if isOpen {
  38 + isOpen=false
  39 + self.constraints.last!.constant=60+cellHeight
  40 + }else{
  41 + if dataAry.count>3{
  42 + isOpen=true
  43 + self.constraints.last!.constant=60+cellHeight+CGFloat(numberLines-1)*(cellHeight+10)
  44 + self.collectionView.reloadData()
  45 + }
  46 + }
  47 + }
  48 + func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
  49 + return CGSize(width: cellWidth, height: cellHeight)
  50 + }
  51 + func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
  52 + let cell=collectionView.dequeueReusableCell(withReuseIdentifier: "identifier", for: indexPath) as! FilterCollectionViewCell
  53 + switch self.tag {
  54 + case 0:
  55 + cell.titleLabel.text=(dataAry as! [SchoolSection])[indexPath.row].f_SchoolType
  56 + case 1:
  57 + cell.titleLabel.text=(dataAry as! [Grade])[indexPath.row].f_GradeName
  58 + case 2:
  59 + cell.titleLabel.text=(dataAry as! [Subject])[indexPath.row].f_SubjectName
  60 + default:
  61 + cell.titleLabel.text="未知"
  62 + }
  63 + if indexPath.row==selected {
  64 + cell.titleLabel.backgroundColor=Theme.topBarColor()
  65 + cell.titleLabel.textColor=UIColor.white
  66 + }else{
  67 + cell.titleLabel.backgroundColor=UIColor.groupTableViewBackground
  68 + cell.titleLabel.textColor=UIColor.black
  69 + }
  70 + return cell
  71 + }
  72 + func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
  73 + if isOpen {
  74 + return dataAry.count
  75 + }else{
  76 + if dataAry.count<4 {
  77 + return dataAry.count
  78 + }else{
  79 + return 3
  80 + }
  81 + }
  82 + }
  83 + func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
  84 + if selected != indexPath.row {
  85 + selected=indexPath.row
  86 + self.delegate.selectCurrentCount(index: indexPath.row, tag: self.tag)
  87 + self.collectionView.reloadData()
  88 + }
  89 + }
  90 +}
  91 +protocol FilterViewDelegate {
  92 + func selectCurrentCount(index:Int,tag:Int)
  93 +}
YouerLiveVideo/YouerLiveVideo/controllers/Resource/View/FilterView.xib 0 → 100644
@@ -0,0 +1,98 @@ @@ -0,0 +1,98 @@
  1 +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2 +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="11762" systemVersion="15G1217" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
  3 + <device id="retina4_7" orientation="portrait">
  4 + <adaptation id="fullscreen"/>
  5 + </device>
  6 + <dependencies>
  7 + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11757"/>
  8 + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
  9 + </dependencies>
  10 + <objects>
  11 + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
  12 + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
  13 + <view clipsSubviews="YES" contentMode="scaleToFill" id="iN0-l3-epB" customClass="FilterView" customModule="YouerLiveVideo" customModuleProvider="target">
  14 + <rect key="frame" x="0.0" y="0.0" width="406" height="242"/>
  15 + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
  16 + <subviews>
  17 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="学段" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="uQz-xV-iAD">
  18 + <rect key="frame" x="20" y="10" width="33" height="20"/>
  19 + <fontDescription key="fontDescription" type="system" pointSize="16"/>
  20 + <nil key="textColor"/>
  21 + <nil key="highlightedColor"/>
  22 + </label>
  23 + <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="PUk-bf-FTI">
  24 + <rect key="frame" x="20" y="40" width="366" height="182"/>
  25 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
  26 + <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="0.0" id="CMD-Fw-Sjo">
  27 + <size key="itemSize" width="50" height="50"/>
  28 + <size key="headerReferenceSize" width="0.0" height="0.0"/>
  29 + <size key="footerReferenceSize" width="0.0" height="0.0"/>
  30 + <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
  31 + </collectionViewFlowLayout>
  32 + <connections>
  33 + <outlet property="dataSource" destination="iN0-l3-epB" id="ESV-a0-hCq"/>
  34 + <outlet property="delegate" destination="iN0-l3-epB" id="RXH-fJ-Hll"/>
  35 + </connections>
  36 + </collectionView>
  37 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="cif-Vg-cMI">
  38 + <rect key="frame" x="336" y="0.0" width="50" height="34"/>
  39 + <subviews>
  40 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="全部" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Xgp-Yj-rju">
  41 + <rect key="frame" x="0.0" y="0.0" width="42" height="34"/>
  42 + <fontDescription key="fontDescription" type="system" pointSize="13"/>
  43 + <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
  44 + <nil key="highlightedColor"/>
  45 + </label>
  46 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_more" translatesAutoresizingMaskIntoConstraints="NO" id="Yi5-oE-p54">
  47 + <rect key="frame" x="42" y="10" width="8" height="15"/>
  48 + <constraints>
  49 + <constraint firstAttribute="width" constant="8" id="8pU-3b-hVL"/>
  50 + <constraint firstAttribute="height" constant="15" id="YoR-To-kNi"/>
  51 + </constraints>
  52 + </imageView>
  53 + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="vFg-ez-6yB">
  54 + <rect key="frame" x="0.0" y="0.0" width="50" height="34"/>
  55 + <connections>
  56 + <action selector="openOrCloseAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="enY-8P-rHR"/>
  57 + </connections>
  58 + </button>
  59 + </subviews>
  60 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
  61 + <constraints>
  62 + <constraint firstAttribute="bottom" secondItem="Xgp-Yj-rju" secondAttribute="bottom" id="5pX-4I-aV1"/>
  63 + <constraint firstAttribute="trailing" secondItem="vFg-ez-6yB" secondAttribute="trailing" id="8oA-tR-a9S"/>
  64 + <constraint firstAttribute="bottom" secondItem="vFg-ez-6yB" secondAttribute="bottom" id="8pE-Nx-jdY"/>
  65 + <constraint firstItem="Xgp-Yj-rju" firstAttribute="leading" secondItem="cif-Vg-cMI" secondAttribute="leading" id="Acg-vU-eDj"/>
  66 + <constraint firstItem="vFg-ez-6yB" firstAttribute="top" secondItem="cif-Vg-cMI" secondAttribute="top" id="EGn-rn-FhX"/>
  67 + <constraint firstItem="Yi5-oE-p54" firstAttribute="leading" secondItem="Xgp-Yj-rju" secondAttribute="trailing" id="EU8-pp-uj6"/>
  68 + <constraint firstItem="Yi5-oE-p54" firstAttribute="centerY" secondItem="cif-Vg-cMI" secondAttribute="centerY" id="dI6-h0-ve2"/>
  69 + <constraint firstAttribute="width" constant="50" id="gp7-jN-cTr"/>
  70 + <constraint firstItem="Xgp-Yj-rju" firstAttribute="top" secondItem="cif-Vg-cMI" secondAttribute="top" id="mKd-KO-MU9"/>
  71 + <constraint firstItem="vFg-ez-6yB" firstAttribute="leading" secondItem="cif-Vg-cMI" secondAttribute="leading" id="oQy-yz-nC5"/>
  72 + <constraint firstAttribute="trailing" secondItem="Yi5-oE-p54" secondAttribute="trailing" id="qP2-LK-MJS"/>
  73 + </constraints>
  74 + </view>
  75 + </subviews>
  76 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
  77 + <constraints>
  78 + <constraint firstItem="uQz-xV-iAD" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="10" id="5ZE-95-bk1"/>
  79 + <constraint firstAttribute="bottom" secondItem="PUk-bf-FTI" secondAttribute="bottom" constant="20" id="8xy-ni-fOt"/>
  80 + <constraint firstAttribute="trailing" secondItem="cif-Vg-cMI" secondAttribute="trailing" constant="20" id="DPa-oT-ZVi"/>
  81 + <constraint firstItem="PUk-bf-FTI" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" id="MAr-8E-ipy"/>
  82 + <constraint firstItem="PUk-bf-FTI" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="40" id="NkW-cH-ltZ"/>
  83 + <constraint firstAttribute="trailing" secondItem="PUk-bf-FTI" secondAttribute="trailing" constant="20" id="fwr-U1-zDh"/>
  84 + <constraint firstItem="uQz-xV-iAD" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" id="gNr-Pg-F54"/>
  85 + <constraint firstItem="cif-Vg-cMI" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="kKV-TT-4Ov"/>
  86 + </constraints>
  87 + <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
  88 + <connections>
  89 + <outlet property="collectionView" destination="PUk-bf-FTI" id="lcH-DQ-bM9"/>
  90 + <outlet property="titleLabel" destination="uQz-xV-iAD" id="in8-lv-Coj"/>
  91 + </connections>
  92 + <point key="canvasLocation" x="4" y="-317"/>
  93 + </view>
  94 + </objects>
  95 + <resources>
  96 + <image name="icon_more" width="8" height="14"/>
  97 + </resources>
  98 +</document>
YouerLiveVideo/YouerLiveVideo/controllers/User/UserCenter/RegisterViewController.swift
@@ -85,7 +85,7 @@ class RegisterViewController: UIViewController,UIAlertViewDelegate,UIImagePicker @@ -85,7 +85,7 @@ class RegisterViewController: UIViewController,UIAlertViewDelegate,UIImagePicker
85 if inputVerificationCode.text!.characters.count == 4{ 85 if inputVerificationCode.text!.characters.count == 4{
86 SVProgressHUD.show(withStatus: "注册...") 86 SVProgressHUD.show(withStatus: "注册...")
87 SVProgressHUD.setDefaultMaskType(.black) 87 SVProgressHUD.setDefaultMaskType(.black)
88 - let parameters:Dictionary<String,AnyObject>=["account":phoneNumber.text! as AnyObject,"password":passwordTextField.text! as AnyObject,"vercode":inputVerificationCode.text! as AnyObject,"nickname": (nikeNameTextFiled.text!=="" ? phoneNumber.text! : nikeNameTextFiled.text!) as AnyObject] 88 + let parameters:Dictionary<String,AnyObject>=["account":phoneNumber.text! as AnyObject,"password":passwordTextField.text!.md5() as AnyObject,"vercode":inputVerificationCode.text! as AnyObject,"nickname": (nikeNameTextFiled.text!=="" ? phoneNumber.text! : nikeNameTextFiled.text!) as AnyObject]
89 AppDelegate.instance().httpServer.getCreateUser(parameters: parameters) { (str, error) in 89 AppDelegate.instance().httpServer.getCreateUser(parameters: parameters) { (str, error) in
90 SVProgressHUD.dismiss() 90 SVProgressHUD.dismiss()
91 self.nikeNameTextFiled.isUserInteractionEnabled=true 91 self.nikeNameTextFiled.isUserInteractionEnabled=true
@@ -95,7 +95,7 @@ class RegisterViewController: UIViewController,UIAlertViewDelegate,UIImagePicker @@ -95,7 +95,7 @@ class RegisterViewController: UIViewController,UIAlertViewDelegate,UIImagePicker
95 if error==nil { 95 if error==nil {
96 if JSON.fromString(jsonString: str)!["status"].intValue == 1{ 96 if JSON.fromString(jsonString: str)!["status"].intValue == 1{
97 httpJsonResule(jsonString: str, error: error, successHandler: { (json) in 97 httpJsonResule(jsonString: str, error: error, successHandler: { (json) in
98 - self.navigationController!.popToRootViewController(animated: true) 98 + self.navigationController!.dismiss(animated: true, completion: nil)
99 AppDelegate.instance().window?.makeToast("注册成功") 99 AppDelegate.instance().window?.makeToast("注册成功")
100 NotificationCenter.default.post(name: NSNotification.Name(rawValue: "refreshLoginUser"), object: self.phoneNumber.text!) 100 NotificationCenter.default.post(name: NSNotification.Name(rawValue: "refreshLoginUser"), object: self.phoneNumber.text!)
101 //是否登录 101 //是否登录
YouerLiveVideo/YouerLiveVideo/controllers/User/UserCenter/User.storyboard
@@ -78,7 +78,6 @@ @@ -78,7 +78,6 @@
78 </imageView> 78 </imageView>
79 <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入账号" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="IzH-dB-I9H"> 79 <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入账号" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="IzH-dB-I9H">
80 <rect key="frame" x="36" y="18.5" width="339" height="19"/> 80 <rect key="frame" x="36" y="18.5" width="339" height="19"/>
81 - <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>  
82 <fontDescription key="fontDescription" type="system" pointSize="13"/> 81 <fontDescription key="fontDescription" type="system" pointSize="13"/>
83 <textInputTraits key="textInputTraits" keyboardType="numberPad"/> 82 <textInputTraits key="textInputTraits" keyboardType="numberPad"/>
84 <connections> 83 <connections>
@@ -121,7 +120,6 @@ @@ -121,7 +120,6 @@
121 </imageView> 120 </imageView>
122 <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入密码" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="nVn-EA-yWM"> 121 <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入密码" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="nVn-EA-yWM">
123 <rect key="frame" x="36" y="18.5" width="339" height="19"/> 122 <rect key="frame" x="36" y="18.5" width="339" height="19"/>
124 - <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>  
125 <fontDescription key="fontDescription" type="system" pointSize="13"/> 123 <fontDescription key="fontDescription" type="system" pointSize="13"/>
126 <textInputTraits key="textInputTraits" secureTextEntry="YES"/> 124 <textInputTraits key="textInputTraits" secureTextEntry="YES"/>
127 <connections> 125 <connections>
@@ -551,7 +549,7 @@ @@ -551,7 +549,7 @@
551 <nil key="highlightedColor"/> 549 <nil key="highlightedColor"/>
552 </label> 550 </label>
553 <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入手机号码 " minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="nVJ-81-bXY"> 551 <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入手机号码 " minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="nVJ-81-bXY">
554 - <rect key="frame" x="89" y="18.5" width="123.5" height="19"/> 552 + <rect key="frame" x="89" y="19" width="177" height="19"/>
555 <fontDescription key="fontDescription" type="system" pointSize="15"/> 553 <fontDescription key="fontDescription" type="system" pointSize="15"/>
556 <textInputTraits key="textInputTraits" keyboardType="numberPad" returnKeyType="done"/> 554 <textInputTraits key="textInputTraits" keyboardType="numberPad" returnKeyType="done"/>
557 <connections> 555 <connections>
@@ -561,6 +559,9 @@ @@ -561,6 +559,9 @@
561 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="hwv-0n-dsf"> 559 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="hwv-0n-dsf">
562 <rect key="frame" x="274" y="13" width="93" height="30"/> 560 <rect key="frame" x="274" y="13" width="93" height="30"/>
563 <color key="backgroundColor" red="0.10980392160000001" green="0.63529411759999999" blue="1" alpha="1" colorSpace="calibratedRGB"/> 561 <color key="backgroundColor" red="0.10980392160000001" green="0.63529411759999999" blue="1" alpha="1" colorSpace="calibratedRGB"/>
  562 + <constraints>
  563 + <constraint firstAttribute="width" constant="93" id="tn3-0t-fnt"/>
  564 + </constraints>
564 <fontDescription key="fontDescription" type="system" pointSize="15"/> 565 <fontDescription key="fontDescription" type="system" pointSize="15"/>
565 <state key="normal" title=" 发送验证码 "> 566 <state key="normal" title=" 发送验证码 ">
566 <color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 567 <color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
@@ -586,6 +587,7 @@ @@ -586,6 +587,7 @@
586 <constraint firstAttribute="trailing" secondItem="hwv-0n-dsf" secondAttribute="trailing" constant="8" id="jCe-9b-HiL"/> 587 <constraint firstAttribute="trailing" secondItem="hwv-0n-dsf" secondAttribute="trailing" constant="8" id="jCe-9b-HiL"/>
587 <constraint firstItem="hwv-0n-dsf" firstAttribute="centerY" secondItem="vkP-pb-ydp" secondAttribute="centerY" id="mgL-oA-0oG"/> 588 <constraint firstItem="hwv-0n-dsf" firstAttribute="centerY" secondItem="vkP-pb-ydp" secondAttribute="centerY" id="mgL-oA-0oG"/>
588 <constraint firstAttribute="trailing" secondItem="MEf-rE-fBh" secondAttribute="trailing" id="nEG-6h-NXY"/> 589 <constraint firstAttribute="trailing" secondItem="MEf-rE-fBh" secondAttribute="trailing" id="nEG-6h-NXY"/>
  590 + <constraint firstItem="hwv-0n-dsf" firstAttribute="leading" secondItem="nVJ-81-bXY" secondAttribute="trailing" constant="8" id="u7R-Pm-UM9"/>
589 <constraint firstAttribute="bottom" secondItem="MEf-rE-fBh" secondAttribute="bottom" id="y9Q-1X-3wy"/> 591 <constraint firstAttribute="bottom" secondItem="MEf-rE-fBh" secondAttribute="bottom" id="y9Q-1X-3wy"/>
590 <constraint firstItem="nVJ-81-bXY" firstAttribute="leading" secondItem="ae8-Wz-CYH" secondAttribute="trailing" constant="8" id="zxS-jB-eC8"/> 592 <constraint firstItem="nVJ-81-bXY" firstAttribute="leading" secondItem="ae8-Wz-CYH" secondAttribute="trailing" constant="8" id="zxS-jB-eC8"/>
591 </constraints> 593 </constraints>
@@ -738,7 +740,7 @@ @@ -738,7 +740,7 @@
738 </connections> 740 </connections>
739 </tapGestureRecognizer> 741 </tapGestureRecognizer>
740 </objects> 742 </objects>
741 - <point key="canvasLocation" x="-1446" y="1533"/> 743 + <point key="canvasLocation" x="-1447.2" y="1532.3838080959522"/>
742 </scene> 744 </scene>
743 <!--注册--> 745 <!--注册-->
744 <scene sceneID="fjB-PO-uzD"> 746 <scene sceneID="fjB-PO-uzD">
YouerLiveVideo/YouerLiveVideo/util/network.swift
@@ -228,12 +228,12 @@ final class HTTPServer{ @@ -228,12 +228,12 @@ final class HTTPServer{
228 KHttp.GET(url: HTTPServer.URL_COMMONGETCOURSEWAREVERSIONS, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) 228 KHttp.GET(url: HTTPServer.URL_COMMONGETCOURSEWAREVERSIONS, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler)
229 } 229 }
230 //获取学科 230 //获取学科
231 - func getSubjects(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){  
232 - KHttp.GET(url: HTTPServer.URL_COMMONGETSUBJECTS, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) 231 + func getSubjects(completionHandler:@escaping (String?, NSError?) -> ()){
  232 + KHttp.GET(url: HTTPServer.URL_COMMONGETSUBJECTS, headers:["Authorization":token!], completionHandler: completionHandler)
233 } 233 }
234 //获取学段 234 //获取学段
235 - func getSchoolTypes(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){  
236 - KHttp.GET(url: HTTPServer.URL_COMMONGETSCHOOLTYPES, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) 235 + func getSchoolTypes(completionHandler:@escaping (String?, NSError?) -> ()){
  236 + KHttp.GET(url: HTTPServer.URL_COMMONGETSCHOOLTYPES, headers:["Authorization":token!], completionHandler: completionHandler)
237 } 237 }
238 //获取轮播图 type:0-视频云前端轮播图 1-校园电视台轮播图 238 //获取轮播图 type:0-视频云前端轮播图 1-校园电视台轮播图
239 func getLunboList(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ 239 func getLunboList(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){