Commit 0fcdc1f6f14ceb3aa4277f7682ba5d8ec250ee8c

Authored by 左丞
2 parents 6337a8d4 67db43ab
Exists in newLive

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

# Conflicts:
#	YouerLiveVideo/YouerLiveVideo/controllers/Resource/ResourceViewController.swift
YouerLiveVideo/YouerLiveVideo.xcodeproj/project.pbxproj
@@ -141,6 +141,7 @@ @@ -141,6 +141,7 @@
141 BF6977971E2DEC98006FA934 /* loginBackGround.png in Resources */ = {isa = PBXBuildFile; fileRef = BF6977941E2DEC98006FA934 /* loginBackGround.png */; }; 141 BF6977971E2DEC98006FA934 /* loginBackGround.png in Resources */ = {isa = PBXBuildFile; fileRef = BF6977941E2DEC98006FA934 /* loginBackGround.png */; };
142 BF6977981E2DEC98006FA934 /* userId.png in Resources */ = {isa = PBXBuildFile; fileRef = BF6977951E2DEC98006FA934 /* userId.png */; }; 142 BF6977981E2DEC98006FA934 /* userId.png in Resources */ = {isa = PBXBuildFile; fileRef = BF6977951E2DEC98006FA934 /* userId.png */; };
143 BF6977991E2DEC98006FA934 /* userPassword.png in Resources */ = {isa = PBXBuildFile; fileRef = BF6977961E2DEC98006FA934 /* userPassword.png */; }; 143 BF6977991E2DEC98006FA934 /* userPassword.png in Resources */ = {isa = PBXBuildFile; fileRef = BF6977961E2DEC98006FA934 /* userPassword.png */; };
  144 + BF7722F31ED283D400226D44 /* FilterViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF7722F21ED283D400226D44 /* FilterViewController.swift */; };
144 BF7B75961E305A6D0011D5C7 /* MJRefreshAutoFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B756A1E305A6D0011D5C7 /* MJRefreshAutoFooter.m */; }; 145 BF7B75961E305A6D0011D5C7 /* MJRefreshAutoFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B756A1E305A6D0011D5C7 /* MJRefreshAutoFooter.m */; };
145 BF7B75971E305A6D0011D5C7 /* MJRefreshBackFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B756C1E305A6D0011D5C7 /* MJRefreshBackFooter.m */; }; 146 BF7B75971E305A6D0011D5C7 /* MJRefreshBackFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B756C1E305A6D0011D5C7 /* MJRefreshBackFooter.m */; };
146 BF7B75981E305A6D0011D5C7 /* MJRefreshComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B756E1E305A6D0011D5C7 /* MJRefreshComponent.m */; }; 147 BF7B75981E305A6D0011D5C7 /* MJRefreshComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B756E1E305A6D0011D5C7 /* MJRefreshComponent.m */; };
@@ -161,6 +162,7 @@ @@ -161,6 +162,7 @@
161 BF7B75A71E305A6D0011D5C7 /* UIScrollView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B75911E305A6D0011D5C7 /* UIScrollView+MJExtension.m */; }; 162 BF7B75A71E305A6D0011D5C7 /* UIScrollView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B75911E305A6D0011D5C7 /* UIScrollView+MJExtension.m */; };
162 BF7B75A81E305A6D0011D5C7 /* UIScrollView+MJRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B75931E305A6D0011D5C7 /* UIScrollView+MJRefresh.m */; }; 163 BF7B75A81E305A6D0011D5C7 /* UIScrollView+MJRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B75931E305A6D0011D5C7 /* UIScrollView+MJRefresh.m */; };
163 BF7B75A91E305A6D0011D5C7 /* UIView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B75951E305A6D0011D5C7 /* UIView+MJExtension.m */; }; 164 BF7B75A91E305A6D0011D5C7 /* UIView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B75951E305A6D0011D5C7 /* UIView+MJExtension.m */; };
  165 + BF8E52EE1ECFD16000E472E8 /* RankingTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF8E52ED1ECFD16000E472E8 /* RankingTableViewController.swift */; };
164 BFBB83A91ECAE35E008B404B /* LeadViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83A81ECAE35E008B404B /* LeadViewController.swift */; }; 166 BFBB83A91ECAE35E008B404B /* LeadViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83A81ECAE35E008B404B /* LeadViewController.swift */; };
165 BFBB83D11ECBEB4E008B404B /* JYScrollItem.m in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83CC1ECBEB4E008B404B /* JYScrollItem.m */; }; 167 BFBB83D11ECBEB4E008B404B /* JYScrollItem.m in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83CC1ECBEB4E008B404B /* JYScrollItem.m */; };
166 BFBB83D21ECBEB4E008B404B /* JYScrollItemModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83CE1ECBEB4E008B404B /* JYScrollItemModel.m */; }; 168 BFBB83D21ECBEB4E008B404B /* JYScrollItemModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83CE1ECBEB4E008B404B /* JYScrollItemModel.m */; };
@@ -461,6 +463,7 @@ @@ -461,6 +463,7 @@
461 BF6977941E2DEC98006FA934 /* loginBackGround.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = loginBackGround.png; sourceTree = "<group>"; }; 463 BF6977941E2DEC98006FA934 /* loginBackGround.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = loginBackGround.png; sourceTree = "<group>"; };
462 BF6977951E2DEC98006FA934 /* userId.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = userId.png; sourceTree = "<group>"; }; 464 BF6977951E2DEC98006FA934 /* userId.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = userId.png; sourceTree = "<group>"; };
463 BF6977961E2DEC98006FA934 /* userPassword.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = userPassword.png; sourceTree = "<group>"; }; 465 BF6977961E2DEC98006FA934 /* userPassword.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = userPassword.png; sourceTree = "<group>"; };
  466 + BF7722F21ED283D400226D44 /* FilterViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FilterViewController.swift; sourceTree = "<group>"; };
464 BF7B75691E305A6D0011D5C7 /* MJRefreshAutoFooter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MJRefreshAutoFooter.h; sourceTree = "<group>"; }; 467 BF7B75691E305A6D0011D5C7 /* MJRefreshAutoFooter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MJRefreshAutoFooter.h; sourceTree = "<group>"; };
465 BF7B756A1E305A6D0011D5C7 /* MJRefreshAutoFooter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MJRefreshAutoFooter.m; sourceTree = "<group>"; }; 468 BF7B756A1E305A6D0011D5C7 /* MJRefreshAutoFooter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MJRefreshAutoFooter.m; sourceTree = "<group>"; };
466 BF7B756B1E305A6D0011D5C7 /* MJRefreshBackFooter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MJRefreshBackFooter.h; sourceTree = "<group>"; }; 469 BF7B756B1E305A6D0011D5C7 /* MJRefreshBackFooter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MJRefreshBackFooter.h; sourceTree = "<group>"; };
@@ -501,6 +504,7 @@ @@ -501,6 +504,7 @@
501 BF7B75931E305A6D0011D5C7 /* UIScrollView+MJRefresh.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIScrollView+MJRefresh.m"; sourceTree = "<group>"; }; 504 BF7B75931E305A6D0011D5C7 /* UIScrollView+MJRefresh.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIScrollView+MJRefresh.m"; sourceTree = "<group>"; };
502 BF7B75941E305A6D0011D5C7 /* UIView+MJExtension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+MJExtension.h"; sourceTree = "<group>"; }; 505 BF7B75941E305A6D0011D5C7 /* UIView+MJExtension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+MJExtension.h"; sourceTree = "<group>"; };
503 BF7B75951E305A6D0011D5C7 /* UIView+MJExtension.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+MJExtension.m"; sourceTree = "<group>"; }; 506 BF7B75951E305A6D0011D5C7 /* UIView+MJExtension.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+MJExtension.m"; sourceTree = "<group>"; };
  507 + BF8E52ED1ECFD16000E472E8 /* RankingTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RankingTableViewController.swift; sourceTree = "<group>"; };
504 BFBB83A81ECAE35E008B404B /* LeadViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LeadViewController.swift; sourceTree = "<group>"; }; 508 BFBB83A81ECAE35E008B404B /* LeadViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LeadViewController.swift; sourceTree = "<group>"; };
505 BFBB83CB1ECBEB4E008B404B /* JYScrollItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JYScrollItem.h; sourceTree = "<group>"; }; 509 BFBB83CB1ECBEB4E008B404B /* JYScrollItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JYScrollItem.h; sourceTree = "<group>"; };
506 BFBB83CC1ECBEB4E008B404B /* JYScrollItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JYScrollItem.m; sourceTree = "<group>"; }; 510 BFBB83CC1ECBEB4E008B404B /* JYScrollItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JYScrollItem.m; sourceTree = "<group>"; };
@@ -591,8 +595,8 @@ @@ -591,8 +595,8 @@
591 BFBB83A81ECAE35E008B404B /* LeadViewController.swift */, 595 BFBB83A81ECAE35E008B404B /* LeadViewController.swift */,
592 5904FC601ECA930D00E631FF /* MViewController.swift */, 596 5904FC601ECA930D00E631FF /* MViewController.swift */,
593 5904FC431ECA8B8C00E631FF /* HomePage */, 597 5904FC431ECA8B8C00E631FF /* HomePage */,
594 - 5904FC441ECA8B8C00E631FF /* MicroCourse */,  
595 5904FC461ECA8B8C00E631FF /* Resource */, 598 5904FC461ECA8B8C00E631FF /* Resource */,
  599 + 5904FC441ECA8B8C00E631FF /* MicroCourse */,
596 5904FC481ECA8B8C00E631FF /* TVStation */, 600 5904FC481ECA8B8C00E631FF /* TVStation */,
597 BFBB83D81ECC445D008B404B /* User */, 601 BFBB83D81ECC445D008B404B /* User */,
598 ); 602 );
@@ -603,6 +607,7 @@ @@ -603,6 +607,7 @@
603 isa = PBXGroup; 607 isa = PBXGroup;
604 children = ( 608 children = (
605 BF682F1D1ECE8772007632CA /* MainHomeTableViewController.swift */, 609 BF682F1D1ECE8772007632CA /* MainHomeTableViewController.swift */,
  610 + BF8E52ED1ECFD16000E472E8 /* RankingTableViewController.swift */,
606 5904FC541ECA8BCB00E631FF /* HomePage.storyboard */, 611 5904FC541ECA8BCB00E631FF /* HomePage.storyboard */,
607 ); 612 );
608 path = HomePage; 613 path = HomePage;
@@ -621,6 +626,7 @@ @@ -621,6 +626,7 @@
621 isa = PBXGroup; 626 isa = PBXGroup;
622 children = ( 627 children = (
623 5904FC471ECA8B8C00E631FF /* ResourceViewController.swift */, 628 5904FC471ECA8B8C00E631FF /* ResourceViewController.swift */,
  629 + BF7722F21ED283D400226D44 /* FilterViewController.swift */,
624 59AE3DFA1ECECD7D003E2C62 /* LiveInforViewController.swift */, 630 59AE3DFA1ECECD7D003E2C62 /* LiveInforViewController.swift */,
625 59AE3DFC1ECED5B1003E2C62 /* MoivePlayerViewController.swift */, 631 59AE3DFC1ECED5B1003E2C62 /* MoivePlayerViewController.swift */,
626 597185B41ECA990C00D7F478 /* Resource.storyboard */, 632 597185B41ECA990C00D7F478 /* Resource.storyboard */,
@@ -1561,7 +1567,9 @@ @@ -1561,7 +1567,9 @@
1561 BF7B75A11E305A6D0011D5C7 /* MJRefreshGifHeader.m in Sources */, 1567 BF7B75A11E305A6D0011D5C7 /* MJRefreshGifHeader.m in Sources */,
1562 599B2CE31DE52F7E00B4F7FD /* UMSocialUIManager.m in Sources */, 1568 599B2CE31DE52F7E00B4F7FD /* UMSocialUIManager.m in Sources */,
1563 BF25DFF91DDAA36A003EC0C1 /* NSImage+WebCache.m in Sources */, 1569 BF25DFF91DDAA36A003EC0C1 /* NSImage+WebCache.m in Sources */,
  1570 + BF8E52EE1ECFD16000E472E8 /* RankingTableViewController.swift in Sources */,
1564 59F8014F1DD2C7AD000A78B0 /* AppDelegate.swift in Sources */, 1571 59F8014F1DD2C7AD000A78B0 /* AppDelegate.swift in Sources */,
  1572 + BF7722F31ED283D400226D44 /* FilterViewController.swift in Sources */,
1565 BF25DFED1DDAA36A003EC0C1 /* ResponseSerialization.swift in Sources */, 1573 BF25DFED1DDAA36A003EC0C1 /* ResponseSerialization.swift in Sources */,
1566 BF25E0031DDAA36A003EC0C1 /* UIImage+GIF.m in Sources */, 1574 BF25E0031DDAA36A003EC0C1 /* UIImage+GIF.m in Sources */,
1567 BFBB83E91ECC445D008B404B /* RegisterViewController.swift in Sources */, 1575 BFBB83E91ECC445D008B404B /* RegisterViewController.swift in Sources */,
YouerLiveVideo/YouerLiveVideo/Assets.xcassets/login_bottom2.imageset/1.png 0 → 100644

24.5 KB

YouerLiveVideo/YouerLiveVideo/Assets.xcassets/login_bottom2.imageset/Contents.json 0 → 100644
@@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "1.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "scale" : "3x"
  15 + }
  16 + ],
  17 + "info" : {
  18 + "version" : 1,
  19 + "author" : "xcode"
  20 + }
  21 +}
0 \ No newline at end of file 22 \ No newline at end of file
YouerLiveVideo/YouerLiveVideo/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>
@@ -11,26 +11,7 @@ @@ -11,26 +11,7 @@
11 <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"/>
12 </dependencies> 12 </dependencies>
13 <scenes> 13 <scenes>
14 - <!--微课-->  
15 - <scene sceneID="mq3-Na-12P">  
16 - <objects>  
17 - <viewController title="微课" id="QLA-FR-CcL" customClass="MicroCourseViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController">  
18 - <layoutGuides>  
19 - <viewControllerLayoutGuide type="top" id="d3O-ta-bda"/>  
20 - <viewControllerLayoutGuide type="bottom" id="QdI-Tc-eF8"/>  
21 - </layoutGuides>  
22 - <view key="view" contentMode="scaleToFill" id="Sx6-eB-DOo">  
23 - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>  
24 - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>  
25 - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>  
26 - </view>  
27 - <navigationItem key="navigationItem" id="tzJ-xv-YCb"/>  
28 - </viewController>  
29 - <placeholder placeholderIdentifier="IBFirstResponder" id="ZVI-J2-A73" userLabel="First Responder" sceneMemberID="firstResponder"/>  
30 - </objects>  
31 - <point key="canvasLocation" x="-340" y="2113"/>  
32 - </scene>  
33 - <!--Resource View Controller--> 14 + <!--资源-->
34 <scene sceneID="NfM-rG-voH"> 15 <scene sceneID="NfM-rG-voH">
35 <objects> 16 <objects>
36 <viewController id="xEc-U1-QCp" customClass="ResourceViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController"> 17 <viewController id="xEc-U1-QCp" customClass="ResourceViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController">
@@ -42,18 +23,65 @@ @@ -42,18 +23,65 @@
42 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> 23 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
43 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> 24 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
44 <subviews> 25 <subviews>
  26 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="za5-9d-anp">
  27 + <rect key="frame" x="0.0" y="108" width="375" height="50"/>
  28 + <subviews>
  29 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" " textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mgQ-3C-amN">
  30 + <rect key="frame" x="8" y="16" width="4" height="18"/>
  31 + <fontDescription key="fontDescription" type="system" pointSize="15"/>
  32 + <nil key="textColor"/>
  33 + <nil key="highlightedColor"/>
  34 + </label>
  35 + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fz6-VO-SIi">
  36 + <rect key="frame" x="310" y="10" width="57" height="30"/>
  37 + <constraints>
  38 + <constraint firstAttribute="height" constant="30" id="NCP-Ag-7c1"/>
  39 + </constraints>
  40 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  41 + <state key="normal" title="筛选" image="starLive">
  42 + <color key="titleColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
  43 + </state>
  44 + <connections>
  45 + <action selector="jumpFilterVCAction:" destination="xEc-U1-QCp" eventType="touchUpInside" id="dlS-PP-Koh"/>
  46 + </connections>
  47 + </button>
  48 + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="a7C-jD-YSJ">
  49 + <rect key="frame" x="245" y="14" width="57" height="22"/>
  50 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  51 + <state key="normal" title="排序" image="starLive">
  52 + <color key="titleColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
  53 + </state>
  54 + </button>
  55 + </subviews>
  56 + <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
  57 + <constraints>
  58 + <constraint firstItem="fz6-VO-SIi" firstAttribute="leading" secondItem="a7C-jD-YSJ" secondAttribute="trailing" constant="8" id="AqG-KK-VAP"/>
  59 + <constraint firstItem="a7C-jD-YSJ" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="mgQ-3C-amN" secondAttribute="trailing" constant="8" id="HcO-bM-kZo"/>
  60 + <constraint firstAttribute="trailing" secondItem="fz6-VO-SIi" secondAttribute="trailing" constant="8" id="QzD-Ci-dUo"/>
  61 + <constraint firstItem="a7C-jD-YSJ" firstAttribute="centerY" secondItem="za5-9d-anp" secondAttribute="centerY" id="e22-SY-dro"/>
  62 + <constraint firstItem="fz6-VO-SIi" firstAttribute="centerY" secondItem="za5-9d-anp" secondAttribute="centerY" id="qBE-uD-fE1"/>
  63 + <constraint firstItem="mgQ-3C-amN" firstAttribute="centerY" secondItem="za5-9d-anp" secondAttribute="centerY" id="uMv-pj-P7r"/>
  64 + <constraint firstAttribute="height" constant="50" id="xiw-nW-gnr"/>
  65 + <constraint firstItem="mgQ-3C-amN" firstAttribute="leading" secondItem="za5-9d-anp" secondAttribute="leading" constant="8" id="yW6-qE-tfE"/>
  66 + </constraints>
  67 + </view>
45 <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="143" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="su6-Ve-Mu4"> 68 <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="143" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="su6-Ve-Mu4">
46 <rect key="frame" x="0.0" y="158" width="375" height="460"/> 69 <rect key="frame" x="0.0" y="158" width="375" height="460"/>
47 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 70 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  71 + <view key="tableFooterView" contentMode="scaleToFill" id="KPy-fi-ei0">
  72 + <rect key="frame" x="0.0" y="171" width="375" height="1"/>
  73 + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
  74 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  75 + </view>
48 <prototypes> 76 <prototypes>
49 - <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="cell" rowHeight="143" id="tO9-FG-1Ux" customClass="ResourceViewControllerTableViewCell" customModule="YouerLiveVideo" customModuleProvider="target"> 77 + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="identifier" rowHeight="143" id="tO9-FG-1Ux" customClass="ResourceViewControllerTableViewCell" customModule="YouerLiveVideo" customModuleProvider="target">
50 <rect key="frame" x="0.0" y="28" width="375" height="143"/> 78 <rect key="frame" x="0.0" y="28" width="375" height="143"/>
51 <autoresizingMask key="autoresizingMask"/> 79 <autoresizingMask key="autoresizingMask"/>
52 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="tO9-FG-1Ux" id="73f-qf-61d"> 80 <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="142"/> 81 <rect key="frame" x="0.0" y="0.0" width="375" height="142"/>
54 <autoresizingMask key="autoresizingMask"/> 82 <autoresizingMask key="autoresizingMask"/>
55 <subviews> 83 <subviews>
56 - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="fqH-Ro-Yhh"> 84 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="fqH-Ro-Yhh">
57 <rect key="frame" x="8" y="26.5" width="90" height="90"/> 85 <rect key="frame" x="8" y="26.5" width="90" height="90"/>
58 <constraints> 86 <constraints>
59 <constraint firstAttribute="width" constant="90" id="1QK-QU-Ukp"/> 87 <constraint firstAttribute="width" constant="90" id="1QK-QU-Ukp"/>
@@ -61,7 +89,7 @@ @@ -61,7 +89,7 @@
61 </constraints> 89 </constraints>
62 </imageView> 90 </imageView>
63 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FNV-Qr-xrm"> 91 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FNV-Qr-xrm">
64 - <rect key="frame" x="114" y="32" width="42" height="21"/> 92 + <rect key="frame" x="114" y="32" width="165" height="21"/>
65 <fontDescription key="fontDescription" type="system" pointSize="17"/> 93 <fontDescription key="fontDescription" type="system" pointSize="17"/>
66 <nil key="textColor"/> 94 <nil key="textColor"/>
67 <nil key="highlightedColor"/> 95 <nil key="highlightedColor"/>
@@ -80,6 +108,7 @@ @@ -80,6 +108,7 @@
80 </label> 108 </label>
81 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="paA-9W-bbM"> 109 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="paA-9W-bbM">
82 <rect key="frame" x="325" y="90" width="42" height="21"/> 110 <rect key="frame" x="325" y="90" width="42" height="21"/>
  111 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
83 <fontDescription key="fontDescription" type="system" pointSize="17"/> 112 <fontDescription key="fontDescription" type="system" pointSize="17"/>
84 <nil key="textColor"/> 113 <nil key="textColor"/>
85 <nil key="highlightedColor"/> 114 <nil key="highlightedColor"/>
@@ -95,7 +124,7 @@ @@ -95,7 +124,7 @@
95 <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> 124 <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
96 </state> 125 </state>
97 </button> 126 </button>
98 - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="ds9-Gw-nOf"> 127 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="ds9-Gw-nOf">
99 <rect key="frame" x="297" y="90.5" width="20" height="20"/> 128 <rect key="frame" x="297" y="90.5" width="20" height="20"/>
100 <constraints> 129 <constraints>
101 <constraint firstAttribute="width" secondItem="ds9-Gw-nOf" secondAttribute="height" multiplier="1:1" id="Mto-fo-vVR"/> 130 <constraint firstAttribute="width" secondItem="ds9-Gw-nOf" secondAttribute="height" multiplier="1:1" id="Mto-fo-vVR"/>
@@ -112,6 +141,7 @@ @@ -112,6 +141,7 @@
112 <constraint firstItem="paA-9W-bbM" firstAttribute="centerY" secondItem="WIc-YL-RvX" secondAttribute="centerY" id="Me2-Im-Vc9"/> 141 <constraint firstItem="paA-9W-bbM" firstAttribute="centerY" secondItem="WIc-YL-RvX" secondAttribute="centerY" id="Me2-Im-Vc9"/>
113 <constraint firstItem="fqH-Ro-Yhh" firstAttribute="leading" secondItem="73f-qf-61d" secondAttribute="leading" constant="8" id="Zty-O7-8xT"/> 142 <constraint firstItem="fqH-Ro-Yhh" firstAttribute="leading" secondItem="73f-qf-61d" secondAttribute="leading" constant="8" id="Zty-O7-8xT"/>
114 <constraint firstItem="IQj-VB-dch" firstAttribute="centerY" secondItem="73f-qf-61d" secondAttribute="centerY" id="emm-la-YJV"/> 143 <constraint firstItem="IQj-VB-dch" firstAttribute="centerY" secondItem="73f-qf-61d" secondAttribute="centerY" id="emm-la-YJV"/>
  144 + <constraint firstItem="yx0-8F-VaM" firstAttribute="leading" secondItem="FNV-Qr-xrm" secondAttribute="trailing" constant="8" id="fO3-dB-JFM"/>
115 <constraint firstItem="paA-9W-bbM" firstAttribute="leading" secondItem="ds9-Gw-nOf" secondAttribute="trailing" constant="8" id="g70-bh-6yw"/> 145 <constraint firstItem="paA-9W-bbM" firstAttribute="leading" secondItem="ds9-Gw-nOf" secondAttribute="trailing" constant="8" id="g70-bh-6yw"/>
116 <constraint firstItem="IQj-VB-dch" firstAttribute="leading" secondItem="FNV-Qr-xrm" secondAttribute="leading" id="hRh-iw-dub"/> 146 <constraint firstItem="IQj-VB-dch" firstAttribute="leading" secondItem="FNV-Qr-xrm" secondAttribute="leading" id="hRh-iw-dub"/>
117 <constraint firstItem="WIc-YL-RvX" firstAttribute="leading" secondItem="FNV-Qr-xrm" secondAttribute="leading" id="lPb-2C-esz"/> 147 <constraint firstItem="WIc-YL-RvX" firstAttribute="leading" secondItem="FNV-Qr-xrm" secondAttribute="leading" id="lPb-2C-esz"/>
@@ -120,6 +150,13 @@ @@ -120,6 +150,13 @@
120 <constraint firstAttribute="trailing" secondItem="yx0-8F-VaM" secondAttribute="trailing" constant="8" id="pBd-Lh-bTy"/> 150 <constraint firstAttribute="trailing" secondItem="yx0-8F-VaM" secondAttribute="trailing" constant="8" id="pBd-Lh-bTy"/>
121 </constraints> 151 </constraints>
122 </tableViewCellContentView> 152 </tableViewCellContentView>
  153 + <connections>
  154 + <outlet property="downLoadCountLabel" destination="paA-9W-bbM" id="JFm-xb-OgB"/>
  155 + <outlet property="iconImageView" destination="fqH-Ro-Yhh" id="LCb-Vi-esw"/>
  156 + <outlet property="timeLabel" destination="WIc-YL-RvX" id="Pfe-EP-np8"/>
  157 + <outlet property="titleLabel" destination="FNV-Qr-xrm" id="VMp-K4-fsA"/>
  158 + <outlet property="updateTeacherLabel" destination="IQj-VB-dch" id="Ivv-yb-r3K"/>
  159 + </connections>
123 </tableViewCell> 160 </tableViewCell>
124 </prototypes> 161 </prototypes>
125 <connections> 162 <connections>
@@ -127,71 +164,81 @@ @@ -127,71 +164,81 @@
127 <outlet property="delegate" destination="xEc-U1-QCp" id="iof-1s-GH1"/> 164 <outlet property="delegate" destination="xEc-U1-QCp" id="iof-1s-GH1"/>
128 </connections> 165 </connections>
129 </tableView> 166 </tableView>
130 - <searchBar contentMode="redraw" placeholder="搜索" translatesAutoresizingMaskIntoConstraints="NO" id="yoD-X2-JQ0"> 167 + <view hidden="YES" alpha="0.29999999999999999" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="egd-vU-DWS">
  168 + <rect key="frame" x="0.0" y="64" width="375" height="554"/>
  169 + <color key="backgroundColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
  170 + <gestureRecognizers/>
  171 + <connections>
  172 + <outletCollection property="gestureRecognizers" destination="uRc-MA-zeh" appends="YES" id="GEX-ck-vc6"/>
  173 + </connections>
  174 + </view>
  175 + <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="s32-SR-wby">
