Commit 498f740df0f37238940347cddc5be891a396d197

Authored by 左丞
2 parents df45eda6 6f06ed3c
Exists in newLive

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

YouerLiveVideo/YouerLiveVideo.xcodeproj/project.pbxproj
@@ -14,7 +14,6 @@ @@ -14,7 +14,6 @@
14 5904FC511ECA8B8C00E631FF /* TVStationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5904FC4B1ECA8B8C00E631FF /* TVStationViewController.swift */; }; 14 5904FC511ECA8B8C00E631FF /* TVStationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5904FC4B1ECA8B8C00E631FF /* TVStationViewController.swift */; };
15 5904FC531ECA8BB500E631FF /* MicroCourse.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5904FC521ECA8BB500E631FF /* MicroCourse.storyboard */; }; 15 5904FC531ECA8BB500E631FF /* MicroCourse.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5904FC521ECA8BB500E631FF /* MicroCourse.storyboard */; };
16 5904FC551ECA8BCB00E631FF /* HomePage.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5904FC541ECA8BCB00E631FF /* HomePage.storyboard */; }; 16 5904FC551ECA8BCB00E631FF /* HomePage.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5904FC541ECA8BCB00E631FF /* HomePage.storyboard */; };
17 - 5904FC5D1ECA8ED400E631FF /* HomePageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5904FC5C1ECA8ED400E631FF /* HomePageViewController.swift */; };  
18 5904FC611ECA930D00E631FF /* MViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5904FC601ECA930D00E631FF /* MViewController.swift */; }; 17 5904FC611ECA930D00E631FF /* MViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5904FC601ECA930D00E631FF /* MViewController.swift */; };
19 5960263B1DD94D3100C6B5E8 /* libsqlite3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 5960263A1DD94D3100C6B5E8 /* libsqlite3.tbd */; }; 18 5960263B1DD94D3100C6B5E8 /* libsqlite3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 5960263A1DD94D3100C6B5E8 /* libsqlite3.tbd */; };
20 5960263D1DD94D5E00C6B5E8 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 5960263C1DD94D5E00C6B5E8 /* libc++.tbd */; }; 19 5960263D1DD94D5E00C6B5E8 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 5960263C1DD94D5E00C6B5E8 /* libc++.tbd */; };
@@ -129,6 +128,7 @@ @@ -129,6 +128,7 @@
129 BF3E4A781E2F30B700D90659 /* 礼物数量.png in Resources */ = {isa = PBXBuildFile; fileRef = BF3E4A731E2F30B700D90659 /* 礼物数量.png */; }; 128 BF3E4A781E2F30B700D90659 /* 礼物数量.png in Resources */ = {isa = PBXBuildFile; fileRef = BF3E4A731E2F30B700D90659 /* 礼物数量.png */; };
130 BF3E4A791E2F30B700D90659 /* 上传封面.png in Resources */ = {isa = PBXBuildFile; fileRef = BF3E4A741E2F30B700D90659 /* 上传封面.png */; }; 129 BF3E4A791E2F30B700D90659 /* 上传封面.png in Resources */ = {isa = PBXBuildFile; fileRef = BF3E4A741E2F30B700D90659 /* 上传封面.png */; };
131 BF3E4A7A1E2F30B700D90659 /* 直播-最热.png in Resources */ = {isa = PBXBuildFile; fileRef = BF3E4A751E2F30B700D90659 /* 直播-最热.png */; }; 130 BF3E4A7A1E2F30B700D90659 /* 直播-最热.png in Resources */ = {isa = PBXBuildFile; fileRef = BF3E4A751E2F30B700D90659 /* 直播-最热.png */; };
  131 + BF682F1E1ECE8772007632CA /* MainHomeTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF682F1D1ECE8772007632CA /* MainHomeTableViewController.swift */; };