131 <rect key="frame" x="0.0" y="64" width="375" height="44"/> 176 <rect key="frame" x="0.0" y="64" width="375" height="44"/>
132 - <textInputTraits key="textInputTraits"/>  
133 - </searchBar>  
134 - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="za5-9d-anp">  
135 - <rect key="frame" x="0.0" y="108" width="375" height="50"/>  
136 - <subviews>  
137 - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" " textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mgQ-3C-amN">  
138 - <rect key="frame" x="8" y="17" width="4" height="18"/>  
139 - <fontDescription key="fontDescription" type="system" pointSize="15"/>  
140 - <nil key="textColor"/>  
141 - <nil key="highlightedColor"/>  
142 - </label>  
143 - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fz6-VO-SIi">  
144 - <rect key="frame" x="310" y="10" width="57" height="30"/>  
145 - <constraints>  
146 - <constraint firstAttribute="height" constant="30" id="NCP-Ag-7c1"/>  
147 - </constraints>  
148 - <fontDescription key="fontDescription" type="system" pointSize="17"/>  
149 - <state key="normal" title="筛选" image="starLive">  
150 - <color key="titleColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>  
151 - </state>  
152 - </button>  
153 - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="a7C-jD-YSJ">  
154 - <rect key="frame" x="245" y="14" width="57" height="22"/>  
155 - <fontDescription key="fontDescription" type="system" pointSize="17"/>  
156 - <state key="normal" title="排序" image="starLive">  
157 - <color key="titleColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>  
158 - </state>  
159 - </button>  
160 - </subviews>  
161 - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> 177 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
162 <constraints> 178 <constraints>
163 - <constraint firstItem="fz6-VO-SIi" firstAttribute="leading" secondItem="a7C-jD-YSJ" secondAttribute="trailing" constant="8" id="AqG-KK-VAP"/>  
164 - <constraint firstItem="a7C-jD-YSJ" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="mgQ-3C-amN" secondAttribute="trailing" constant="8" id="HcO-bM-kZo"/>  
165 - <constraint firstAttribute="trailing" secondItem="fz6-VO-SIi" secondAttribute="trailing" constant="8" id="QzD-Ci-dUo"/>  
166 - <constraint firstItem="a7C-jD-YSJ" firstAttribute="centerY" secondItem="za5-9d-anp" secondAttribute="centerY" id="e22-SY-dro"/>  
167 - <constraint firstItem="fz6-VO-SIi" firstAttribute="centerY" secondItem="za5-9d-anp" secondAttribute="centerY" id="qBE-uD-fE1"/>  
168 - <constraint firstItem="mgQ-3C-amN" firstAttribute="centerY" secondItem="za5-9d-anp" secondAttribute="centerY" id="uMv-pj-P7r"/>  
169 - <constraint firstAttribute="height" constant="50" id="xiw-nW-gnr"/>  
170 - <constraint firstItem="mgQ-3C-amN" firstAttribute="leading" secondItem="za5-9d-anp" secondAttribute="leading" constant="8" id="yW6-qE-tfE"/> 179 + <constraint firstAttribute="height" constant="44" id="PWr-Wf-TcS"/>
171 </constraints> 180 </constraints>
172 - </view> 181 + <prototypes>
  182 + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="cell" id="vmV-r2-2pv">
  183 + <rect key="frame" x="0.0" y="28" width="375" height="44"/>
  184 + <autoresizingMask key="autoresizingMask"/>
  185 + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="vmV-r2-2pv" id="tft-RM-f2B">
  186 + <rect key="frame" x="0.0" y="0.0" width="375" height="43"/>
  187 + <autoresizingMask key="autoresizingMask"/>
  188 + </tableViewCellContentView>
  189 + </tableViewCell>
  190 + </prototypes>
  191 + <connections>
  192 + <outlet property="dataSource" destination="xEc-U1-QCp" id="DTr-p1-Mg3"/>
  193 + <outlet property="delegate" destination="xEc-U1-QCp" id="i5j-LP-mOw"/>
  194 + </connections>
  195 + </tableView>
173 </subviews> 196 </subviews>
174 <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> 197 <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
175 <constraints> 198 <constraints>
176 <constraint firstItem="isx-D9-RKA" firstAttribute="top" secondItem="su6-Ve-Mu4" secondAttribute="bottom" id="0dH-vT-0L7"/> 199 <constraint firstItem="isx-D9-RKA" firstAttribute="top" secondItem="su6-Ve-Mu4" secondAttribute="bottom" id="0dH-vT-0L7"/>
177 - <constraint firstItem="yoD-X2-JQ0" firstAttribute="leading" secondItem="SdC-Ao-cee" secondAttribute="leading" id="2P3-aV-09x"/>  
178 - <constraint firstAttribute="trailing" secondItem="yoD-X2-JQ0" secondAttribute="trailing" id="3gn-Jp-76Y"/>  
179 <constraint firstAttribute="trailing" secondItem="su6-Ve-Mu4" secondAttribute="trailing" id="Bce-ui-FBr"/> 200 <constraint firstAttribute="trailing" secondItem="su6-Ve-Mu4" secondAttribute="trailing" id="Bce-ui-FBr"/>
180 <constraint firstItem="su6-Ve-Mu4" firstAttribute="top" secondItem="za5-9d-anp" secondAttribute="bottom" id="Cug-lI-DhS"/> 201 <constraint firstItem="su6-Ve-Mu4" firstAttribute="top" secondItem="za5-9d-anp" secondAttribute="bottom" id="Cug-lI-DhS"/>
181 - <constraint firstItem="za5-9d-anp" firstAttribute="top" secondItem="yoD-X2-JQ0" secondAttribute="bottom" id="Ine-er-3FG"/> 202 + <constraint firstItem="s32-SR-wby" firstAttribute="leading" secondItem="SdC-Ao-cee" secondAttribute="leading" id="Czn-WH-v3b"/>
  203 + <constraint firstItem="isx-D9-RKA" firstAttribute="top" secondItem="egd-vU-DWS" secondAttribute="bottom" id="Rn7-2e-h0u"/>
  204 + <constraint firstItem="s32-SR-wby" firstAttribute="top" secondItem="vr1-kJ-xH9" secondAttribute="bottom" id="Sf7-iO-6Rj"/>
182 <constraint firstAttribute="trailing" secondItem="za5-9d-anp" secondAttribute="trailing" id="VI2-tz-hSe"/> 205 <constraint firstAttribute="trailing" secondItem="za5-9d-anp" secondAttribute="trailing" id="VI2-tz-hSe"/>
183 - <constraint firstItem="yoD-X2-JQ0" firstAttribute="top" secondItem="vr1-kJ-xH9" secondAttribute="bottom" id="XUd-hg-GGA"/> 206 + <constraint firstItem="za5-9d-anp" firstAttribute="top" secondItem="vr1-kJ-xH9" secondAttribute="bottom" constant="44" id="WRE-71-5Hh"/>
  207 + <constraint firstAttribute="trailing" secondItem="s32-SR-wby" secondAttribute="trailing" id="ett-Tm-fVp"/>
  208 + <constraint firstItem="egd-vU-DWS" firstAttribute="top" secondItem="vr1-kJ-xH9" secondAttribute="bottom" id="gZk-Ki-TPv"/>
  209 + <constraint firstItem="egd-vU-DWS" firstAttribute="leading" secondItem="SdC-Ao-cee" secondAttribute="leading" id="ha6-oS-r9u"/>
184 <constraint firstItem="za5-9d-anp" firstAttribute="leading" secondItem="SdC-Ao-cee" secondAttribute="leading" id="qdI-Q1-1Sk"/> 210 <constraint firstItem="za5-9d-anp" firstAttribute="leading" secondItem="SdC-Ao-cee" secondAttribute="leading" id="qdI-Q1-1Sk"/>
  211 + <constraint firstAttribute="trailing" secondItem="egd-vU-DWS" secondAttribute="trailing" id="rOV-OJ-vyb"/>
185 <constraint firstItem="su6-Ve-Mu4" firstAttribute="leading" secondItem="SdC-Ao-cee" secondAttribute="leading" id="ydL-OO-314"/> 212 <constraint firstItem="su6-Ve-Mu4" firstAttribute="leading" secondItem="SdC-Ao-cee" secondAttribute="leading" id="ydL-OO-314"/>
186 </constraints> 213 </constraints>
187 </view> 214 </view>
188 - <navigationItem key="navigationItem" id="fCE-jD-MLQ"/> 215 + <navigationItem key="navigationItem" title="资源" id="q2d-RH-EiL"/>
  216 + <connections>
  217 + <outlet property="grayView" destination="egd-vU-DWS" id="BJW-OO-Xca"/>
  218 + <outlet property="searchDisplayController" destination="k0q-9e-h1a" id="f1i-NC-WU2"/>
  219 + <outlet property="searchTableHeight" destination="PWr-Wf-TcS" id="0Yd-RL-DTU"/>
  220 + <outlet property="searchTableView" destination="s32-SR-wby" id="vTt-wv-fSR"/>
  221 + <outlet property="tableView" destination="su6-Ve-Mu4" id="NV5-ew-AZU"/>
  222 + </connections>
189 </viewController> 223 </viewController>
190 <placeholder placeholderIdentifier="IBFirstResponder" id="ksp-rg-C8h" userLabel="First Responder" sceneMemberID="firstResponder"/> 224 <placeholder placeholderIdentifier="IBFirstResponder" id="ksp-rg-C8h" userLabel="First Responder" sceneMemberID="firstResponder"/>
  225 + <searchDisplayController id="k0q-9e-h1a">
  226 + <connections>
  227 + <outlet property="delegate" destination="xEc-U1-QCp" id="Jvw-1T-APb"/>
  228 + <outlet property="searchContentsController" destination="xEc-U1-QCp" id="h4V-2A-Qlt"/>
  229 + <outlet property="searchResultsDataSource" destination="xEc-U1-QCp" id="SkR-0A-41I"/>
  230 + <outlet property="searchResultsDelegate" destination="xEc-U1-QCp" id="qPU-va-8W5"/>
  231 + </connections>
  232 + </searchDisplayController>
  233 + <tapGestureRecognizer id="uRc-MA-zeh">
  234 + <connections>
  235 + <action selector="cancleSearchActivit:" destination="xEc-U1-QCp" id="UEb-89-R10"/>
  236 + </connections>
  237 + </tapGestureRecognizer>
191 </objects> 238 </objects>
192 <point key="canvasLocation" x="-1084" y="2112.5937031484259"/> 239 <point key="canvasLocation" x="-1084" y="2112.5937031484259"/>
193 </scene> 240 </scene>
194 - <!--Main Home Table View Controller--> 241 + <!--教育视频云-->
195 <scene sceneID="Npa-Do-pvj"> 242 <scene sceneID="Npa-Do-pvj">
196 <objects> 243 <objects>
197 <tableViewController id="HdB-6p-eAX" customClass="MainHomeTableViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController"> 244 <tableViewController id="HdB-6p-eAX" customClass="MainHomeTableViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController">
@@ -205,7 +252,7 @@ @@ -205,7 +252,7 @@
205 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 252 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
206 </view> 253 </view>
207 <view key="tableFooterView" contentMode="scaleToFill" id="1qL-hk-kYn"> 254 <view key="tableFooterView" contentMode="scaleToFill" id="1qL-hk-kYn">
208 - <rect key="frame" x="0.0" y="1036" width="375" height="1"/> 255 + <rect key="frame" x="0.0" y="1129" width="375" height="1"/>
209 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> 256 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
210 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 257 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
211 </view> 258 </view>
@@ -220,60 +267,68 @@ @@ -220,60 +267,68 @@
220 <autoresizingMask key="autoresizingMask"/> 267 <autoresizingMask key="autoresizingMask"/>
221 <subviews> 268 <subviews>
222 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7wy-DL-PKX"> 269 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7wy-DL-PKX">
223 - <rect key="frame" x="0.0" y="0.0" width="375" height="20"/> 270 + <rect key="frame" x="0.0" y="0.0" width="375" height="15"/>
224 <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> 271 <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
225 <constraints> 272 <constraints>
226 - <constraint firstAttribute="height" constant="20" id="mtL-aK-O9I"/> 273 + <constraint firstAttribute="height" constant="15" id="mtL-aK-O9I"/>
227 </constraints> 274 </constraints>
228 </view> 275 </view>
229 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="tc9-OD-L9x"> 276 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="tc9-OD-L9x">
230 - <rect key="frame" x="8" y="28" width="30" height="30"/> 277 + <rect key="frame" x="15" y="30" width="20" height="20"/>
231 <constraints> 278 <constraints>
232 - <constraint firstAttribute="height" constant="30" id="dzU-2e-0A0"/>  
233 - <constraint firstAttribute="width" constant="30" id="jeW-Q1-Yqy"/> 279 + <constraint firstAttribute="height" constant="20" id="dzU-2e-0A0"/>
  280 + <constraint firstAttribute="width" constant="20" id="jeW-Q1-Yqy"/>
234 </constraints> 281 </constraints>
235 </imageView> 282 </imageView>
236 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="gpI-zw-6qq"> 283 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="gpI-zw-6qq">
237 - <rect key="frame" x="337" y="28" width="30" height="30"/> 284 + <rect key="frame" x="352" y="32.5" width="8" height="15"/>
  285 + <color key="backgroundColor" red="0.10980392160000001" green="0.63529411759999999" blue="1" alpha="1" colorSpace="calibratedRGB"/>
238 <constraints> 286 <constraints>
239 - <constraint firstAttribute="width" constant="30" id="X2b-MK-4bQ"/>  
240 - <constraint firstAttribute="height" constant="30" id="ZkK-Yr-R26"/> 287 + <constraint firstAttribute="width" constant="8" id="X2b-MK-4bQ"/>
  288 + <constraint firstAttribute="height" constant="15" id="ZkK-Yr-R26"/>
241 </constraints> 289 </constraints>
242 </imageView> 290 </imageView>
243 <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"> 291 <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">
244 - <rect key="frame" x="46" y="33" width="35" height="21"/>  
245 - <fontDescription key="fontDescription" type="system" pointSize="17"/>  
246 - <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/> 292 + <rect key="frame" x="55" y="30.5" width="31" height="18"/>
  293 + <fontDescription key="fontDescription" type="system" pointSize="15"/>
  294 + <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
247 <nil key="highlightedColor"/> 295 <nil key="highlightedColor"/>
248 </label> 296 </label>
249 <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="BjK-Gw-VeS"> 297 <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="BjK-Gw-VeS">
250 - <rect key="frame" x="8" y="83" width="359" height="129"/> 298 + <rect key="frame" x="15" y="65" width="345" height="132"/>
251 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 299 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
252 <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="0.0" minimumInteritemSpacing="0.0" id="gds-Wd-nlX"> 300 <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="0.0" minimumInteritemSpacing="0.0" id="gds-Wd-nlX">
253 - <size key="itemSize" width="106" height="113"/> 301 + <size key="itemSize" width="126" height="133"/>
254 <size key="headerReferenceSize" width="0.0" height="0.0"/> 302 <size key="headerReferenceSize" width="0.0" height="0.0"/>
255 <size key="footerReferenceSize" width="0.0" height="0.0"/> 303 <size key="footerReferenceSize" width="0.0" height="0.0"/>
256 <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/> 304 <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
257 </collectionViewFlowLayout> 305 </collectionViewFlowLayout>
258 <cells> 306 <cells>
259 <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="HomeFirstCollectionViewCell" id="0XL-6V-xV9" customClass="HomeFirstCollectionViewCell" customModule="YouerLiveVideo" customModuleProvider="target"> 307 <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="HomeFirstCollectionViewCell" id="0XL-6V-xV9" customClass="HomeFirstCollectionViewCell" customModule="YouerLiveVideo" customModuleProvider="target">
260 - <rect key="frame" x="0.0" y="0.0" width="106" height="113"/> 308 + <rect key="frame" x="0.0" y="0.0" width="126" height="133"/>
261 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> 309 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
262 <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> 310 <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
263 - <rect key="frame" x="0.0" y="0.0" width="106" height="113"/> 311 + <rect key="frame" x="0.0" y="0.0" width="126" height="133"/>
264 <autoresizingMask key="autoresizingMask"/> 312 <autoresizingMask key="autoresizingMask"/>
265 <subviews> 313 <subviews>
266 - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="633-X9-DpN">  
267 - <rect key="frame" x="0.0" y="0.0" width="106" height="113"/> 314 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="633-X9-DpN">
  315 + <rect key="frame" x="0.0" y="0.0" width="126" height="133"/>
  316 + <userDefinedRuntimeAttributes>
  317 + <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
  318 + <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
  319 + <integer key="value" value="5"/>
  320 + </userDefinedRuntimeAttribute>
  321 + </userDefinedRuntimeAttributes>
268 </imageView> 322 </imageView>
269 <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"> 323 <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">
270 - <rect key="frame" x="8" y="8" width="35" height="21"/>  
271 - <fontDescription key="fontDescription" type="system" pointSize="17"/>  
272 - <nil key="textColor"/> 324 + <rect key="frame" x="8" y="8" width="31" height="18"/>
  325 + <fontDescription key="fontDescription" type="system" pointSize="15"/>
  326 + <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
273 <nil key="highlightedColor"/> 327 <nil key="highlightedColor"/>
274 </label> 328 </label>
275 </subviews> 329 </subviews>
276 </view> 330 </view>
  331 + <color key="backgroundColor" red="0.10980392160000001" green="0.63529411759999999" blue="1" alpha="1" colorSpace="calibratedRGB"/>
277 <constraints> 332 <constraints>
278 <constraint firstItem="633-X9-DpN" firstAttribute="leading" secondItem="0XL-6V-xV9" secondAttribute="leading" id="G57-Qp-dfe"/> 333 <constraint firstItem="633-X9-DpN" firstAttribute="leading" secondItem="0XL-6V-xV9" secondAttribute="leading" id="G57-Qp-dfe"/>
279 <constraint firstItem="AAa-2a-bHH" firstAttribute="top" secondItem="0XL-6V-xV9" secondAttribute="top" constant="8" id="Iul-8f-BwX"/> 334 <constraint firstItem="AAa-2a-bHH" firstAttribute="top" secondItem="0XL-6V-xV9" secondAttribute="top" constant="8" id="Iul-8f-BwX"/>
@@ -295,75 +350,75 @@ @@ -295,75 +350,75 @@
295 </collectionView> 350 </collectionView>
296 </subviews> 351 </subviews>
297 <constraints> 352 <constraints>
298 - <constraint firstItem="BjK-Gw-VeS" firstAttribute="top" secondItem="gpI-zw-6qq" secondAttribute="bottom" constant="25" id="28f-X5-SdT"/>  
299 - <constraint firstItem="tc9-OD-L9x" firstAttribute="top" secondItem="6kt-xb-IdN" secondAttribute="top" constant="28" id="FmW-tn-Ne9"/>  
300 - <constraint firstItem="tc9-OD-L9x" firstAttribute="leading" secondItem="6kt-xb-IdN" secondAttribute="leading" constant="8" id="H9H-ud-58B"/>  
301 - <constraint firstAttribute="trailing" secondItem="gpI-zw-6qq" secondAttribute="trailing" constant="8" id="TOV-dd-5uu"/> 353 + <constraint firstItem="tc9-OD-L9x" firstAttribute="top" secondItem="6kt-xb-IdN" secondAttribute="top" constant="30" id="FmW-tn-Ne9"/>
  354 + <constraint firstItem="tc9-OD-L9x" firstAttribute="leading" secondItem="6kt-xb-IdN" secondAttribute="leading" constant="15" id="H9H-ud-58B"/>
  355 + <constraint firstAttribute="trailing" secondItem="gpI-zw-6qq" secondAttribute="trailing" constant="15" id="TOV-dd-5uu"/>
302 <constraint firstAttribute="trailing" secondItem="7wy-DL-PKX" secondAttribute="trailing" id="VW0-SV-RMy"/> 356 <constraint firstAttribute="trailing" secondItem="7wy-DL-PKX" secondAttribute="trailing" id="VW0-SV-RMy"/>
303 - <constraint firstItem="qcg-Fh-r2v" firstAttribute="top" secondItem="6kt-xb-IdN" secondAttribute="topMargin" constant="25" id="XhC-hV-TPX"/> 357 + <constraint firstItem="qcg-Fh-r2v" firstAttribute="top" secondItem="6kt-xb-IdN" secondAttribute="topMargin" constant="22.5" id="XhC-hV-TPX"/>
304 <constraint firstItem="7wy-DL-PKX" firstAttribute="top" secondItem="6kt-xb-IdN" secondAttribute="top" id="YbM-fT-qi7"/> 358 <constraint firstItem="7wy-DL-PKX" firstAttribute="top" secondItem="6kt-xb-IdN" secondAttribute="top" id="YbM-fT-qi7"/>
305 - <constraint firstItem="BjK-Gw-VeS" firstAttribute="leading" secondItem="6kt-xb-IdN" secondAttribute="leading" constant="8" id="fES-Cd-ybP"/>  
306 - <constraint firstAttribute="bottom" secondItem="BjK-Gw-VeS" secondAttribute="bottom" id="iOk-mu-PWT"/> 359 + <constraint firstItem="BjK-Gw-VeS" firstAttribute="leading" secondItem="6kt-xb-IdN" secondAttribute="leading" constant="15" id="fES-Cd-ybP"/>
  360 + <constraint firstAttribute="bottom" secondItem="BjK-Gw-VeS" secondAttribute="bottom" constant="15" id="iOk-mu-PWT"/>
307 <constraint firstItem="7wy-DL-PKX" firstAttribute="leading" secondItem="6kt-xb-IdN" secondAttribute="leading" id="s4K-qo-g3e"/> 361 <constraint firstItem="7wy-DL-PKX" firstAttribute="leading" secondItem="6kt-xb-IdN" secondAttribute="leading" id="s4K-qo-g3e"/>
308 - <constraint firstItem="qcg-Fh-r2v" firstAttribute="leading" secondItem="tc9-OD-L9x" secondAttribute="trailing" constant="8" id="sZ7-sT-QdJ"/>  
309 - <constraint firstAttribute="trailing" secondItem="BjK-Gw-VeS" secondAttribute="trailing" constant="8" id="ujX-8f-TtW"/>  
310 - <constraint firstItem="gpI-zw-6qq" firstAttribute="top" secondItem="6kt-xb-IdN" secondAttribute="top" constant="28" id="yQW-LA-9fx"/> 362 + <constraint firstItem="qcg-Fh-r2v" firstAttribute="leading" secondItem="tc9-OD-L9x" secondAttribute="trailing" constant="20" id="sZ7-sT-QdJ"/>
  363 + <constraint firstAttribute="trailing" secondItem="BjK-Gw-VeS" secondAttribute="trailing" constant="15" id="ujX-8f-TtW"/>
  364 + <constraint firstItem="BjK-Gw-VeS" firstAttribute="top" secondItem="tc9-OD-L9x" secondAttribute="bottom" constant="15" id="ukg-8D-CZH"/>
  365 + <constraint firstItem="gpI-zw-6qq" firstAttribute="top" secondItem="6kt-xb-IdN" secondAttribute="top" constant="32.5" id="yQW-LA-9fx"/>
311 </constraints> 366 </constraints>
312 </tableViewCellContentView> 367 </tableViewCellContentView>
313 </tableViewCell> 368 </tableViewCell>
314 - <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">  
315 - <rect key="frame" x="0.0" y="364" width="375" height="239"/> 369 + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" restorationIdentifier="cell1" selectionStyle="none" indentationWidth="10" reuseIdentifier="cell1" rowHeight="252" id="ZCI-0y-Uf0" customClass="HomeSecondTableViewCell" customModule="YouerLiveVideo" customModuleProvider="target">
  370 + <rect key="frame" x="0.0" y="364" width="375" height="252"/>
316 <autoresizingMask key="autoresizingMask"/> 371 <autoresizingMask key="autoresizingMask"/>
317 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="ZCI-0y-Uf0" id="Cq0-Rg-if7"> 372 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="ZCI-0y-Uf0" id="Cq0-Rg-if7">
318 - <rect key="frame" x="0.0" y="0.0" width="375" height="239"/> 373 + <rect key="frame" x="0.0" y="0.0" width="375" height="252"/>
319 <autoresizingMask key="autoresizingMask"/> 374 <autoresizingMask key="autoresizingMask"/>
320 <subviews> 375 <subviews>
321 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="X1l-jG-Huh"> 376 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="X1l-jG-Huh">
322 - <rect key="frame" x="0.0" y="0.0" width="375" height="20"/> 377 + <rect key="frame" x="0.0" y="0.0" width="375" height="15"/>
323 <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> 378 <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
324 <constraints> 379 <constraints>
325 - <constraint firstAttribute="height" constant="20" id="cu9-3U-16R"/> 380 + <constraint firstAttribute="height" constant="15" id="cu9-3U-16R"/>
326 </constraints> 381 </constraints>
327 </view> 382 </view>
328 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="JfT-qO-w2b"> 383 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="JfT-qO-w2b">
329 - <rect key="frame" x="8" y="28" width="30" height="30"/> 384 + <rect key="frame" x="15" y="30" width="20" height="20"/>
330 <constraints> 385 <constraints>
331 - <constraint firstAttribute="width" constant="30" id="gju-0Y-vbI"/>  
332 - <constraint firstAttribute="height" constant="30" id="upC-qc-OXv"/> 386 + <constraint firstAttribute="width" constant="20" id="gju-0Y-vbI"/>
  387 + <constraint firstAttribute="height" constant="20" id="upC-qc-OXv"/>
333 </constraints> 388 </constraints>
334 </imageView> 389 </imageView>
335 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="QcE-wo-WjW"> 390 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="QcE-wo-WjW">
336 - <rect key="frame" x="337" y="28" width="30" height="30"/> 391 + <rect key="frame" x="352" y="32.5" width="8" height="15"/>
337 <constraints> 392 <constraints>
338 - <constraint firstAttribute="width" constant="30" id="6rP-92-fox"/>  
339 - <constraint firstAttribute="height" constant="30" id="DH3-jE-L3a"/> 393 + <constraint firstAttribute="width" constant="8" id="6rP-92-fox"/>
  394 + <constraint firstAttribute="height" constant="15" id="DH3-jE-L3a"/>
340 </constraints> 395 </constraints>
341 </imageView> 396 </imageView>
342 <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"> 397 <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">
343 - <rect key="frame" x="46" y="33" width="69.5" height="21"/>  
344 - <fontDescription key="fontDescription" type="system" pointSize="17"/>  
345 - <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/> 398 + <rect key="frame" x="55" y="31" width="61.5" height="18"/>
  399 + <fontDescription key="fontDescription" type="system" pointSize="15"/>
  400 + <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
346 <nil key="highlightedColor"/> 401 <nil key="highlightedColor"/>
347 </label> 402 </label>
348 <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" tag="1" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="RVe-Pr-T23"> 403 <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" tag="1" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="RVe-Pr-T23">
349 - <rect key="frame" x="8" y="83" width="359" height="156"/> 404 + <rect key="frame" x="15" y="65" width="345" height="187"/>
350 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 405 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
351 <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="0.0" minimumInteritemSpacing="0.0" id="w5u-tk-vf4"> 406 <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="0.0" minimumInteritemSpacing="0.0" id="w5u-tk-vf4">
352 - <size key="itemSize" width="165" height="146"/> 407 + <size key="itemSize" width="207" height="193"/>
353 <size key="headerReferenceSize" width="0.0" height="0.0"/> 408 <size key="headerReferenceSize" width="0.0" height="0.0"/>
354 <size key="footerReferenceSize" width="0.0" height="0.0"/> 409 <size key="footerReferenceSize" width="0.0" height="0.0"/>
355 <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/> 410 <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
356 </collectionViewFlowLayout> 411 </collectionViewFlowLayout>
357 <cells> 412 <cells>
358 <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="HomeSecondCollectionViewCell" id="apu-hG-EEc" customClass="HomeSecondCollectionViewCell" customModule="YouerLiveVideo" customModuleProvider="target"> 413 <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="HomeSecondCollectionViewCell" id="apu-hG-EEc" customClass="HomeSecondCollectionViewCell" customModule="YouerLiveVideo" customModuleProvider="target">
359 - <rect key="frame" x="0.0" y="0.0" width="165" height="146"/> 414 + <rect key="frame" x="69" y="0.0" width="207" height="193"/>
360 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> 415 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
361 <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> 416 <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
362 - <rect key="frame" x="0.0" y="0.0" width="165" height="146"/> 417 + <rect key="frame" x="0.0" y="0.0" width="207" height="193"/>
363 <autoresizingMask key="autoresizingMask"/> 418 <autoresizingMask key="autoresizingMask"/>
364 <subviews> 419 <subviews>
365 <imageView userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="5g9-CD-vXa"> 420 <imageView userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="5g9-CD-vXa">
366 - <rect key="frame" x="0.0" y="0.0" width="160" height="87.5"/> 421 + <rect key="frame" x="0.0" y="0.0" width="207" height="93.5"/>
367 <userDefinedRuntimeAttributes> 422 <userDefinedRuntimeAttributes>
368 <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> 423 <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
369 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> 424 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
@@ -372,37 +427,37 @@ @@ -372,37 +427,37 @@
372 </userDefinedRuntimeAttributes> 427 </userDefinedRuntimeAttributes>
373 </imageView> 428 </imageView>
374 <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"> 429 <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">
375 - <rect key="frame" x="0.0" y="97" width="117.5" height="18"/>  
376 - <fontDescription key="fontDescription" type="system" pointSize="15"/>  
377 - <nil key="textColor"/> 430 + <rect key="frame" x="0.0" y="136" width="164.5" height="17"/>
  431 + <fontDescription key="fontDescription" type="system" pointSize="14"/>
  432 + <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
378 <nil key="highlightedColor"/> 433 <nil key="highlightedColor"/>
379 </label> 434 </label>
380 <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"> 435 <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">
381 - <rect key="frame" x="0.0" y="123" width="96" height="15"/> 436 + <rect key="frame" x="0.0" y="163" width="138" height="15"/>
382 <fontDescription key="fontDescription" type="system" pointSize="12"/> 437 <fontDescription key="fontDescription" type="system" pointSize="12"/>
383 <nil key="textColor"/> 438 <nil key="textColor"/>
384 <nil key="highlightedColor"/> 439 <nil key="highlightedColor"/>
385 </label> 440 </label>
386 <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"> 441 <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">
387 - <rect key="frame" x="125.5" y="99.5" width="34.5" height="16"/> 442 + <rect key="frame" x="172.5" y="137.5" width="34.5" height="16"/>
388 <constraints> 443 <constraints>
389 <constraint firstAttribute="width" constant="34.5" id="4Ms-Yd-VYH"/> 444 <constraint firstAttribute="width" constant="34.5" id="4Ms-Yd-VYH"/>
390 </constraints> 445 </constraints>
391 <fontDescription key="fontDescription" type="system" pointSize="13"/> 446 <fontDescription key="fontDescription" type="system" pointSize="13"/>
392 - <nil key="textColor"/> 447 + <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
393 <nil key="highlightedColor"/> 448 <nil key="highlightedColor"/>
394 </label> 449 </label>
395 <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"> 450 <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">
396 - <rect key="frame" x="121.5" y="123.5" width="38.5" height="14.5"/> 451 + <rect key="frame" x="168.5" y="163.5" width="38.5" height="14.5"/>
397 <fontDescription key="fontDescription" type="system" pointSize="12"/> 452 <fontDescription key="fontDescription" type="system" pointSize="12"/>
398 - <nil key="textColor"/> 453 + <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
399 <nil key="highlightedColor"/> 454 <nil key="highlightedColor"/>
400 </label> 455 </label>
401 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="Ah6-9S-zUX"> 456 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="Ah6-9S-zUX">
402 - <rect key="frame" x="104" y="123" width="15" height="15"/> 457 + <rect key="frame" x="154" y="167" width="12" height="8"/>
403 <constraints> 458 <constraints>
404 - <constraint firstAttribute="width" constant="15" id="Gst-KJ-hy2"/>  
405 - <constraint firstAttribute="height" constant="15" id="IB2-dY-89b"/> 459 + <constraint firstAttribute="width" constant="12" id="Gst-KJ-hy2"/>
  460 + <constraint firstAttribute="height" constant="8" id="IB2-dY-89b"/>
406 </constraints> 461 </constraints>
407 </imageView> 462 </imageView>
408 </subviews> 463 </subviews>
@@ -411,19 +466,19 @@ @@ -411,19 +466,19 @@
411 <constraint firstItem="Z3c-Ai-wr8" firstAttribute="leading" secondItem="FRa-kP-4Or" secondAttribute="trailing" constant="8" id="4L1-p3-lcO"/> 466 <constraint firstItem="Z3c-Ai-wr8" firstAttribute="leading" secondItem="FRa-kP-4Or" secondAttribute="trailing" constant="8" id="4L1-p3-lcO"/>
412 <constraint firstAttribute="trailingMargin" secondItem="Okq-ZI-Xh2" secondAttribute="trailing" constant="61" id="6V2-3e-YCS"/> 467 <constraint firstAttribute="trailingMargin" secondItem="Okq-ZI-Xh2" secondAttribute="trailing" constant="61" id="6V2-3e-YCS"/>
413 <constraint firstItem="5g9-CD-vXa" firstAttribute="leading" secondItem="apu-hG-EEc" secondAttribute="leading" id="8mz-9g-viB"/> 468 <constraint firstItem="5g9-CD-vXa" firstAttribute="leading" secondItem="apu-hG-EEc" secondAttribute="leading" id="8mz-9g-viB"/>
414 - <constraint firstItem="5g9-CD-vXa" firstAttribute="height" secondItem="apu-hG-EEc" secondAttribute="height" multiplier="3:5" id="Cna-LC-U6q"/>  
415 - <constraint firstAttribute="trailing" secondItem="tln-9q-8L4" secondAttribute="trailing" constant="5" id="E6O-vX-SmB"/>  
416 - <constraint firstItem="Okq-ZI-Xh2" firstAttribute="top" secondItem="FRa-kP-4Or" secondAttribute="bottom" constant="8" id="Jbx-d9-HO1"/> 469 + <constraint firstItem="5g9-CD-vXa" firstAttribute="height" secondItem="apu-hG-EEc" secondAttribute="height" multiplier="16:33" id="Cna-LC-U6q"/>
  470 + <constraint firstAttribute="trailing" secondItem="tln-9q-8L4" secondAttribute="trailing" id="E6O-vX-SmB"/>
  471 + <constraint firstItem="Okq-ZI-Xh2" firstAttribute="top" secondItem="FRa-kP-4Or" secondAttribute="bottom" constant="10" id="Jbx-d9-HO1"/>
417 <constraint firstItem="FRa-kP-4Or" firstAttribute="leading" secondItem="apu-hG-EEc" secondAttribute="leading" id="Ntj-vJ-hJ8"/> 472 <constraint firstItem="FRa-kP-4Or" firstAttribute="leading" secondItem="apu-hG-EEc" secondAttribute="leading" id="Ntj-vJ-hJ8"/>
418 - <constraint firstAttribute="bottom" secondItem="Okq-ZI-Xh2" secondAttribute="bottom" constant="8" id="QF3-cj-K1q"/> 473 + <constraint firstAttribute="bottom" secondItem="Okq-ZI-Xh2" secondAttribute="bottom" constant="15" id="QF3-cj-K1q"/>
419 <constraint firstItem="5g9-CD-vXa" firstAttribute="top" secondItem="apu-hG-EEc" secondAttribute="top" id="QVL-f3-dbA"/> 474 <constraint firstItem="5g9-CD-vXa" firstAttribute="top" secondItem="apu-hG-EEc" secondAttribute="top" id="QVL-f3-dbA"/>
420 - <constraint firstAttribute="bottom" secondItem="tln-9q-8L4" secondAttribute="bottom" constant="8" id="ZWt-gE-SDD"/> 475 + <constraint firstAttribute="bottom" secondItem="tln-9q-8L4" secondAttribute="bottom" constant="15" id="ZWt-gE-SDD"/>
421 <constraint firstItem="Okq-ZI-Xh2" firstAttribute="leading" secondItem="apu-hG-EEc" secondAttribute="leading" id="amA-JO-bBv"/> 476 <constraint firstItem="Okq-ZI-Xh2" firstAttribute="leading" secondItem="apu-hG-EEc" secondAttribute="leading" id="amA-JO-bBv"/>
422 - <constraint firstAttribute="trailing" secondItem="Z3c-Ai-wr8" secondAttribute="trailing" constant="5" id="gQg-P7-tzY"/> 477 + <constraint firstAttribute="trailing" secondItem="Z3c-Ai-wr8" secondAttribute="trailing" id="gQg-P7-tzY"/>
423 <constraint firstItem="tln-9q-8L4" firstAttribute="leading" secondItem="Ah6-9S-zUX" secondAttribute="trailing" constant="2.5" id="hcm-2p-mkH"/> 478 <constraint firstItem="tln-9q-8L4" firstAttribute="leading" secondItem="Ah6-9S-zUX" secondAttribute="trailing" constant="2.5" id="hcm-2p-mkH"/>
424 - <constraint firstAttribute="trailing" secondItem="5g9-CD-vXa" secondAttribute="trailing" constant="5" id="iYZ-VU-Qxd"/>  
425 - <constraint firstAttribute="bottomMargin" secondItem="Ah6-9S-zUX" secondAttribute="bottom" id="o2X-v5-iIB"/>  
426 - <constraint firstItem="tln-9q-8L4" firstAttribute="top" secondItem="Z3c-Ai-wr8" secondAttribute="bottom" constant="8" id="odz-bE-nss"/> 479 + <constraint firstAttribute="trailing" secondItem="5g9-CD-vXa" secondAttribute="trailing" id="iYZ-VU-Qxd"/>
  480 + <constraint firstAttribute="bottomMargin" secondItem="Ah6-9S-zUX" secondAttribute="bottom" constant="10" id="o2X-v5-iIB"/>
  481 + <constraint firstItem="tln-9q-8L4" firstAttribute="top" secondItem="Z3c-Ai-wr8" secondAttribute="bottom" constant="10" id="odz-bE-nss"/>
427 </constraints> 482 </constraints>
428 <connections> 483 <connections>
429 <outlet property="dateLabel" destination="Z3c-Ai-wr8" id="FRL-DX-Cjy"/> 484 <outlet property="dateLabel" destination="Z3c-Ai-wr8" id="FRL-DX-Cjy"/>
@@ -441,76 +496,76 @@ @@ -441,76 +496,76 @@
441 </collectionView> 496 </collectionView>
442 </subviews> 497 </subviews>
443 <constraints> 498 <constraints>
444 - <constraint firstItem="Xxv-Eh-YJD" firstAttribute="leading" secondItem="JfT-qO-w2b" secondAttribute="trailing" constant="8" id="Oh2-rT-AyR"/>  
445 - <constraint firstItem="JfT-qO-w2b" firstAttribute="top" secondItem="X1l-jG-Huh" secondAttribute="bottom" constant="8" id="Oq0-HW-fvi"/> 499 + <constraint firstItem="Xxv-Eh-YJD" firstAttribute="leading" secondItem="JfT-qO-w2b" secondAttribute="trailing" constant="20" id="Oh2-rT-AyR"/>
  500 + <constraint firstItem="JfT-qO-w2b" firstAttribute="top" secondItem="X1l-jG-Huh" secondAttribute="bottom" constant="15" id="Oq0-HW-fvi"/>
446 <constraint firstItem="X1l-jG-Huh" firstAttribute="leading" secondItem="Cq0-Rg-if7" secondAttribute="leading" id="PzB-GC-QTO"/> 501 <constraint firstItem="X1l-jG-Huh" firstAttribute="leading" secondItem="Cq0-Rg-if7" secondAttribute="leading" id="PzB-GC-QTO"/>
447 - <constraint firstItem="JfT-qO-w2b" firstAttribute="leading" secondItem="Cq0-Rg-if7" secondAttribute="leading" constant="8" id="Vk4-B0-rkr"/> 502 + <constraint firstItem="JfT-qO-w2b" firstAttribute="leading" secondItem="Cq0-Rg-if7" secondAttribute="leading" constant="15" id="Vk4-B0-rkr"/>
448 <constraint firstItem="X1l-jG-Huh" firstAttribute="top" secondItem="Cq0-Rg-if7" secondAttribute="top" id="VrV-Ys-kvx"/> 503 <constraint firstItem="X1l-jG-Huh" firstAttribute="top" secondItem="Cq0-Rg-if7" secondAttribute="top" id="VrV-Ys-kvx"/>
449 - <constraint firstAttribute="trailing" secondItem="RVe-Pr-T23" secondAttribute="trailing" constant="8" id="bZh-d7-on4"/>  
450 - <constraint firstItem="QcE-wo-WjW" firstAttribute="top" secondItem="X1l-jG-Huh" secondAttribute="bottom" constant="8" id="f8O-fQ-wlw"/> 504 + <constraint firstAttribute="trailing" secondItem="RVe-Pr-T23" secondAttribute="trailing" constant="15" id="bZh-d7-on4"/>
  505 + <constraint firstItem="QcE-wo-WjW" firstAttribute="top" secondItem="X1l-jG-Huh" secondAttribute="bottom" constant="17.5" id="f8O-fQ-wlw"/>
451 <constraint firstAttribute="bottom" secondItem="RVe-Pr-T23" secondAttribute="bottom" id="n4e-2D-Lhx"/> 506 <constraint firstAttribute="bottom" secondItem="RVe-Pr-T23" secondAttribute="bottom" id="n4e-2D-Lhx"/>
452 - <constraint firstItem="RVe-Pr-T23" firstAttribute="leading" secondItem="Cq0-Rg-if7" secondAttribute="leading" constant="8" id="npx-Ap-jZy"/>  
453 - <constraint firstItem="RVe-Pr-T23" firstAttribute="top" secondItem="QcE-wo-WjW" secondAttribute="bottom" constant="25" id="qSC-rl-7ob"/> 507 + <constraint firstItem="RVe-Pr-T23" firstAttribute="leading" secondItem="Cq0-Rg-if7" secondAttribute="leading" constant="15" id="npx-Ap-jZy"/>
  508 + <constraint firstItem="RVe-Pr-T23" firstAttribute="top" secondItem="JfT-qO-w2b" secondAttribute="bottom" constant="15" id="qT2-1K-3u3"/>
454 <constraint firstAttribute="trailing" secondItem="X1l-jG-Huh" secondAttribute="trailing" id="r4k-87-FG5"/> 509 <constraint firstAttribute="trailing" secondItem="X1l-jG-Huh" secondAttribute="trailing" id="r4k-87-FG5"/>
455 - <constraint firstItem="Xxv-Eh-YJD" firstAttribute="top" secondItem="X1l-jG-Huh" secondAttribute="bottom" constant="13" id="rRq-W3-cJT"/>  
456 - <constraint firstAttribute="trailing" secondItem="QcE-wo-WjW" secondAttribute="trailing" constant="8" id="wTk-uV-bbq"/> 510 + <constraint firstItem="Xxv-Eh-YJD" firstAttribute="top" secondItem="X1l-jG-Huh" secondAttribute="bottom" constant="16" id="rRq-W3-cJT"/>
  511 + <constraint firstAttribute="trailing" secondItem="QcE-wo-WjW" secondAttribute="trailing" constant="15" id="wTk-uV-bbq"/>
457 </constraints> 512 </constraints>
458 </tableViewCellContentView> 513 </tableViewCellContentView>
459 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 514 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
460 </tableViewCell> 515 </tableViewCell>
461 <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"> 516 <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">
462 - <rect key="frame" x="0.0" y="603" width="375" height="313"/> 517 + <rect key="frame" x="0.0" y="616" width="375" height="313"/>
463 <autoresizingMask key="autoresizingMask"/> 518 <autoresizingMask key="autoresizingMask"/>
464 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="gzq-jC-D39" id="kA1-Za-kS2"> 519 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="gzq-jC-D39" id="kA1-Za-kS2">
465 <rect key="frame" x="0.0" y="0.0" width="375" height="313"/> 520 <rect key="frame" x="0.0" y="0.0" width="375" height="313"/>
466 <autoresizingMask key="autoresizingMask"/> 521 <autoresizingMask key="autoresizingMask"/>
467 <subviews> 522 <subviews>
468 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9Zz-SB-8Fl"> 523 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9Zz-SB-8Fl">
469 - <rect key="frame" x="0.0" y="0.0" width="375" height="20"/> 524 + <rect key="frame" x="0.0" y="0.0" width="375" height="15"/>
470 <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> 525 <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
471 <constraints> 526 <constraints>
472 - <constraint firstAttribute="height" constant="20" id="zk7-4f-Srd"/> 527 + <constraint firstAttribute="height" constant="15" id="zk7-4f-Srd"/>
473 </constraints> 528 </constraints>
474 </view> 529 </view>
475 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="UWk-5A-PEj"> 530 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="UWk-5A-PEj">
476 - <rect key="frame" x="8" y="28" width="30" height="30"/> 531 + <rect key="frame" x="15" y="30" width="20" height="20"/>
477 <constraints> 532 <constraints>
478 - <constraint firstAttribute="width" constant="30" id="c35-8L-oxO"/>  
479 - <constraint firstAttribute="height" constant="30" id="iOy-11-gMR"/> 533 + <constraint firstAttribute="width" constant="20" id="c35-8L-oxO"/>
  534 + <constraint firstAttribute="height" constant="20" id="iOy-11-gMR"/>
480 </constraints> 535 </constraints>
481 </imageView> 536 </imageView>
482 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="Tib-Fm-A1U"> 537 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="Tib-Fm-A1U">
483 - <rect key="frame" x="337" y="28" width="30" height="30"/> 538 + <rect key="frame" x="352" y="32.5" width="8" height="15"/>
484 <constraints> 539 <constraints>
485 - <constraint firstAttribute="height" constant="30" id="5ek-5S-7Cb"/>  
486 - <constraint firstAttribute="width" constant="30" id="k5G-EP-9l9"/> 540 + <constraint firstAttribute="height" constant="15" id="5ek-5S-7Cb"/>
  541 + <constraint firstAttribute="width" constant="8" id="k5G-EP-9l9"/>
487 </constraints> 542 </constraints>
488 </imageView> 543 </imageView>
489 <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"> 544 <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">
490 - <rect key="frame" x="46" y="33" width="35" height="21"/>  
491 - <fontDescription key="fontDescription" type="system" pointSize="17"/>  
492 - <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/> 545 + <rect key="frame" x="50" y="31" width="31" height="18"/>
  546 + <fontDescription key="fontDescription" type="system" pointSize="15"/>
  547 + <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
493 <nil key="highlightedColor"/> 548 <nil key="highlightedColor"/>
494 </label> 549 </label>
495 - <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" tag="1" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="0uI-9D-XVZ">  
496 - <rect key="frame" x="8" y="83" width="359" height="230"/> 550 + <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" tag="1" contentMode="scaleToFill" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="0uI-9D-XVZ">
  551 + <rect key="frame" x="15" y="65" width="345" height="248"/>
497 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 552 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
498 <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="0.0" minimumInteritemSpacing="0.0" id="f2C-TL-VTa"> 553 <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="0.0" minimumInteritemSpacing="0.0" id="f2C-TL-VTa">
499 - <size key="itemSize" width="113" height="222"/> 554 + <size key="itemSize" width="147" height="246"/>
500 <size key="headerReferenceSize" width="0.0" height="0.0"/> 555 <size key="headerReferenceSize" width="0.0" height="0.0"/>
501 <size key="footerReferenceSize" width="0.0" height="0.0"/> 556 <size key="footerReferenceSize" width="0.0" height="0.0"/>
502 <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/> 557 <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
503 </collectionViewFlowLayout> 558 </collectionViewFlowLayout>
504 <cells> 559 <cells>
505 <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="HomeThirdCollectionViewCell" id="gdp-Ji-zur" customClass="HomeThirdCollectionViewCell" customModule="YouerLiveVideo" customModuleProvider="target"> 560 <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="HomeThirdCollectionViewCell" id="gdp-Ji-zur" customClass="HomeThirdCollectionViewCell" customModule="YouerLiveVideo" customModuleProvider="target">
506 - <rect key="frame" x="0.0" y="0.0" width="113" height="222"/> 561 + <rect key="frame" x="0.0" y="0.0" width="147" height="246"/>
507 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> 562 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
508 <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> 563 <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
509 - <rect key="frame" x="0.0" y="0.0" width="113" height="222"/> 564 + <rect key="frame" x="0.0" y="0.0" width="147" height="246"/>
510 <autoresizingMask key="autoresizingMask"/> 565 <autoresizingMask key="autoresizingMask"/>
511 <subviews> 566 <subviews>
512 <imageView userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="bUk-R1-5gT"> 567 <imageView userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="bUk-R1-5gT">
513 - <rect key="frame" x="0.0" y="0.0" width="108" height="108"/> 568 + <rect key="frame" x="0.0" y="0.0" width="147" height="147"/>
514 <constraints> 569 <constraints>
515 <constraint firstAttribute="width" secondItem="bUk-R1-5gT" secondAttribute="height" multiplier="1:1" id="MTe-oF-wJF"/> 570 <constraint firstAttribute="width" secondItem="bUk-R1-5gT" secondAttribute="height" multiplier="1:1" id="MTe-oF-wJF"/>
516 </constraints> 571 </constraints>
@@ -521,62 +576,66 @@ @@ -521,62 +576,66 @@
521 </userDefinedRuntimeAttribute> 576 </userDefinedRuntimeAttribute>
522 </userDefinedRuntimeAttributes> 577 </userDefinedRuntimeAttributes>
523 </imageView> 578 </imageView>
524 - <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">  
525 - <rect key="frame" x="0.0" y="125" width="108" height="42"/> 579 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="神奇的线圈神奇的线圈神奇的线圈神奇的线圈神奇的线圈神奇的线圈" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Zk6-bu-T1Z">
  580 + <rect key="frame" x="0.0" y="150.5" width="147" height="30"/>
526 <constraints> 581 <constraints>
527 - <constraint firstAttribute="height" constant="42" id="9Hi-f9-B2N"/> 582 + <constraint firstAttribute="height" constant="30" id="5EB-ra-Pnh"/>
528 </constraints> 583 </constraints>
529 - <fontDescription key="fontDescription" type="system" pointSize="15"/>  
530 - <nil key="textColor"/> 584 + <fontDescription key="fontDescription" type="system" pointSize="12"/>
  585 + <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
531 <nil key="highlightedColor"/> 586 <nil key="highlightedColor"/>
532 </label> 587 </label>
533 <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"> 588 <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">
534 - <rect key="frame" x="0.0" y="198" width="44" height="16"/>  
535 - <fontDescription key="fontDescription" type="system" pointSize="13"/>  
536 - <nil key="textColor"/> 589 + <rect key="frame" x="0.0" y="216" width="100" height="15"/>
  590 + <constraints>
  591 + <constraint firstAttribute="height" constant="15" id="FNC-fa-EYl"/>
  592 + </constraints>
  593 + <fontDescription key="fontDescription" type="system" pointSize="12"/>
  594 + <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
537 <nil key="highlightedColor"/> 595 <nil key="highlightedColor"/>
538 </label> 596 </label>
539 <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"> 597 <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">
540 - <rect key="frame" x="69" y="199" width="39" height="15"/> 598 + <rect key="frame" x="108" y="216" width="39" height="15"/>
541 <fontDescription key="fontDescription" type="system" pointSize="12"/> 599 <fontDescription key="fontDescription" type="system" pointSize="12"/>
542 - <nil key="textColor"/> 600 + <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
543 <nil key="highlightedColor"/> 601 <nil key="highlightedColor"/>
544 </label> 602 </label>
545 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="j8z-Dm-5mL"> 603 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="j8z-Dm-5mL">
546 - <rect key="frame" x="52" y="199" width="15" height="15"/> 604 + <rect key="frame" x="100" y="220" width="8" height="8"/>
547 <constraints> 605 <constraints>
548 - <constraint firstAttribute="width" constant="15" id="f5p-Mv-Ylo"/>  
549 - <constraint firstAttribute="height" constant="15" id="yKI-Iv-ctT"/> 606 + <constraint firstAttribute="width" constant="8" id="f5p-Mv-Ylo"/>
  607 + <constraint firstAttribute="height" constant="8" id="yKI-Iv-ctT"/>
550 </constraints> 608 </constraints>
551 </imageView> 609 </imageView>
552 <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"> 610 <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">
553 - <rect key="frame" x="0.0" y="175" width="108" height="15"/> 611 + <rect key="frame" x="0.0" y="191" width="147" height="15"/>
554 <constraints> 612 <constraints>
555 <constraint firstAttribute="height" constant="15" id="8nl-am-VuO"/> 613 <constraint firstAttribute="height" constant="15" id="8nl-am-VuO"/>
556 </constraints> 614 </constraints>
557 <fontDescription key="fontDescription" type="system" pointSize="12"/> 615 <fontDescription key="fontDescription" type="system" pointSize="12"/>
558 - <nil key="textColor"/> 616 + <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
559 <nil key="highlightedColor"/> 617 <nil key="highlightedColor"/>
560 </label> 618 </label>
561 </subviews> 619 </subviews>
562 </view> 620 </view>
  621 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
563 <constraints> 622 <constraints>
564 - <constraint firstItem="Ens-w5-JNf" firstAttribute="leading" secondItem="j8z-Dm-5mL" secondAttribute="trailing" constant="2.5" id="64X-uP-6eu"/>  
565 - <constraint firstAttribute="trailing" secondItem="vag-ao-LKQ" secondAttribute="trailing" constant="5" id="8jK-AG-5BE"/>  
566 - <constraint firstItem="q2O-JU-nOk" firstAttribute="top" secondItem="vag-ao-LKQ" secondAttribute="bottom" constant="8" id="BxM-zs-idP"/>  
567 - <constraint firstAttribute="bottomMargin" secondItem="j8z-Dm-5mL" secondAttribute="bottom" id="CTt-Wl-pgl"/>  
568 - <constraint firstAttribute="bottom" secondItem="Ens-w5-JNf" secondAttribute="bottom" constant="8" id="CYj-Yh-ykl"/> 623 + <constraint firstItem="Ens-w5-JNf" firstAttribute="leading" secondItem="j8z-Dm-5mL" secondAttribute="trailing" id="64X-uP-6eu"/>
  624 + <constraint firstAttribute="trailing" secondItem="vag-ao-LKQ" secondAttribute="trailing" id="8jK-AG-5BE"/>
  625 + <constraint firstItem="q2O-JU-nOk" firstAttribute="top" secondItem="vag-ao-LKQ" secondAttribute="bottom" constant="10" id="BxM-zs-idP"/>
  626 + <constraint firstAttribute="bottom" secondItem="Ens-w5-JNf" secondAttribute="bottom" constant="15" id="CYj-Yh-ykl"/>
569 <constraint firstItem="vag-ao-LKQ" firstAttribute="leading" secondItem="gdp-Ji-zur" secondAttribute="leading" id="Djn-nH-5tu"/> 627 <constraint firstItem="vag-ao-LKQ" firstAttribute="leading" secondItem="gdp-Ji-zur" secondAttribute="leading" id="Djn-nH-5tu"/>
570 - <constraint firstItem="vag-ao-LKQ" firstAttribute="top" secondItem="Zk6-bu-T1Z" secondAttribute="bottom" constant="8" id="TUh-h3-ZgZ"/>  
571 - <constraint firstAttribute="bottom" secondItem="q2O-JU-nOk" secondAttribute="bottom" constant="8" id="URf-Pj-lNP"/> 628 + <constraint firstItem="vag-ao-LKQ" firstAttribute="top" secondItem="Zk6-bu-T1Z" secondAttribute="bottom" constant="10" id="TUh-h3-ZgZ"/>
  629 + <constraint firstAttribute="bottom" secondItem="q2O-JU-nOk" secondAttribute="bottom" constant="15" id="URf-Pj-lNP"/>
572 <constraint firstItem="Zk6-bu-T1Z" firstAttribute="leading" secondItem="gdp-Ji-zur" secondAttribute="leading" id="Vng-Q4-dJt"/> 630 <constraint firstItem="Zk6-bu-T1Z" firstAttribute="leading" secondItem="gdp-Ji-zur" secondAttribute="leading" id="Vng-Q4-dJt"/>
573 - <constraint firstAttribute="trailing" secondItem="Ens-w5-JNf" secondAttribute="trailing" constant="5" id="WIv-BG-KUZ"/> 631 + <constraint firstAttribute="trailing" secondItem="Ens-w5-JNf" secondAttribute="trailing" id="WIv-BG-KUZ"/>
574 <constraint firstItem="bUk-R1-5gT" firstAttribute="leading" secondItem="gdp-Ji-zur" secondAttribute="leading" id="X8S-q4-Yjy"/> 632 <constraint firstItem="bUk-R1-5gT" firstAttribute="leading" secondItem="gdp-Ji-zur" secondAttribute="leading" id="X8S-q4-Yjy"/>
575 - <constraint firstAttribute="trailing" secondItem="Zk6-bu-T1Z" secondAttribute="trailing" constant="5" id="ZCV-WC-xJv"/>  
576 - <constraint firstAttribute="trailingMargin" secondItem="q2O-JU-nOk" secondAttribute="trailing" constant="61" id="ojG-9i-zX4"/> 633 + <constraint firstAttribute="trailing" secondItem="Zk6-bu-T1Z" secondAttribute="trailing" id="ZCV-WC-xJv"/>
  634 + <constraint firstAttribute="trailingMargin" secondItem="q2O-JU-nOk" secondAttribute="trailing" constant="39" id="ojG-9i-zX4"/>