132 BF6977871E2DC264006FA934 /* 我的充值.png in Resources */ = {isa = PBXBuildFile; fileRef = BF6977821E2DC264006FA934 /* 我的充值.png */; }; 132 BF6977871E2DC264006FA934 /* 我的充值.png in Resources */ = {isa = PBXBuildFile; fileRef = BF6977821E2DC264006FA934 /* 我的充值.png */; };
133 BF6977881E2DC264006FA934 /* 我的关注.png in Resources */ = {isa = PBXBuildFile; fileRef = BF6977831E2DC264006FA934 /* 我的关注.png */; }; 133 BF6977881E2DC264006FA934 /* 我的关注.png in Resources */ = {isa = PBXBuildFile; fileRef = BF6977831E2DC264006FA934 /* 我的关注.png */; };
134 BF69778A1E2DC264006FA934 /* 直播历史.png in Resources */ = {isa = PBXBuildFile; fileRef = BF6977851E2DC264006FA934 /* 直播历史.png */; }; 134 BF69778A1E2DC264006FA934 /* 直播历史.png in Resources */ = {isa = PBXBuildFile; fileRef = BF6977851E2DC264006FA934 /* 直播历史.png */; };
@@ -220,7 +220,6 @@ @@ -220,7 +220,6 @@
220 5904FC4B1ECA8B8C00E631FF /* TVStationViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TVStationViewController.swift; sourceTree = "<group>"; }; 220 5904FC4B1ECA8B8C00E631FF /* TVStationViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TVStationViewController.swift; sourceTree = "<group>"; };
221 5904FC521ECA8BB500E631FF /* MicroCourse.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = MicroCourse.storyboard; sourceTree = "<group>"; }; 221 5904FC521ECA8BB500E631FF /* MicroCourse.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = MicroCourse.storyboard; sourceTree = "<group>"; };
222 5904FC541ECA8BCB00E631FF /* HomePage.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = HomePage.storyboard; sourceTree = "<group>"; }; 222 5904FC541ECA8BCB00E631FF /* HomePage.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = HomePage.storyboard; sourceTree = "<group>"; };
223 - 5904FC5C1ECA8ED400E631FF /* HomePageViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HomePageViewController.swift; sourceTree = "<group>"; };  
224 5904FC601ECA930D00E631FF /* MViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MViewController.swift; sourceTree = "<group>"; }; 223 5904FC601ECA930D00E631FF /* MViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MViewController.swift; sourceTree = "<group>"; };
225 5960263A1DD94D3100C6B5E8 /* libsqlite3.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libsqlite3.tbd; path = usr/lib/libsqlite3.tbd; sourceTree = SDKROOT; }; 224 5960263A1DD94D3100C6B5E8 /* libsqlite3.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libsqlite3.tbd; path = usr/lib/libsqlite3.tbd; sourceTree = SDKROOT; };
226 5960263C1DD94D5E00C6B5E8 /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; }; 225 5960263C1DD94D5E00C6B5E8 /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; };
@@ -447,6 +446,7 @@ @@ -447,6 +446,7 @@
447 BF3E4A731E2F30B700D90659 /* 礼物数量.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "礼物数量.png"; sourceTree = "<group>"; }; 446 BF3E4A731E2F30B700D90659 /* 礼物数量.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "礼物数量.png"; sourceTree = "<group>"; };
448 BF3E4A741E2F30B700D90659 /* 上传封面.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "上传封面.png"; sourceTree = "<group>"; }; 447 BF3E4A741E2F30B700D90659 /* 上传封面.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "上传封面.png"; sourceTree = "<group>"; };
449 BF3E4A751E2F30B700D90659 /* 直播-最热.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "直播-最热.png"; sourceTree = "<group>"; }; 448 BF3E4A751E2F30B700D90659 /* 直播-最热.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "直播-最热.png"; sourceTree = "<group>"; };
  449 + BF682F1D1ECE8772007632CA /* MainHomeTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainHomeTableViewController.swift; sourceTree = "<group>"; };
450 BF6977821E2DC264006FA934 /* 我的充值.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "我的充值.png"; sourceTree = "<group>"; }; 450 BF6977821E2DC264006FA934 /* 我的充值.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "我的充值.png"; sourceTree = "<group>"; };
451 BF6977831E2DC264006FA934 /* 我的关注.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "我的关注.png"; sourceTree = "<group>"; }; 451 BF6977831E2DC264006FA934 /* 我的关注.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "我的关注.png"; sourceTree = "<group>"; };
452 BF6977851E2DC264006FA934 /* 直播历史.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "直播历史.png"; sourceTree = "<group>"; }; 452 BF6977851E2DC264006FA934 /* 直播历史.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "直播历史.png"; sourceTree = "<group>"; };
@@ -598,7 +598,7 @@ @@ -598,7 +598,7 @@
598 5904FC431ECA8B8C00E631FF /* HomePage */ = { 598 5904FC431ECA8B8C00E631FF /* HomePage */ = {
599 isa = PBXGroup; 599 isa = PBXGroup;
600 children = ( 600 children = (
601 - 5904FC5C1ECA8ED400E631FF /* HomePageViewController.swift */, 601 + BF682F1D1ECE8772007632CA /* MainHomeTableViewController.swift */,
602 5904FC541ECA8BCB00E631FF /* HomePage.storyboard */, 602 5904FC541ECA8BCB00E631FF /* HomePage.storyboard */,
603 ); 603 );
604 path = HomePage; 604 path = HomePage;
@@ -1487,7 +1487,6 @@ @@ -1487,7 +1487,6 @@
1487 5904FC511ECA8B8C00E631FF /* TVStationViewController.swift in Sources */, 1487 5904FC511ECA8B8C00E631FF /* TVStationViewController.swift in Sources */,
1488 BFBB83D31ECBEB4E008B404B /* JYScrollView.m in Sources */, 1488 BFBB83D31ECBEB4E008B404B /* JYScrollView.m in Sources */,
1489 BF25E0081DDAA36A003EC0C1 /* UIView+WebCache.m in Sources */, 1489 BF25E0081DDAA36A003EC0C1 /* UIView+WebCache.m in Sources */,
1490 - 5904FC5D1ECA8ED400E631FF /* HomePageViewController.swift in Sources */,  
1491 BFBB83A91ECAE35E008B404B /* LeadViewController.swift in Sources */, 1490 BFBB83A91ECAE35E008B404B /* LeadViewController.swift in Sources */,
1492 BF7B759C1E305A6D0011D5C7 /* MJRefreshAutoNormalFooter.m in Sources */, 1491 BF7B759C1E305A6D0011D5C7 /* MJRefreshAutoNormalFooter.m in Sources */,
1493 5904FC4F1ECA8B8C00E631FF /* SearchTVStationListViewController.swift in Sources */, 1492 5904FC4F1ECA8B8C00E631FF /* SearchTVStationListViewController.swift in Sources */,
@@ -1514,6 +1513,7 @@ @@ -1514,6 +1513,7 @@
1514 BF25DFF81DDAA36A003EC0C1 /* NSData+ImageContentType.m in Sources */, 1513 BF25DFF81DDAA36A003EC0C1 /* NSData+ImageContentType.m in Sources */,
1515 BF25E0151DDAAF73003EC0C1 /* SVIndefiniteAnimatedView.m in Sources */, 1514 BF25E0151DDAAF73003EC0C1 /* SVIndefiniteAnimatedView.m in Sources */,
1516 BFF5F4921DD5B7CA00D33B89 /* SwiftyJSON.swift in Sources */, 1515 BFF5F4921DD5B7CA00D33B89 /* SwiftyJSON.swift in Sources */,
  1516 + BF682F1E1ECE8772007632CA /* MainHomeTableViewController.swift in Sources */,
1517 BF7B75A91E305A6D0011D5C7 /* UIView+MJExtension.m in Sources */, 1517 BF7B75A91E305A6D0011D5C7 /* UIView+MJExtension.m in Sources */,
1518 BF25DFEE1DDAA36A003EC0C1 /* Result.swift in Sources */, 1518 BF25DFEE1DDAA36A003EC0C1 /* Result.swift in Sources */,
1519 BFDFDED21DD55C0D0040F102 /* network.swift in Sources */, 1519 BFDFDED21DD55C0D0040F102 /* network.swift in Sources */,
YouerLiveVideo/YouerLiveVideo/Assets.xcassets/icon_course_placeholder.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" : "微课图标.jpg",
  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/icon_course_placeholder.imageset/微课图标.jpg 0 → 100644

16 KB

YouerLiveVideo/YouerLiveVideo/Assets.xcassets/icon_school_placeholder.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" : "mologo.jpg",
  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/icon_school_placeholder.imageset/mologo.jpg 0 → 100644

17.7 KB

YouerLiveVideo/YouerLiveVideo/Base.lproj/Main.storyboard
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11762" systemVersion="16A323" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="fhe-aI-EYq"> 1 +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2 +<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11762" systemVersion="15G1217" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="fhe-aI-EYq">
3 <device id="retina4_7" orientation="portrait"> 3 <device id="retina4_7" orientation="portrait">
4 <adaptation id="fullscreen"/> 4 <adaptation id="fullscreen"/>
5 </device> 5 </device>
@@ -7,6 +7,7 @@ @@ -7,6 +7,7 @@
7 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11757"/> 7 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11757"/>
8 <capability name="Aspect ratio constraints" minToolsVersion="5.1"/> 8 <capability name="Aspect ratio constraints" minToolsVersion="5.1"/>
9 <capability name="Constraints to layout margins" minToolsVersion="6.0"/> 9 <capability name="Constraints to layout margins" minToolsVersion="6.0"/>
  10 + <capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
10 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> 11 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
11 </dependencies> 12 </dependencies>
12 <scenes> 13 <scenes>
@@ -50,7 +51,7 @@ @@ -50,7 +51,7 @@
50 <rect key="frame" x="0.0" y="28" width="375" height="143"/> 51 <rect key="frame" x="0.0" y="28" width="375" height="143"/>
51 <autoresizingMask key="autoresizingMask"/> 52 <autoresizingMask key="autoresizingMask"/>
52 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="tO9-FG-1Ux" id="73f-qf-61d"> 53 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="tO9-FG-1Ux" id="73f-qf-61d">
53 - <rect key="frame" x="0.0" y="0.0" width="375" height="143"/> 54 + <rect key="frame" x="0.0" y="0.0" width="375" height="142"/>
54 <autoresizingMask key="autoresizingMask"/> 55 <autoresizingMask key="autoresizingMask"/>
55 <subviews> 56 <subviews>
56 <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="9sK-3H-gLf"> 57 <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="9sK-3H-gLf">
@@ -106,6 +107,556 @@ @@ -106,6 +107,556 @@
106 </objects> 107 </objects>
107 <point key="canvasLocation" x="-1084" y="2113"/> 108 <point key="canvasLocation" x="-1084" y="2113"/>
108 </scene> 109 </scene>
  110 + <!--Main Home Table View Controller-->
  111 + <scene sceneID="Npa-Do-pvj">
  112 + <objects>
  113 + <tableViewController id="HdB-6p-eAX" customClass="MainHomeTableViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController">
  114 + <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="plain" separatorStyle="none" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" id="HVm-Fp-caS">
  115 + <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
  116 + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
  117 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  118 + <view key="tableHeaderView" contentMode="scaleToFill" id="w64-sF-NZ9">
  119 + <rect key="frame" x="0.0" y="0.0" width="375" height="152"/>
  120 + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
  121 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  122 + </view>
  123 + <view key="tableFooterView" contentMode="scaleToFill" id="1qL-hk-kYn">
  124 + <rect key="frame" x="0.0" y="1036" width="375" height="1"/>
  125 + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
  126 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  127 + </view>
  128 + <sections>
  129 + <tableViewSection id="pNm-2D-Tsg">
  130 + <cells>
  131 + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" restorationIdentifier="cell0" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="cell0" rowHeight="212" id="WpB-g6-meC" customClass="HomeFirstTableViewCell" customModule="YouerLiveVideo" customModuleProvider="target">
  132 + <rect key="frame" x="0.0" y="152" width="375" height="212"/>
  133 + <autoresizingMask key="autoresizingMask"/>
  134 + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="WpB-g6-meC" id="6kt-xb-IdN">
  135 + <rect key="frame" x="0.0" y="0.0" width="375" height="212"/>
  136 + <autoresizingMask key="autoresizingMask"/>
  137 + <subviews>
  138 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7wy-DL-PKX">
  139 + <rect key="frame" x="0.0" y="0.0" width="375" height="20"/>
  140 + <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
  141 + <constraints>
  142 + <constraint firstAttribute="height" constant="20" id="mtL-aK-O9I"/>
  143 + </constraints>
  144 + </view>
  145 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="tc9-OD-L9x">
  146 + <rect key="frame" x="8" y="28" width="30" height="30"/>
  147 + <constraints>
  148 + <constraint firstAttribute="height" constant="30" id="dzU-2e-0A0"/>
  149 + <constraint firstAttribute="width" constant="30" id="jeW-Q1-Yqy"/>
  150 + </constraints>
  151 + </imageView>
  152 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="gpI-zw-6qq">
  153 + <rect key="frame" x="337" y="28" width="30" height="30"/>
  154 + <constraints>
  155 + <constraint firstAttribute="width" constant="30" id="X2b-MK-4bQ"/>
  156 + <constraint firstAttribute="height" constant="30" id="ZkK-Yr-R26"/>
  157 + </constraints>
  158 + </imageView>
  159 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="排行" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qcg-Fh-r2v">
  160 + <rect key="frame" x="46" y="33" width="35" height="21"/>
  161 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  162 + <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
  163 + <nil key="highlightedColor"/>
  164 + </label>
  165 + <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="BjK-Gw-VeS">
  166 + <rect key="frame" x="8" y="83" width="359" height="129"/>
  167 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  168 + <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="0.0" minimumInteritemSpacing="0.0" id="gds-Wd-nlX">
  169 + <size key="itemSize" width="106" height="113"/>
  170 + <size key="headerReferenceSize" width="0.0" height="0.0"/>
  171 + <size key="footerReferenceSize" width="0.0" height="0.0"/>
  172 + <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
  173 + </collectionViewFlowLayout>
  174 + <cells>
  175 + <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="HomeFirstCollectionViewCell" id="0XL-6V-xV9" customClass="HomeFirstCollectionViewCell" customModule="YouerLiveVideo" customModuleProvider="target">
  176 + <rect key="frame" x="0.0" y="0.0" width="106" height="113"/>
  177 + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
  178 + <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
  179 + <rect key="frame" x="0.0" y="0.0" width="106" height="113"/>
  180 + <autoresizingMask key="autoresizingMask"/>
  181 + <subviews>
  182 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="633-X9-DpN">
  183 + <rect key="frame" x="0.0" y="0.0" width="106" height="113"/>
  184 + </imageView>
  185 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="学校" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AAa-2a-bHH">
  186 + <rect key="frame" x="8" y="8" width="35" height="21"/>
  187 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  188 + <nil key="textColor"/>
  189 + <nil key="highlightedColor"/>
  190 + </label>
  191 + </subviews>
  192 + </view>
  193 + <constraints>
  194 + <constraint firstItem="633-X9-DpN" firstAttribute="leading" secondItem="0XL-6V-xV9" secondAttribute="leading" id="G57-Qp-dfe"/>
  195 + <constraint firstItem="AAa-2a-bHH" firstAttribute="top" secondItem="0XL-6V-xV9" secondAttribute="top" constant="8" id="Iul-8f-BwX"/>
  196 + <constraint firstAttribute="bottom" secondItem="633-X9-DpN" secondAttribute="bottom" id="ONY-eZ-XBq"/>
  197 + <constraint firstItem="AAa-2a-bHH" firstAttribute="leading" secondItem="0XL-6V-xV9" secondAttribute="leading" constant="8" id="PYe-Np-vCp"/>
  198 + <constraint firstAttribute="trailing" secondItem="633-X9-DpN" secondAttribute="trailing" id="Rd8-Af-zg2"/>
  199 + <constraint firstItem="633-X9-DpN" firstAttribute="top" secondItem="0XL-6V-xV9" secondAttribute="top" id="k6d-av-nd0"/>
  200 + </constraints>
  201 + <connections>
  202 + <outlet property="iconImageView" destination="633-X9-DpN" id="3sj-Ce-mor"/>
  203 + <outlet property="nameLabel" destination="AAa-2a-bHH" id="2y6-di-cww"/>
  204 + </connections>
  205 + </collectionViewCell>
  206 + </cells>
  207 + <connections>
  208 + <outlet property="dataSource" destination="WpB-g6-meC" id="3n2-SF-HZB"/>
  209 + <outlet property="delegate" destination="WpB-g6-meC" id="fee-f0-bJS"/>
  210 + </connections>
  211 + </collectionView>
  212 + </subviews>
  213 + <constraints>
  214 + <constraint firstItem="BjK-Gw-VeS" firstAttribute="top" secondItem="gpI-zw-6qq" secondAttribute="bottom" constant="25" id="28f-X5-SdT"/>
  215 + <constraint firstItem="tc9-OD-L9x" firstAttribute="top" secondItem="6kt-xb-IdN" secondAttribute="top" constant="28" id="FmW-tn-Ne9"/>
  216 + <constraint firstItem="tc9-OD-L9x" firstAttribute="leading" secondItem="6kt-xb-IdN" secondAttribute="leading" constant="8" id="H9H-ud-58B"/>
  217 + <constraint firstAttribute="trailing" secondItem="gpI-zw-6qq" secondAttribute="trailing" constant="8" id="TOV-dd-5uu"/>
  218 + <constraint firstAttribute="trailing" secondItem="7wy-DL-PKX" secondAttribute="trailing" id="VW0-SV-RMy"/>
  219 + <constraint firstItem="qcg-Fh-r2v" firstAttribute="top" secondItem="6kt-xb-IdN" secondAttribute="topMargin" constant="25" id="XhC-hV-TPX"/>
  220 + <constraint firstItem="7wy-DL-PKX" firstAttribute="top" secondItem="6kt-xb-IdN" secondAttribute="top" id="YbM-fT-qi7"/>
  221 + <constraint firstItem="BjK-Gw-VeS" firstAttribute="leading" secondItem="6kt-xb-IdN" secondAttribute="leading" constant="8" id="fES-Cd-ybP"/>
  222 + <constraint firstAttribute="bottom" secondItem="BjK-Gw-VeS" secondAttribute="bottom" id="iOk-mu-PWT"/>
  223 + <constraint firstItem="7wy-DL-PKX" firstAttribute="leading" secondItem="6kt-xb-IdN" secondAttribute="leading" id="s4K-qo-g3e"/>
  224 + <constraint firstItem="qcg-Fh-r2v" firstAttribute="leading" secondItem="tc9-OD-L9x" secondAttribute="trailing" constant="8" id="sZ7-sT-QdJ"/>
  225 + <constraint firstAttribute="trailing" secondItem="BjK-Gw-VeS" secondAttribute="trailing" constant="8" id="ujX-8f-TtW"/>
  226 + <constraint firstItem="gpI-zw-6qq" firstAttribute="top" secondItem="6kt-xb-IdN" secondAttribute="top" constant="28" id="yQW-LA-9fx"/>
  227 + </constraints>
  228 + </tableViewCellContentView>
  229 + </tableViewCell>
  230 + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" restorationIdentifier="cell1" selectionStyle="none" indentationWidth="10" reuseIdentifier="cell1" rowHeight="239" id="ZCI-0y-Uf0" customClass="HomeSecondTableViewCell" customModule="YouerLiveVideo" customModuleProvider="target">
  231 + <rect key="frame" x="0.0" y="364" width="375" height="239"/>
  232 + <autoresizingMask key="autoresizingMask"/>
  233 + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="ZCI-0y-Uf0" id="Cq0-Rg-if7">
  234 + <rect key="frame" x="0.0" y="0.0" width="375" height="239"/>
  235 + <autoresizingMask key="autoresizingMask"/>
  236 + <subviews>
  237 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="X1l-jG-Huh">
  238 + <rect key="frame" x="0.0" y="0.0" width="375" height="20"/>
  239 + <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
  240 + <constraints>
  241 + <constraint firstAttribute="height" constant="20" id="cu9-3U-16R"/>
  242 + </constraints>
  243 + </view>
  244 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="JfT-qO-w2b">
  245 + <rect key="frame" x="8" y="28" width="30" height="30"/>
  246 + <constraints>
  247 + <constraint firstAttribute="width" constant="30" id="gju-0Y-vbI"/>
  248 + <constraint firstAttribute="height" constant="30" id="upC-qc-OXv"/>
  249 + </constraints>
  250 + </imageView>
  251 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="QcE-wo-WjW">
  252 + <rect key="frame" x="337" y="28" width="30" height="30"/>
  253 + <constraints>
  254 + <constraint firstAttribute="width" constant="30" id="6rP-92-fox"/>
  255 + <constraint firstAttribute="height" constant="30" id="DH3-jE-L3a"/>
  256 + </constraints>
  257 + </imageView>
  258 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="热门微课" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Xxv-Eh-YJD">
  259 + <rect key="frame" x="46" y="33" width="69.5" height="21"/>
  260 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  261 + <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
  262 + <nil key="highlightedColor"/>
  263 + </label>
  264 + <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" tag="1" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="RVe-Pr-T23">
  265 + <rect key="frame" x="8" y="83" width="359" height="156"/>
  266 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  267 + <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="0.0" minimumInteritemSpacing="0.0" id="w5u-tk-vf4">
  268 + <size key="itemSize" width="165" height="146"/>
  269 + <size key="headerReferenceSize" width="0.0" height="0.0"/>
  270 + <size key="footerReferenceSize" width="0.0" height="0.0"/>
  271 + <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
  272 + </collectionViewFlowLayout>
  273 + <cells>
  274 + <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="HomeSecondCollectionViewCell" id="apu-hG-EEc" customClass="HomeSecondCollectionViewCell" customModule="YouerLiveVideo" customModuleProvider="target">
  275 + <rect key="frame" x="0.0" y="0.0" width="165" height="146"/>
  276 + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
  277 + <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
  278 + <rect key="frame" x="0.0" y="0.0" width="165" height="146"/>
  279 + <autoresizingMask key="autoresizingMask"/>
  280 + <subviews>
  281 + <imageView userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="5g9-CD-vXa">
  282 + <rect key="frame" x="0.0" y="0.0" width="160" height="87.5"/>
  283 + <userDefinedRuntimeAttributes>
  284 + <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
  285 + <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
  286 + <integer key="value" value="5"/>
  287 + </userDefinedRuntimeAttribute>
  288 + </userDefinedRuntimeAttributes>
  289 + </imageView>
  290 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="神奇的线圈" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FRa-kP-4Or">
  291 + <rect key="frame" x="0.0" y="97" width="117.5" height="18"/>
  292 + <fontDescription key="fontDescription" type="system" pointSize="15"/>
  293 + <nil key="textColor"/>
  294 + <nil key="highlightedColor"/>
  295 + </label>
  296 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="主讲师:老师" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Okq-ZI-Xh2">
  297 + <rect key="frame" x="0.0" y="123" width="96" height="15"/>
  298 + <fontDescription key="fontDescription" type="system" pointSize="12"/>
  299 + <nil key="textColor"/>
  300 + <nil key="highlightedColor"/>
  301 + </label>
  302 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="01-01" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Z3c-Ai-wr8">
  303 + <rect key="frame" x="125.5" y="99.5" width="34.5" height="16"/>
  304 + <constraints>
  305 + <constraint firstAttribute="width" constant="34.5" id="4Ms-Yd-VYH"/>
  306 + </constraints>
  307 + <fontDescription key="fontDescription" type="system" pointSize="13"/>
  308 + <nil key="textColor"/>
  309 + <nil key="highlightedColor"/>
  310 + </label>
  311 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="99999" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tln-9q-8L4">
  312 + <rect key="frame" x="121.5" y="123.5" width="38.5" height="14.5"/>
  313 + <fontDescription key="fontDescription" type="system" pointSize="12"/>
  314 + <nil key="textColor"/>
  315 + <nil key="highlightedColor"/>
  316 + </label>
  317 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="Ah6-9S-zUX">
  318 + <rect key="frame" x="104" y="123" width="15" height="15"/>
  319 + <constraints>
  320 + <constraint firstAttribute="width" constant="15" id="Gst-KJ-hy2"/>
  321 + <constraint firstAttribute="height" constant="15" id="IB2-dY-89b"/>
  322 + </constraints>
  323 + </imageView>
  324 + </subviews>
  325 + </view>
  326 + <constraints>
  327 + <constraint firstItem="Z3c-Ai-wr8" firstAttribute="leading" secondItem="FRa-kP-4Or" secondAttribute="trailing" constant="8" id="4L1-p3-lcO"/>
  328 + <constraint firstAttribute="trailingMargin" secondItem="Okq-ZI-Xh2" secondAttribute="trailing" constant="61" id="6V2-3e-YCS"/>
  329 + <constraint firstItem="5g9-CD-vXa" firstAttribute="leading" secondItem="apu-hG-EEc" secondAttribute="leading" id="8mz-9g-viB"/>
  330 + <constraint firstItem="5g9-CD-vXa" firstAttribute="height" secondItem="apu-hG-EEc" secondAttribute="height" multiplier="3:5" id="Cna-LC-U6q"/>
  331 + <constraint firstAttribute="trailing" secondItem="tln-9q-8L4" secondAttribute="trailing" constant="5" id="E6O-vX-SmB"/>
  332 + <constraint firstItem="Okq-ZI-Xh2" firstAttribute="top" secondItem="FRa-kP-4Or" secondAttribute="bottom" constant="8" id="Jbx-d9-HO1"/>
  333 + <constraint firstItem="FRa-kP-4Or" firstAttribute="leading" secondItem="apu-hG-EEc" secondAttribute="leading" id="Ntj-vJ-hJ8"/>
  334 + <constraint firstAttribute="bottom" secondItem="Okq-ZI-Xh2" secondAttribute="bottom" constant="8" id="QF3-cj-K1q"/>
  335 + <constraint firstItem="5g9-CD-vXa" firstAttribute="top" secondItem="apu-hG-EEc" secondAttribute="top" id="QVL-f3-dbA"/>
  336 + <constraint firstAttribute="bottom" secondItem="tln-9q-8L4" secondAttribute="bottom" constant="8" id="ZWt-gE-SDD"/>
  337 + <constraint firstItem="Okq-ZI-Xh2" firstAttribute="leading" secondItem="apu-hG-EEc" secondAttribute="leading" id="amA-JO-bBv"/>
  338 + <constraint firstAttribute="trailing" secondItem="Z3c-Ai-wr8" secondAttribute="trailing" constant="5" id="gQg-P7-tzY"/>
  339 + <constraint firstItem="tln-9q-8L4" firstAttribute="leading" secondItem="Ah6-9S-zUX" secondAttribute="trailing" constant="2.5" id="hcm-2p-mkH"/>
  340 + <constraint firstAttribute="trailing" secondItem="5g9-CD-vXa" secondAttribute="trailing" constant="5" id="iYZ-VU-Qxd"/>
  341 + <constraint firstAttribute="bottomMargin" secondItem="Ah6-9S-zUX" secondAttribute="bottom" id="o2X-v5-iIB"/>
  342 + <constraint firstItem="tln-9q-8L4" firstAttribute="top" secondItem="Z3c-Ai-wr8" secondAttribute="bottom" constant="8" id="odz-bE-nss"/>
  343 + </constraints>
  344 + <connections>
  345 + <outlet property="dateLabel" destination="Z3c-Ai-wr8" id="FRL-DX-Cjy"/>
  346 + <outlet property="iconImageView" destination="5g9-CD-vXa" id="EQB-0A-hXj"/>
  347 + <outlet property="nameLabel" destination="FRa-kP-4Or" id="qAL-if-Kf2"/>
  348 + <outlet property="readCountLabel" destination="tln-9q-8L4" id="1GI-Sy-TsB"/>
  349 + <outlet property="teacherNameLabel" destination="Okq-ZI-Xh2" id="HPa-re-d6d"/>
  350 + </connections>
  351 + </collectionViewCell>
  352 + </cells>
  353 + <connections>
  354 + <outlet property="dataSource" destination="ZCI-0y-Uf0" id="ivX-CJ-aBL"/>
  355 + <outlet property="delegate" destination="ZCI-0y-Uf0" id="T9H-LD-Xkp"/>
  356 + </connections>
  357 + </collectionView>
  358 + </subviews>
  359 + <constraints>
  360 + <constraint firstItem="Xxv-Eh-YJD" firstAttribute="leading" secondItem="JfT-qO-w2b" secondAttribute="trailing" constant="8" id="Oh2-rT-AyR"/>
  361 + <constraint firstItem="JfT-qO-w2b" firstAttribute="top" secondItem="X1l-jG-Huh" secondAttribute="bottom" constant="8" id="Oq0-HW-fvi"/>
  362 + <constraint firstItem="X1l-jG-Huh" firstAttribute="leading" secondItem="Cq0-Rg-if7" secondAttribute="leading" id="PzB-GC-QTO"/>
  363 + <constraint firstItem="JfT-qO-w2b" firstAttribute="leading" secondItem="Cq0-Rg-if7" secondAttribute="leading" constant="8" id="Vk4-B0-rkr"/>
  364 + <constraint firstItem="X1l-jG-Huh" firstAttribute="top" secondItem="Cq0-Rg-if7" secondAttribute="top" id="VrV-Ys-kvx"/>
  365 + <constraint firstAttribute="trailing" secondItem="RVe-Pr-T23" secondAttribute="trailing" constant="8" id="bZh-d7-on4"/>
  366 + <constraint firstItem="QcE-wo-WjW" firstAttribute="top" secondItem="X1l-jG-Huh" secondAttribute="bottom" constant="8" id="f8O-fQ-wlw"/>
  367 + <constraint firstAttribute="bottom" secondItem="RVe-Pr-T23" secondAttribute="bottom" id="n4e-2D-Lhx"/>
  368 + <constraint firstItem="RVe-Pr-T23" firstAttribute="leading" secondItem="Cq0-Rg-if7" secondAttribute="leading" constant="8" id="npx-Ap-jZy"/>
  369 + <constraint firstItem="RVe-Pr-T23" firstAttribute="top" secondItem="QcE-wo-WjW" secondAttribute="bottom" constant="25" id="qSC-rl-7ob"/>
  370 + <constraint firstAttribute="trailing" secondItem="X1l-jG-Huh" secondAttribute="trailing" id="r4k-87-FG5"/>
  371 + <constraint firstItem="Xxv-Eh-YJD" firstAttribute="top" secondItem="X1l-jG-Huh" secondAttribute="bottom" constant="13" id="rRq-W3-cJT"/>
  372 + <constraint firstAttribute="trailing" secondItem="QcE-wo-WjW" secondAttribute="trailing" constant="8" id="wTk-uV-bbq"/>
  373 + </constraints>
  374 + </tableViewCellContentView>
  375 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  376 + </tableViewCell>
  377 + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" restorationIdentifier="cell2" selectionStyle="none" indentationWidth="10" reuseIdentifier="cell2" rowHeight="313" id="gzq-jC-D39" customClass="HomeThirdTableViewCell" customModule="YouerLiveVideo" customModuleProvider="target">
  378 + <rect key="frame" x="0.0" y="603" width="375" height="313"/>
  379 + <autoresizingMask key="autoresizingMask"/>
  380 + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="gzq-jC-D39" id="kA1-Za-kS2">
  381 + <rect key="frame" x="0.0" y="0.0" width="375" height="313"/>
  382 + <autoresizingMask key="autoresizingMask"/>
  383 + <subviews>
  384 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9Zz-SB-8Fl">
  385 + <rect key="frame" x="0.0" y="0.0" width="375" height="20"/>
  386 + <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
  387 + <constraints>
  388 + <constraint firstAttribute="height" constant="20" id="zk7-4f-Srd"/>
  389 + </constraints>
  390 + </view>
  391 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="UWk-5A-PEj">
  392 + <rect key="frame" x="8" y="28" width="30" height="30"/>
  393 + <constraints>
  394 + <constraint firstAttribute="width" constant="30" id="c35-8L-oxO"/>
  395 + <constraint firstAttribute="height" constant="30" id="iOy-11-gMR"/>
  396 + </constraints>
  397 + </imageView>
  398 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="Tib-Fm-A1U">
  399 + <rect key="frame" x="337" y="28" width="30" height="30"/>
  400 + <constraints>
  401 + <constraint firstAttribute="height" constant="30" id="5ek-5S-7Cb"/>
  402 + <constraint firstAttribute="width" constant="30" id="k5G-EP-9l9"/>
  403 + </constraints>
  404 + </imageView>
  405 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="资源" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="nKJ-qz-sg8">
  406 + <rect key="frame" x="46" y="33" width="35" height="21"/>
  407 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  408 + <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
  409 + <nil key="highlightedColor"/>
  410 + </label>
  411 + <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" tag="1" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="0uI-9D-XVZ">
  412 + <rect key="frame" x="8" y="83" width="359" height="230"/>
  413 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  414 + <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="0.0" minimumInteritemSpacing="0.0" id="f2C-TL-VTa">
  415 + <size key="itemSize" width="113" height="222"/>
  416 + <size key="headerReferenceSize" width="0.0" height="0.0"/>
  417 + <size key="footerReferenceSize" width="0.0" height="0.0"/>
  418 + <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
  419 + </collectionViewFlowLayout>
  420 + <cells>
  421 + <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="HomeThirdCollectionViewCell" id="gdp-Ji-zur" customClass="HomeThirdCollectionViewCell" customModule="YouerLiveVideo" customModuleProvider="target">
  422 + <rect key="frame" x="0.0" y="0.0" width="113" height="222"/>
  423 + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
  424 + <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
  425 + <rect key="frame" x="0.0" y="0.0" width="113" height="222"/>
  426 + <autoresizingMask key="autoresizingMask"/>
  427 + <subviews>
  428 + <imageView userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="bUk-R1-5gT">
  429 + <rect key="frame" x="0.0" y="0.0" width="108" height="108"/>
  430 + <constraints>
  431 + <constraint firstAttribute="width" secondItem="bUk-R1-5gT" secondAttribute="height" multiplier="1:1" id="MTe-oF-wJF"/>
  432 + </constraints>
  433 + <userDefinedRuntimeAttributes>
  434 + <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
  435 + <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
  436 + <integer key="value" value="5"/>
  437 + </userDefinedRuntimeAttribute>
  438 + </userDefinedRuntimeAttributes>
  439 + </imageView>
  440 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="神奇的线圈神奇的线圈神奇的线圈" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Zk6-bu-T1Z">
  441 + <rect key="frame" x="0.0" y="125" width="108" height="42"/>
  442 + <constraints>
  443 + <constraint firstAttribute="height" constant="42" id="9Hi-f9-B2N"/>
  444 + </constraints>
  445 + <fontDescription key="fontDescription" type="system" pointSize="15"/>
  446 + <nil key="textColor"/>
  447 + <nil key="highlightedColor"/>
  448 + </label>
  449 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="01-01" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="q2O-JU-nOk">
  450 + <rect key="frame" x="0.0" y="198" width="44" height="16"/>
  451 + <fontDescription key="fontDescription" type="system" pointSize="13"/>
  452 + <nil key="textColor"/>
  453 + <nil key="highlightedColor"/>
  454 + </label>
  455 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="99999" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ens-w5-JNf">
  456 + <rect key="frame" x="69" y="199" width="39" height="15"/>
  457 + <fontDescription key="fontDescription" type="system" pointSize="12"/>
  458 + <nil key="textColor"/>
  459 + <nil key="highlightedColor"/>
  460 + </label>
  461 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="j8z-Dm-5mL">
  462 + <rect key="frame" x="52" y="199" width="15" height="15"/>
  463 + <constraints>
  464 + <constraint firstAttribute="width" constant="15" id="f5p-Mv-Ylo"/>
  465 + <constraint firstAttribute="height" constant="15" id="yKI-Iv-ctT"/>
  466 + </constraints>
  467 + </imageView>
  468 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="上传者:老师" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vag-ao-LKQ">
  469 + <rect key="frame" x="0.0" y="175" width="108" height="15"/>
  470 + <constraints>
  471 + <constraint firstAttribute="height" constant="15" id="8nl-am-VuO"/>
  472 + </constraints>
  473 + <fontDescription key="fontDescription" type="system" pointSize="12"/>
  474 + <nil key="textColor"/>
  475 + <nil key="highlightedColor"/>
  476 + </label>
  477 + </subviews>
  478 + </view>
  479 + <constraints>
  480 + <constraint firstItem="Ens-w5-JNf" firstAttribute="leading" secondItem="j8z-Dm-5mL" secondAttribute="trailing" constant="2.5" id="64X-uP-6eu"/>
  481 + <constraint firstAttribute="trailing" secondItem="vag-ao-LKQ" secondAttribute="trailing" constant="5" id="8jK-AG-5BE"/>
  482 + <constraint firstItem="q2O-JU-nOk" firstAttribute="top" secondItem="vag-ao-LKQ" secondAttribute="bottom" constant="8" id="BxM-zs-idP"/>
  483 + <constraint firstAttribute="bottomMargin" secondItem="j8z-Dm-5mL" secondAttribute="bottom" id="CTt-Wl-pgl"/>
  484 + <constraint firstAttribute="bottom" secondItem="Ens-w5-JNf" secondAttribute="bottom" constant="8" id="CYj-Yh-ykl"/>
  485 + <constraint firstItem="vag-ao-LKQ" firstAttribute="leading" secondItem="gdp-Ji-zur" secondAttribute="leading" id="Djn-nH-5tu"/>
  486 + <constraint firstItem="vag-ao-LKQ" firstAttribute="top" secondItem="Zk6-bu-T1Z" secondAttribute="bottom" constant="8" id="TUh-h3-ZgZ"/>
  487 + <constraint firstAttribute="bottom" secondItem="q2O-JU-nOk" secondAttribute="bottom" constant="8" id="URf-Pj-lNP"/>
  488 + <constraint firstItem="Zk6-bu-T1Z" firstAttribute="leading" secondItem="gdp-Ji-zur" secondAttribute="leading" id="Vng-Q4-dJt"/>
  489 + <constraint firstAttribute="trailing" secondItem="Ens-w5-JNf" secondAttribute="trailing" constant="5" id="WIv-BG-KUZ"/>
  490 + <constraint firstItem="bUk-R1-5gT" firstAttribute="leading" secondItem="gdp-Ji-zur" secondAttribute="leading" id="X8S-q4-Yjy"/>
  491 + <constraint firstAttribute="trailing" secondItem="Zk6-bu-T1Z" secondAttribute="trailing" constant="5" id="ZCV-WC-xJv"/>
  492 + <constraint firstAttribute="trailingMargin" secondItem="q2O-JU-nOk" secondAttribute="trailing" constant="61" id="ojG-9i-zX4"/>
  493 + <constraint firstItem="bUk-R1-5gT" firstAttribute="top" secondItem="gdp-Ji-zur" secondAttribute="top" id="q6C-YR-cFO"/>
  494 + <constraint firstItem="q2O-JU-nOk" firstAttribute="leading" secondItem="gdp-Ji-zur" secondAttribute="leading" id="qUh-gl-kWl"/>
  495 + <constraint firstAttribute="trailing" secondItem="bUk-R1-5gT" secondAttribute="trailing" constant="5" id="xj0-qF-rhP"/>
  496 + </constraints>
  497 + <connections>
  498 + <outlet property="dateLabel" destination="q2O-JU-nOk" id="cCA-VL-aAf"/>
  499 + <outlet property="iconImageView" destination="bUk-R1-5gT" id="jGO-DB-eGr"/>
  500 + <outlet property="nameLabel" destination="Zk6-bu-T1Z" id="8pF-3S-yhF"/>
  501 + <outlet property="readCountLabel" destination="Ens-w5-JNf" id="wAt-6p-bHE"/>
  502 + <outlet property="teacherNameLabel" destination="vag-ao-LKQ" id="mgc-Mu-jqm"/>
  503 + </connections>
  504 + </collectionViewCell>
  505 + </cells>
  506 + <connections>
  507 + <outlet property="dataSource" destination="gzq-jC-D39" id="CkM-GA-Vfd"/>
  508 + <outlet property="delegate" destination="gzq-jC-D39" id="VMh-ge-eXi"/>
  509 + </connections>
  510 + </collectionView>
  511 + </subviews>
  512 + <constraints>
  513 + <constraint firstItem="Tib-Fm-A1U" firstAttribute="top" secondItem="9Zz-SB-8Fl" secondAttribute="bottom" constant="8" id="35X-cd-fAU"/>
  514 + <constraint firstItem="nKJ-qz-sg8" firstAttribute="top" secondItem="9Zz-SB-8Fl" secondAttribute="bottom" constant="13" id="A8h-XS-V9X"/>
  515 + <constraint firstItem="UWk-5A-PEj" firstAttribute="leading" secondItem="kA1-Za-kS2" secondAttribute="leading" constant="8" id="GTt-JU-67B"/>
  516 + <constraint firstAttribute="bottom" secondItem="0uI-9D-XVZ" secondAttribute="bottom" id="IiM-YI-cmg"/>
  517 + <constraint firstItem="0uI-9D-XVZ" firstAttribute="top" secondItem="Tib-Fm-A1U" secondAttribute="bottom" constant="25" id="NOs-5g-r1E"/>
  518 + <constraint firstAttribute="trailing" secondItem="Tib-Fm-A1U" secondAttribute="trailing" constant="8" id="Rg7-Q9-IdK"/>
  519 + <constraint firstItem="nKJ-qz-sg8" firstAttribute="leading" secondItem="UWk-5A-PEj" secondAttribute="trailing" constant="8" id="TRM-qN-0jP"/>
  520 + <constraint firstAttribute="trailing" secondItem="9Zz-SB-8Fl" secondAttribute="trailing" id="Ujw-UV-mco"/>
  521 + <constraint firstItem="UWk-5A-PEj" firstAttribute="top" secondItem="9Zz-SB-8Fl" secondAttribute="bottom" constant="8" id="aKU-kC-KTK"/>
  522 + <constraint firstAttribute="trailing" secondItem="0uI-9D-XVZ" secondAttribute="trailing" constant="8" id="c13-N9-TW8"/>
  523 + <constraint firstItem="9Zz-SB-8Fl" firstAttribute="leading" secondItem="kA1-Za-kS2" secondAttribute="leading" id="iZd-Ff-YdA"/>
  524 + <constraint firstItem="9Zz-SB-8Fl" firstAttribute="top" secondItem="kA1-Za-kS2" secondAttribute="top" id="io6-vo-MrT"/>
  525 + <constraint firstItem="0uI-9D-XVZ" firstAttribute="leading" secondItem="kA1-Za-kS2" secondAttribute="leading" constant="8" id="ivh-0J-PTg"/>
  526 + </constraints>
  527 + </tableViewCellContentView>
  528 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  529 + </tableViewCell>
  530 + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" restorationIdentifier="cell3" selectionStyle="none" indentationWidth="10" reuseIdentifier="cell3" rowHeight="120" id="u0l-tM-Sps" customClass="HomeFourTableViewCell" customModule="YouerLiveVideo" customModuleProvider="target">
  531 + <rect key="frame" x="0.0" y="916" width="375" height="120"/>
  532 + <autoresizingMask key="autoresizingMask"/>
  533 + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="u0l-tM-Sps" id="pAP-UQ-eh8">
  534 + <rect key="frame" x="0.0" y="0.0" width="375" height="120"/>
  535 + <autoresizingMask key="autoresizingMask"/>
  536 + <subviews>
  537 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Mv3-YA-1zb">
  538 + <rect key="frame" x="0.0" y="0.0" width="375" height="20"/>
  539 + <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
  540 + <constraints>
  541 + <constraint firstAttribute="height" constant="20" id="8kZ-Qb-uv0"/>
  542 + </constraints>
  543 + </view>
  544 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="NyS-EO-TLP">
  545 + <rect key="frame" x="8" y="28" width="30" height="30"/>
  546 + <constraints>
  547 + <constraint firstAttribute="width" constant="30" id="3VH-BC-Dg6"/>
  548 + <constraint firstAttribute="height" constant="30" id="FB0-l5-0Jp"/>
  549 + </constraints>
  550 + </imageView>
  551 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="TE2-1P-sZs">
  552 + <rect key="frame" x="337" y="28" width="30" height="30"/>
  553 + <constraints>
  554 + <constraint firstAttribute="height" constant="30" id="EJo-or-6w8"/>
  555 + <constraint firstAttribute="width" constant="30" id="HqT-ZX-Hf6"/>
  556 + </constraints>
  557 + </imageView>
  558 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="校园电视台" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="UbK-Rj-Fs5">
  559 + <rect key="frame" x="46" y="33" width="87" height="21"/>
  560 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  561 + <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
  562 + <nil key="highlightedColor"/>
  563 + </label>
  564 + <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" tag="1" contentMode="scaleToFill" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="cYp-Zl-nJm">
  565 + <rect key="frame" x="8" y="83" width="359" height="37"/>
  566 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  567 + <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="0.0" minimumInteritemSpacing="8" id="WlM-Mm-GpJ">
  568 + <size key="itemSize" width="128" height="200"/>
  569 + <size key="headerReferenceSize" width="0.0" height="0.0"/>
  570 + <size key="footerReferenceSize" width="0.0" height="0.0"/>
  571 + <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
  572 + </collectionViewFlowLayout>
  573 + <cells>
  574 + <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="HomeFourCollectionViewCell" id="HjA-UT-tAU" customClass="HomeFourCollectionViewCell" customModule="YouerLiveVideo" customModuleProvider="target">
  575 + <rect key="frame" x="0.0" y="0.0" width="128" height="200"/>
  576 + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
  577 + <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
  578 + <rect key="frame" x="0.0" y="0.0" width="128" height="200"/>
  579 + <autoresizingMask key="autoresizingMask"/>
  580 + <subviews>
  581 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="绍兴市元培中学" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Lmi-xn-hpy">
  582 + <rect key="frame" x="0.0" y="170" width="128" height="30"/>
  583 + <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
  584 + <constraints>
  585 + <constraint firstAttribute="height" constant="30" id="4Og-hL-nhw"/>
  586 + </constraints>
  587 + <fontDescription key="fontDescription" type="system" pointSize="15"/>
  588 + <nil key="textColor"/>
  589 + <nil key="highlightedColor"/>
  590 + </label>
  591 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="ZWf-Th-UTw">
  592 + <rect key="frame" x="0.0" y="0.0" width="128" height="128"/>
  593 + <constraints>
  594 + <constraint firstAttribute="width" secondItem="ZWf-Th-UTw" secondAttribute="height" multiplier="1:1" id="u0O-8v-OqH"/>
  595 + </constraints>
  596 + </imageView>
  597 + </subviews>
  598 + </view>
  599 + <constraints>
  600 + <constraint firstAttribute="trailing" secondItem="ZWf-Th-UTw" secondAttribute="trailing" id="Hkb-Vx-aEZ"/>
  601 + <constraint firstItem="Lmi-xn-hpy" firstAttribute="leading" secondItem="HjA-UT-tAU" secondAttribute="leading" id="SIB-tW-wsl"/>
  602 + <constraint firstItem="ZWf-Th-UTw" firstAttribute="leading" secondItem="HjA-UT-tAU" secondAttribute="leading" id="W3e-IY-PZS"/>
  603 + <constraint firstItem="ZWf-Th-UTw" firstAttribute="top" secondItem="HjA-UT-tAU" secondAttribute="top" id="kEK-a6-3R0"/>
  604 + <constraint firstAttribute="bottom" secondItem="Lmi-xn-hpy" secondAttribute="bottom" id="vu4-bN-2K2"/>
  605 + <constraint firstAttribute="trailing" secondItem="Lmi-xn-hpy" secondAttribute="trailing" id="ySB-Nj-6ER"/>
  606 + </constraints>
  607 + <connections>
  608 + <outlet property="iconImageView" destination="ZWf-Th-UTw" id="yo2-rs-AxI"/>
  609 + <outlet property="nameLabel" destination="Lmi-xn-hpy" id="v02-ZH-Zxo"/>
  610 + </connections>
  611 + </collectionViewCell>
  612 + </cells>
  613 + <connections>
  614 + <outlet property="dataSource" destination="u0l-tM-Sps" id="P4b-A7-06n"/>
  615 + <outlet property="delegate" destination="u0l-tM-Sps" id="egb-LE-ggA"/>
  616 + </connections>
  617 + </collectionView>
  618 + </subviews>
  619 + <constraints>
  620 + <constraint firstItem="NyS-EO-TLP" firstAttribute="top" secondItem="Mv3-YA-1zb" secondAttribute="bottom" constant="8" id="0ke-n8-TrJ"/>
  621 + <constraint firstItem="TE2-1P-sZs" firstAttribute="top" secondItem="Mv3-YA-1zb" secondAttribute="bottom" constant="8" id="1KX-Aj-m0i"/>
  622 + <constraint firstAttribute="trailing" secondItem="cYp-Zl-nJm" secondAttribute="trailing" constant="8" id="5NS-hQ-HDr"/>
  623 + <constraint firstItem="Mv3-YA-1zb" firstAttribute="top" secondItem="pAP-UQ-eh8" secondAttribute="top" id="ARU-SJ-pTz"/>
  624 + <constraint firstAttribute="trailing" secondItem="Mv3-YA-1zb" secondAttribute="trailing" id="I4t-Lc-D4H"/>
  625 + <constraint firstAttribute="bottom" secondItem="cYp-Zl-nJm" secondAttribute="bottom" id="JIt-5J-1vX"/>
  626 + <constraint firstItem="UbK-Rj-Fs5" firstAttribute="top" secondItem="Mv3-YA-1zb" secondAttribute="bottom" constant="13" id="LSN-Sj-8zr"/>
  627 + <constraint firstAttribute="trailing" secondItem="TE2-1P-sZs" secondAttribute="trailing" constant="8" id="QlU-44-FxY"/>
  628 + <constraint firstItem="cYp-Zl-nJm" firstAttribute="top" secondItem="TE2-1P-sZs" secondAttribute="bottom" constant="25" id="VVE-0S-GvV"/>
  629 + <constraint firstItem="cYp-Zl-nJm" firstAttribute="leading" secondItem="pAP-UQ-eh8" secondAttribute="leading" constant="8" id="aI8-UO-9NX"/>
  630 + <constraint firstItem="Mv3-YA-1zb" firstAttribute="leading" secondItem="pAP-UQ-eh8" secondAttribute="leading" id="cWh-v4-slW"/>
  631 + <constraint firstItem="NyS-EO-TLP" firstAttribute="leading" secondItem="pAP-UQ-eh8" secondAttribute="leading" constant="8" id="hQw-PE-ApU"/>
  632 + <constraint firstItem="UbK-Rj-Fs5" firstAttribute="leading" secondItem="NyS-EO-TLP" secondAttribute="trailing" constant="8" id="vTs-ac-et0"/>
  633 + </constraints>
  634 + </tableViewCellContentView>
  635 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  636 + </tableViewCell>
  637 + </cells>
  638 + </tableViewSection>
  639 + </sections>
  640 + <connections>
  641 + <outlet property="dataSource" destination="HdB-6p-eAX" id="9pC-lS-mN2"/>
  642 + <outlet property="delegate" destination="HdB-6p-eAX" id="k2q-uw-6l0"/>
  643 + </connections>
  644 + </tableView>
  645 + <navigationItem key="navigationItem" id="u6G-VK-Ob0">
  646 + <barButtonItem key="rightBarButtonItem" systemItem="search" id="Wrt-Tt-zFU">
  647 + <connections>
  648 + <action selector="rightBarButtonAction:" destination="HdB-6p-eAX" id="FCr-SK-pbu"/>
  649 + </connections>
  650 + </barButtonItem>
  651 + </navigationItem>
  652 + <connections>
  653 + <outlet property="tableHeaderView" destination="w64-sF-NZ9" id="GF0-Uu-8HD"/>
  654 + </connections>
  655 + </tableViewController>
  656 + <placeholder placeholderIdentifier="IBFirstResponder" id="2sP-jw-GGF" userLabel="First Responder" sceneMemberID="firstResponder"/>
  657 + </objects>
  658 + <point key="canvasLocation" x="-1839.2" y="2112.5937031484259"/>
  659 + </scene>
109 <!--New Login View Controller--> 660 <!--New Login View Controller-->
110 <scene sceneID="6BI-o5-Qja"> 661 <scene sceneID="6BI-o5-Qja">
111 <objects> 662 <objects>
@@ -122,7 +673,7 @@ @@ -122,7 +673,7 @@
122 </viewController> 673 </viewController>
123 <placeholder placeholderIdentifier="IBFirstResponder" id="7Vp-aM-FMN" userLabel="First Responder" sceneMemberID="firstResponder"/> 674 <placeholder placeholderIdentifier="IBFirstResponder" id="7Vp-aM-FMN" userLabel="First Responder" sceneMemberID="firstResponder"/>
124 </objects> 675 </objects>
125 - <point key="canvasLocation" x="-1844" y="2795"/> 676 + <point key="canvasLocation" x="-904.79999999999995" y="2794.4527736131936"/>
126 </scene> 677 </scene>
127 <!--用户--> 678 <!--用户-->
128 <scene sceneID="8Ie-AH-DJ4"> 679 <scene sceneID="8Ie-AH-DJ4">
@@ -146,6 +697,12 @@ @@ -146,6 +697,12 @@
146 <!--用户--> 697 <!--用户-->
147 <scene sceneID="LVY-SG-ceP"> 698 <scene sceneID="LVY-SG-ceP">
148 <objects> 699 <objects>
  700 + <tapGestureRecognizer id="crA-lr-1r9">
  701 + <connections>
  702 + <action selector="photoImageTapAction:" destination="Xoa-Fo-2KW" id="bF5-5i-BIt"/>
  703 + </connections>
  704 + </tapGestureRecognizer>
  705 + <placeholder placeholderIdentifier="IBFirstResponder" id="F06-ml-zgU" sceneMemberID="firstResponder"/>
149 <viewController id="Xoa-Fo-2KW" customClass="MyViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController"> 706 <viewController id="Xoa-Fo-2KW" customClass="MyViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController">
150 <layoutGuides> 707 <layoutGuides>
151 <viewControllerLayoutGuide type="top" id="aLD-cx-0Aw"/> 708 <viewControllerLayoutGuide type="top" id="aLD-cx-0Aw"/>
@@ -345,12 +902,6 @@ @@ -345,12 +902,6 @@
345 <outlet property="userView" destination="rEx-Nd-HXY" id="VMZ-Pf-hh9"/> 902 <outlet property="userView" destination="rEx-Nd-HXY" id="VMZ-Pf-hh9"/>
346 </connections> 903 </connections>
347 </viewController> 904 </viewController>
348 - <placeholder placeholderIdentifier="IBFirstResponder" id="F06-ml-zgU" sceneMemberID="firstResponder"/>  
349 - <tapGestureRecognizer id="crA-lr-1r9">  
350 - <connections>  
351 - <action selector="photoImageTapAction:" destination="Xoa-Fo-2KW" id="bF5-5i-BIt"/>  
352 - </connections>  
353 - </tapGestureRecognizer>  
354 </objects> 905 </objects>
355 <point key="canvasLocation" x="362" y="-179"/> 906 <point key="canvasLocation" x="362" y="-179"/>
356 </scene> 907 </scene>
@@ -370,49 +921,7 @@ @@ -370,49 +921,7 @@
370 </viewController> 921 </viewController>
371 <placeholder placeholderIdentifier="IBFirstResponder" id="gJk-RE-f98" userLabel="First Responder" sceneMemberID="firstResponder"/> 922 <placeholder placeholderIdentifier="IBFirstResponder" id="gJk-RE-f98" userLabel="First Responder" sceneMemberID="firstResponder"/>
372 </objects> 923 </objects>
373 - <point key="canvasLocation" x="-2635" y="1787"/>  
374 - </scene>  
375 - <!--首页-->  
376 - <scene sceneID="aRE-yu-eWF">  
377 - <objects>  
378 - <viewController title="首页" id="1Jl-hM-Iqa" customClass="HomePageViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController">  
379 - <layoutGuides>  
380 - <viewControllerLayoutGuide type="top" id="wfh-tO-9fU"/>  
381 - <viewControllerLayoutGuide type="bottom" id="FOv-Or-1ph"/>  
382 - </layoutGuides>  
383 - <view key="view" contentMode="scaleToFill" id="2QR-eN-M4v">  
384 - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>  
385 - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>  
386 - <subviews>  
387 - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="FSI-1e-Z3T" customClass="JYScrollView">  
388 - <rect key="frame" x="0.0" y="64" width="375" height="211"/>  
389 - <color key="backgroundColor" red="1" green="0.49803921569999998" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>  
390 - <constraints>  
391 - <constraint firstAttribute="width" secondItem="FSI-1e-Z3T" secondAttribute="height" multiplier="16:9" id="U44-KW-O9e"/>  
392 - </constraints>  
393 - </view>  
394 - </subviews>  
395 - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>  
396 - <constraints>  
397 - <constraint firstItem="FSI-1e-Z3T" firstAttribute="top" secondItem="wfh-tO-9fU" secondAttribute="bottom" id="5D2-o8-R3S"/>  
398 - <constraint firstAttribute="trailing" secondItem="FSI-1e-Z3T" secondAttribute="trailing" id="AYI-Qj-Hxg"/>  
399 - <constraint firstItem="FSI-1e-Z3T" firstAttribute="leading" secondItem="2QR-eN-M4v" secondAttribute="leading" id="wBm-Qb-5ZL"/>  
400 - </constraints>  
401 - </view>  
402 - <navigationItem key="navigationItem" id="oQz-in-YkH">  
403 - <barButtonItem key="rightBarButtonItem" systemItem="search" id="Wrt-Tt-zFU">  
404 - <connections>  
405 - <action selector="rightBarButtonAction:" destination="1Jl-hM-Iqa" id="Vmx-da-V42"/>  
406 - </connections>  
407 - </barButtonItem>  
408 - </navigationItem>  
409 - <connections>  
410 - <outlet property="jsScrollView" destination="FSI-1e-Z3T" id="HgY-QR-azl"/>  
411 - </connections>  
412 - </viewController>  
413 - <placeholder placeholderIdentifier="IBFirstResponder" id="Gcl-lo-apd" userLabel="First Responder" sceneMemberID="firstResponder"/>  
414 - </objects>  
415 - <point key="canvasLocation" x="-1844" y="2112.5937031484259"/> 924 + <point key="canvasLocation" x="-2942" y="1740"/>
416 </scene> 925 </scene>
417 <!--教育视频云--> 926 <!--教育视频云-->
418 <scene sceneID="HjP-gB-wYC"> 927 <scene sceneID="HjP-gB-wYC">
@@ -429,7 +938,7 @@ @@ -429,7 +938,7 @@
429 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 938 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
430 </tabBar> 939 </tabBar>
431 <connections> 940 <connections>
432 - <segue destination="Gul-vC-TEH" kind="relationship" relationship="viewControllers" id="c5Z-2d-zte"/> 941 + <segue destination="ZF0-NB-klP" kind="relationship" relationship="viewControllers" id="Z42-TE-CiO"/>
433 <segue destination="oPL-zE-5ud" kind="relationship" relationship="viewControllers" id="gJl-yM-BDL"/> 942 <segue destination="oPL-zE-5ud" kind="relationship" relationship="viewControllers" id="gJl-yM-BDL"/>
434 <segue destination="B6F-S8-zbX" kind="relationship" relationship="viewControllers" id="7pq-lc-eDm"/> 943 <segue destination="B6F-S8-zbX" kind="relationship" relationship="viewControllers" id="7pq-lc-eDm"/>
435 <segue destination="eeQ-qi-Oqc" kind="relationship" relationship="viewControllers" id="774-3a-UqO"/> 944 <segue destination="eeQ-qi-Oqc" kind="relationship" relationship="viewControllers" id="774-3a-UqO"/>
@@ -440,30 +949,11 @@ @@ -440,30 +949,11 @@
440 </objects> 949 </objects>
441 <point key="canvasLocation" x="-532" y="555"/> 950 <point key="canvasLocation" x="-532" y="555"/>
442 </scene> 951 </scene>
443 - <!--教育视频云-->  
444 - <scene sceneID="Cfq-AH-7TK">  
445 - <objects>  
446 - <navigationController title="教育视频云" automaticallyAdjustsScrollViewInsets="NO" id="Gul-vC-TEH" sceneMemberID="viewController">  
447 - <tabBarItem key="tabBarItem" title="首页" id="mg9-ej-iSC"/>  
448 - <toolbarItems/>  
449 - <navigationBar key="navigationBar" contentMode="scaleToFill" id="RZv-Wq-V2A">  
450 - <rect key="frame" x="0.0" y="0.0" width="375" height="44"/>  
451 - <autoresizingMask key="autoresizingMask"/>  
452 - </navigationBar>  
453 - <nil name="viewControllers"/>  
454 - <connections>  
455 - <segue destination="1Jl-hM-Iqa" kind="relationship" relationship="rootViewController" id="GzR-5e-vjX"/>  
456 - </connections>  
457 - </navigationController>  
458 - <placeholder placeholderIdentifier="IBFirstResponder" id="Uue-gL-Rwf" userLabel="First Responder" sceneMemberID="firstResponder"/>  
459 - </objects>  
460 - <point key="canvasLocation" x="-1844" y="1414.5427286356824"/>  
461 - </scene>  
462 <!--资源--> 952 <!--资源-->
463 <scene sceneID="Ztv-WN-7iK"> 953 <scene sceneID="Ztv-WN-7iK">
464 <objects> 954 <objects>
465 <navigationController title="资源" automaticallyAdjustsScrollViewInsets="NO" id="oPL-zE-5ud" sceneMemberID="viewController"> 955 <navigationController title="资源" automaticallyAdjustsScrollViewInsets="NO" id="oPL-zE-5ud" sceneMemberID="viewController">
466 - <tabBarItem key="tabBarItem" title="资源" id="H9f-Lc-mQs"/> 956 + <tabBarItem key="tabBarItem" title="资源" image="首页.png" id="H9f-Lc-mQs"/>
467 <toolbarItems/> 957 <toolbarItems/>
468 <navigationBar key="navigationBar" contentMode="scaleToFill" id="Ca3-cq-bcD"> 958 <navigationBar key="navigationBar" contentMode="scaleToFill" id="Ca3-cq-bcD">
469 <rect key="frame" x="0.0" y="0.0" width="375" height="44"/> 959 <rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
@@ -482,7 +972,7 @@ @@ -482,7 +972,7 @@
482 <scene sceneID="cuR-qn-3H2"> 972 <scene sceneID="cuR-qn-3H2">
483 <objects> 973 <objects>
484 <navigationController title="微课" automaticallyAdjustsScrollViewInsets="NO" id="B6F-S8-zbX" sceneMemberID="viewController"> 974 <navigationController title="微课" automaticallyAdjustsScrollViewInsets="NO" id="B6F-S8-zbX" sceneMemberID="viewController">
485 - <tabBarItem key="tabBarItem" title="微课" id="6vI-fw-Oos"/> 975 + <tabBarItem key="tabBarItem" title="微课" image="首页.png" id="6vI-fw-Oos"/>
486 <toolbarItems/> 976 <toolbarItems/>
487 <navigationBar key="navigationBar" contentMode="scaleToFill" id="gzA-MB-3BR"> 977 <navigationBar key="navigationBar" contentMode="scaleToFill" id="gzA-MB-3BR">
488 <rect key="frame" x="0.0" y="0.0" width="375" height="44"/> 978 <rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
@@ -501,7 +991,7 @@ @@ -501,7 +991,7 @@
501 <scene sceneID="zf3-SG-nOb"> 991 <scene sceneID="zf3-SG-nOb">
502 <objects> 992 <objects>
503 <navigationController title="电视台" automaticallyAdjustsScrollViewInsets="NO" id="eeQ-qi-Oqc" sceneMemberID="viewController"> 993 <navigationController title="电视台" automaticallyAdjustsScrollViewInsets="NO" id="eeQ-qi-Oqc" sceneMemberID="viewController">
504 - <tabBarItem key="tabBarItem" title="电视台" id="Aq8-EP-9iB"/> 994 + <tabBarItem key="tabBarItem" title="电视台" image="首页.png" id="Aq8-EP-9iB"/>
505 <toolbarItems/> 995 <toolbarItems/>
506 <navigationBar key="navigationBar" contentMode="scaleToFill" id="zos-0a-mzB"> 996 <navigationBar key="navigationBar" contentMode="scaleToFill" id="zos-0a-mzB">
507 <rect key="frame" x="0.0" y="0.0" width="375" height="44"/> 997 <rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
@@ -520,7 +1010,7 @@ @@ -520,7 +1010,7 @@
520 <scene sceneID="CWh-n7-nxi"> 1010 <scene sceneID="CWh-n7-nxi">
521 <objects> 1011 <objects>
522 <navigationController title="用户" automaticallyAdjustsScrollViewInsets="NO" id="Lq6-19-raF" sceneMemberID="viewController"> 1012 <navigationController title="用户" automaticallyAdjustsScrollViewInsets="NO" id="Lq6-19-raF" sceneMemberID="viewController">
523 - <tabBarItem key="tabBarItem" title="用户" id="xsr-8R-tgo"/> 1013 + <tabBarItem key="tabBarItem" title="用户" image="首页.png" id="xsr-8R-tgo"/>
524 <toolbarItems/> 1014 <toolbarItems/>
525 <navigationBar key="navigationBar" contentMode="scaleToFill" id="aYo-eQ-QLv"> 1015 <navigationBar key="navigationBar" contentMode="scaleToFill" id="aYo-eQ-QLv">
526 <rect key="frame" x="0.0" y="0.0" width="375" height="44"/> 1016 <rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
@@ -643,6 +1133,25 @@ @@ -643,6 +1133,25 @@
643 </objects> 1133 </objects>
644 <point key="canvasLocation" x="429.60000000000002" y="2112.5937031484259"/> 1134 <point key="canvasLocation" x="429.60000000000002" y="2112.5937031484259"/>
645 </scene> 1135 </scene>
  1136 + <!--教育视频云-->
  1137 + <scene sceneID="axA-Q8-m9h">
  1138 + <objects>
  1139 + <navigationController title="教育视频云" automaticallyAdjustsScrollViewInsets="NO" id="ZF0-NB-klP" sceneMemberID="viewController">
  1140 + <tabBarItem key="tabBarItem" title="首页" image="首页.png" id="JKA-ml-vLX"/>
  1141 + <toolbarItems/>
  1142 + <navigationBar key="navigationBar" contentMode="scaleToFill" id="Xg7-jx-ngw">
  1143 + <rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
  1144 + <autoresizingMask key="autoresizingMask"/>
  1145 + </navigationBar>
  1146 + <nil name="viewControllers"/>
  1147 + <connections>
  1148 + <segue destination="HdB-6p-eAX" kind="relationship" relationship="rootViewController" id="Yu8-Rr-XQ9"/>
  1149 + </connections>
  1150 + </navigationController>
  1151 + <placeholder placeholderIdentifier="IBFirstResponder" id="pNh-PV-eeK" userLabel="First Responder" sceneMemberID="firstResponder"/>
  1152 + </objects>
  1153 + <point key="canvasLocation" x="-1838" y="1415"/>
  1154 + </scene>
646 </scenes> 1155 </scenes>
647 <resources> 1156 <resources>
648 <image name="arrow" width="33" height="33"/> 1157 <image name="arrow" width="33" height="33"/>
@@ -653,5 +1162,6 @@ @@ -653,5 +1162,6 @@
653 <image name="icon" width="512" height="512"/> 1162 <image name="icon" width="512" height="512"/>
654 <image name="icon.png" width="80" height="80"/> 1163 <image name="icon.png" width="80" height="80"/>
655 <image name="视窗.png" width="31" height="31"/> 1164 <image name="视窗.png" width="31" height="31"/>
  1165 + <image name="首页.png" width="31" height="31"/>
656 </resources> 1166 </resources>
657 </document> 1167 </document>
YouerLiveVideo/YouerLiveVideo/controllers/HomePage/HomePageViewController.swift
@@ -1,62 +0,0 @@ @@ -1,62 +0,0 @@
1 -//  
2 -// HomePageViewController.swift  
3 -// YouerLiveVideo  
4 -//  
5 -// Created by 左丞 on 2017/5/16.  
6 -// Copyright © 2017年 左丞. All rights reserved.  
7 -//  
8 -  
9 -import UIKit  
10 -  
11 -class HomePageViewController: UIViewController {  
12 - @IBOutlet var jsScrollView: JYScrollView!  
13 - let current=AppDelegate.instance().accountManager  
14 - override func viewDidLoad() {  
15 - super.viewDidLoad()  
16 - settingIconAndTitle()  
17 - settingCarouselView()  
18 - }  
19 - //设置左上角头像及背景色等  
20 - func settingIconAndTitle(){  
21 - let photo=UIImageView(frame: CGRect(x: 0, y: 0, width: 35, height: 35))  
22 - photo.sd_setImage(with: URL(string: current.photo()), placeholderImage: UIImage(named: "defphoto"))  
23 - photo.layer.cornerRadius=5  
24 - photo.layer.masksToBounds=true  
25 - let leftBarButtonItem=UIBarButtonItem(customView: photo)  
26 - self.navigationItem.leftBarButtonItem=leftBarButtonItem  
27 - self.configTheme()  
28 - self.navigationController?.navigationBar.barStyle=UIBarStyle.black  
29 - }  
30 - //设置轮播图  
31 - func settingCarouselView(){  
32 - let jyScrollViews=JYScrollView(frame: CGRect(x: 0, y: 0, width: getScreenWidth(), height: getScreenWidth()/16*9))  
33 - jyScrollViews.banner(with: ["http://img.pconline.com.cn/images/upload/upc/tx/wallpaper/1212/27/c0/16922592_1356570394404.jpg","http://p9.qhimg.com/t01665b2df63f2dc61b.jpg"], imageType: JYImageType.urlType, placeHolder: "default") { (index) in  
34 - NSLog("点击了轮播图click NO\(index)")  
35 - }  
36 - jyScrollViews.timeInterval=2  
37 - self.view.addSubview(jyScrollViews)  
38 - }  
39 - //右上角搜索按钮点击方法  
40 - @IBAction func rightBarButtonAction(_ sender: UIBarButtonItem) {  
41 -  
42 - }  
43 - override var preferredStatusBarStyle: UIStatusBarStyle{  
44 - return UIStatusBarStyle.lightContent  
45 - }  
46 - override func didReceiveMemoryWarning() {  
47 - super.didReceiveMemoryWarning()  
48 - // Dispose of any resources that can be recreated.  
49 - }  
50 -  
51 -  
52 - /*  
53 - // MARK: - Navigation  
54 -  
55 - // In a storyboard-based application, you will often want to do a little preparation before navigation  
56 - override func prepare(for segue: UIStoryboardSegue, sender: Any?) {  
57 - // Get the new view controller using segue.destinationViewController.  
58 - // Pass the selected object to the new view controller.  
59 - }  
60 - */  
61 -  
62 -}  
YouerLiveVideo/YouerLiveVideo/controllers/HomePage/MainHomeTableViewController.swift 0 → 100644
@@ -0,0 +1,405 @@ @@ -0,0 +1,405 @@
  1 +//
  2 +// MainHomeTableViewController.swift
  3 +// YouerLiveVideo
  4 +//
  5 +// Created by 葛建军 on 17/5/19.
  6 +// Copyright © 2017年 左丞. All rights reserved.
  7 +//
  8 +
  9 +import UIKit
  10 +
  11 +class MainHomeTableViewController: UITableViewController {
  12 + @IBOutlet var tableHeaderView: UIView!
  13 + let current=AppDelegate.instance().accountManager
  14 + override func viewDidLoad() {
  15 + super.viewDidLoad()
  16 + tableHeaderView.frame.size.height=getScreenWidth()/12*5
  17 + settingIconAndTitle()
  18 + settingCarouselView()
  19 + }
  20 + //设置左上角头像及背景色等
  21 + func settingIconAndTitle(){
  22 + let photo=UIImageView(frame: CGRect(x: 0, y: 0, width: 35, height: 35))
  23 + photo.sd_setImage(with: URL(string: current.photo()), placeholderImage: UIImage(named: "defphoto"))
  24 + photo.layer.cornerRadius=5
  25 + photo.layer.masksToBounds=true
  26 + let leftBarButtonItem=UIBarButtonItem(customView: photo)
  27 + self.navigationItem.leftBarButtonItem=leftBarButtonItem
  28 + self.configTheme()
  29 + self.navigationController?.navigationBar.barStyle=UIBarStyle.black
  30 + }
  31 + //设置轮播图
  32 + func settingCarouselView(){
  33 + AppDelegate.instance().httpServer.getLunboList(parameters: ["type": 0 as AnyObject]) { (str, error) in
  34 + if error==nil {
  35 + if JSON.fromString(jsonString: str)!["status"].intValue == 1{
  36 + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in
  37 + var lineAry:[String]=[]
  38 + var lineModelAry:[InLineModel]=[]
  39 + for item in JSON.fromString(jsonString: str)!["data"].arrayValue {
  40 + lineModelAry.append(InLineModel(j: item))
  41 + lineAry.append(item["f_Img"].stringValue)
  42 + }
  43 + if lineModelAry.count>0{
  44 + let jyScrollViews=JYScrollView(frame: CGRect(x: 0, y: 0, width: getScreenWidth(), height: getScreenWidth()/12*5))
  45 + jyScrollViews.banner(with: lineAry, imageType: JYImageType.urlType, placeHolder: "default") { (index) in
  46 +
  47 + NSLog("点击了轮播图 图片ID:\(lineModelAry[index].f_Id)")
  48 + }
  49 + jyScrollViews.timeInterval=2
  50 + self.tableHeaderView.addSubview(jyScrollViews)
  51 + }
  52 + }, failHandler: { (error) in
  53 + self.view.makeToast("获取轮播图失败:\(error.localizedDescription)")
  54 + })
  55 + }else{
  56 + self.view.makeToast("获取轮播图失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)")
  57 + }
  58 + }else{
  59 + self.view.makeToast("获取轮播图失败:\(error!.description)")
  60 + }
  61 + }
  62 + }
  63 + //右上角搜索按钮点击方法
  64 + @IBAction func rightBarButtonAction(_ sender: UIBarButtonItem) {
  65 +
  66 + }
  67 +
  68 +
  69 + override func didReceiveMemoryWarning() {
  70 + super.didReceiveMemoryWarning()
  71 + }
  72 +
  73 + // MARK: - Table view data source
  74 +
  75 + override func numberOfSections(in tableView: UITableView) -> Int {
  76 + return 1
  77 + }
  78 +
  79 + override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  80 + return 4
  81 + }
  82 + override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
  83 + if indexPath.row==0 || indexPath.row==1{
  84 + return (getScreenWidth()-16)/2+86
  85 + }else if indexPath.row==2{
  86 + return (getScreenWidth()-16)/3+103+86
  87 + }else{
  88 + return (getScreenWidth()-30)/3+30+86
  89 + }
  90 + }
  91 + override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
  92 + return tableHeaderView
  93 + }
  94 +
  95 + /*
  96 + override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  97 + if indexPath.row==0{
  98 + let cell = tableView.dequeueReusableCell(withIdentifier: "cell0", for: indexPath) as! HomeFirstTableViewCell
  99 + return cell
  100 + }else if indexPath.row==1{
  101 + let cell = tableView.dequeueReusableCell(withIdentifier: "cell1", for: indexPath)
  102 + return cell
  103 + }else if indexPath.row==2{
  104 + let cell = tableView.dequeueReusableCell(withIdentifier: "cell2", for: indexPath)
  105 + return cell
  106 + }else{
  107 + let cell = tableView.dequeueReusableCell(withIdentifier: "cell3", for: indexPath)
  108 + return cell
  109 + }
  110 + }
  111 + */
  112 + override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
  113 + NSLog("点击了第\(indexPath.row)个cell")
  114 + }
  115 +
  116 +
  117 +}
  118 +class InLineModel: NSObject {
  119 + var f_Id:String="" //标识字段,Guid标识 ,
  120 + var f_DeleteMark:Bool=false //删除标识,1-已删除
  121 + var f_CreatorTime:String="" //创建时间
  122 + var f_CreatorUserId:String="" //创建人员ID
  123 + var f_LastModifyTime:String="" //最近一次编辑时间
  124 + var f_LastModifyUserId:String=""//最近一次编辑人员
  125 + var f_DeleteTime:String="" //删除时间
  126 + var f_DeleteUserId:String="" //删除人员
  127 + var f_Img:String="" //轮播图片
  128 + var f_Type:Int=0 //轮播图位置 0-视频云前端轮播图 1-校园电视台轮播图
  129 + init(j:JSON) {
  130 + f_Id=j["f_Id"].stringValue
  131 + f_DeleteMark=j["f_DeleteMark"].boolValue
  132 + f_CreatorTime=j["f_CreatorTime"].stringValue
  133 + f_CreatorUserId=j["f_CreatorUserId"].stringValue
  134 + f_LastModifyTime=j["f_LastModifyTime"].stringValue
  135 + f_LastModifyUserId=j["f_LastModifyUserId"].stringValue
  136 + f_DeleteTime=j["f_DeleteTime"].stringValue
  137 + f_DeleteUserId=j["f_DeleteUserId"].stringValue
  138 + f_Img=j["f_Img"].stringValue
  139 + f_Type=j["f_Type"].intValue
  140 + }
  141 +}
  142 +class HomeFirstTableViewCell: UITableViewCell,UICollectionViewDelegate,UICollectionViewDelegateFlowLayout,UICollectionViewDataSource {
  143 + func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
  144 + if indexPath.row==0{
  145 + //点击进入学校 appRootViewController()
  146 + }else{
  147 + //点击进入教师
  148 + }
  149 + }
  150 + func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
  151 + return CGSize(width: (getScreenWidth()-16)/2, height: (getScreenWidth()-16)/2)
  152 + }
  153 +
  154 + func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
  155 + return 2
  156 + }
  157 + func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
  158 + let cell=collectionView.dequeueReusableCell(withReuseIdentifier: "HomeFirstCollectionViewCell", for: indexPath) as! HomeFirstCollectionViewCell
  159 + if indexPath.row==0{
  160 + cell.nameLabel.text="学校"
  161 + }else{
  162 + cell.nameLabel.text="教师"
  163 + }
  164 + return cell
  165 + }
  166 +}
  167 +class HomeFirstCollectionViewCell: UICollectionViewCell {
  168 + @IBOutlet var nameLabel: UILabel!
  169 + @IBOutlet var iconImageView: UIImageView!
  170 +}
  171 +class HomeSecondTableViewCell: UITableViewCell,UICollectionViewDelegate,UICollectionViewDelegateFlowLayout,UICollectionViewDataSource {
  172 + var dataSet:[MicroCourseModel]=[]
  173 + override func awakeFromNib() {
  174 + super.awakeFromNib()
  175 + getHotCourseList()
  176 + }
  177 + //获取热门微课前两门
  178 + func getHotCourseList(){
  179 + let parameters:Dictionary<String,AnyObject>=["type":0 as AnyObject,"pageIndex":0 as AnyObject,"pageSize":2 as AnyObject]
  180 + AppDelegate.instance().httpServer.getHotRescourse(parameters: parameters) { (str, error) in
  181 + if error==nil {
  182 + if JSON.fromString(jsonString: str)!["status"].intValue == 1{
  183 + self.dataSet.removeAll()
  184 + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in
  185 + for item in JSON.fromString(jsonString: str)!["data"].arrayValue {
  186 + self.dataSet.append(MicroCourseModel(j: item))
  187 + }
  188 + (self.viewWithTag(1) as! UICollectionView).reloadData()
  189 + }, failHandler: { (error) in
  190 + appRootViewController().view.makeToast("获取热门微课失败:\(error.localizedDescription)")
  191 + })
  192 + }else{
  193 + appRootViewController().view.makeToast("获取热门微课失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)")
  194 + }
  195 + }else{
  196 + appRootViewController().view.makeToast("获取热门微课失败:\(error!.description)")
  197 + }
  198 + }
  199 + }
  200 + func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
  201 + //点击进入学校 appRootViewController()
  202 + NSLog("点击了****\(dataSet[indexPath.row])")
  203 + }
  204 + func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
  205 + return CGSize(width: (getScreenWidth()-16)/2, height: (getScreenWidth()-16)/2)
  206 + }
  207 + func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
  208 + return dataSet.count
  209 + }
  210 + func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
  211 + let cell=collectionView.dequeueReusableCell(withReuseIdentifier: "HomeSecondCollectionViewCell", for: indexPath) as! HomeSecondCollectionViewCell
  212 + cell.setUpWithItem(item: dataSet[indexPath.row])
  213 + return cell
  214 + }
  215 +}
  216 +//MARK: - 排行model
  217 +class MicroCourseModel:NSObject {
  218 + var f_Id:String="" //标识字段,Guid标识 ,
  219 + var f_DeleteMark:Bool=false //删除标识,1-已删除
  220 + var f_CreatorTime:String="" //创建时间
  221 + var f_CreatorUserId:String="" //创建人员ID
  222 + var f_LastModifyTime:String="" //最近一次编辑时间
  223 + var f_LastModifyUserId:String=""//最近一次编辑人员
  224 + var f_DeleteTime:String="" //删除时间
  225 + var f_DeleteUserId:String="" //删除人员
  226 + var f_Img:String="" //轮播图片
  227 + var f_Title:String="" //课件名称
  228 + var f_CreatorName:String="" //上传人员昵称
  229 + var f_Pv:Int=0 //浏览量
  230 + var f_DownloadSum:Int=0 //下载量
  231 + var f_LoveSum:Int=0 //点赞量
  232 + var f_Price:Int=0 //价格
  233 + var f_WaveId:String="" //所属教材ID
  234 + var f_ChapterId:String="" //所属章节
  235 + var f_TopicId:String="" //所属知识点
  236 + var f_TestId:String="" //所属考点
  237 + var f_SchoolId:String="" //上传老师的学校ID
  238 + var f_IsExamine:Int=0 //审核状态:0-未审核,1-审核通过,2-审核不通过
  239 + var f_ExamineUserId:String="" //审核人ID
  240 + var f_ExamineName:String="" //审核人姓名
  241 + var f_ExamineDatetime:String="" //审核日期
  242 + var f_ResourceType:Int=0 //资源类型 0-微课 1-资源 2-电视台
  243 + var f_ResourceUrl:String="" //资源地址
  244 + var f_IsOpen:Bool=false //是否公开
  245 + var f_Detail:String="" //资源简介
  246 + var f_TelevisionId:String="" //电视台目录
  247 + init(j:JSON) {
  248 + f_Id=j["f_Id"].stringValue
  249 + f_DeleteMark=j["f_DeleteMark"].boolValue
  250 + f_CreatorTime=j["f_CreatorTime"].stringValue
  251 + f_CreatorUserId=j["f_CreatorUserId"].stringValue
  252 + f_LastModifyTime=j["f_LastModifyTime"].stringValue
  253 + f_LastModifyUserId=j["f_LastModifyUserId"].stringValue
  254 + f_DeleteTime=j["f_DeleteTime"].stringValue
  255 + f_DeleteUserId=j["f_DeleteUserId"].stringValue
  256 + f_Img=j["f_Img"].stringValue
  257 + f_Title=j["f_Title"].stringValue
  258 + f_CreatorName=j["f_CreatorName"].stringValue
  259 + f_Pv=j["f_Pv"].intValue
  260 + f_DownloadSum=j["f_DownloadSum"].intValue
  261 + f_LoveSum=j["f_LoveSum"].intValue
  262 + f_Price=j["f_Price"].intValue
  263 + f_WaveId=j["f_WaveId"].stringValue
  264 + f_ChapterId=j["f_ChapterId"].stringValue
  265 + f_TopicId=j["f_TopicId"].stringValue
  266 + f_TestId=j["f_TestId"].stringValue
  267 + f_SchoolId=j["f_SchoolId"].stringValue
  268 + f_IsExamine=j["f_IsExamine"].intValue
  269 + f_ExamineUserId=j["f_ExamineUserId"].stringValue
  270 + f_ExamineName=j["f_ExamineName"].stringValue
  271 + f_ExamineDatetime=j["f_ExamineDatetime"].stringValue
  272 + f_ResourceType=j["f_ResourceType"].intValue
  273 + f_ResourceUrl=j["f_ResourceUrl"].stringValue
  274 + f_IsOpen=j["f_IsOpen"].boolValue
  275 + f_Detail=j["f_Detail"].stringValue
  276 + f_TelevisionId=j["f_TelevisionId"].stringValue
  277 + }
  278 +}
  279 +class HomeSecondCollectionViewCell: UICollectionViewCell {
  280 + @IBOutlet var iconImageView: UIImageView!
  281 + @IBOutlet var nameLabel: UILabel!
  282 + @IBOutlet var teacherNameLabel: UILabel!
  283 + @IBOutlet var dateLabel: UILabel!
  284 + @IBOutlet var readCountLabel: UILabel!
  285 + func setUpWithItem(item:MicroCourseModel){
  286 + iconImageView.sd_setImage(with: URL(string: item.f_Img), placeholderImage: UIImage(named: "icon_course_placeholder"))
  287 + nameLabel.text=item.f_Title
  288 + teacherNameLabel.text="主讲师:\(item.f_CreatorName) 老师"
  289 + dateLabel.text=item.f_CreatorTime
  290 + readCountLabel.text="\(item.f_Pv)"
  291 + }
  292 +}
  293 +class HomeThirdTableViewCell: UITableViewCell,UICollectionViewDelegate,UICollectionViewDelegateFlowLayout,UICollectionViewDataSource {
  294 + var dataSet:[MicroCourseModel]=[]
  295 + override func awakeFromNib() {
  296 + super.awakeFromNib()
  297 + getHotCourseList()
  298 + }
  299 + //获取资源前三门
  300 + func getHotCourseList(){
  301 + let parameters:Dictionary<String,AnyObject>=["type":1 as AnyObject,"pageIndex":0 as AnyObject,"pageSize":3 as AnyObject]
  302 + AppDelegate.instance().httpServer.getHotRescourse(parameters: parameters) { (str, error) in
  303 + if error==nil {
  304 + if JSON.fromString(jsonString: str)!["status"].intValue == 1{
  305 + self.dataSet.removeAll()
  306 + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in
  307 + for item in JSON.fromString(jsonString: str)!["data"].arrayValue {
  308 + self.dataSet.append(MicroCourseModel(j: item))
  309 + }
  310 + (self.viewWithTag(1) as! UICollectionView).reloadData()
  311 + }, failHandler: { (error) in
  312 + appRootViewController().view.makeToast("获取资源失败:\(error.localizedDescription)")
  313 + })
  314 + }else{
  315 + appRootViewController().view.makeToast("获取资源失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)")
  316 + }
  317 + }else{
  318 + appRootViewController().view.makeToast("获取资源失败:\(error!.description)")
  319 + }
  320 + }
  321 + }
  322 + func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
  323 + //点击进入学校 appRootViewController()
  324 + NSLog("点击了****\(dataSet[indexPath.row])")
  325 + }
  326 + func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
  327 + return CGSize(width: (getScreenWidth()-16)/3, height: (getScreenWidth()-16)/3+103)
  328 + }
  329 + func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
  330 + return dataSet.count
  331 + }
  332 + func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
  333 + let cell=collectionView.dequeueReusableCell(withReuseIdentifier: "HomeThirdCollectionViewCell", for: indexPath) as! HomeThirdCollectionViewCell
  334 + cell.setUpWithItem(item: dataSet[indexPath.row])
  335 + return cell
  336 + }
  337 +}
  338 +class HomeThirdCollectionViewCell: UICollectionViewCell {
  339 + @IBOutlet var iconImageView: UIImageView!
  340 + @IBOutlet var nameLabel: UILabel!
  341 + @IBOutlet var teacherNameLabel: UILabel!
  342 + @IBOutlet var dateLabel: UILabel!
  343 + @IBOutlet var readCountLabel: UILabel!
  344 + func setUpWithItem(item:MicroCourseModel){
  345 + iconImageView.sd_setImage(with: URL(string: item.f_Img), placeholderImage: UIImage(named: "icon_course_placeholder"))
  346 + nameLabel.text=item.f_Title
  347 + teacherNameLabel.text="上传者:\(item.f_CreatorName) 老师"
  348 + dateLabel.text=item.f_CreatorTime
  349 + readCountLabel.text="\(item.f_DownloadSum)"
  350 + }
  351 +}
  352 +class HomeFourTableViewCell: UITableViewCell,UICollectionViewDelegate,UICollectionViewDelegateFlowLayout,UICollectionViewDataSource {
  353 + var dataSet:[MicroCourseModel]=[]
  354 + override func awakeFromNib() {
  355 + super.awakeFromNib()
  356 + getHotCourseList()
  357 + }
  358 + //获取校园电视台前三门
  359 + func getHotCourseList(){
  360 + let parameters:Dictionary<String,AnyObject>=["type":2 as AnyObject,"pageIndex":0 as AnyObject,"pageSize":3 as AnyObject]
  361 + AppDelegate.instance().httpServer.getHotRescourse(parameters: parameters) { (str, error) in
  362 + if error==nil {
  363 + if JSON.fromString(jsonString: str)!["status"].intValue == 1{
  364 + self.dataSet.removeAll()
  365 + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in
  366 + for item in JSON.fromString(jsonString: str)!["data"].arrayValue {
  367 + self.dataSet.append(MicroCourseModel(j: item))
  368 + }
  369 + (self.viewWithTag(1) as! UICollectionView).reloadData()
  370 + }, failHandler: { (error) in
  371 + appRootViewController().view.makeToast("获取校园电视台失败:\(error.localizedDescription)")
  372 + })
  373 + }else{
  374 + appRootViewController().view.makeToast("获取校园电视台失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)")
  375 + }
  376 + }else{
  377 + appRootViewController().view.makeToast("获取校园电视台失败:\(error!.description)")
  378 + }
  379 + }
  380 + }
  381 + func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
  382 + //点击进入学校 appRootViewController()
  383 + NSLog("点击了****\(dataSet[indexPath.row])")
  384 + }
  385 + func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
  386 + return CGSize(width: (getScreenWidth()-32)/3, height: (getScreenWidth()-32)/3+30)
  387 + }
  388 + func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
  389 + return dataSet.count
  390 + }
  391 + func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
  392 + let cell=collectionView.dequeueReusableCell(withReuseIdentifier: "HomeFourCollectionViewCell", for: indexPath) as! HomeFourCollectionViewCell
  393 + cell.setUpWithItem(item: dataSet[indexPath.row])
  394 + return cell
  395 + }
  396 +}
  397 +class HomeFourCollectionViewCell: UICollectionViewCell {
  398 + @IBOutlet var iconImageView: UIImageView!
  399 + @IBOutlet var nameLabel: UILabel!
  400 + func setUpWithItem(item:MicroCourseModel){
  401 + iconImageView.sd_setImage(with: URL(string: item.f_Img), placeholderImage: UIImage(named: "icon_course_placeholder"))
  402 + nameLabel.text=item.f_Title
  403 + }
  404 +}
  405 +