577 <constraint firstItem="bUk-R1-5gT" firstAttribute="top" secondItem="gdp-Ji-zur" secondAttribute="top" id="q6C-YR-cFO"/> 635 <constraint firstItem="bUk-R1-5gT" firstAttribute="top" secondItem="gdp-Ji-zur" secondAttribute="top" id="q6C-YR-cFO"/>
578 <constraint firstItem="q2O-JU-nOk" firstAttribute="leading" secondItem="gdp-Ji-zur" secondAttribute="leading" id="qUh-gl-kWl"/> 636 <constraint firstItem="q2O-JU-nOk" firstAttribute="leading" secondItem="gdp-Ji-zur" secondAttribute="leading" id="qUh-gl-kWl"/>
579 - <constraint firstAttribute="trailing" secondItem="bUk-R1-5gT" secondAttribute="trailing" constant="5" id="xj0-qF-rhP"/> 637 + <constraint firstAttribute="bottomMargin" secondItem="j8z-Dm-5mL" secondAttribute="bottom" constant="10" id="vef-74-Jan"/>
  638 + <constraint firstAttribute="trailing" secondItem="bUk-R1-5gT" secondAttribute="trailing" id="xj0-qF-rhP"/>
580 </constraints> 639 </constraints>
581 <connections> 640 <connections>
582 <outlet property="dateLabel" destination="q2O-JU-nOk" id="cCA-VL-aAf"/> 641 <outlet property="dateLabel" destination="q2O-JU-nOk" id="cCA-VL-aAf"/>
@@ -594,61 +653,61 @@ @@ -594,61 +653,61 @@
594 </collectionView> 653 </collectionView>
595 </subviews> 654 </subviews>
596 <constraints> 655 <constraints>
597 - <constraint firstItem="Tib-Fm-A1U" firstAttribute="top" secondItem="9Zz-SB-8Fl" secondAttribute="bottom" constant="8" id="35X-cd-fAU"/>  
598 - <constraint firstItem="nKJ-qz-sg8" firstAttribute="top" secondItem="9Zz-SB-8Fl" secondAttribute="bottom" constant="13" id="A8h-XS-V9X"/>  
599 - <constraint firstItem="UWk-5A-PEj" firstAttribute="leading" secondItem="kA1-Za-kS2" secondAttribute="leading" constant="8" id="GTt-JU-67B"/> 656 + <constraint firstItem="Tib-Fm-A1U" firstAttribute="top" secondItem="9Zz-SB-8Fl" secondAttribute="bottom" constant="17.5" id="35X-cd-fAU"/>
  657 + <constraint firstItem="nKJ-qz-sg8" firstAttribute="top" secondItem="9Zz-SB-8Fl" secondAttribute="bottom" constant="16" id="A8h-XS-V9X"/>
  658 + <constraint firstItem="UWk-5A-PEj" firstAttribute="leading" secondItem="kA1-Za-kS2" secondAttribute="leading" constant="15" id="GTt-JU-67B"/>
600 <constraint firstAttribute="bottom" secondItem="0uI-9D-XVZ" secondAttribute="bottom" id="IiM-YI-cmg"/> 659 <constraint firstAttribute="bottom" secondItem="0uI-9D-XVZ" secondAttribute="bottom" id="IiM-YI-cmg"/>
601 - <constraint firstItem="0uI-9D-XVZ" firstAttribute="top" secondItem="Tib-Fm-A1U" secondAttribute="bottom" constant="25" id="NOs-5g-r1E"/>  
602 - <constraint firstAttribute="trailing" secondItem="Tib-Fm-A1U" secondAttribute="trailing" constant="8" id="Rg7-Q9-IdK"/>  
603 - <constraint firstItem="nKJ-qz-sg8" firstAttribute="leading" secondItem="UWk-5A-PEj" secondAttribute="trailing" constant="8" id="TRM-qN-0jP"/> 660 + <constraint firstAttribute="trailing" secondItem="Tib-Fm-A1U" secondAttribute="trailing" constant="15" id="Rg7-Q9-IdK"/>
  661 + <constraint firstItem="nKJ-qz-sg8" firstAttribute="leading" secondItem="UWk-5A-PEj" secondAttribute="trailing" constant="15" id="TRM-qN-0jP"/>
604 <constraint firstAttribute="trailing" secondItem="9Zz-SB-8Fl" secondAttribute="trailing" id="Ujw-UV-mco"/> 662 <constraint firstAttribute="trailing" secondItem="9Zz-SB-8Fl" secondAttribute="trailing" id="Ujw-UV-mco"/>
605 - <constraint firstItem="UWk-5A-PEj" firstAttribute="top" secondItem="9Zz-SB-8Fl" secondAttribute="bottom" constant="8" id="aKU-kC-KTK"/>  
606 - <constraint firstAttribute="trailing" secondItem="0uI-9D-XVZ" secondAttribute="trailing" constant="8" id="c13-N9-TW8"/> 663 + <constraint firstItem="UWk-5A-PEj" firstAttribute="top" secondItem="9Zz-SB-8Fl" secondAttribute="bottom" constant="15" id="aKU-kC-KTK"/>
  664 + <constraint firstItem="0uI-9D-XVZ" firstAttribute="top" secondItem="UWk-5A-PEj" secondAttribute="bottom" constant="15" id="bLK-59-dco"/>
  665 + <constraint firstAttribute="trailing" secondItem="0uI-9D-XVZ" secondAttribute="trailing" constant="15" id="c13-N9-TW8"/>
607 <constraint firstItem="9Zz-SB-8Fl" firstAttribute="leading" secondItem="kA1-Za-kS2" secondAttribute="leading" id="iZd-Ff-YdA"/> 666 <constraint firstItem="9Zz-SB-8Fl" firstAttribute="leading" secondItem="kA1-Za-kS2" secondAttribute="leading" id="iZd-Ff-YdA"/>
608 <constraint firstItem="9Zz-SB-8Fl" firstAttribute="top" secondItem="kA1-Za-kS2" secondAttribute="top" id="io6-vo-MrT"/> 667 <constraint firstItem="9Zz-SB-8Fl" firstAttribute="top" secondItem="kA1-Za-kS2" secondAttribute="top" id="io6-vo-MrT"/>
609 - <constraint firstItem="0uI-9D-XVZ" firstAttribute="leading" secondItem="kA1-Za-kS2" secondAttribute="leading" constant="8" id="ivh-0J-PTg"/> 668 + <constraint firstItem="0uI-9D-XVZ" firstAttribute="leading" secondItem="kA1-Za-kS2" secondAttribute="leading" constant="15" id="ivh-0J-PTg"/>
610 </constraints> 669 </constraints>
611 </tableViewCellContentView> 670 </tableViewCellContentView>
612 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 671 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
613 </tableViewCell> 672 </tableViewCell>
614 - <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">  
615 - <rect key="frame" x="0.0" y="916" width="375" height="120"/> 673 + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" restorationIdentifier="cell3" selectionStyle="none" indentationWidth="10" reuseIdentifier="cell3" rowHeight="200" id="u0l-tM-Sps" customClass="HomeFourTableViewCell" customModule="YouerLiveVideo" customModuleProvider="target">
  674 + <rect key="frame" x="0.0" y="929" width="375" height="200"/>
616 <autoresizingMask key="autoresizingMask"/> 675 <autoresizingMask key="autoresizingMask"/>
617 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="u0l-tM-Sps" id="pAP-UQ-eh8"> 676 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="u0l-tM-Sps" id="pAP-UQ-eh8">
618 - <rect key="frame" x="0.0" y="0.0" width="375" height="120"/> 677 + <rect key="frame" x="0.0" y="0.0" width="375" height="200"/>
619 <autoresizingMask key="autoresizingMask"/> 678 <autoresizingMask key="autoresizingMask"/>
620 <subviews> 679 <subviews>
621 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Mv3-YA-1zb"> 680 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Mv3-YA-1zb">
622 - <rect key="frame" x="0.0" y="0.0" width="375" height="20"/> 681 + <rect key="frame" x="0.0" y="0.0" width="375" height="15"/>
623 <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> 682 <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
624 <constraints> 683 <constraints>
625 - <constraint firstAttribute="height" constant="20" id="8kZ-Qb-uv0"/> 684 + <constraint firstAttribute="height" constant="15" id="8kZ-Qb-uv0"/>
626 </constraints> 685 </constraints>
627 </view> 686 </view>
628 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="NyS-EO-TLP"> 687 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="NyS-EO-TLP">
629 - <rect key="frame" x="8" y="28" width="30" height="30"/> 688 + <rect key="frame" x="15" y="30" width="20" height="20"/>
630 <constraints> 689 <constraints>
631 - <constraint firstAttribute="width" constant="30" id="3VH-BC-Dg6"/>  
632 - <constraint firstAttribute="height" constant="30" id="FB0-l5-0Jp"/> 690 + <constraint firstAttribute="width" constant="20" id="3VH-BC-Dg6"/>
  691 + <constraint firstAttribute="height" constant="20" id="FB0-l5-0Jp"/>
633 </constraints> 692 </constraints>
634 </imageView> 693 </imageView>
635 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="TE2-1P-sZs"> 694 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="TE2-1P-sZs">
636 - <rect key="frame" x="337" y="28" width="30" height="30"/> 695 + <rect key="frame" x="352" y="32.5" width="8" height="15"/>
637 <constraints> 696 <constraints>
638 - <constraint firstAttribute="height" constant="30" id="EJo-or-6w8"/>  
639 - <constraint firstAttribute="width" constant="30" id="HqT-ZX-Hf6"/> 697 + <constraint firstAttribute="height" constant="15" id="EJo-or-6w8"/>
  698 + <constraint firstAttribute="width" constant="8" id="HqT-ZX-Hf6"/>
640 </constraints> 699 </constraints>
641 </imageView> 700 </imageView>
642 <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"> 701 <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">
643 - <rect key="frame" x="46" y="33" width="87" height="21"/>  
644 - <fontDescription key="fontDescription" type="system" pointSize="17"/>  
645 - <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/> 702 + <rect key="frame" x="50" y="30" width="82" height="20"/>
  703 + <fontDescription key="fontDescription" type="system" pointSize="16"/>
  704 + <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
646 <nil key="highlightedColor"/> 705 <nil key="highlightedColor"/>
647 </label> 706 </label>
648 <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" tag="1" contentMode="scaleToFill" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="cYp-Zl-nJm"> 707 <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" tag="1" contentMode="scaleToFill" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="cYp-Zl-nJm">
649 - <rect key="frame" x="8" y="83" width="359" height="37"/> 708 + <rect key="frame" x="15" y="65" width="345" height="120"/>
650 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 709 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
651 - <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="0.0" minimumInteritemSpacing="8" id="WlM-Mm-GpJ"> 710 + <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="0.0" minimumInteritemSpacing="0.0" id="WlM-Mm-GpJ">
652 <size key="itemSize" width="128" height="200"/> 711 <size key="itemSize" width="128" height="200"/>
653 <size key="headerReferenceSize" width="0.0" height="0.0"/> 712 <size key="headerReferenceSize" width="0.0" height="0.0"/>
654 <size key="footerReferenceSize" width="0.0" height="0.0"/> 713 <size key="footerReferenceSize" width="0.0" height="0.0"/>
@@ -668,8 +727,8 @@ @@ -668,8 +727,8 @@
668 <constraints> 727 <constraints>
669 <constraint firstAttribute="height" constant="30" id="4Og-hL-nhw"/> 728 <constraint firstAttribute="height" constant="30" id="4Og-hL-nhw"/>
670 </constraints> 729 </constraints>
671 - <fontDescription key="fontDescription" type="system" pointSize="15"/>  
672 - <nil key="textColor"/> 730 + <fontDescription key="fontDescription" type="system" pointSize="14"/>
  731 + <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
673 <nil key="highlightedColor"/> 732 <nil key="highlightedColor"/>
674 </label> 733 </label>
675 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="ZWf-Th-UTw"> 734 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="ZWf-Th-UTw">
@@ -701,19 +760,19 @@ @@ -701,19 +760,19 @@
701 </collectionView> 760 </collectionView>
702 </subviews> 761 </subviews>
703 <constraints> 762 <constraints>
704 - <constraint firstItem="NyS-EO-TLP" firstAttribute="top" secondItem="Mv3-YA-1zb" secondAttribute="bottom" constant="8" id="0ke-n8-TrJ"/>  
705 - <constraint firstItem="TE2-1P-sZs" firstAttribute="top" secondItem="Mv3-YA-1zb" secondAttribute="bottom" constant="8" id="1KX-Aj-m0i"/>  
706 - <constraint firstAttribute="trailing" secondItem="cYp-Zl-nJm" secondAttribute="trailing" constant="8" id="5NS-hQ-HDr"/> 763 + <constraint firstItem="NyS-EO-TLP" firstAttribute="top" secondItem="Mv3-YA-1zb" secondAttribute="bottom" constant="15" id="0ke-n8-TrJ"/>
  764 + <constraint firstItem="TE2-1P-sZs" firstAttribute="top" secondItem="Mv3-YA-1zb" secondAttribute="bottom" constant="17.5" id="1KX-Aj-m0i"/>
  765 + <constraint firstAttribute="trailing" secondItem="cYp-Zl-nJm" secondAttribute="trailing" constant="15" id="5NS-hQ-HDr"/>
  766 + <constraint firstItem="cYp-Zl-nJm" firstAttribute="top" secondItem="NyS-EO-TLP" secondAttribute="bottom" constant="15" id="7eH-WY-cIS"/>
707 <constraint firstItem="Mv3-YA-1zb" firstAttribute="top" secondItem="pAP-UQ-eh8" secondAttribute="top" id="ARU-SJ-pTz"/> 767 <constraint firstItem="Mv3-YA-1zb" firstAttribute="top" secondItem="pAP-UQ-eh8" secondAttribute="top" id="ARU-SJ-pTz"/>
708 <constraint firstAttribute="trailing" secondItem="Mv3-YA-1zb" secondAttribute="trailing" id="I4t-Lc-D4H"/> 768 <constraint firstAttribute="trailing" secondItem="Mv3-YA-1zb" secondAttribute="trailing" id="I4t-Lc-D4H"/>
709 - <constraint firstAttribute="bottom" secondItem="cYp-Zl-nJm" secondAttribute="bottom" id="JIt-5J-1vX"/>  
710 - <constraint firstItem="UbK-Rj-Fs5" firstAttribute="top" secondItem="Mv3-YA-1zb" secondAttribute="bottom" constant="13" id="LSN-Sj-8zr"/>  
711 - <constraint firstAttribute="trailing" secondItem="TE2-1P-sZs" secondAttribute="trailing" constant="8" id="QlU-44-FxY"/>  
712 - <constraint firstItem="cYp-Zl-nJm" firstAttribute="top" secondItem="TE2-1P-sZs" secondAttribute="bottom" constant="25" id="VVE-0S-GvV"/>  
713 - <constraint firstItem="cYp-Zl-nJm" firstAttribute="leading" secondItem="pAP-UQ-eh8" secondAttribute="leading" constant="8" id="aI8-UO-9NX"/> 769 + <constraint firstAttribute="bottom" secondItem="cYp-Zl-nJm" secondAttribute="bottom" constant="15" id="JIt-5J-1vX"/>
  770 + <constraint firstItem="UbK-Rj-Fs5" firstAttribute="top" secondItem="Mv3-YA-1zb" secondAttribute="bottom" constant="15" id="LSN-Sj-8zr"/>
  771 + <constraint firstAttribute="trailing" secondItem="TE2-1P-sZs" secondAttribute="trailing" constant="15" id="QlU-44-FxY"/>
  772 + <constraint firstItem="cYp-Zl-nJm" firstAttribute="leading" secondItem="pAP-UQ-eh8" secondAttribute="leading" constant="15" id="aI8-UO-9NX"/>
714 <constraint firstItem="Mv3-YA-1zb" firstAttribute="leading" secondItem="pAP-UQ-eh8" secondAttribute="leading" id="cWh-v4-slW"/> 773 <constraint firstItem="Mv3-YA-1zb" firstAttribute="leading" secondItem="pAP-UQ-eh8" secondAttribute="leading" id="cWh-v4-slW"/>
715 - <constraint firstItem="NyS-EO-TLP" firstAttribute="leading" secondItem="pAP-UQ-eh8" secondAttribute="leading" constant="8" id="hQw-PE-ApU"/>  
716 - <constraint firstItem="UbK-Rj-Fs5" firstAttribute="leading" secondItem="NyS-EO-TLP" secondAttribute="trailing" constant="8" id="vTs-ac-et0"/> 774 + <constraint firstItem="NyS-EO-TLP" firstAttribute="leading" secondItem="pAP-UQ-eh8" secondAttribute="leading" constant="15" id="hQw-PE-ApU"/>
  775 + <constraint firstItem="UbK-Rj-Fs5" firstAttribute="leading" secondItem="NyS-EO-TLP" secondAttribute="trailing" constant="15" id="vTs-ac-et0"/>
717 </constraints> 776 </constraints>
718 </tableViewCellContentView> 777 </tableViewCellContentView>
719 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 778 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
@@ -726,13 +785,7 @@ @@ -726,13 +785,7 @@
726 <outlet property="delegate" destination="HdB-6p-eAX" id="k2q-uw-6l0"/> 785 <outlet property="delegate" destination="HdB-6p-eAX" id="k2q-uw-6l0"/>
727 </connections> 786 </connections>
728 </tableView> 787 </tableView>
729 - <navigationItem key="navigationItem" id="u6G-VK-Ob0">  
730 - <barButtonItem key="rightBarButtonItem" systemItem="search" id="Wrt-Tt-zFU">  
731 - <connections>  
732 - <action selector="rightBarButtonAction:" destination="HdB-6p-eAX" id="FCr-SK-pbu"/>  
733 - </connections>  
734 - </barButtonItem>  
735 - </navigationItem> 788 + <navigationItem key="navigationItem" title="教育视频云" id="u6G-VK-Ob0"/>
736 <connections> 789 <connections>
737 <outlet property="tableHeaderView" destination="w64-sF-NZ9" id="GF0-Uu-8HD"/> 790 <outlet property="tableHeaderView" destination="w64-sF-NZ9" id="GF0-Uu-8HD"/>
738 </connections> 791 </connections>
@@ -772,7 +825,7 @@ @@ -772,7 +825,7 @@
772 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> 825 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
773 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 826 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
774 </view> 827 </view>
775 - <navigationItem key="navigationItem" id="bcC-ei-aNW"/> 828 + <navigationItem key="navigationItem" title="用户" id="KBV-ql-Taf"/>
776 </viewController> 829 </viewController>
777 <placeholder placeholderIdentifier="IBFirstResponder" id="yJD-YG-4bQ" userLabel="First Responder" sceneMemberID="firstResponder"/> 830 <placeholder placeholderIdentifier="IBFirstResponder" id="yJD-YG-4bQ" userLabel="First Responder" sceneMemberID="firstResponder"/>
778 </objects> 831 </objects>
@@ -1064,7 +1117,7 @@ @@ -1064,7 +1117,7 @@
1064 </navigationBar> 1117 </navigationBar>
1065 <nil name="viewControllers"/> 1118 <nil name="viewControllers"/>
1066 <connections> 1119 <connections>
1067 - <segue destination="QLA-FR-CcL" kind="relationship" relationship="rootViewController" id="dfQ-M1-wUC"/> 1120 + <segue destination="VUr-8w-9Ht" kind="relationship" relationship="rootViewController" id="jMk-GJ-Z4f"/>
1068 </connections> 1121 </connections>
1069 </navigationController> 1122 </navigationController>
1070 <placeholder placeholderIdentifier="IBFirstResponder" id="xYG-HE-dff" userLabel="First Responder" sceneMemberID="firstResponder"/> 1123 <placeholder placeholderIdentifier="IBFirstResponder" id="xYG-HE-dff" userLabel="First Responder" sceneMemberID="firstResponder"/>
@@ -1129,7 +1182,7 @@ @@ -1129,7 +1182,7 @@
1129 <rect key="frame" x="0.0" y="28" width="375" height="178"/> 1182 <rect key="frame" x="0.0" y="28" width="375" height="178"/>
1130 <autoresizingMask key="autoresizingMask"/> 1183 <autoresizingMask key="autoresizingMask"/>
1131 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="8PR-k0-hwX" id="Bb0-oI-ccB"> 1184 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="8PR-k0-hwX" id="Bb0-oI-ccB">
1132 - <rect key="frame" x="0.0" y="0.0" width="375" height="177"/> 1185 + <rect key="frame" x="0.0" y="0.0" width="375" height="178"/>
1133 <autoresizingMask key="autoresizingMask"/> 1186 <autoresizingMask key="autoresizingMask"/>
1134 <subviews> 1187 <subviews>
1135 <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="m0I-jk-Iru"> 1188 <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="m0I-jk-Iru">
@@ -1208,7 +1261,7 @@ @@ -1208,7 +1261,7 @@
1208 </constraints> 1261 </constraints>
1209 </view> 1262 </view>
1210 <tabBarItem key="tabBarItem" tag="3" title="电视台" id="s3g-mh-Xtl"/> 1263 <tabBarItem key="tabBarItem" tag="3" title="电视台" id="s3g-mh-Xtl"/>
1211 - <navigationItem key="navigationItem" id="4l0-y8-1gT"/> 1264 + <navigationItem key="navigationItem" title="电视台" id="lwd-0v-qoO"/>
1212 <connections> 1265 <connections>
1213 <outlet property="tableView" destination="IhH-sz-Bd2" id="ut2-uV-tkE"/> 1266 <outlet property="tableView" destination="IhH-sz-Bd2" id="ut2-uV-tkE"/>
1214 </connections> 1267 </connections>
@@ -1236,6 +1289,233 @@ @@ -1236,6 +1289,233 @@
1236 </objects> 1289 </objects>
1237 <point key="canvasLocation" x="-1838" y="1415"/> 1290 <point key="canvasLocation" x="-1838" y="1415"/>
1238 </scene> 1291 </scene>
  1292 + <!--微课-->
  1293 + <scene sceneID="79n-r8-6SR">
  1294 + <objects>
  1295 + <viewController automaticallyAdjustsScrollViewInsets="NO" id="VUr-8w-9Ht" customClass="MicroCourseViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController">
  1296 + <layoutGuides>
  1297 + <viewControllerLayoutGuide type="top" id="Laj-Zw-b49"/>
  1298 + <viewControllerLayoutGuide type="bottom" id="42u-nx-d5t"/>
  1299 + </layoutGuides>
  1300 + <view key="view" contentMode="scaleToFill" id="xBZ-wH-l5a">
  1301 + <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
  1302 + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
  1303 + <subviews>
  1304 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="lPK-PF-JgI">
  1305 + <rect key="frame" x="0.0" y="108" width="375" height="50"/>
  1306 + <subviews>
  1307 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" " textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0HY-Rz-WhJ">
  1308 + <rect key="frame" x="8" y="16" width="4" height="18"/>
  1309 + <fontDescription key="fontDescription" type="system" pointSize="15"/>
  1310 + <nil key="textColor"/>
  1311 + <nil key="highlightedColor"/>
  1312 + </label>
  1313 + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="4xl-zG-lqH">
  1314 + <rect key="frame" x="310" y="10" width="57" height="30"/>
  1315 + <constraints>
  1316 + <constraint firstAttribute="height" constant="30" id="xBx-gX-mw4"/>
  1317 + </constraints>
  1318 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  1319 + <state key="normal" title="筛选" image="starLive">
  1320 + <color key="titleColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
  1321 + </state>
  1322 + </button>
  1323 + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="T2j-JJ-ft5">
  1324 + <rect key="frame" x="245" y="14" width="57" height="22"/>
  1325 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  1326 + <state key="normal" title="排序" image="starLive">
  1327 + <color key="titleColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
  1328 + </state>
  1329 + </button>
  1330 + </subviews>
  1331 + <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
  1332 + <constraints>
  1333 + <constraint firstItem="4xl-zG-lqH" firstAttribute="leading" secondItem="T2j-JJ-ft5" secondAttribute="trailing" constant="8" id="5PE-bJ-7gA"/>
  1334 + <constraint firstItem="0HY-Rz-WhJ" firstAttribute="leading" secondItem="lPK-PF-JgI" secondAttribute="leading" constant="8" id="6JE-7G-RGu"/>
  1335 + <constraint firstItem="0HY-Rz-WhJ" firstAttribute="centerY" secondItem="lPK-PF-JgI" secondAttribute="centerY" id="9D4-TG-1g8"/>
  1336 + <constraint firstAttribute="trailing" secondItem="4xl-zG-lqH" secondAttribute="trailing" constant="8" id="Cdo-PV-fQ7"/>
  1337 + <constraint firstAttribute="height" constant="50" id="HmH-xv-An6"/>
  1338 + <constraint firstItem="T2j-JJ-ft5" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="0HY-Rz-WhJ" secondAttribute="trailing" constant="8" id="agG-vQ-QPp"/>
  1339 + <constraint firstItem="T2j-JJ-ft5" firstAttribute="centerY" secondItem="lPK-PF-JgI" secondAttribute="centerY" id="bcz-kZ-cO2"/>
  1340 + <constraint firstItem="4xl-zG-lqH" firstAttribute="centerY" secondItem="lPK-PF-JgI" secondAttribute="centerY" id="pAW-vr-qJ8"/>
  1341 + </constraints>
  1342 + </view>
  1343 + <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="143" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="8oF-hk-183">
  1344 + <rect key="frame" x="0.0" y="158" width="375" height="460"/>
  1345 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  1346 + <view key="tableFooterView" contentMode="scaleToFill" id="DCR-ac-r7t">
  1347 + <rect key="frame" x="0.0" y="171" width="375" height="1"/>
  1348 + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
  1349 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  1350 + </view>
  1351 + <prototypes>
  1352 + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="identifier" rowHeight="143" id="IlC-3c-gI6" customClass="MicroCourseViewControllerTableViewCell" customModule="YouerLiveVideo" customModuleProvider="target">
  1353 + <rect key="frame" x="0.0" y="28" width="375" height="143"/>
  1354 + <autoresizingMask key="autoresizingMask"/>
  1355 + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="IlC-3c-gI6" id="UCf-3H-9B1">
  1356 + <rect key="frame" x="0.0" y="0.0" width="375" height="143"/>
  1357 + <autoresizingMask key="autoresizingMask"/>
  1358 + <subviews>
  1359 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="qia-pR-e6p">
  1360 + <rect key="frame" x="8" y="27" width="90" height="90"/>
  1361 + <constraints>
  1362 + <constraint firstAttribute="width" secondItem="qia-pR-e6p" secondAttribute="height" multiplier="1:1" id="6Zi-MO-Pqe"/>
  1363 + <constraint firstAttribute="width" constant="90" id="NEy-T9-LCS"/>
  1364 + </constraints>
  1365 + </imageView>
  1366 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="i7I-v8-vVY">
  1367 + <rect key="frame" x="114" y="32" width="165" height="21"/>
  1368 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  1369 + <nil key="textColor"/>
  1370 + <nil key="highlightedColor"/>
  1371 + </label>
  1372 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zNu-DX-cwZ">
  1373 + <rect key="frame" x="114" y="61" width="42" height="21"/>
  1374 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  1375 + <color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
  1376 + <nil key="highlightedColor"/>
  1377 + </label>
  1378 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vTt-gy-eUu">
  1379 + <rect key="frame" x="114" y="90" width="42" height="21"/>
  1380 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  1381 + <color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
  1382 + <nil key="highlightedColor"/>
  1383 + </label>
  1384 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Oz8-OI-zTn">
  1385 + <rect key="frame" x="325" y="90" width="42" height="21"/>
  1386 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
  1387 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  1388 + <nil key="textColor"/>
  1389 + <nil key="highlightedColor"/>
  1390 + </label>
  1391 + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="jqG-kN-3bx">
  1392 + <rect key="frame" x="287" y="25" width="80" height="35"/>
  1393 + <color key="backgroundColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="calibratedRGB"/>
  1394 + <constraints>
  1395 + <constraint firstAttribute="width" constant="80" id="Alz-7v-3a2"/>
  1396 + <constraint firstAttribute="height" constant="35" id="CuG-T4-QtE"/>
  1397 + </constraints>
  1398 + <state key="normal" title="预览">
  1399 + <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
  1400 + </state>
  1401 + <connections>
  1402 + <action selector="pushDetailVC:" destination="IlC-3c-gI6" eventType="touchUpInside" id="3BZ-om-ppg"/>
  1403 + </connections>
  1404 + </button>
  1405 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="anY-xC-gfl">
  1406 + <rect key="frame" x="297" y="91" width="20" height="20"/>
  1407 + <constraints>
  1408 + <constraint firstAttribute="width" constant="20" id="FKY-fi-PSd"/>
  1409 + <constraint firstAttribute="width" secondItem="anY-xC-gfl" secondAttribute="height" multiplier="1:1" id="mbe-Kb-gfh"/>
  1410 + </constraints>
  1411 + </imageView>
  1412 + </subviews>
  1413 + <constraints>
  1414 + <constraint firstItem="zNu-DX-cwZ" firstAttribute="leading" secondItem="i7I-v8-vVY" secondAttribute="leading" id="Ass-bq-7Zl"/>
  1415 + <constraint firstItem="vTt-gy-eUu" firstAttribute="top" secondItem="zNu-DX-cwZ" secondAttribute="bottom" constant="8" id="EPW-Rs-PaM"/>
  1416 + <constraint firstItem="jqG-kN-3bx" firstAttribute="centerY" secondItem="i7I-v8-vVY" secondAttribute="centerY" id="FzT-Id-AQY"/>
  1417 + <constraint firstItem="zNu-DX-cwZ" firstAttribute="top" secondItem="i7I-v8-vVY" secondAttribute="bottom" constant="8" id="H53-aB-vEZ"/>
  1418 + <constraint firstItem="zNu-DX-cwZ" firstAttribute="centerY" secondItem="UCf-3H-9B1" secondAttribute="centerY" id="O4n-ki-c8K"/>
  1419 + <constraint firstAttribute="trailing" secondItem="jqG-kN-3bx" secondAttribute="trailing" constant="8" id="XZT-II-opg"/>
  1420 + <constraint firstItem="Oz8-OI-zTn" firstAttribute="centerY" secondItem="vTt-gy-eUu" secondAttribute="centerY" id="bae-Ey-mlX"/>
  1421 + <constraint firstItem="vTt-gy-eUu" firstAttribute="leading" secondItem="qia-pR-e6p" secondAttribute="trailing" constant="16" id="cFH-UN-Qnu"/>
  1422 + <constraint firstItem="jqG-kN-3bx" firstAttribute="leading" secondItem="i7I-v8-vVY" secondAttribute="trailing" constant="8" id="cNZ-nJ-MDk"/>
  1423 + <constraint firstItem="qia-pR-e6p" firstAttribute="centerY" secondItem="UCf-3H-9B1" secondAttribute="centerY" id="hob-KD-eVv"/>
  1424 + <constraint firstItem="vTt-gy-eUu" firstAttribute="leading" secondItem="i7I-v8-vVY" secondAttribute="leading" id="kOI-Sj-8v1"/>
  1425 + <constraint firstAttribute="trailing" secondItem="Oz8-OI-zTn" secondAttribute="trailing" constant="8" id="kfE-GK-2DJ"/>
  1426 + <constraint firstItem="qia-pR-e6p" firstAttribute="leading" secondItem="UCf-3H-9B1" secondAttribute="leading" constant="8" id="kx2-7H-uKO"/>
  1427 + <constraint firstItem="Oz8-OI-zTn" firstAttribute="leading" secondItem="anY-xC-gfl" secondAttribute="trailing" constant="8" id="pT2-e6-5EY"/>
  1428 + <constraint firstItem="anY-xC-gfl" firstAttribute="centerY" secondItem="vTt-gy-eUu" secondAttribute="centerY" id="rfk-nx-qtP"/>
  1429 + </constraints>
  1430 + </tableViewCellContentView>
  1431 + <connections>
  1432 + <outlet property="downLoadCountLabel" destination="Oz8-OI-zTn" id="sKQ-bv-sBt"/>
  1433 + <outlet property="iconImageView" destination="qia-pR-e6p" id="Sjz-Ns-eLD"/>
  1434 + <outlet property="timeLabel" destination="vTt-gy-eUu" id="P8r-uE-wDA"/>
  1435 + <outlet property="titleLabel" destination="i7I-v8-vVY" id="pfz-yx-JR0"/>
  1436 + <outlet property="updateTeacherLabel" destination="zNu-DX-cwZ" id="dI3-Y7-cVY"/>
  1437 + </connections>
  1438 + </tableViewCell>
  1439 + </prototypes>
  1440 + <connections>
  1441 + <outlet property="dataSource" destination="VUr-8w-9Ht" id="m6b-QU-EJf"/>
  1442 + <outlet property="delegate" destination="VUr-8w-9Ht" id="bYV-x9-9gZ"/>
  1443 + </connections>
  1444 + </tableView>
  1445 + <view hidden="YES" alpha="0.30000001192092896" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="oeL-YH-vse">
  1446 + <rect key="frame" x="0.0" y="64" width="375" height="554"/>
  1447 + <color key="backgroundColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
  1448 + <gestureRecognizers/>
  1449 + <connections>
  1450 + <outletCollection property="gestureRecognizers" destination="8sK-Sj-kmY" appends="YES" id="KFj-3I-QoP"/>
  1451 + </connections>
  1452 + </view>
  1453 + <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="Yg9-Z1-sYr">
  1454 + <rect key="frame" x="0.0" y="64" width="375" height="44"/>
  1455 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  1456 + <constraints>
  1457 + <constraint firstAttribute="height" constant="44" id="s3i-TZ-HsX"/>
  1458 + </constraints>
  1459 + <prototypes>
  1460 + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="cell" id="OoX-sY-EJ0">
  1461 + <rect key="frame" x="0.0" y="28" width="375" height="44"/>
  1462 + <autoresizingMask key="autoresizingMask"/>
  1463 + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="OoX-sY-EJ0" id="cE2-H1-hR9">
  1464 + <rect key="frame" x="0.0" y="0.0" width="375" height="43"/>
  1465 + <autoresizingMask key="autoresizingMask"/>
  1466 + </tableViewCellContentView>
  1467 + </tableViewCell>
  1468 + </prototypes>
  1469 + <connections>
  1470 + <outlet property="dataSource" destination="VUr-8w-9Ht" id="GQe-Yj-UHr"/>
  1471 + <outlet property="delegate" destination="VUr-8w-9Ht" id="ZYz-Kt-cgh"/>
  1472 + </connections>
  1473 + </tableView>
  1474 + </subviews>
  1475 + <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
  1476 + <constraints>
  1477 + <constraint firstItem="42u-nx-d5t" firstAttribute="top" secondItem="8oF-hk-183" secondAttribute="bottom" id="1yo-Qy-DQK"/>
  1478 + <constraint firstAttribute="trailing" secondItem="lPK-PF-JgI" secondAttribute="trailing" id="6hx-sN-wTU"/>
  1479 + <constraint firstItem="8oF-hk-183" firstAttribute="top" secondItem="lPK-PF-JgI" secondAttribute="bottom" id="BDa-XJ-LSu"/>
  1480 + <constraint firstItem="8oF-hk-183" firstAttribute="leading" secondItem="xBZ-wH-l5a" secondAttribute="leading" id="C7J-5R-PYq"/>
  1481 + <constraint firstItem="lPK-PF-JgI" firstAttribute="top" secondItem="Laj-Zw-b49" secondAttribute="bottom" constant="44" id="CEn-Bg-nNB"/>
  1482 + <constraint firstItem="Yg9-Z1-sYr" firstAttribute="leading" secondItem="xBZ-wH-l5a" secondAttribute="leading" id="GrW-hf-xZM"/>
  1483 + <constraint firstItem="42u-nx-d5t" firstAttribute="top" secondItem="oeL-YH-vse" secondAttribute="bottom" id="J26-Py-ZAB"/>
  1484 + <constraint firstAttribute="trailing" secondItem="8oF-hk-183" secondAttribute="trailing" id="RHq-uI-I05"/>
  1485 + <constraint firstItem="oeL-YH-vse" firstAttribute="top" secondItem="Laj-Zw-b49" secondAttribute="bottom" id="Uct-5h-aXd"/>
  1486 + <constraint firstItem="oeL-YH-vse" firstAttribute="leading" secondItem="xBZ-wH-l5a" secondAttribute="leading" id="VHh-4q-p5A"/>
  1487 + <constraint firstAttribute="trailing" secondItem="oeL-YH-vse" secondAttribute="trailing" id="gfN-Gs-rxt"/>
  1488 + <constraint firstAttribute="trailing" secondItem="Yg9-Z1-sYr" secondAttribute="trailing" id="jdR-Zl-EUe"/>
  1489 + <constraint firstItem="lPK-PF-JgI" firstAttribute="leading" secondItem="xBZ-wH-l5a" secondAttribute="leading" id="jx1-xS-L8s"/>
  1490 + <constraint firstItem="Yg9-Z1-sYr" firstAttribute="top" secondItem="Laj-Zw-b49" secondAttribute="bottom" id="sau-r2-QN3"/>
  1491 + </constraints>
  1492 + </view>
  1493 + <navigationItem key="navigationItem" title="微课" id="Lae-MV-KD3"/>
  1494 + <connections>
  1495 + <outlet property="grayView" destination="oeL-YH-vse" id="BIQ-VX-L39"/>
  1496 + <outlet property="searchDisplayController" destination="k0q-9e-h1a" id="gOP-tZ-Dkg"/>
  1497 + <outlet property="searchTableHeight" destination="s3i-TZ-HsX" id="KmT-xe-n12"/>
  1498 + <outlet property="searchTableView" destination="Yg9-Z1-sYr" id="Kd3-AM-8Bo"/>
  1499 + <outlet property="tableView" destination="8oF-hk-183" id="Nph-zZ-Dw1"/>
  1500 + </connections>
  1501 + </viewController>
  1502 + <placeholder placeholderIdentifier="IBFirstResponder" id="ke0-TQ-V4A" userLabel="First Responder" sceneMemberID="firstResponder"/>
  1503 + <searchDisplayController id="OBp-V3-aA1">
  1504 + <connections>
  1505 + <outlet property="delegate" destination="VUr-8w-9Ht" id="5WH-a0-hwZ"/>
  1506 + <outlet property="searchContentsController" destination="VUr-8w-9Ht" id="BVs-1N-QBz"/>
  1507 + <outlet property="searchResultsDataSource" destination="VUr-8w-9Ht" id="uls-gM-d1p"/>
  1508 + <outlet property="searchResultsDelegate" destination="VUr-8w-9Ht" id="xj5-eO-hc3"/>
  1509 + </connections>
  1510 + </searchDisplayController>
  1511 + <tapGestureRecognizer id="8sK-Sj-kmY">
  1512 + <connections>
  1513 + <action selector="cancleSearchActivit:" destination="VUr-8w-9Ht" id="qlk-qa-KJe"/>
  1514 + </connections>
  1515 + </tapGestureRecognizer>
  1516 + </objects>
  1517 + <point key="canvasLocation" x="-340" y="2112.5937031484259"/>
  1518 + </scene>
1239 </scenes> 1519 </scenes>
1240 <resources> 1520 <resources>
1241 <image name="arrow" width="33" height="33"/> 1521 <image name="arrow" width="33" height="33"/>
YouerLiveVideo/YouerLiveVideo/controllers/HomePage/HomePage.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"> 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">
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>
6 <dependencies> 6 <dependencies>
7 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11757"/> 7 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11757"/>
  8 + <capability name="Constraints to layout margins" minToolsVersion="6.0"/>
8 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> 9 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
9 </dependencies> 10 </dependencies>
10 <scenes> 11 <scenes>
11 - <!--View Controller-->  
12 - <scene sceneID="eHj-Hl-wWx"> 12 + <!--排行-->
  13 + <scene sceneID="dY5-uz-H10">
13 <objects> 14 <objects>
14 - <viewController id="LjZ-4M-CWC" sceneMemberID="viewController">  
15 - <layoutGuides>  
16 - <viewControllerLayoutGuide type="top" id="yeh-XP-HPd"/>  
17 - <viewControllerLayoutGuide type="bottom" id="vkl-Ah-CiJ"/>  
18 - </layoutGuides>  
19 - <view key="view" contentMode="scaleToFill" id="Hyp-9a-Mci"> 15 + <tableViewController storyboardIdentifier="RankingTableViewController" automaticallyAdjustsScrollViewInsets="NO" hidesBottomBarWhenPushed="YES" id="xTw-6t-Upd" customClass="RankingTableViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController">
  16 + <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="339" sectionHeaderHeight="28" sectionFooterHeight="28" id="o1U-D1-qqQ">
20 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> 17 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
21 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> 18 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
22 - <subviews>  
23 - <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="157" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="YOa-J8-2UM">  
24 - <rect key="frame" x="0.0" y="20" width="375" height="647"/>  
25 - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>  
26 - <prototypes>  
27 - <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="157" id="SLW-Wm-iau">  
28 - <rect key="frame" x="0.0" y="28" width="375" height="157"/>  
29 - <autoresizingMask key="autoresizingMask"/>  
30 - <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="SLW-Wm-iau" id="QXN-J0-KgA">  
31 - <rect key="frame" x="0.0" y="0.0" width="375" height="157"/>  
32 - <autoresizingMask key="autoresizingMask"/> 19 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  20 + <prototypes>
  21 + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="ItemTableViewCell" rowHeight="339" id="cns-vb-pIQ" customClass="ItemTableViewCell" customModule="YouerLiveVideo" customModuleProvider="target">
  22 + <rect key="frame" x="0.0" y="28" width="375" height="339"/>
  23 + <autoresizingMask key="autoresizingMask"/>
  24 + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="cns-vb-pIQ" id="88M-wr-UJ8">
  25 + <rect key="frame" x="0.0" y="0.0" width="375" height="339"/>
  26 + <autoresizingMask key="autoresizingMask"/>
  27 + <subviews>
  28 + <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="学校排行" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="EZa-z2-arr">
  29 + <rect key="frame" x="8" y="15" width="65.5" height="19.5"/>
  30 + <fontDescription key="fontDescription" type="system" pointSize="16"/>
  31 + <nil key="textColor"/>
  32 + <nil key="highlightedColor"/>
  33 + </label>
  34 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ckB-W3-VJE">
  35 + <rect key="frame" x="0.0" y="44" width="375" height="44"/>
33 <subviews> 36 <subviews>
34 - <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="PAj-p1-GN4">  
35 - <rect key="frame" x="8" y="4" width="359" height="148.5"/>  
36 - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>  
37 - <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="0.0" minimumInteritemSpacing="0.0" id="Yxz-uf-KtO">  
38 - <size key="itemSize" width="111" height="147"/>  
39 - <size key="headerReferenceSize" width="0.0" height="0.0"/>  
40 - <size key="footerReferenceSize" width="0.0" height="0.0"/>  
41 - <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>  
42 - </collectionViewFlowLayout>  
43 - <cells>  
44 - <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" id="Azu-vg-rrB">  
45 - <rect key="frame" x="0.0" y="0.0" width="111" height="147"/>  
46 - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>  
47 - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">  
48 - <rect key="frame" x="0.0" y="0.0" width="111" height="147"/>  
49 - <autoresizingMask key="autoresizingMask"/>  
50 - </view>  
51 - </collectionViewCell>  
52 - </cells>  
53 - </collectionView> 37 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="综合排名" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="SaW-7O-OkT">
  38 + <rect key="frame" x="18" y="13" width="61.5" height="18"/>
  39 + <fontDescription key="fontDescription" type="system" pointSize="15"/>
  40 + <nil key="textColor"/>
  41 + <nil key="highlightedColor"/>
  42 + </label>
  43 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="botoom_image" translatesAutoresizingMaskIntoConstraints="NO" id="NNQ-07-hic">
  44 + <rect key="frame" x="352" y="15" width="15" height="15"/>
  45 + <constraints>
  46 + <constraint firstAttribute="height" constant="15" id="J3l-xy-BQF"/>
  47 + <constraint firstAttribute="width" constant="15" id="uel-30-fcR"/>
  48 + </constraints>
  49 + </imageView>
  50 + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ss9-IN-p7o">
  51 + <rect key="frame" x="331" y="0.0" width="44" height="44"/>
  52 + <constraints>
  53 + <constraint firstAttribute="width" constant="44" id="i7f-rP-uMp"/>
  54 + </constraints>
  55 + <connections>
  56 + <action selector="openOrCloseAction:" destination="cns-vb-pIQ" eventType="touchUpInside" id="pnJ-fx-YyR"/>
  57 + </connections>
  58 + </button>
54 </subviews> 59 </subviews>
  60 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
55 <constraints> 61 <constraints>
56 - <constraint firstItem="PAj-p1-GN4" firstAttribute="top" secondItem="QXN-J0-KgA" secondAttribute="top" constant="4" id="5zz-bd-O6i"/>  
57 - <constraint firstItem="PAj-p1-GN4" firstAttribute="leading" secondItem="QXN-J0-KgA" secondAttribute="leading" constant="8" id="8MC-Zz-u5f"/>  
58 - <constraint firstAttribute="trailing" secondItem="PAj-p1-GN4" secondAttribute="trailing" constant="8" id="sTQ-kz-OzQ"/>  
59 - <constraint firstAttribute="bottom" secondItem="PAj-p1-GN4" secondAttribute="bottom" constant="4" id="w43-em-me9"/> 62 + <constraint firstItem="NNQ-07-hic" firstAttribute="centerY" secondItem="ckB-W3-VJE" secondAttribute="centerY" id="0Rf-nE-jAo"/>
  63 + <constraint firstAttribute="trailing" secondItem="NNQ-07-hic" secondAttribute="trailing" constant="8" id="6G8-VB-s2n"/>
  64 + <constraint firstAttribute="bottom" secondItem="ss9-IN-p7o" secondAttribute="bottom" id="PLC-c5-EFr"/>
  65 + <constraint firstAttribute="height" constant="44" id="Wyr-GU-aaT"/>
  66 + <constraint firstAttribute="trailing" secondItem="ss9-IN-p7o" secondAttribute="trailing" id="aAO-V3-sgD"/>
  67 + <constraint firstItem="ss9-IN-p7o" firstAttribute="top" secondItem="ckB-W3-VJE" secondAttribute="top" id="bxF-ra-1Fc"/>
  68 + <constraint firstItem="SaW-7O-OkT" firstAttribute="centerY" secondItem="ckB-W3-VJE" secondAttribute="centerY" id="ne0-jg-T5L"/>
  69 + <constraint firstItem="SaW-7O-OkT" firstAttribute="leading" secondItem="ckB-W3-VJE" secondAttribute="leading" constant="18" id="wS7-H2-6Hb"/>
60 </constraints> 70 </constraints>
61 - </tableViewCellContentView>  
62 - </tableViewCell>  
63 - </prototypes>  
64 - </tableView>  
65 - </subviews>  
66 - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>  
67 - <constraints>  
68 - <constraint firstItem="YOa-J8-2UM" firstAttribute="leading" secondItem="Hyp-9a-Mci" secondAttribute="leading" id="7D9-Dd-nwr"/>  
69 - <constraint firstItem="vkl-Ah-CiJ" firstAttribute="top" secondItem="YOa-J8-2UM" secondAttribute="bottom" id="KeN-hy-x2G"/>  
70 - <constraint firstItem="YOa-J8-2UM" firstAttribute="top" secondItem="yeh-XP-HPd" secondAttribute="bottom" id="d83-an-LAU"/>  
71 - <constraint firstAttribute="trailing" secondItem="YOa-J8-2UM" secondAttribute="trailing" id="kit-ZG-l6n"/>  
72 - </constraints>  
73 - </view>  
74 - </viewController>  
75 - <placeholder placeholderIdentifier="IBFirstResponder" id="AHa-9V-Fv6" userLabel="First Responder" sceneMemberID="firstResponder"/> 71 + </view>
  72 + <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="M9F-0f-7Zj">
  73 + <rect key="frame" x="0.0" y="88" width="375" height="251"/>
  74 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  75 + <prototypes>
  76 + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" restorationIdentifier="cell" selectionStyle="default" indentationWidth="10" reuseIdentifier="cell" id="deq-A6-QAT">
  77 + <rect key="frame" x="0.0" y="28" width="375" height="44"/>
  78 + <autoresizingMask key="autoresizingMask"/>
  79 + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="deq-A6-QAT" id="jel-9N-Twh">
  80 + <rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
  81 + <autoresizingMask key="autoresizingMask"/>
  82 + </tableViewCellContentView>
  83 + </tableViewCell>
  84 + </prototypes>
  85 + <connections>
  86 + <outlet property="dataSource" destination="cns-vb-pIQ" id="UYa-xu-7SP"/>
  87 + <outlet property="delegate" destination="cns-vb-pIQ" id="XE2-JN-ndb"/>
  88 + </connections>
  89 + </tableView>
  90 + </subviews>
  91 + <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
  92 + <constraints>
  93 + <constraint firstItem="M9F-0f-7Zj" firstAttribute="leading" secondItem="88M-wr-UJ8" secondAttribute="leading" id="05H-J5-3ft"/>
  94 + <constraint firstItem="ckB-W3-VJE" firstAttribute="leading" secondItem="88M-wr-UJ8" secondAttribute="leading" id="Llv-Cj-qUv"/>
  95 + <constraint firstItem="EZa-z2-arr" firstAttribute="top" secondItem="88M-wr-UJ8" secondAttribute="topMargin" constant="7" id="Y6P-C4-Lnh"/>
  96 + <constraint firstItem="ckB-W3-VJE" firstAttribute="top" secondItem="88M-wr-UJ8" secondAttribute="top" constant="44" id="YYa-p3-V5Z"/>
  97 + <constraint firstAttribute="trailing" secondItem="M9F-0f-7Zj" secondAttribute="trailing" id="Zee-lj-9ac"/>
  98 + <constraint firstAttribute="bottom" secondItem="M9F-0f-7Zj" secondAttribute="bottom" id="gJP-sa-9DJ"/>
  99 + <constraint firstAttribute="trailing" secondItem="ckB-W3-VJE" secondAttribute="trailing" id="grJ-oO-BaR"/>
  100 + <constraint firstAttribute="leadingMargin" secondItem="EZa-z2-arr" secondAttribute="leading" id="pPi-1h-WTn"/>
  101 + <constraint firstItem="M9F-0f-7Zj" firstAttribute="top" secondItem="ckB-W3-VJE" secondAttribute="bottom" id="seG-Ge-GIf"/>
  102 + </constraints>
  103 + </tableViewCellContentView>
  104 + <connections>
  105 + <outlet property="sectionTitleLabel" destination="EZa-z2-arr" id="riK-aS-fgl"/>
  106 + <outlet property="subTableView" destination="M9F-0f-7Zj" id="TzF-ki-ccn"/>
  107 + <outlet property="tableViewButtom" destination="gJP-sa-9DJ" id="hjD-Q3-nGW"/>
  108 + <outlet property="titleImageView" destination="NNQ-07-hic" id="FDL-Do-NZC"/>
  109 + <outlet property="titleLabel" destination="SaW-7O-OkT" id="sqD-nr-S3a"/>
  110 + <outlet property="titleViewTop" destination="YYa-p3-V5Z" id="hok-Ka-n3E"/>
  111 + </connections>
  112 + </tableViewCell>
  113 + </prototypes>
  114 + <sections/>
  115 + <connections>
  116 + <outlet property="dataSource" destination="xTw-6t-Upd" id="k4J-Ub-G0Z"/>
  117 + <outlet property="delegate" destination="xTw-6t-Upd" id="9YG-mr-onA"/>
  118 + </connections>
  119 + </tableView>
  120 + <navigationItem key="navigationItem" title="排行" id="JPt-wk-Pdj"/>
  121 + <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
  122 + </tableViewController>
  123 + <placeholder placeholderIdentifier="IBFirstResponder" id="mqx-56-Al8" userLabel="First Responder" sceneMemberID="firstResponder"/>
76 </objects> 124 </objects>
77 - <point key="canvasLocation" x="164" y="253.2233883058471"/> 125 + <point key="canvasLocation" x="196" y="260.41979010494754"/>
78 </scene> 126 </scene>
79 </scenes> 127 </scenes>
  128 + <resources>
  129 + <image name="botoom_image" width="48" height="48"/>
  130 + </resources>