YouerLiveVideo/YouerLiveVideo/controllers/MViewController.swift
@@ -11,7 +11,7 @@ import UIKit @@ -11,7 +11,7 @@ import UIKit
11 class MViewController: UITabBarController { 11 class MViewController: UITabBarController {
12 override class func initialize() { 12 override class func initialize() {
13 var attrs = [String: NSObject]() 13 var attrs = [String: NSObject]()
14 - attrs[NSForegroundColorAttributeName] = UIColor(red: 23/255.0, green: 70/255.0, blue: 151/255.0, alpha:1.0) 14 + attrs[NSForegroundColorAttributeName] = Theme.topBarColor()
15 // 设置tabBar字体颜色 15 // 设置tabBar字体颜色
16 UITabBarItem.appearance().setTitleTextAttributes(attrs, for:.selected) 16 UITabBarItem.appearance().setTitleTextAttributes(attrs, for:.selected)
17 } 17 }
YouerLiveVideo/YouerLiveVideo/lib/Carousel/JYScrollBanner/JYScrollView.m
@@ -123,7 +123,7 @@ @@ -123,7 +123,7 @@
123 pageControl.hidesForSinglePage = YES; 123 pageControl.hidesForSinglePage = YES;
124 pageControl.numberOfPages = 1; 124 pageControl.numberOfPages = 1;
125 pageControl.currentPage = 0; 125 pageControl.currentPage = 0;
126 - pageControl.pageIndicatorTintColor = [UIColor blackColor]; 126 + pageControl.pageIndicatorTintColor = [UIColor lightGrayColor];
127 pageControl.currentPageIndicatorTintColor = [UIColor whiteColor]; 127 pageControl.currentPageIndicatorTintColor = [UIColor whiteColor];
128 pageControl.userInteractionEnabled = NO; 128 pageControl.userInteractionEnabled = NO;
129 [self addSubview:pageControl]; 129 [self addSubview:pageControl];
YouerLiveVideo/YouerLiveVideo/util/account.swift
@@ -85,11 +85,11 @@ class AccountManager{ @@ -85,11 +85,11 @@ class AccountManager{
85 rawUserInfo=nil 85 rawUserInfo=nil
86 userid="" 86 userid=""
87 _=Setting.saveUserInfo("") 87 _=Setting.saveUserInfo("")
88 - if self.appRootViewController().classForCoder==UINavigationController.classForCoder(){  
89 - (self.appRootViewController() as! UINavigationController).popToRootViewController(animated: false) 88 + if appRootViewController().classForCoder==UINavigationController.classForCoder(){
  89 + (appRootViewController() as! UINavigationController).popToRootViewController(animated: false)
90 }else{ 90 }else{
91 - self.appRootViewController().dismiss(animated: false, completion: {  
92 - (self.appRootViewController() as! UINavigationController).popToRootViewController(animated: true) 91 + appRootViewController().dismiss(animated: false, completion: {
  92 + (appRootViewController() as! UINavigationController).popToRootViewController(animated: true)
93 }) 93 })
94 } 94 }
95 //发出刷新首页通知 95 //发出刷新首页通知
@@ -97,14 +97,6 @@ class AccountManager{ @@ -97,14 +97,6 @@ class AccountManager{
97 LeadViewController.instance.removeAll() 97 LeadViewController.instance.removeAll()
98 LeadViewController.instance.showLogin() 98 LeadViewController.instance.showLogin()
99 } 99 }
100 - func appRootViewController()->UIViewController {  
101 - let appRootVC=UIApplication.shared.keyWindow?.rootViewController  
102 - var topVC=appRootVC  
103 - while topVC!.presentedViewController != nil {  
104 - topVC=topVC!.presentedViewController  
105 - }  
106 - return topVC!  
107 - }  
108 func refreshUserInfo(completionHandler:((Bool) -> Void)?){ 100 func refreshUserInfo(completionHandler:((Bool) -> Void)?){
109 AppDelegate.instance().httpServer.getCurrentInfo { (str, error) -> Void in 101 AppDelegate.instance().httpServer.getCurrentInfo { (str, error) -> Void in
110 if error == nil { 102 if error == nil {
YouerLiveVideo/YouerLiveVideo/util/utiles.swift
@@ -110,7 +110,14 @@ class Story{ @@ -110,7 +110,14 @@ class Story{
110 return Story.getStory(sname)?.instantiateViewController(withIdentifier: sid) 110 return Story.getStory(sname)?.instantiateViewController(withIdentifier: sid)
111 } 111 }
112 } 112 }
113 - 113 +func appRootViewController()->UIViewController {
  114 + let appRootVC=UIApplication.shared.keyWindow?.rootViewController
  115 + var topVC=appRootVC
  116 + while topVC!.presentedViewController != nil {
  117 + topVC=topVC!.presentedViewController
  118 + }
  119 + return topVC!
  120 +}
114 extension AppDelegate{ 121 extension AppDelegate{
115 static func instance()->AppDelegate{ 122 static func instance()->AppDelegate{
116 123