80 </document> 131 </document>
YouerLiveVideo/YouerLiveVideo/controllers/HomePage/MainHomeTableViewController.swift
@@ -21,7 +21,7 @@ class MainHomeTableViewController: UITableViewController { @@ -21,7 +21,7 @@ class MainHomeTableViewController: UITableViewController {
21 func settingIconAndTitle(){ 21 func settingIconAndTitle(){
22 let photo=UIImageView(frame: CGRect(x: 0, y: 0, width: 35, height: 35)) 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")) 23 photo.sd_setImage(with: URL(string: current.photo()), placeholderImage: UIImage(named: "defphoto"))
24 - photo.layer.cornerRadius=5 24 + photo.layer.cornerRadius=35/2
25 photo.layer.masksToBounds=true 25 photo.layer.masksToBounds=true
26 let leftBarButtonItem=UIBarButtonItem(customView: photo) 26 let leftBarButtonItem=UIBarButtonItem(customView: photo)
27 self.navigationItem.leftBarButtonItem=leftBarButtonItem 27 self.navigationItem.leftBarButtonItem=leftBarButtonItem
@@ -80,12 +80,14 @@ class MainHomeTableViewController: UITableViewController { @@ -80,12 +80,14 @@ class MainHomeTableViewController: UITableViewController {
80 return 4 80 return 4
81 } 81 }
82 override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 82 override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
83 - if indexPath.row==0 || indexPath.row==1{  
84 - return (getScreenWidth()-16)/2+86 83 + if indexPath.row==0{
  84 + return (getScreenWidth()-45)/2/33*25+80
  85 + }else if indexPath.row==1{
  86 + return (getScreenWidth()-45)/2/33*16+132
85 }else if indexPath.row==2{ 87 }else if indexPath.row==2{
86 - return (getScreenWidth()-16)/3+103+86 88 + return (getScreenWidth()-40)/3+170.5
87 }else{ 89 }else{
88 - return (getScreenWidth()-30)/3+30+86 90 + return (getScreenWidth()-40)/3+110
89 } 91 }
90 } 92 }
91 override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 93 override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
@@ -111,6 +113,11 @@ class MainHomeTableViewController: UITableViewController { @@ -111,6 +113,11 @@ class MainHomeTableViewController: UITableViewController {
111 */ 113 */
112 override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 114 override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
113 NSLog("点击了第\(indexPath.row)个cell") 115 NSLog("点击了第\(indexPath.row)个cell")
  116 + if indexPath.row==0{
  117 + //排行
  118 + let vc = UIStoryboard(name: "HomePage", bundle: nil).instantiateViewController(withIdentifier: "RankingTableViewController") as! RankingTableViewController
  119 + self.navigationController?.pushViewController(vc, animated: true)
  120 + }
114 } 121 }
115 122
116 123
@@ -148,7 +155,7 @@ class HomeFirstTableViewCell: UITableViewCell,UICollectionViewDelegate,UICollect @@ -148,7 +155,7 @@ class HomeFirstTableViewCell: UITableViewCell,UICollectionViewDelegate,UICollect
148 } 155 }
149 } 156 }
150 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 157 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
151 - return CGSize(width: (getScreenWidth()-16)/2, height: (getScreenWidth()-16)/2) 158 + return CGSize(width: (getScreenWidth()-45)/2, height: (getScreenWidth()-45)/2/33*25)
152 } 159 }
153 160
154 func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 161 func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
@@ -202,7 +209,7 @@ class HomeSecondTableViewCell: UITableViewCell,UICollectionViewDelegate,UICollec @@ -202,7 +209,7 @@ class HomeSecondTableViewCell: UITableViewCell,UICollectionViewDelegate,UICollec
202 NSLog("点击了****\(dataSet[indexPath.row])") 209 NSLog("点击了****\(dataSet[indexPath.row])")
203 } 210 }
204 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 211 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
205 - return CGSize(width: (getScreenWidth()-16)/2, height: (getScreenWidth()-16)/2) 212 + return CGSize(width: (getScreenWidth()-45)/2, height: ((getScreenWidth()-45)/2/33*16+67))
206 } 213 }
207 func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 214 func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
208 return dataSet.count 215 return dataSet.count
@@ -324,7 +331,7 @@ class HomeThirdTableViewCell: UITableViewCell,UICollectionViewDelegate,UICollect @@ -324,7 +331,7 @@ class HomeThirdTableViewCell: UITableViewCell,UICollectionViewDelegate,UICollect
324 NSLog("点击了****\(dataSet[indexPath.row])") 331 NSLog("点击了****\(dataSet[indexPath.row])")
325 } 332 }
326 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 333 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
327 - return CGSize(width: (getScreenWidth()-16)/3, height: (getScreenWidth()-16)/3+103) 334 + return CGSize(width: (getScreenWidth()-40)/3, height: (getScreenWidth()-40)/3+105.5)
328 } 335 }
329 func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 336 func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
330 return dataSet.count 337 return dataSet.count
@@ -383,7 +390,7 @@ class HomeFourTableViewCell: UITableViewCell,UICollectionViewDelegate,UICollecti @@ -383,7 +390,7 @@ class HomeFourTableViewCell: UITableViewCell,UICollectionViewDelegate,UICollecti
383 NSLog("点击了****\(dataSet[indexPath.row])") 390 NSLog("点击了****\(dataSet[indexPath.row])")
384 } 391 }
385 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 392 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
386 - return CGSize(width: (getScreenWidth()-32)/3, height: (getScreenWidth()-32)/3+30) 393 + return CGSize(width: (getScreenWidth()-40)/3, height: (getScreenWidth()-40)/3+30)
387 } 394 }
388 func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 395 func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
389 return dataSet.count 396 return dataSet.count
YouerLiveVideo/YouerLiveVideo/controllers/HomePage/RankingTableViewController.swift 0 → 100644
@@ -0,0 +1,279 @@ @@ -0,0 +1,279 @@
  1 +//
  2 +// RankingTableViewController.swift
  3 +// YouerLiveVideo
  4 +//
  5 +// Created by 葛建军 on 17/5/20.
  6 +// Copyright © 2017年 左丞. All rights reserved.
  7 +//
  8 +
  9 +import UIKit
  10 +
  11 +class RankingTableViewController: UITableViewController {
  12 + var openIndexAry:[Int]=[0,4] //记录那些是展开状态
  13 + var allDic:[Int:[String]]=Dictionary<Int,[String]>()
  14 + var ary:[String]=["综合排名","资源贡献","下载排名","阅读排名","综合排名","资源贡献","下载排名","阅读排名"]
  15 + override func viewDidLoad() {
  16 + super.viewDidLoad()
  17 + getAllSubRankings()
  18 + }
  19 + func getAllSubRankings(){
  20 + for i in 0..<8{
  21 + allDic.updateValue([], forKey: i)
  22 + }
  23 + AppDelegate.instance().httpServer.getSchoolGeneral { (str, error) in
  24 + if error==nil {
  25 + if JSON.fromString(jsonString: str)!["status"].intValue == 1{
  26 + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in
  27 + var lineAry:[String]=[]
  28 + for item in JSON.fromString(jsonString: str)!["data"].arrayValue {
  29 + lineAry.append(item["f_SchoolName"].stringValue)
  30 + }
  31 + self.allDic.updateValue(lineAry, forKey: 0)
  32 + self.tableView.reloadData()
  33 + }, failHandler: { (error) in
  34 + self.view.makeToast("排名失败:\(error.localizedDescription)")
  35 + })
  36 + }else{
  37 + self.view.makeToast("获取排名失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)")
  38 + }
  39 + }else{
  40 + self.view.makeToast("获取排名失败:\(error!.description)")
  41 + }
  42 + }
  43 + AppDelegate.instance().httpServer.getSchoolUpload { (str, error) in
  44 + if error==nil {
  45 + if JSON.fromString(jsonString: str)!["status"].intValue == 1{
  46 + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in
  47 + var lineAry:[String]=[]
  48 + for item in JSON.fromString(jsonString: str)!["data"].arrayValue {
  49 + lineAry.append(item["f_SchoolName"].stringValue)
  50 + }
  51 + self.allDic.updateValue(lineAry, forKey: 1)
  52 + self.tableView.reloadData()
  53 + }, failHandler: { (error) in
  54 + self.view.makeToast("排名失败:\(error.localizedDescription)")
  55 + })
  56 + }else{
  57 + self.view.makeToast("获取排名失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)")
  58 + }
  59 + }else{
  60 + self.view.makeToast("获取排名失败:\(error!.description)")
  61 + }
  62 + }
  63 + AppDelegate.instance().httpServer.getSchoolDownloads { (str, error) in
  64 + if error==nil {
  65 + if JSON.fromString(jsonString: str)!["status"].intValue == 1{
  66 + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in
  67 + var lineAry:[String]=[]
  68 + for item in JSON.fromString(jsonString: str)!["data"].arrayValue {
  69 + lineAry.append(item["f_SchoolName"].stringValue)
  70 + }
  71 + self.allDic.updateValue(lineAry, forKey: 2)
  72 + self.tableView.reloadData()
  73 + }, failHandler: { (error) in
  74 + self.view.makeToast("排名失败:\(error.localizedDescription)")
  75 + })
  76 + }else{
  77 + self.view.makeToast("获取排名失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)")
  78 + }
  79 + }else{
  80 + self.view.makeToast("获取排名失败:\(error!.description)")
  81 + }
  82 + }
  83 + AppDelegate.instance().httpServer.getSchoolPv { (str, error) in
  84 + if error==nil {
  85 + if JSON.fromString(jsonString: str)!["status"].intValue == 1{
  86 + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in
  87 + var lineAry:[String]=[]
  88 + for item in JSON.fromString(jsonString: str)!["data"].arrayValue {
  89 + lineAry.append(item["f_SchoolName"].stringValue)
  90 + }
  91 + self.allDic.updateValue(lineAry, forKey: 3)
  92 + self.tableView.reloadData()
  93 + }, failHandler: { (error) in
  94 + self.view.makeToast("排名失败:\(error.localizedDescription)")
  95 + })
  96 + }else{
  97 + self.view.makeToast("获取排名失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)")
  98 + }
  99 + }else{
  100 + self.view.makeToast("获取排名失败:\(error!.description)")
  101 + }
  102 + }
  103 + AppDelegate.instance().httpServer.getTeacherGenerals { (str, error) in
  104 + if error==nil {
  105 + if JSON.fromString(jsonString: str)!["status"].intValue == 1{
  106 + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in
  107 + var lineAry:[String]=[]
  108 + for item in JSON.fromString(jsonString: str)!["data"].arrayValue {
  109 + lineAry.append(item["f_SchoolName"].stringValue)
  110 + }
  111 + self.allDic.updateValue(lineAry, forKey: 4)
  112 + self.tableView.reloadData()
  113 + }, failHandler: { (error) in
  114 + self.view.makeToast("排名失败:\(error.localizedDescription)")
  115 + })
  116 + }else{
  117 + self.view.makeToast("获取排名失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)")
  118 + }
  119 + }else{
  120 + self.view.makeToast("获取排名失败:\(error!.description)")
  121 + }
  122 + }
  123 + AppDelegate.instance().httpServer.getTeacherUpload { (str, error) in
  124 + if error==nil {
  125 + if JSON.fromString(jsonString: str)!["status"].intValue == 1{
  126 + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in
  127 + var lineAry:[String]=[]
  128 + for item in JSON.fromString(jsonString: str)!["data"].arrayValue {
  129 + lineAry.append(item["f_SchoolName"].stringValue)
  130 + }
  131 + self.allDic.updateValue(lineAry, forKey: 5)
  132 + self.tableView.reloadData()
  133 + }, failHandler: { (error) in
  134 + self.view.makeToast("排名失败:\(error.localizedDescription)")
  135 + })
  136 + }else{
  137 + self.view.makeToast("获取排名失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)")
  138 + }
  139 + }else{
  140 + self.view.makeToast("获取排名失败:\(error!.description)")
  141 + }
  142 + }
  143 + AppDelegate.instance().httpServer.getTeacherDownload { (str, error) in
  144 + if error==nil {
  145 + if JSON.fromString(jsonString: str)!["status"].intValue == 1{
  146 + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in
  147 + var lineAry:[String]=[]
  148 + for item in JSON.fromString(jsonString: str)!["data"].arrayValue {
  149 + lineAry.append(item["f_SchoolName"].stringValue)
  150 + }
  151 + self.allDic.updateValue(lineAry, forKey: 6)
  152 + self.tableView.reloadData()
  153 + }, failHandler: { (error) in
  154 + self.view.makeToast("排名失败:\(error.localizedDescription)")
  155 + })
  156 + }else{
  157 + self.view.makeToast("获取排名失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)")
  158 + }
  159 + }else{
  160 + self.view.makeToast("获取排名失败:\(error!.description)")
  161 + }
  162 + }
  163 + AppDelegate.instance().httpServer.getTeacherPvs { (str, error) in
  164 + if error==nil {
  165 + if JSON.fromString(jsonString: str)!["status"].intValue == 1{
  166 + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in
  167 + var lineAry:[String]=[]
  168 + for item in JSON.fromString(jsonString: str)!["data"].arrayValue {
  169 + lineAry.append(item["f_SchoolName"].stringValue)
  170 + }
  171 + self.allDic.updateValue(lineAry, forKey: 7)
  172 + self.tableView.reloadData()
  173 + }, failHandler: { (error) in
  174 + self.view.makeToast("排名失败:\(error.localizedDescription)")
  175 + })
  176 + }else{
  177 + self.view.makeToast("获取排名失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)")
  178 + }
  179 + }else{
  180 + self.view.makeToast("获取排名失败:\(error!.description)")
  181 + }
  182 + }
  183 + }
  184 + override func didReceiveMemoryWarning() {
  185 + super.didReceiveMemoryWarning()
  186 + }
  187 + // MARK: - Table view data source
  188 + override func numberOfSections(in tableView: UITableView) -> Int {
  189 + return 1
  190 + }
  191 +
  192 + override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  193 + return 8
  194 + }
  195 + override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
  196 + var height:CGFloat=44
  197 + if indexPath.row==0 || indexPath.row==4{
  198 + height=height+44
  199 + }
  200 + if indexPath.row != 3{
  201 + height=height+20
  202 + }
  203 + if openIndexAry.contains(indexPath.row){
  204 + height=height+CGFloat(30*allDic[indexPath.row]!.count)
  205 + }
  206 + return height
  207 + }
  208 + override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  209 + let cell=tableView.dequeueReusableCell(withIdentifier: "ItemTableViewCell", for: indexPath) as! ItemTableViewCell
  210 + cell.superVC=self
  211 + cell.indexPath=indexPath
  212 + if indexPath.row==0{
  213 + cell.sectionTitleLabel.text="学校排行"
  214 + cell.sectionTitleLabel.isHidden=false
  215 + }
  216 + if indexPath.row==4{
  217 + cell.sectionTitleLabel.text="教师排行"
  218 + cell.sectionTitleLabel.isHidden=false
  219 + }
  220 + if indexPath.row==0 || indexPath.row==4{
  221 + cell.titleViewTop.constant=44
  222 + }else{
  223 + cell.titleViewTop.constant=0
  224 + }
  225 + if indexPath.row==3{
  226 + cell.tableViewButtom.constant=0
  227 + }else{
  228 + cell.tableViewButtom.constant=20
  229 + }
  230 + cell.titleLabel.text=ary[indexPath.row]
  231 + if openIndexAry.contains(indexPath.row){
  232 + cell.titleImageView.image=UIImage(named: "botoom_image")
  233 + }else{
  234 + cell.titleImageView.image=UIImage(named: "top_image")
  235 + }
  236 + cell.subTableView.reloadData()
  237 + return cell
  238 + }
  239 +
  240 +}
  241 +class ItemTableViewCell: UITableViewCell,UITableViewDelegate,UITableViewDataSource {
  242 + var superVC:RankingTableViewController?
  243 + var indexPath:IndexPath!
  244 + @IBOutlet var sectionTitleLabel: UILabel!
  245 + @IBOutlet var titleViewTop: NSLayoutConstraint!
  246 + @IBOutlet var subTableView: UITableView!
  247 + @IBOutlet var tableViewButtom: NSLayoutConstraint!
  248 + @IBOutlet var titleLabel: UILabel!
  249 + @IBOutlet var titleImageView: UIImageView!
  250 + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  251 + if superVC != nil {
  252 + if superVC!.openIndexAry.contains(indexPath.row){
  253 + return superVC!.allDic[indexPath.row]!.count
  254 + }else{
  255 + return 0
  256 + }
  257 + }else{
  258 + return 0
  259 + }
  260 + }
  261 + func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
  262 + return 30
  263 + }
  264 + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  265 + let cell=tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
  266 + if superVC != nil {
  267 + cell.textLabel?.text="\(superVC!.allDic[self.indexPath.row]![indexPath.row])"
  268 + }
  269 + return cell
  270 + }
  271 + @IBAction func openOrCloseAction(_ sender: UIButton) {
  272 + if superVC!.openIndexAry.contains(indexPath.row){
  273 + superVC!.openIndexAry.remove(at: getCurrentIndex(item: indexPath.row, arry: superVC!.openIndexAry))
  274 + }else{
  275 + superVC!.openIndexAry.append(indexPath.row)
  276 + }
  277 + superVC!.tableView.reloadData()
  278 + }
  279 +}
YouerLiveVideo/YouerLiveVideo/controllers/MViewController.swift
@@ -20,6 +20,7 @@ class MViewController: UITabBarController { @@ -20,6 +20,7 @@ class MViewController: UITabBarController {
20 super.viewDidLoad() 20 super.viewDidLoad()
21 self.tabBar.tintColor=Theme.topBarColor() 21 self.tabBar.tintColor=Theme.topBarColor()
22 tabBar.barTintColor=UIColor.white 22 tabBar.barTintColor=UIColor.white
  23 + tabBarController?.tabBar.isHidden=true
23 } 24 }
24 25
25 override func didReceiveMemoryWarning() { 26 override func didReceiveMemoryWarning() {
YouerLiveVideo/YouerLiveVideo/controllers/MicroCourse/MicroCourseViewController.swift
@@ -8,28 +8,176 @@ @@ -8,28 +8,176 @@
8 8
9 import UIKit 9 import UIKit
10 10
11 -class MicroCourseViewController: UIViewController {  
12 - 11 +class MicroCourseViewController: UIViewController,UITableViewDelegate,UITableViewDataSource,UISearchControllerDelegate,UISearchResultsUpdating {
  12 + @IBOutlet var tableView: UITableView!
  13 +
  14 + @IBOutlet var grayView: UIView!
  15 + @IBOutlet var searchTableView: UITableView!
  16 + @IBOutlet var searchTableHeight: NSLayoutConstraint!
  17 +
  18 + var searchController:UISearchController!
  19 + var dataSetAry:[String]=["葛建军","张道峰","徐晓杰","左承","段合江"]
  20 + var searchAry:[String]=[]
  21 + var currentPage:Int=0 //当前页数,每次取十个数据
  22 + var resourceData:[MicroCourseModel]=[]
13 override func viewDidLoad() { 23 override func viewDidLoad() {
14 super.viewDidLoad() 24 super.viewDidLoad()
15 self.configTheme() 25 self.configTheme()
16 - // Do any additional setup after loading the view. 26 + addSearchController()
  27 + addRefresh()
  28 + self.refreshLivesAction(tag: self.currentPage, completionHandler: { (success) in
  29 + if success{
  30 + self.tableView.reloadData()
  31 + }
  32 + })
17 } 33 }
18 -  
19 - override func didReceiveMemoryWarning() {  
20 - super.didReceiveMemoryWarning()  
21 - // Dispose of any resources that can be recreated. 34 + func addSearchController(){
  35 + self.definesPresentationContext=true
  36 + searchController=UISearchController(searchResultsController: nil)
  37 + searchController.delegate=self
  38 + searchController.searchResultsUpdater=self
  39 + searchController.searchBar.barTintColor=UIColor.groupTableViewBackground
  40 + searchController.searchBar.placeholder="搜索"
  41 + //设置UISearchController的显示属性,以下3个属性默认为YES
  42 + //搜索时,背景变暗色
  43 + self.searchController.dimsBackgroundDuringPresentation=false
  44 + //搜索时,背景变模糊
  45 + // self.searchController.obscuresBackgroundDuringPresentation=false
  46 + //点击搜索的时候,是否隐藏导航栏
  47 + // searchController.hidesNavigationBarDuringPresentation=true
  48 + //位置
  49 + searchController.searchBar.frame=CGRect(x: self.searchController.searchBar.frame.origin.x, y: self.searchController.searchBar.frame.origin.y, width: self.searchController.searchBar.frame.size.width, height: 44.0);
  50 + // self.view.addSubview(searchController.searchBar)
  51 + searchTableView.tableHeaderView=searchController.searchBar
  52 + }
  53 + func addRefresh(){
  54 + let header=MJRefreshNormalHeader(refreshingBlock: {
  55 + //下拉刷新
  56 + self.currentPage=0
  57 + self.resourceData.removeAll()
  58 + self.refreshLivesAction(tag: self.currentPage, completionHandler: { (success) in
  59 + if success{
  60 + self.tableView.reloadData()
  61 + }
  62 + self.tableView.mj_header.endRefreshing()
  63 + })
  64 + })
  65 + header?.lastUpdatedTimeLabel.isHidden=true
  66 + tableView.mj_header=header
  67 + tableView.mj_footer=MJRefreshBackNormalFooter(refreshingBlock: {
  68 + //上拉加载更多
  69 + self.refreshLivesAction(tag: self.currentPage, completionHandler: { (success) in
  70 + if success{
  71 + self.tableView.reloadData()
  72 + }
  73 + self.tableView.mj_footer.endRefreshing()
  74 + })
  75 + })
  76 + }
  77 + // MARK: - 刷新数据接口
  78 + func refreshLivesAction(tag:Int,completionHandler:@escaping (Bool) -> ()){
  79 + let parameters:Dictionary<String,AnyObject>=["type":0 as AnyObject,"pageIndex":tag as AnyObject,"pageSize":1 as AnyObject]
  80 + AppDelegate.instance().httpServer.getHotRescourse(parameters: parameters) { (str, error) in
  81 + var success:Bool=true
  82 + if error==nil {
  83 + if JSON.fromString(jsonString: str)!["status"].intValue == 1{
  84 + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in
  85 + if JSON.fromString(jsonString: str)!["data"].arrayValue.count>0{
  86 + self.currentPage+=1
  87 + }
  88 + for item in JSON.fromString(jsonString: str)!["data"].arrayValue {
  89 + self.resourceData.append(MicroCourseModel(j: item))
  90 + }
  91 + success=true
  92 + }, failHandler: { (error) in
  93 + success=false
  94 + appRootViewController().view.makeToast("获取资源失败:\(error.localizedDescription)")
  95 + })
  96 + }else{
  97 + success=false
  98 + appRootViewController().view.makeToast("获取资源失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)")
  99 + }
  100 + }else{
  101 + success=false
  102 + appRootViewController().view.makeToast("获取资源失败:\(error!.description)")
  103 + }
  104 + completionHandler(success)
  105 + }
  106 + }
  107 + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  108 + if tableView==searchTableView{
  109 + return searchAry.count
  110 + }else{
  111 + return resourceData.count
  112 + }
  113 + }
  114 + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  115 + if tableView==searchTableView {
  116 + let cell=tableView.dequeueReusableCell(withIdentifier: "cell")
  117 + cell?.textLabel?.text=searchAry[indexPath.row]
  118 + return cell!
  119 + }else{
  120 + let cell=tableView.dequeueReusableCell(withIdentifier: "identifier") as! MicroCourseViewControllerTableViewCell
  121 + cell.superVC=self
  122 + cell.setUpWith(item: resourceData[indexPath.row])
  123 + return cell
  124 + }
  125 + }
  126 + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
  127 + if tableView==searchTableView {
  128 + let vc = UIStoryboard(name: "HomePage", bundle: nil).instantiateViewController(withIdentifier: "RankingTableViewController") as! RankingTableViewController
  129 + self.navigationController?.pushViewController(vc, animated: true)
  130 + }else{
  131 +// let vc = UIStoryboard(name: "Resource", bundle: nil).instantiateViewController(withIdentifier: "LiveInforViewControllerVC") as! LiveInforViewController
  132 +// vc.item=resourceData[indexPath.row]
  133 +// self.navigationController?.pushViewController(vc, animated: true)
  134 + }
  135 + }
  136 + //取消键盘输入状态
  137 + @IBAction func cancleSearchActivit(_ sender: UITapGestureRecognizer) {
  138 + searchController.isActive=false
  139 + }
  140 + func willPresentSearchController(_ searchController: UISearchController) {
  141 + grayView.isHidden=false
  142 + }
  143 + func willDismissSearchController(_ searchController: UISearchController) {
  144 + searchTableHeight.constant=44
  145 + grayView.isHidden=true
  146 + }
  147 + //谓词搜索过滤
  148 + func updateSearchResults(for searchController: UISearchController) {
  149 + let searchString=searchController.searchBar.text
  150 + let predicate=NSPredicate(format: "SELF CONTAINS[c] %@", searchString!)
  151 + searchAry=(dataSetAry as NSArray).filtered(using: predicate) as! [String]
  152 + if CGFloat((searchAry.count+1)*44)>(getScreenHeight()-64){
  153 + searchTableHeight.constant=getScreenHeight()-64
  154 + }else{
  155 + searchTableHeight.constant=CGFloat((searchAry.count+1)*44)
  156 + }
  157 + searchTableView.reloadData()
22 } 158 }
23 159
  160 +}
24 161
25 - /*  
26 - // MARK: - Navigation  
27 -  
28 - // In a storyboard-based application, you will often want to do a little preparation before navigation  
29 - override func prepare(for segue: UIStoryboardSegue, sender: Any?) {  
30 - // Get the new view controller using segue.destinationViewController.  
31 - // Pass the selected object to the new view controller. 162 +class MicroCourseViewControllerTableViewCell:UITableViewCell{
  163 + @IBOutlet var iconImageView: UIImageView!
  164 + @IBOutlet var titleLabel: UILabel!
  165 + @IBOutlet var updateTeacherLabel: UILabel!
  166 + @IBOutlet var timeLabel: UILabel!
  167 + @IBOutlet var downLoadCountLabel: UILabel!
  168 + var item:MicroCourseModel!
  169 + var superVC:MicroCourseViewController!
  170 + func setUpWith(item: MicroCourseModel){
  171 + self.item=item
  172 + iconImageView.sd_setImage(with: URL(string: item.f_Img), placeholderImage: UIImage(named: "icon_course_placeholder"))
  173 + titleLabel.text=item.f_Title
  174 + updateTeacherLabel.text="上传者:\(item.f_CreatorName) 老师"
  175 + timeLabel.text=item.f_CreatorTime
  176 + downLoadCountLabel.text="\(item.f_DownloadSum)"
  177 + }
  178 + @IBAction func pushDetailVC(_ sender: UIButton) {
  179 + let vc = UIStoryboard(name: "Resource", bundle: nil).instantiateViewController(withIdentifier: "LiveInforViewControllerVC") as! LiveInforViewController
  180 + vc.item=item
  181 + self.superVC.navigationController!.pushViewController(vc, animated: true)
32 } 182 }
33 - */  
34 -  
35 } 183 }
YouerLiveVideo/YouerLiveVideo/controllers/Resource/FilterViewController.swift 0 → 100644
@@ -0,0 +1,34 @@ @@ -0,0 +1,34 @@
  1 +//
  2 +// FilterViewController.swift
  3 +// YouerLiveVideo
  4 +//
  5 +// Created by 葛建军 on 17/5/22.
  6 +// Copyright © 2017年 左丞. All rights reserved.
  7 +//
  8 +
  9 +import UIKit
  10 +
  11 +class FilterViewController: UIViewController {
  12 +
  13 + override func viewDidLoad() {
  14 + super.viewDidLoad()
  15 +// AppDelegate.instance().httpServer.postResourceList(parameters: <#T##[String : AnyObject]?#>, completionHandler: <#T##(String?, NSError?) -> ()#>)
  16 + }
  17 +
  18 + override func didReceiveMemoryWarning() {
  19 + super.didReceiveMemoryWarning()
  20 + // Dispose of any resources that can be recreated.
  21 + }
  22 +
  23 +
  24 + /*
  25 + // MARK: - Navigation
  26 +
  27 + // In a storyboard-based application, you will often want to do a little preparation before navigation
  28 + override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
  29 + // Get the new view controller using segue.destinationViewController.
  30 + // Pass the selected object to the new view controller.
  31 + }
  32 + */
  33 +
  34 +}
YouerLiveVideo/YouerLiveVideo/controllers/Resource/LiveInforViewController.swift
@@ -16,27 +16,26 @@ class LiveInforViewController: UIViewController { @@ -16,27 +16,26 @@ class LiveInforViewController: UIViewController {
16 @IBOutlet weak var updataPersonPhoto: UIImageView! 16 @IBOutlet weak var updataPersonPhoto: UIImageView!
17 @IBOutlet weak var updataPersonName: UILabel! 17 @IBOutlet weak var updataPersonName: UILabel!
18 @IBOutlet weak var updataTime: UILabel! 18 @IBOutlet weak var updataTime: UILabel!
19 -  
20 - var tvStation:TVStationSubject! 19 + var item:MicroCourseModel!
21 override func viewDidLoad() { 20 override func viewDidLoad() {
22 super.viewDidLoad() 21 super.viewDidLoad()
23 - AppDelegate.instance().httpServer.getResourceModel(parameters: ["f_id":"2be92331-ea5a-41c9-9025-c954d7df904c" as AnyObject]) { (str, error) in 22 + updataPersonPhoto.layer.cornerRadius = updataPersonPhoto.frame.size.height/2
  23 + updataPersonPhoto.layer.masksToBounds = true
  24 + AppDelegate.instance().httpServer.getResourceModel(parameters: ["f_id":item.f_Id as AnyObject]) { (str, error) in
24 httpJsonResule(jsonString: str, error: error, successHandler: { (json) in 25 httpJsonResule(jsonString: str, error: error, successHandler: { (json) in
25 - self.tvStation = TVStationSubject(json: json.contentData())  
26 - self.setAllInfor() 26 + self.setAllInfor(item: TVStationSubject(json: json.contentData()))
27 }, failHandler: { (error) in 27 }, failHandler: { (error) in
28 28
29 }) 29 })
30 } 30 }
  31 +
31 // Do any additional setup after loading the view. 32 // Do any additional setup after loading the view.
32 } 33 }
33 34
34 - func setAllInfor(){  
35 - updataTime.text = setDateToString(date: dateFromISO8601(dateString: tvStation.f_CreatorTime))  
36 - updataPersonName.text = "上传者: \(tvStation.f_CreatorName!)"  
37 - updataPersonPhoto.layer.cornerRadius = updataPersonPhoto.frame.size.height/2  
38 - updataPersonPhoto.layer.masksToBounds = true  
39 - updataPersonPhoto.sd_setImage(with: URL(string: tvStation.f_Img), placeholderImage: #imageLiteral(resourceName: "defphoto.png")) 35 + func setAllInfor(item:TVStationSubject){
  36 + updataTime.text = setDateToString(date: dateFromISO8601(dateString: item.f_CreatorTime))
  37 + updataPersonName.text = "上传者: \(item.f_CreatorName!)"
  38 + updataPersonPhoto.sd_setImage(with: URL(string: item.f_Img), placeholderImage: #imageLiteral(resourceName: "defphoto.png"))
40 } 39 }
41 40
42 override func didReceiveMemoryWarning() { 41 override func didReceiveMemoryWarning() {
YouerLiveVideo/YouerLiveVideo/controllers/Resource/Resource.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"> 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">
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>
@@ -9,6 +9,25 @@ @@ -9,6 +9,25 @@
9 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> 9 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
10 </dependencies> 10 </dependencies>
11 <scenes> 11 <scenes>
  12 + <!--Filter View Controller-->
  13 + <scene sceneID="Rmv-Eo-NBi">
  14 + <objects>
  15 + <viewController storyboardIdentifier="FilterViewController" hidesBottomBarWhenPushed="YES" id="J51-bf-ysq" customClass="FilterViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController">
  16 + <layoutGuides>
  17 + <viewControllerLayoutGuide type="top" id="8Fm-xC-jSr"/>
  18 + <viewControllerLayoutGuide type="bottom" id="bXh-Wr-qy6"/>
  19 + </layoutGuides>
  20 + <view key="view" contentMode="scaleToFill" id="ao2-Oa-iAS">
  21 + <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
  22 + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
  23 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  24 + </view>
  25 + <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
  26 + </viewController>
  27 + <placeholder placeholderIdentifier="IBFirstResponder" id="ocM-s7-Wga" userLabel="First Responder" sceneMemberID="firstResponder"/>
  28 + </objects>
  29 + <point key="canvasLocation" x="-737" y="266"/>
  30 + </scene>
12 <!--Live Infor View Controller--> 31 <!--Live Infor View Controller-->
13 <scene sceneID="QrF-a4-VNS"> 32 <scene sceneID="QrF-a4-VNS">
14 <objects> 33 <objects>
YouerLiveVideo/YouerLiveVideo/controllers/Resource/ResourceViewController.swift
@@ -8,49 +8,161 @@ @@ -8,49 +8,161 @@
8 8
9 import UIKit 9 import UIKit
10 10
11 -class ResourceViewController: UIViewController {  
12 - 11 +class ResourceViewController: UIViewController,UITableViewDelegate,UITableViewDataSource,UISearchControllerDelegate,UISearchResultsUpdating {
  12 + @IBOutlet var tableView: UITableView!
  13 +
  14 + @IBOutlet var grayView: UIView!
  15 + @IBOutlet var searchTableView: UITableView!
  16 + @IBOutlet var searchTableHeight: NSLayoutConstraint!
  17 +
  18 + var searchController:UISearchController!
  19 + var dataSetAry:[String]=["葛建军","张道峰","徐晓杰","左承","段合江"]
  20 + var searchAry:[String]=[]
  21 + var currentPage:Int=0 //当前页数,每次取十个数据
  22 + var resourceData:[MicroCourseModel]=[]
13 override func viewDidLoad() { 23 override func viewDidLoad() {
14 super.viewDidLoad() 24 super.viewDidLoad()
15 self.configTheme() 25 self.configTheme()
16 - // Do any additional setup after loading the view. 26 + addSearchController()
  27 + addRefresh()
  28 + self.refreshLivesAction(tag: self.currentPage, completionHandler: { (success) in
  29 + if success{
  30 + self.tableView.reloadData()
  31 + }
  32 + })
17 } 33 }
18 -  
19 - override func didReceiveMemoryWarning() {  
20 - super.didReceiveMemoryWarning()  
21 - // Dispose of any resources that can be recreated. 34 + func addSearchController(){
  35 + self.definesPresentationContext=true
  36 + searchController=UISearchController(searchResultsController: nil)
  37 + searchController.delegate=self
  38 + searchController.searchResultsUpdater=self
  39 + searchController.searchBar.barTintColor=UIColor.groupTableViewBackground
  40 + searchController.searchBar.placeholder="搜索"
  41 + //设置UISearchController的显示属性,以下3个属性默认为YES
  42 + //搜索时,背景变暗色
  43 + self.searchController.dimsBackgroundDuringPresentation=false
  44 + //搜索时,背景变模糊
  45 + // self.searchController.obscuresBackgroundDuringPresentation=false
  46 + //点击搜索的时候,是否隐藏导航栏
  47 + // searchController.hidesNavigationBarDuringPresentation=true
  48 + //位置
  49 + searchController.searchBar.frame=CGRect(x: self.searchController.searchBar.frame.origin.x, y: self.searchController.searchBar.frame.origin.y, width: self.searchController.searchBar.frame.size.width, height: 44.0);
  50 + // self.view.addSubview(searchController.searchBar)
  51 + searchTableView.tableHeaderView=searchController.searchBar
22 } 52 }
23 -  
24 -  
25 - /*  
26 - // MARK: - Navigation  
27 -  
28 - // In a storyboard-based application, you will often want to do a little preparation before navigation  
29 - override func prepare(for segue: UIStoryboardSegue, sender: Any?) {  
30 - // Get the new view controller using segue.destinationViewController.  
31 - // Pass the selected object to the new view controller. 53 + func addRefresh(){
  54 + let header=MJRefreshNormalHeader(refreshingBlock: {
  55 + //下拉刷新
  56 + self.currentPage=0
  57 + self.resourceData.removeAll()
  58 + self.refreshLivesAction(tag: self.currentPage, completionHandler: { (success) in
  59 + if success{
  60 + self.tableView.reloadData()
  61 + }
  62 + self.tableView.mj_header.endRefreshing()
  63 + })
  64 + })
  65 + header?.lastUpdatedTimeLabel.isHidden=true
  66 + tableView.mj_header=header
  67 + tableView.mj_footer=MJRefreshBackNormalFooter(refreshingBlock: {
  68 + //上拉加载更多
  69 + self.refreshLivesAction(tag: self.currentPage, completionHandler: { (success) in
  70 + if success{
  71 + self.tableView.reloadData()
  72 + }
  73 + self.tableView.mj_footer.endRefreshing()
  74 + })
  75 + })
32 } 76 }
33 - */  
34 -  
35 -}  
36 -  
37 -extension ResourceViewController:UITableViewDelegate,UITableViewDataSource{  
38 - func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {  
39 - return 10 77 + // MARK: - 刷新数据接口
  78 + func refreshLivesAction(tag:Int,completionHandler:@escaping (Bool) -> ()){
  79 + let parameters:Dictionary<String,AnyObject>=["type":1 as AnyObject,"pageIndex":tag as AnyObject,"pageSize":1 as AnyObject]
  80 + AppDelegate.instance().httpServer.getHotRescourse(parameters: parameters) { (str, error) in
  81 + var success:Bool=true
  82 + if error==nil {
  83 + if JSON.fromString(jsonString: str)!["status"].intValue == 1{
  84 + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in
  85 + if JSON.fromString(jsonString: str)!["data"].arrayValue.count>0{
  86 + self.currentPage+=1
  87 + }
  88 + for item in JSON.fromString(jsonString: str)!["data"].arrayValue {
  89 + self.resourceData.append(MicroCourseModel(j: item))
  90 + }
  91 + success=true
  92 + }, failHandler: { (error) in
  93 + success=false
  94 + appRootViewController().view.makeToast("获取资源失败:\(error.localizedDescription)")
  95 + })
  96 + }else{
  97 + success=false
  98 + appRootViewController().view.makeToast("获取资源失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)")
  99 + }
  100 + }else{
  101 + success=false
  102 + appRootViewController().view.makeToast("获取资源失败:\(error!.description)")
  103 + }
  104 + completionHandler(success)
  105 + }
40 } 106 }
41 -  
42 - func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {  
43 - let vc = Story.instantiateViewControllerWithIdentifier("LiveInforViewControllerVC", storyName: "Resource") as! LiveInforViewController 107 + // MARK: - 跳转到筛选
  108 + @IBAction func jumpFilterVCAction(_ sender: UIButton) {
  109 + let vc = UIStoryboard(name: "Resource", bundle: nil).instantiateViewController(withIdentifier: "FilterViewController") as! FilterViewController
44 self.navigationController?.pushViewController(vc, animated: true) 110 self.navigationController?.pushViewController(vc, animated: true)
45 -  
46 } 111 }
47 112
  113 + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  114 + if tableView==searchTableView{
  115 + return searchAry.count
  116 + }else{
  117 + return resourceData.count
  118 + }
  119 + }
48 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 120 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
49 - let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! ResourceViewControllerTableViewCell  
50 - return cell 121 + if tableView==searchTableView {
  122 + let cell=tableView.dequeueReusableCell(withIdentifier: "cell")
  123 + cell?.textLabel?.text=searchAry[indexPath.row]
  124 + return cell!
  125 + }else{
  126 + let cell=tableView.dequeueReusableCell(withIdentifier: "identifier") as! ResourceViewControllerTableViewCell
  127 + cell.setUpWith(item: resourceData[indexPath.row])
  128 + return cell
  129 + }
  130 + }
  131 + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
  132 + if tableView==searchTableView {
  133 + let vc = UIStoryboard(name: "HomePage", bundle: nil).instantiateViewController(withIdentifier: "RankingTableViewController") as! RankingTableViewController
  134 + self.navigationController?.pushViewController(vc, animated: true)
  135 + }else{
  136 +
  137 + }
  138 + }
  139 + //取消键盘输入状态
  140 + @IBAction func cancleSearchActivit(_ sender: UITapGestureRecognizer) {
  141 + searchController.isActive=false
  142 + }
  143 + func willPresentSearchController(_ searchController: UISearchController) {
  144 + grayView.isHidden=false
51 } 145 }
  146 + func willDismissSearchController(_ searchController: UISearchController) {
  147 + searchTableHeight.constant=44
  148 + grayView.isHidden=true
  149 + }
  150 + //谓词搜索过滤
  151 + func updateSearchResults(for searchController: UISearchController) {
  152 + let searchString=searchController.searchBar.text
  153 + let predicate=NSPredicate(format: "SELF CONTAINS[c] %@", searchString!)
  154 + searchAry=(dataSetAry as NSArray).filtered(using: predicate) as! [String]
  155 + if CGFloat((searchAry.count+1)*44)>(getScreenHeight()-64){
  156 + searchTableHeight.constant=getScreenHeight()-64
  157 + }else{
  158 + searchTableHeight.constant=CGFloat((searchAry.count+1)*44)
  159 + }
  160 + searchTableView.reloadData()
  161 + }
  162 +
52 } 163 }
53 164
  165 +
54 extension ResourceViewController:UICollectionViewDelegate,UICollectionViewDelegateFlowLayout,UICollectionViewDataSource{ 166 extension ResourceViewController:UICollectionViewDelegate,UICollectionViewDelegateFlowLayout,UICollectionViewDataSource{
55 167
56 func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { 168 func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
@@ -68,7 +180,18 @@ extension ResourceViewController:UICollectionViewDelegate,UICollectionViewDelega @@ -68,7 +180,18 @@ extension ResourceViewController:UICollectionViewDelegate,UICollectionViewDelega
68 } 180 }
69 181
70 class ResourceViewControllerTableViewCell:UITableViewCell{ 182 class ResourceViewControllerTableViewCell:UITableViewCell{
71 - 183 + @IBOutlet var iconImageView: UIImageView!
  184 + @IBOutlet var titleLabel: UILabel!
  185 + @IBOutlet var updateTeacherLabel: UILabel!
  186 + @IBOutlet var timeLabel: UILabel!
  187 + @IBOutlet var downLoadCountLabel: UILabel!
  188 + func setUpWith(item: MicroCourseModel){
  189 + iconImageView.sd_setImage(with: URL(string: item.f_Img), placeholderImage: UIImage(named: "icon_course_placeholder"))
  190 + titleLabel.text=item.f_Title
  191 + updateTeacherLabel.text="上传者:\(item.f_CreatorName) 老师"
  192 + timeLabel.text=item.f_CreatorTime
  193 + downLoadCountLabel.text="\(item.f_DownloadSum)"
  194 + }
72 } 195 }
73 196
74 197
YouerLiveVideo/YouerLiveVideo/controllers/TVStation/ExcellentTVViewController.swift
@@ -103,6 +103,7 @@ class ExcellentTVViewController: UIViewController { @@ -103,6 +103,7 @@ class ExcellentTVViewController: UIViewController {
103 103
104 func TVStationBtnClick(btn:UIButton){ 104 func TVStationBtnClick(btn:UIButton){
105 titleSelectBtn = btn.tag%10 105 titleSelectBtn = btn.tag%10
  106 + classSelectBtn = 0
106 for i in 0..<TVStationClasses.count{ 107 for i in 0..<TVStationClasses.count{
107 let item = AllTitleView.viewWithTag(200+i) as! UIButton 108 let item = AllTitleView.viewWithTag(200+i) as! UIButton
108 item.backgroundColor = UIColor.white 109 item.backgroundColor = UIColor.white
@@ -200,10 +201,19 @@ extension ExcellentTVViewController:UICollectionViewDelegate,UICollectionViewDat @@ -200,10 +201,19 @@ extension ExcellentTVViewController:UICollectionViewDelegate,UICollectionViewDat
200 btn.setTitleColor(UIColor.white, for: .normal) 201 btn.setTitleColor(UIColor.white, for: .normal)
201 btn.backgroundColor = UIColor.blue 202 btn.backgroundColor = UIColor.blue
202 } 203 }
203 - 204 +
204 func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 205 func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
205 let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! ExcellentTVViewCell 206 let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! ExcellentTVViewCell
206 - cell.f_TelevisionId = TVStationClasses[titleSelectBtn].ch[classSelectBtn].id 207 + AppDelegate.instance().httpServer.postExcellentProgram(parameters: ["f_TelevisionId":TVStationClasses[titleSelectBtn].ch[classSelectBtn].id as AnyObject,"pageIndex":1 as AnyObject]) { (str, error) in
  208 + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in
  209 + for item in json.contentData()["resultData"].arrayValue{
  210 + cell.datatSet.append(TVStationSubject(json: item))
  211 + }
  212 + cell.inforCollectionView.reloadData()
  213 + }, failHandler: { (error) in
  214 +
  215 + })
  216 + }
207 return cell 217 return cell
208 } 218 }
209 219
@@ -230,16 +240,7 @@ class ExcellentTVViewCell: UICollectionViewCell,UICollectionViewDelegate,UIColl @@ -230,16 +240,7 @@ class ExcellentTVViewCell: UICollectionViewCell,UICollectionViewDelegate,UIColl
230 240
231 241
232 override func awakeFromNib() { 242 override func awakeFromNib() {
233 - AppDelegate.instance().httpServer.postExcellentProgram(parameters: ["f_TelevisionId":f_TelevisionId as AnyObject,"pageIndex":1 as AnyObject]) { (str, error) in  
234 - httpJsonResule(jsonString: str, error: error, successHandler: { (json) in  
235 - for item in json.contentData().arrayValue{  
236 - self.datatSet.append(TVStationSubject(json: item))  
237 - }  
238 - self.inforCollectionView.reloadData()  
239 - }, failHandler: { (error) in  
240 -  
241 - })  
242 - } 243 + super.awakeFromNib()
243 } 244 }
244 245
245 func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { 246 func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
@@ -248,6 +249,8 @@ class ExcellentTVViewCell: UICollectionViewCell,UICollectionViewDelegate,UIColl @@ -248,6 +249,8 @@ class ExcellentTVViewCell: UICollectionViewCell,UICollectionViewDelegate,UIColl
248 249
249 func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 250 func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
250 let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell1", for: indexPath) as! ExcellentTVInforViewCell 251 let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell1", for: indexPath) as! ExcellentTVInforViewCell
  252 + let item = datatSet[indexPath.row]
  253 + cell.model = item
251 return cell 254 return cell
252 } 255 }
253 256
@@ -256,7 +259,7 @@ class ExcellentTVViewCell: UICollectionViewCell,UICollectionViewDelegate,UIColl @@ -256,7 +259,7 @@ class ExcellentTVViewCell: UICollectionViewCell,UICollectionViewDelegate,UIColl
256 } 259 }
257 260
258 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 261 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
259 - return CGSize(width: (getScreenWidth()-30)/2, height: 150) 262 + return CGSize(width: (getScreenWidth()-30)/2, height: 200)
260 } 263 }
261 264
262 265
@@ -268,6 +271,23 @@ class ExcellentTVViewCell: UICollectionViewCell,UICollectionViewDelegate,UIColl @@ -268,6 +271,23 @@ class ExcellentTVViewCell: UICollectionViewCell,UICollectionViewDelegate,UIColl
268 271
269 class ExcellentTVInforViewCell: UICollectionViewCell{ 272 class ExcellentTVInforViewCell: UICollectionViewCell{
270 273
  274 + @IBOutlet weak var tvStationLogo: UIImageView!
  275 + @IBOutlet weak var subjectType: UILabel!
  276 + @IBOutlet weak var playCount: UILabel!
  277 +
  278 + var model:TVStationSubject? {
  279 + didSet{
  280 + self.tvStationLogo.sd_setImage(with: URL(string: model!.f_Img), placeholderImage: #imageLiteral(resourceName: "placeholder"))
  281 + self.playCount.text = "播放次数:" + "\(model!.f_Pv!)"
  282 + self.subjectType.text = model!.f_Title
  283 + }
  284 +
  285 + }
  286 +
  287 + @IBAction func playBtnClick(_ sender: UIButton) {
  288 +
  289 + }
  290 +
271 } 291 }
272 292
273 class TVSubjectInfor{ 293 class TVSubjectInfor{
YouerLiveVideo/YouerLiveVideo/controllers/TVStation/TVStation.storyboard
@@ -136,20 +136,74 @@ @@ -136,20 +136,74 @@
136 <rect key="frame" x="0.0" y="0.0" width="376" height="392"/> 136 <rect key="frame" x="0.0" y="0.0" width="376" height="392"/>
137 <color key="backgroundColor" red="0.89713114500000002" green="0.89431768659999999" blue="0.90413767099999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 137 <color key="backgroundColor" red="0.89713114500000002" green="0.89431768659999999" blue="0.90413767099999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
138 <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="cgF-Y1-nnf"> 138 <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="cgF-Y1-nnf">
139 - <size key="itemSize" width="170" height="167"/> 139 + <size key="itemSize" width="170" height="262"/>
140 <size key="headerReferenceSize" width="0.0" height="0.0"/> 140 <size key="headerReferenceSize" width="0.0" height="0.0"/>
141 <size key="footerReferenceSize" width="0.0" height="0.0"/> 141 <size key="footerReferenceSize" width="0.0" height="0.0"/>
142 <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/> 142 <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
143 </collectionViewFlowLayout> 143 </collectionViewFlowLayout>
144 <cells> 144 <cells>
145 <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="cell1" id="E1U-aK-U8z" customClass="ExcellentTVInforViewCell" customModule="YouerLiveVideo" customModuleProvider="target"> 145 <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="cell1" id="E1U-aK-U8z" customClass="ExcellentTVInforViewCell" customModule="YouerLiveVideo" customModuleProvider="target">
146 - <rect key="frame" x="0.0" y="0.0" width="170" height="167"/> 146 + <rect key="frame" x="0.0" y="0.0" width="170" height="262"/>
147 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> 147 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
148 <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> 148 <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
149 - <rect key="frame" x="0.0" y="0.0" width="170" height="167"/> 149 + <rect key="frame" x="0.0" y="0.0" width="170" height="262"/>
150 <autoresizingMask key="autoresizingMask"/> 150 <autoresizingMask key="autoresizingMask"/>
  151 + <subviews>
  152 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="fcz-OQ-94m">
  153 + <rect key="frame" x="0.0" y="0.0" width="170" height="134.5"/>
  154 + <constraints>
  155 + <constraint firstAttribute="width" secondItem="fcz-OQ-94m" secondAttribute="height" multiplier="81:64" id="BM3-Lc-rwo"/>
  156 + </constraints>
  157 + </imageView>
  158 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="v40-tv-azp">
  159 + <rect key="frame" x="0.0" y="134.5" width="170" height="127.5"/>
  160 + <subviews>
  161 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="VsV-Bf-hCY">
  162 + <rect key="frame" x="8" y="8" width="37.5" height="18"/>
  163 + <fontDescription key="fontDescription" type="system" pointSize="15"/>
  164 + <nil key="textColor"/>
  165 + <nil key="highlightedColor"/>
  166 + </label>
  167 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9MF-Zt-fqc">
  168 + <rect key="frame" x="8" y="103.5" width="33" height="16"/>
  169 + <fontDescription key="fontDescription" type="system" pointSize="13"/>
  170 + <nil key="textColor"/>
  171 + <nil key="highlightedColor"/>
  172 + </label>
  173 + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="R2I-qS-V0B">
  174 + <rect key="frame" x="116" y="49" width="46" height="30"/>
  175 + <state key="normal" title="Button"/>
  176 + <connections>
  177 + <action selector="playBtnClick:" destination="E1U-aK-U8z" eventType="touchUpInside" id="uuk-j5-fzl"/>
  178 + </connections>
  179 + </button>
  180 + </subviews>
  181 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  182 + <constraints>
  183 + <constraint firstItem="9MF-Zt-fqc" firstAttribute="leading" secondItem="v40-tv-azp" secondAttribute="leading" constant="8" id="2Kr-Vk-cl8"/>
  184 + <constraint firstAttribute="bottom" secondItem="9MF-Zt-fqc" secondAttribute="bottom" constant="8" id="Per-3M-nJ4"/>
  185 + <constraint firstAttribute="trailing" secondItem="R2I-qS-V0B" secondAttribute="trailing" constant="8" id="asC-Mg-7ac"/>
  186 + <constraint firstItem="VsV-Bf-hCY" firstAttribute="leading" secondItem="v40-tv-azp" secondAttribute="leading" constant="8" id="trW-Yh-6Yt"/>
  187 + <constraint firstItem="R2I-qS-V0B" firstAttribute="centerY" secondItem="v40-tv-azp" secondAttribute="centerY" id="ybv-GH-Lkg"/>
  188 + <constraint firstItem="VsV-Bf-hCY" firstAttribute="top" secondItem="v40-tv-azp" secondAttribute="top" constant="8" id="zLU-CS-C8S"/>
  189 + </constraints>
  190 + </view>
  191 + </subviews>
151 </view> 192 </view>
152 - <color key="backgroundColor" red="0.024445036430000001" green="0.37366014720000001" blue="0.72428816559999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 193 + <constraints>
  194 + <constraint firstItem="v40-tv-azp" firstAttribute="top" secondItem="fcz-OQ-94m" secondAttribute="bottom" id="IHm-KI-Mgh"/>
  195 + <constraint firstAttribute="trailing" secondItem="fcz-OQ-94m" secondAttribute="trailing" id="YNR-ad-G4t"/>
  196 + <constraint firstItem="fcz-OQ-94m" firstAttribute="leading" secondItem="E1U-aK-U8z" secondAttribute="leading" id="dFl-og-rZ7"/>
  197 + <constraint firstAttribute="trailing" secondItem="v40-tv-azp" secondAttribute="trailing" id="gRV-Qv-d29"/>
  198 + <constraint firstItem="fcz-OQ-94m" firstAttribute="top" secondItem="E1U-aK-U8z" secondAttribute="top" id="roE-zo-bkK"/>
  199 + <constraint firstAttribute="bottom" secondItem="v40-tv-azp" secondAttribute="bottom" id="sT9-jY-pdA"/>
  200 + <constraint firstItem="v40-tv-azp" firstAttribute="leading" secondItem="E1U-aK-U8z" secondAttribute="leading" id="tdS-jP-AdZ"/>
  201 + </constraints>
  202 + <connections>
  203 + <outlet property="playCount" destination="9MF-Zt-fqc" id="iHW-0H-dJW"/>
  204 + <outlet property="subjectType" destination="VsV-Bf-hCY" id="jBF-p7-4zm"/>
  205 + <outlet property="tvStationLogo" destination="fcz-OQ-94m" id="aJ8-f4-qoh"/>
  206 + </connections>
153 </collectionViewCell> 207 </collectionViewCell>
154 </cells> 208 </cells>
155 <connections> 209 <connections>
YouerLiveVideo/YouerLiveVideo/controllers/User/UserCenter/LoginViewController.swift
@@ -28,7 +28,7 @@ class LoginViewController: UIViewController,UITextFieldDelegate { @@ -28,7 +28,7 @@ class LoginViewController: UIViewController,UITextFieldDelegate {
28 // let leftbtn = UIBarButtonItem(title: "返回", style: .plain, target: self, action: #selector(LoginViewController.back)) 28 // let leftbtn = UIBarButtonItem(title: "返回", style: .plain, target: self, action: #selector(LoginViewController.back))
29 // self.navigationItem.title = "登录" 29 // self.navigationItem.title = "登录"
30 // self.navigationItem.leftBarButtonItem = leftbtn 30 // self.navigationItem.leftBarButtonItem = leftbtn
31 - changeViewTop.constant=(getScreenHeight()-64-220)/3 31 + changeViewTop.constant=(getScreenHeight()-64-220)/2
32 } 32 }
33 //点击页面回收键盘 33 //点击页面回收键盘
34 @IBAction func touchAction(_ sender: AnyObject) { 34 @IBAction func touchAction(_ sender: AnyObject) {
@@ -134,9 +134,9 @@ class LoginViewController: UIViewController,UITextFieldDelegate { @@ -134,9 +134,9 @@ class LoginViewController: UIViewController,UITextFieldDelegate {
134 let userInfo:NSDictionary=noti.userInfo! as NSDictionary 134 let userInfo:NSDictionary=noti.userInfo! as NSDictionary
135 let endFrame=(userInfo[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue 135 let endFrame=(userInfo[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue
136 if endFrame?.origin.y==getScreenHeight() { 136 if endFrame?.origin.y==getScreenHeight() {
137 - changeViewTop.constant=(getScreenHeight()-64-220)/3 137 + changeViewTop.constant=(getScreenHeight()-64-220)/2
138 }else{ 138 }else{
139 - let y = (getScreenHeight()-64-220)/3+CGFloat(64+220) 139 + let y = (getScreenHeight()-64-220)/2+CGFloat(64+220)
140 if (endFrame?.origin.y)! < y { 140 if (endFrame?.origin.y)! < y {
141 changeViewTop.constant=getScreenHeight()-64-(endFrame?.size.height)!-220 141 changeViewTop.constant=getScreenHeight()-64-(endFrame?.size.height)!-220
142 } 142 }
YouerLiveVideo/YouerLiveVideo/controllers/User/UserCenter/User.storyboard
@@ -22,21 +22,46 @@ @@ -22,21 +22,46 @@
22 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> 22 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
23 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> 23 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
24 <subviews> 24 <subviews>
25 - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="loginBackGround" translatesAutoresizingMaskIntoConstraints="NO" id="Bob-Ef-450">  
26 - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>  
27 - </imageView> 25 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="rfv-aY-7Su">
  26 + <rect key="frame" x="0.0" y="0.0" width="375" height="186"/>
  27 + <subviews>
  28 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="教育视频云" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hWE-Vs-d0u">
  29 + <rect key="frame" x="150" y="0.0" width="225" height="186"/>
  30 + <fontDescription key="fontDescription" type="system" pointSize="22"/>
  31 + <color key="textColor" red="0.10980392156862745" green="0.63529411764705879" blue="1" alpha="1" colorSpace="calibratedRGB"/>
  32 + <nil key="highlightedColor"/>
  33 + </label>
  34 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="2J4-Xk-hLV">
  35 + <rect key="frame" x="62" y="53" width="80" height="80"/>
  36 + <constraints>
  37 + <constraint firstAttribute="height" constant="80" id="gMc-Hx-iZf"/>
  38 + <constraint firstAttribute="width" constant="80" id="kIC-aJ-75p"/>
  39 + </constraints>
  40 + </imageView>
  41 + </subviews>
  42 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
  43 + <constraints>
  44 + <constraint firstItem="2J4-Xk-hLV" firstAttribute="centerY" secondItem="rfv-aY-7Su" secondAttribute="centerY" id="CXG-zh-yXU"/>
  45 + <constraint firstAttribute="height" constant="186" id="MDO-eR-LT5"/>
  46 + <constraint firstItem="hWE-Vs-d0u" firstAttribute="top" secondItem="rfv-aY-7Su" secondAttribute="top" id="MIW-gU-FEh"/>
  47 + <constraint firstAttribute="trailing" secondItem="hWE-Vs-d0u" secondAttribute="trailing" id="RiE-Cg-vB6"/>
  48 + <constraint firstItem="hWE-Vs-d0u" firstAttribute="width" secondItem="rfv-aY-7Su" secondAttribute="width" multiplier="3:5" id="f3q-An-JLu"/>
  49 + <constraint firstItem="hWE-Vs-d0u" firstAttribute="leading" secondItem="2J4-Xk-hLV" secondAttribute="trailing" constant="8" id="h74-K9-uXy"/>
  50 + <constraint firstAttribute="bottom" secondItem="hWE-Vs-d0u" secondAttribute="bottom" id="zcB-F0-ox7"/>
  51 + </constraints>
  52 + </view>
28 <view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="tqb-X5-ujR" customClass="UIControl"> 53 <view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="tqb-X5-ujR" customClass="UIControl">
29 <rect key="frame" x="0.0" y="186" width="375" height="220"/> 54 <rect key="frame" x="0.0" y="186" width="375" height="220"/>
30 <subviews> 55 <subviews>
31 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="eXd-TY-qlW"> 56 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="eXd-TY-qlW">
32 - <rect key="frame" x="62.5" y="0.0" width="250" height="112"/> 57 + <rect key="frame" x="0.0" y="0.0" width="375" height="112"/>
33 <subviews> 58 <subviews>
34 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="EAC-sg-BLE"> 59 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="EAC-sg-BLE">
35 - <rect key="frame" x="0.0" y="0.0" width="250" height="56"/> 60 + <rect key="frame" x="0.0" y="0.0" width="375" height="56"/>
36 <subviews> 61 <subviews>
37 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NJW-yg-XQM"> 62 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NJW-yg-XQM">
38 - <rect key="frame" x="0.0" y="55" width="250" height="1"/>  
39 - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 63 + <rect key="frame" x="8" y="55" width="359" height="1"/>
  64 + <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
40 <constraints> 65 <constraints>
41 <constraint firstAttribute="height" constant="1" id="GtD-JL-A0z"/> 66 <constraint firstAttribute="height" constant="1" id="GtD-JL-A0z"/>
42 </constraints> 67 </constraints>
@@ -51,8 +76,8 @@ @@ -51,8 +76,8 @@
51 <constraint firstAttribute="width" secondItem="1xZ-bM-AMz" secondAttribute="height" multiplier="9:14" id="DCg-L0-4Lx"/> 76 <constraint firstAttribute="width" secondItem="1xZ-bM-AMz" secondAttribute="height" multiplier="9:14" id="DCg-L0-4Lx"/>
52 </constraints> 77 </constraints>
53 </imageView> 78 </imageView>
54 - <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入11位数的手机号码 " minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="IzH-dB-I9H">  
55 - <rect key="frame" x="36" y="18.5" width="214" height="19"/> 79 + <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入账号" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="IzH-dB-I9H">
  80 + <rect key="frame" x="36" y="18.5" width="339" height="19"/>
56 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 81 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
57 <fontDescription key="fontDescription" type="system" pointSize="13"/> 82 <fontDescription key="fontDescription" type="system" pointSize="13"/>
58 <textInputTraits key="textInputTraits" keyboardType="numberPad"/> 83 <textInputTraits key="textInputTraits" keyboardType="numberPad"/>
@@ -61,7 +86,7 @@ @@ -61,7 +86,7 @@
61 </connections> 86 </connections>
62 </textField> 87 </textField>
63 </subviews> 88 </subviews>
64 - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 89 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
65 <constraints> 90 <constraints>
66 <constraint firstAttribute="trailing" secondItem="IzH-dB-I9H" secondAttribute="trailing" id="DIX-3U-BQG"/> 91 <constraint firstAttribute="trailing" secondItem="IzH-dB-I9H" secondAttribute="trailing" id="DIX-3U-BQG"/>
67 <constraint firstAttribute="height" constant="56" id="Ff7-2n-071"/> 92 <constraint firstAttribute="height" constant="56" id="Ff7-2n-071"/>
@@ -69,16 +94,16 @@ @@ -69,16 +94,16 @@
69 <constraint firstItem="IzH-dB-I9H" firstAttribute="centerY" secondItem="EAC-sg-BLE" secondAttribute="centerY" id="Ud1-tF-ivz"/> 94 <constraint firstItem="IzH-dB-I9H" firstAttribute="centerY" secondItem="EAC-sg-BLE" secondAttribute="centerY" id="Ud1-tF-ivz"/>
70 <constraint firstItem="1xZ-bM-AMz" firstAttribute="leading" secondItem="EAC-sg-BLE" secondAttribute="leading" constant="8" id="Z77-MJ-BF0"/> 95 <constraint firstItem="1xZ-bM-AMz" firstAttribute="leading" secondItem="EAC-sg-BLE" secondAttribute="leading" constant="8" id="Z77-MJ-BF0"/>
71 <constraint firstAttribute="bottom" secondItem="NJW-yg-XQM" secondAttribute="bottom" id="i3N-yW-fre"/> 96 <constraint firstAttribute="bottom" secondItem="NJW-yg-XQM" secondAttribute="bottom" id="i3N-yW-fre"/>
72 - <constraint firstAttribute="trailing" secondItem="NJW-yg-XQM" secondAttribute="trailing" id="ued-ca-1l3"/> 97 + <constraint firstAttribute="trailing" secondItem="NJW-yg-XQM" secondAttribute="trailing" constant="8" id="ued-ca-1l3"/>
73 <constraint firstItem="1xZ-bM-AMz" firstAttribute="centerY" secondItem="EAC-sg-BLE" secondAttribute="centerY" id="xd6-hf-JPu"/> 98 <constraint firstItem="1xZ-bM-AMz" firstAttribute="centerY" secondItem="EAC-sg-BLE" secondAttribute="centerY" id="xd6-hf-JPu"/>
74 - <constraint firstItem="NJW-yg-XQM" firstAttribute="leading" secondItem="EAC-sg-BLE" secondAttribute="leading" id="xlc-R5-T0J"/> 99 + <constraint firstItem="NJW-yg-XQM" firstAttribute="leading" secondItem="EAC-sg-BLE" secondAttribute="leading" constant="8" id="xlc-R5-T0J"/>
75 </constraints> 100 </constraints>
76 </view> 101 </view>
77 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xba-Rv-jIe"> 102 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xba-Rv-jIe">
78 - <rect key="frame" x="0.0" y="56" width="250" height="56"/> 103 + <rect key="frame" x="0.0" y="56" width="375" height="56"/>
79 <subviews> 104 <subviews>
80 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BcZ-u5-RFA"> 105 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BcZ-u5-RFA">
81 - <rect key="frame" x="0.0" y="55" width="250" height="1"/> 106 + <rect key="frame" x="0.0" y="55" width="375" height="1"/>
82 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 107 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
83 <constraints> 108 <constraints>
84 <constraint firstAttribute="height" constant="1" id="aAz-El-TeO"/> 109 <constraint firstAttribute="height" constant="1" id="aAz-El-TeO"/>
@@ -94,8 +119,8 @@ @@ -94,8 +119,8 @@
94 <constraint firstAttribute="width" constant="20" id="vb3-Wd-N14"/> 119 <constraint firstAttribute="width" constant="20" id="vb3-Wd-N14"/>
95 </constraints> 120 </constraints>
96 </imageView> 121 </imageView>
97 - <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入6位以上的密码" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="nVn-EA-yWM">  
98 - <rect key="frame" x="36" y="18.5" width="214" height="19"/> 122 + <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入密码" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="nVn-EA-yWM">
  123 + <rect key="frame" x="36" y="18.5" width="339" height="19"/>
99 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 124 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
100 <fontDescription key="fontDescription" type="system" pointSize="13"/> 125 <fontDescription key="fontDescription" type="system" pointSize="13"/>
101 <textInputTraits key="textInputTraits" secureTextEntry="YES"/> 126 <textInputTraits key="textInputTraits" secureTextEntry="YES"/>
@@ -104,7 +129,7 @@ @@ -104,7 +129,7 @@
104 </connections> 129 </connections>
105 </textField> 130 </textField>
106 </subviews> 131 </subviews>
107 - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 132 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
108 <constraints> 133 <constraints>
109 <constraint firstItem="oON-zY-4HS" firstAttribute="leading" secondItem="xba-Rv-jIe" secondAttribute="leading" constant="8" id="6sV-zB-qIs"/> 134 <constraint firstItem="oON-zY-4HS" firstAttribute="leading" secondItem="xba-Rv-jIe" secondAttribute="leading" constant="8" id="6sV-zB-qIs"/>
110 <constraint firstItem="nVn-EA-yWM" firstAttribute="centerY" secondItem="xba-Rv-jIe" secondAttribute="centerY" id="HaD-wa-ZFb"/> 135 <constraint firstItem="nVn-EA-yWM" firstAttribute="centerY" secondItem="xba-Rv-jIe" secondAttribute="centerY" id="HaD-wa-ZFb"/>
@@ -130,15 +155,18 @@ @@ -130,15 +155,18 @@
130 </constraints> 155 </constraints>
131 </view> 156 </view>
132 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Qs2-9k-jbh"> 157 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Qs2-9k-jbh">
133 - <rect key="frame" x="62.5" y="144" width="250" height="30"/>  
134 - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 158 + <rect key="frame" x="16" y="134" width="343" height="40"/>
  159 + <color key="backgroundColor" red="0.10980392156862745" green="0.63529411764705879" blue="1" alpha="1" colorSpace="calibratedRGB"/>
  160 + <constraints>
  161 + <constraint firstAttribute="height" constant="40" id="gQn-hn-Wn2"/>
  162 + </constraints>
135 <fontDescription key="fontDescription" type="system" pointSize="15"/> 163 <fontDescription key="fontDescription" type="system" pointSize="15"/>
136 <state key="normal" title="登录"> 164 <state key="normal" title="登录">
137 - <color key="titleColor" red="1" green="0.39607843139999999" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 165 + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
138 </state> 166 </state>
139 <userDefinedRuntimeAttributes> 167 <userDefinedRuntimeAttributes>
140 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> 168 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
141 - <integer key="value" value="15"/> 169 + <integer key="value" value="5"/>
142 </userDefinedRuntimeAttribute> 170 </userDefinedRuntimeAttribute>
143 <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> 171 <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
144 </userDefinedRuntimeAttributes> 172 </userDefinedRuntimeAttributes>
@@ -147,22 +175,20 @@ @@ -147,22 +175,20 @@
147 </connections> 175 </connections>
148 </button> 176 </button>
149 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pzO-1N-Vrz"> 177 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pzO-1N-Vrz">
150 - <rect key="frame" x="62.5" y="182" width="250" height="30"/> 178 + <rect key="frame" x="16" y="182" width="343" height="30"/>
151 <subviews> 179 <subviews>
152 - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="忘记密码" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="v6n-Br-sBy">  
153 - <rect key="frame" x="0.0" y="0.0" width="53.5" height="30"/> 180 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="设置密码或找回密码" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="v6n-Br-sBy">
  181 + <rect key="frame" x="0.0" y="0.0" width="119.5" height="30"/>
154 <fontDescription key="fontDescription" type="system" pointSize="13"/> 182 <fontDescription key="fontDescription" type="system" pointSize="13"/>
155 - <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>  
156 <nil key="highlightedColor"/> 183 <nil key="highlightedColor"/>
157 </label> 184 </label>
158 - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="注册" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7fx-1i-VwW">  
159 - <rect key="frame" x="223" y="0.0" width="27" height="30"/> 185 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="注册账号" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7fx-1i-VwW">
  186 + <rect key="frame" x="289.5" y="0.0" width="53.5" height="30"/>
160 <fontDescription key="fontDescription" type="system" pointSize="13"/> 187 <fontDescription key="fontDescription" type="system" pointSize="13"/>
161 - <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>  
162 <nil key="highlightedColor"/> 188 <nil key="highlightedColor"/>
163 </label> 189 </label>
164 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ps0-yz-uMV"> 190 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ps0-yz-uMV">
165 - <rect key="frame" x="0.0" y="0.0" width="250" height="30"/> 191 + <rect key="frame" x="0.0" y="0.0" width="343" height="30"/>
166 <fontDescription key="fontDescription" type="system" pointSize="13"/> 192 <fontDescription key="fontDescription" type="system" pointSize="13"/>
167 <state key="normal"> 193 <state key="normal">
168 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 194 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
@@ -190,28 +216,38 @@ @@ -190,28 +216,38 @@
190 </subviews> 216 </subviews>
191 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 217 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
192 <constraints> 218 <constraints>
193 - <constraint firstItem="eXd-TY-qlW" firstAttribute="width" secondItem="tqb-X5-ujR" secondAttribute="width" multiplier="2:3" id="28b-2f-9yl"/> 219 + <constraint firstItem="eXd-TY-qlW" firstAttribute="width" secondItem="tqb-X5-ujR" secondAttribute="width" id="28b-2f-9yl"/>
194 <constraint firstAttribute="bottom" secondItem="pzO-1N-Vrz" secondAttribute="bottom" constant="8" id="AcS-52-YRY"/> 220 <constraint firstAttribute="bottom" secondItem="pzO-1N-Vrz" secondAttribute="bottom" constant="8" id="AcS-52-YRY"/>
  221 + <constraint firstItem="Qs2-9k-jbh" firstAttribute="leading" secondItem="tqb-X5-ujR" secondAttribute="leading" constant="16" id="EHx-MA-nvQ"/>
195 <constraint firstAttribute="height" constant="220" id="JHj-W0-zAJ"/> 222 <constraint firstAttribute="height" constant="220" id="JHj-W0-zAJ"/>
196 - <constraint firstItem="pzO-1N-Vrz" firstAttribute="width" secondItem="Qs2-9k-jbh" secondAttribute="width" id="RHT-EX-Fz6"/> 223 + <constraint firstAttribute="trailing" secondItem="pzO-1N-Vrz" secondAttribute="trailing" constant="16" id="Qnk-VL-hpi"/>
  224 + <constraint firstAttribute="trailing" secondItem="Qs2-9k-jbh" secondAttribute="trailing" constant="16" id="SnW-DX-g3F"/>
197 <constraint firstItem="eXd-TY-qlW" firstAttribute="centerX" secondItem="tqb-X5-ujR" secondAttribute="centerX" id="Yap-fj-Sza"/> 225 <constraint firstItem="eXd-TY-qlW" firstAttribute="centerX" secondItem="tqb-X5-ujR" secondAttribute="centerX" id="Yap-fj-Sza"/>
198 <constraint firstItem="pzO-1N-Vrz" firstAttribute="top" secondItem="Qs2-9k-jbh" secondAttribute="bottom" constant="8" id="YqV-mN-jUi"/> 226 <constraint firstItem="pzO-1N-Vrz" firstAttribute="top" secondItem="Qs2-9k-jbh" secondAttribute="bottom" constant="8" id="YqV-mN-jUi"/>
  227 + <constraint firstItem="pzO-1N-Vrz" firstAttribute="leading" secondItem="tqb-X5-ujR" secondAttribute="leading" constant="16" id="fWE-W3-H4P"/>
199 <constraint firstItem="Qs2-9k-jbh" firstAttribute="centerX" secondItem="tqb-X5-ujR" secondAttribute="centerX" id="icb-A7-CtC"/> 228 <constraint firstItem="Qs2-9k-jbh" firstAttribute="centerX" secondItem="tqb-X5-ujR" secondAttribute="centerX" id="icb-A7-CtC"/>
200 - <constraint firstItem="Qs2-9k-jbh" firstAttribute="width" secondItem="eXd-TY-qlW" secondAttribute="width" id="ipD-di-CWB"/>  
201 <constraint firstItem="pzO-1N-Vrz" firstAttribute="centerX" secondItem="tqb-X5-ujR" secondAttribute="centerX" id="o6l-Fj-Cb6"/> 229 <constraint firstItem="pzO-1N-Vrz" firstAttribute="centerX" secondItem="tqb-X5-ujR" secondAttribute="centerX" id="o6l-Fj-Cb6"/>
202 <constraint firstItem="eXd-TY-qlW" firstAttribute="top" secondItem="tqb-X5-ujR" secondAttribute="top" id="uPt-SF-Tbq"/> 230 <constraint firstItem="eXd-TY-qlW" firstAttribute="top" secondItem="tqb-X5-ujR" secondAttribute="top" id="uPt-SF-Tbq"/>
203 </constraints> 231 </constraints>
204 </view> 232 </view>
  233 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="login_bottom2" translatesAutoresizingMaskIntoConstraints="NO" id="w9T-jY-F3e">
  234 + <rect key="frame" x="0.0" y="520" width="375" height="147"/>
  235 + <constraints>
  236 + <constraint firstAttribute="width" secondItem="w9T-jY-F3e" secondAttribute="height" multiplier="636:249" id="HLo-XG-7PS"/>
  237 + </constraints>
  238 + </imageView>
205 </subviews> 239 </subviews>
206 - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 240 + <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
207 <gestureRecognizers/> 241 <gestureRecognizers/>
208 <constraints> 242 <constraints>
209 - <constraint firstItem="agc-xf-u2B" firstAttribute="top" secondItem="Bob-Ef-450" secondAttribute="bottom" id="1po-1a-xaB"/>  
210 - <constraint firstItem="Bob-Ef-450" firstAttribute="leading" secondItem="rVC-Df-GKu" secondAttribute="leading" id="7Sq-vg-TJG"/> 243 + <constraint firstAttribute="trailing" secondItem="rfv-aY-7Su" secondAttribute="trailing" id="2JQ-xt-IcS"/>
  244 + <constraint firstItem="rfv-aY-7Su" firstAttribute="leading" secondItem="rVC-Df-GKu" secondAttribute="leading" id="CWh-Rw-Pq1"/>
  245 + <constraint firstItem="tqb-X5-ujR" firstAttribute="top" secondItem="rfv-aY-7Su" secondAttribute="bottom" id="DID-eg-sFe"/>
211 <constraint firstAttribute="trailing" secondItem="tqb-X5-ujR" secondAttribute="trailing" id="F9s-LV-2UW"/> 246 <constraint firstAttribute="trailing" secondItem="tqb-X5-ujR" secondAttribute="trailing" id="F9s-LV-2UW"/>
  247 + <constraint firstItem="agc-xf-u2B" firstAttribute="top" secondItem="w9T-jY-F3e" secondAttribute="bottom" id="MmO-RE-jQn"/>
212 <constraint firstItem="tqb-X5-ujR" firstAttribute="top" secondItem="M3F-7t-f1g" secondAttribute="bottom" constant="166" id="Oea-d4-0BB"/> 248 <constraint firstItem="tqb-X5-ujR" firstAttribute="top" secondItem="M3F-7t-f1g" secondAttribute="bottom" constant="166" id="Oea-d4-0BB"/>
213 - <constraint firstItem="Bob-Ef-450" firstAttribute="top" secondItem="rVC-Df-GKu" secondAttribute="top" id="TCI-Vu-vUz"/>  
214 - <constraint firstAttribute="trailing" secondItem="Bob-Ef-450" secondAttribute="trailing" id="y4W-E4-8L6"/> 249 + <constraint firstItem="w9T-jY-F3e" firstAttribute="leading" secondItem="rVC-Df-GKu" secondAttribute="leading" id="mVH-Af-iXP"/>
  250 + <constraint firstAttribute="trailing" secondItem="w9T-jY-F3e" secondAttribute="trailing" id="ofZ-WX-PK2"/>
215 <constraint firstItem="tqb-X5-ujR" firstAttribute="leading" secondItem="rVC-Df-GKu" secondAttribute="leading" id="zlD-w4-YPr"/> 251 <constraint firstItem="tqb-X5-ujR" firstAttribute="leading" secondItem="rVC-Df-GKu" secondAttribute="leading" id="zlD-w4-YPr"/>
216 </constraints> 252 </constraints>
217 <connections> 253 <connections>
@@ -524,7 +560,7 @@ @@ -524,7 +560,7 @@
524 </textField> 560 </textField>
525 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="hwv-0n-dsf"> 561 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="hwv-0n-dsf">
526 <rect key="frame" x="274" y="13" width="93" height="30"/> 562 <rect key="frame" x="274" y="13" width="93" height="30"/>
527 - <color key="backgroundColor" red="1" green="0.39607843139999999" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 563 + <color key="backgroundColor" red="0.10980392160000001" green="0.63529411759999999" blue="1" alpha="1" colorSpace="calibratedRGB"/>
528 <fontDescription key="fontDescription" type="system" pointSize="15"/> 564 <fontDescription key="fontDescription" type="system" pointSize="15"/>
529 <state key="normal" title=" 发送验证码 "> 565 <state key="normal" title=" 发送验证码 ">
530 <color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 566 <color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
@@ -613,7 +649,7 @@ @@ -613,7 +649,7 @@
613 </view> 649 </view>
614 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="R1Y-16-Th7"> 650 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="R1Y-16-Th7">
615 <rect key="frame" x="62.5" y="444" width="250" height="40"/> 651 <rect key="frame" x="62.5" y="444" width="250" height="40"/>
616 - <color key="backgroundColor" red="1" green="0.39607843139999999" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 652 + <color key="backgroundColor" red="0.10980392160000001" green="0.63529411759999999" blue="1" alpha="1" colorSpace="calibratedRGB"/>
617 <constraints> 653 <constraints>
618 <constraint firstAttribute="height" constant="40" id="Kvn-w3-Juc"/> 654 <constraint firstAttribute="height" constant="40" id="Kvn-w3-Juc"/>
619 </constraints> 655 </constraints>
@@ -624,7 +660,7 @@ @@ -624,7 +660,7 @@
624 <userDefinedRuntimeAttributes> 660 <userDefinedRuntimeAttributes>
625 <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> 661 <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
626 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> 662 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
627 - <integer key="value" value="20"/> 663 + <integer key="value" value="5"/>
628 </userDefinedRuntimeAttribute> 664 </userDefinedRuntimeAttribute>
629 </userDefinedRuntimeAttributes> 665 </userDefinedRuntimeAttributes>
630 <connections> 666 <connections>
@@ -635,7 +671,7 @@ @@ -635,7 +671,7 @@
635 <rect key="frame" x="325" y="359" width="35" height="30"/> 671 <rect key="frame" x="325" y="359" width="35" height="30"/>
636 <fontDescription key="fontDescription" type="system" pointSize="15"/> 672 <fontDescription key="fontDescription" type="system" pointSize="15"/>
637 <state key="normal" title="登 录"> 673 <state key="normal" title="登 录">
638 - <color key="titleColor" red="1" green="0.39607843139999999" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 674 + <color key="titleColor" red="0.10980392160000001" green="0.63529411759999999" blue="1" alpha="1" colorSpace="calibratedRGB"/>
639 </state> 675 </state>
640 <connections> 676 <connections>
641 <action selector="loginBtnClickAction:" destination="tCx-JF-YJm" eventType="touchUpInside" id="KlD-u3-W3P"/> 677 <action selector="loginBtnClickAction:" destination="tCx-JF-YJm" eventType="touchUpInside" id="KlD-u3-W3P"/>
@@ -724,7 +760,8 @@ @@ -724,7 +760,8 @@
724 </scene> 760 </scene>
725 </scenes> 761 </scenes>
726 <resources> 762 <resources>
727 - <image name="loginBackGround" width="33" height="33"/> 763 + <image name="icon" width="512" height="512"/>
  764 + <image name="login_bottom2" width="318" height="124"/>
728 <image name="userId.png" width="36" height="56"/> 765 <image name="userId.png" width="36" height="56"/>
729 <image name="userPassword.png" width="31" height="41"/> 766 <image name="userPassword.png" width="31" height="41"/>
730 <image name="上传头像.png" width="70" height="70"/> 767 <image name="上传头像.png" width="70" height="70"/>
YouerLiveVideo/YouerLiveVideo/util/network.swift
@@ -308,43 +308,43 @@ final class HTTPServer{ @@ -308,43 +308,43 @@ final class HTTPServer{
308 308
309 //MARK:-DataStatistics 309 //MARK:-DataStatistics
310 //获取前十学校的综合排行 310 //获取前十学校的综合排行
311 - func getSchoolGeneral(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){  
312 - KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETSCHOOLGENERAL, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) 311 + func getSchoolGeneral(completionHandler:@escaping (String?, NSError?) -> ()){
  312 + KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETSCHOOLGENERAL,headers:["Authorization":token!], completionHandler: completionHandler)
313 } 313 }
314 314
315 //获取前十学校的阅读量排行 315 //获取前十学校的阅读量排行
316 - func getSchoolPv(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){  
317 - KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETSCHOOLPV, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) 316 + func getSchoolPv(completionHandler:@escaping (String?, NSError?) -> ()){
  317 + KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETSCHOOLPV, headers:["Authorization":token!], completionHandler: completionHandler)
318 } 318 }
319 319
320 //获取排行前十学校的下载量 320 //获取排行前十学校的下载量
321 - func getSchoolDownloads(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){  
322 - KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETSCHOOLDOWNLOADS, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) 321 + func getSchoolDownloads(completionHandler:@escaping (String?, NSError?) -> ()){
  322 + KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETSCHOOLDOWNLOADS,headers:["Authorization":token!], completionHandler: completionHandler)
323 } 323 }
324 324
325 //获取排行前十学校的上传数 325 //获取排行前十学校的上传数
326 - func getSchoolUpload(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){  
327 - KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETSCHOOLUPLOAD, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) 326 + func getSchoolUpload(completionHandler:@escaping (String?, NSError?) -> ()){
  327 + KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETSCHOOLUPLOAD,headers:["Authorization":token!], completionHandler: completionHandler)
328 } 328 }
329 329
330 //获取排行前十的教师的综合数 330 //获取排行前十的教师的综合数
331 - func getTeacherGenerals(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){  
332 - KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETTEACHERGENERALS, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) 331 + func getTeacherGenerals(completionHandler:@escaping (String?, NSError?) -> ()){
  332 + KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETTEACHERGENERALS,headers:["Authorization":token!], completionHandler: completionHandler)
333 } 333 }
334 334
335 //获取排名前十的教师发的资源的阅读量 335 //获取排名前十的教师发的资源的阅读量
336 - func getTeacherPvs(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){  
337 - KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETTEACHERPVS, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) 336 + func getTeacherPvs(completionHandler:@escaping (String?, NSError?) -> ()){
  337 + KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETTEACHERPVS, headers:["Authorization":token!], completionHandler: completionHandler)
338 } 338 }
339 339
340 //获取排名前十的资源的下载量 340 //获取排名前十的资源的下载量
341 - func getTeacherDownload(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){  
342 - KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETTEACHERDOWNLOAD, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) 341 + func getTeacherDownload(completionHandler:@escaping (String?, NSError?) -> ()){
  342 + KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETTEACHERDOWNLOAD, headers:["Authorization":token!], completionHandler: completionHandler)
343 } 343 }
344 344
345 //获取排名前十的教师的上传量 345 //获取排名前十的教师的上传量
346 - func getTeacherUpload(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){  
347 - KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETTEACHERUPLOAD, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) 346 + func getTeacherUpload(completionHandler:@escaping (String?, NSError?) -> ()){
  347 + KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETTEACHERUPLOAD,headers:["Authorization":token!], completionHandler: completionHandler)
348 } 348 }
349 349
350 //分页获取排行榜 350 //分页获取排行榜
YouerLiveVideo/YouerLiveVideo/util/utiles.swift
@@ -49,7 +49,7 @@ class AlertController { @@ -49,7 +49,7 @@ class AlertController {
49 } 49 }
50 class Theme{ 50 class Theme{
51 static func topBarColor()->UIColor{ 51 static func topBarColor()->UIColor{
52 - return UIColorFromRGB(0xff6533)//UIColorFromRGB(0xff9b34)f6595f 52 + return UIColorFromRGB(0x1CA2FF)//UIColorFromRGB(0xff9b34)f6595f
53 } 53 }
54 ///按钮样式 54 ///按钮样式
55 static func configButton(_ button:UIButton){ 55 static func configButton(_ button:UIButton){
@@ -191,7 +191,15 @@ class indexLongPressGesture: UILongPressGestureRecognizer { @@ -191,7 +191,15 @@ class indexLongPressGesture: UILongPressGestureRecognizer {
191 class indexUIMenuItem: UIMenuItem { 191 class indexUIMenuItem: UIMenuItem {
192 var indexPath:IndexPath? 192 var indexPath:IndexPath?
193 } 193 }
194 - 194 +//获取元素在数组中的位置
  195 +func getCurrentIndex(item:Int,arry:[Int])->Int{
  196 + for i in 0..<arry.count {
  197 + if arry[i]==item{
  198 + return i
  199 + }
  200 + }
  201 + return 0
  202 +}
195 //图片缩放 203 //图片缩放
196 extension UIImage{ 204 extension UIImage{
197 func imageScaledToScale(_ scale:CGFloat)->UIImage{ 205 func imageScaledToScale(_ scale:CGFloat)->UIImage{