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 141 BF6977971E2DEC98006FA934 /* loginBackGround.png in Resources */ = {isa = PBXBuildFile; fileRef = BF6977941E2DEC98006FA934 /* loginBackGround.png */; };
142 142 BF6977981E2DEC98006FA934 /* userId.png in Resources */ = {isa = PBXBuildFile; fileRef = BF6977951E2DEC98006FA934 /* userId.png */; };
143 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 145 BF7B75961E305A6D0011D5C7 /* MJRefreshAutoFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B756A1E305A6D0011D5C7 /* MJRefreshAutoFooter.m */; };
145 146 BF7B75971E305A6D0011D5C7 /* MJRefreshBackFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B756C1E305A6D0011D5C7 /* MJRefreshBackFooter.m */; };
146 147 BF7B75981E305A6D0011D5C7 /* MJRefreshComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B756E1E305A6D0011D5C7 /* MJRefreshComponent.m */; };
... ... @@ -161,6 +162,7 @@
161 162 BF7B75A71E305A6D0011D5C7 /* UIScrollView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B75911E305A6D0011D5C7 /* UIScrollView+MJExtension.m */; };
162 163 BF7B75A81E305A6D0011D5C7 /* UIScrollView+MJRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B75931E305A6D0011D5C7 /* UIScrollView+MJRefresh.m */; };
163 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 166 BFBB83A91ECAE35E008B404B /* LeadViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83A81ECAE35E008B404B /* LeadViewController.swift */; };
165 167 BFBB83D11ECBEB4E008B404B /* JYScrollItem.m in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83CC1ECBEB4E008B404B /* JYScrollItem.m */; };
166 168 BFBB83D21ECBEB4E008B404B /* JYScrollItemModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83CE1ECBEB4E008B404B /* JYScrollItemModel.m */; };
... ... @@ -461,6 +463,7 @@
461 463 BF6977941E2DEC98006FA934 /* loginBackGround.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = loginBackGround.png; sourceTree = "<group>"; };
462 464 BF6977951E2DEC98006FA934 /* userId.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = userId.png; sourceTree = "<group>"; };
463 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 467 BF7B75691E305A6D0011D5C7 /* MJRefreshAutoFooter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MJRefreshAutoFooter.h; sourceTree = "<group>"; };
465 468 BF7B756A1E305A6D0011D5C7 /* MJRefreshAutoFooter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MJRefreshAutoFooter.m; sourceTree = "<group>"; };
466 469 BF7B756B1E305A6D0011D5C7 /* MJRefreshBackFooter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MJRefreshBackFooter.h; sourceTree = "<group>"; };
... ... @@ -501,6 +504,7 @@
501 504 BF7B75931E305A6D0011D5C7 /* UIScrollView+MJRefresh.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIScrollView+MJRefresh.m"; sourceTree = "<group>"; };
502 505 BF7B75941E305A6D0011D5C7 /* UIView+MJExtension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+MJExtension.h"; sourceTree = "<group>"; };
503 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 508 BFBB83A81ECAE35E008B404B /* LeadViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LeadViewController.swift; sourceTree = "<group>"; };
505 509 BFBB83CB1ECBEB4E008B404B /* JYScrollItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JYScrollItem.h; sourceTree = "<group>"; };
506 510 BFBB83CC1ECBEB4E008B404B /* JYScrollItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JYScrollItem.m; sourceTree = "<group>"; };
... ... @@ -591,8 +595,8 @@
591 595 BFBB83A81ECAE35E008B404B /* LeadViewController.swift */,
592 596 5904FC601ECA930D00E631FF /* MViewController.swift */,
593 597 5904FC431ECA8B8C00E631FF /* HomePage */,
594   - 5904FC441ECA8B8C00E631FF /* MicroCourse */,
595 598 5904FC461ECA8B8C00E631FF /* Resource */,
  599 + 5904FC441ECA8B8C00E631FF /* MicroCourse */,
596 600 5904FC481ECA8B8C00E631FF /* TVStation */,
597 601 BFBB83D81ECC445D008B404B /* User */,
598 602 );
... ... @@ -603,6 +607,7 @@
603 607 isa = PBXGroup;
604 608 children = (
605 609 BF682F1D1ECE8772007632CA /* MainHomeTableViewController.swift */,
  610 + BF8E52ED1ECFD16000E472E8 /* RankingTableViewController.swift */,
606 611 5904FC541ECA8BCB00E631FF /* HomePage.storyboard */,
607 612 );
608 613 path = HomePage;
... ... @@ -621,6 +626,7 @@
621 626 isa = PBXGroup;
622 627 children = (
623 628 5904FC471ECA8B8C00E631FF /* ResourceViewController.swift */,
  629 + BF7722F21ED283D400226D44 /* FilterViewController.swift */,
624 630 59AE3DFA1ECECD7D003E2C62 /* LiveInforViewController.swift */,
625 631 59AE3DFC1ECED5B1003E2C62 /* MoivePlayerViewController.swift */,
626 632 597185B41ECA990C00D7F478 /* Resource.storyboard */,
... ... @@ -1561,7 +1567,9 @@
1561 1567 BF7B75A11E305A6D0011D5C7 /* MJRefreshGifHeader.m in Sources */,
1562 1568 599B2CE31DE52F7E00B4F7FD /* UMSocialUIManager.m in Sources */,
1563 1569 BF25DFF91DDAA36A003EC0C1 /* NSImage+WebCache.m in Sources */,
  1570 + BF8E52EE1ECFD16000E472E8 /* RankingTableViewController.swift in Sources */,
1564 1571 59F8014F1DD2C7AD000A78B0 /* AppDelegate.swift in Sources */,
  1572 + BF7722F31ED283D400226D44 /* FilterViewController.swift in Sources */,
1565 1573 BF25DFED1DDAA36A003EC0C1 /* ResponseSerialization.swift in Sources */,
1566 1574 BF25E0031DDAA36A003EC0C1 /* UIImage+GIF.m in Sources */,
1567 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 @@
  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 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 3 <device id="retina4_7" orientation="portrait">
4 4 <adaptation id="fullscreen"/>
5 5 </device>
... ... @@ -11,26 +11,7 @@
11 11 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
12 12 </dependencies>
13 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 15 <scene sceneID="NfM-rG-voH">
35 16 <objects>
36 17 <viewController id="xEc-U1-QCp" customClass="ResourceViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController">
... ... @@ -42,18 +23,65 @@
42 23 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
43 24 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
44 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 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 69 <rect key="frame" x="0.0" y="158" width="375" height="460"/>
47 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 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 78 <rect key="frame" x="0.0" y="28" width="375" height="143"/>
51 79 <autoresizingMask key="autoresizingMask"/>
52 80 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="tO9-FG-1Ux" id="73f-qf-61d">
53 81 <rect key="frame" x="0.0" y="0.0" width="375" height="142"/>
54 82 <autoresizingMask key="autoresizingMask"/>
55 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 85 <rect key="frame" x="8" y="26.5" width="90" height="90"/>
58 86 <constraints>
59 87 <constraint firstAttribute="width" constant="90" id="1QK-QU-Ukp"/>
... ... @@ -61,7 +89,7 @@
61 89 </constraints>
62 90 </imageView>
63 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 93 <fontDescription key="fontDescription" type="system" pointSize="17"/>
66 94 <nil key="textColor"/>
67 95 <nil key="highlightedColor"/>
... ... @@ -80,6 +108,7 @@
80 108 </label>
81 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 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 112 <fontDescription key="fontDescription" type="system" pointSize="17"/>
84 113 <nil key="textColor"/>
85 114 <nil key="highlightedColor"/>
... ... @@ -95,7 +124,7 @@
95 124 <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
96 125 </state>
97 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 128 <rect key="frame" x="297" y="90.5" width="20" height="20"/>
100 129 <constraints>
101 130 <constraint firstAttribute="width" secondItem="ds9-Gw-nOf" secondAttribute="height" multiplier="1:1" id="Mto-fo-vVR"/>
... ... @@ -112,6 +141,7 @@
112 141 <constraint firstItem="paA-9W-bbM" firstAttribute="centerY" secondItem="WIc-YL-RvX" secondAttribute="centerY" id="Me2-Im-Vc9"/>
113 142 <constraint firstItem="fqH-Ro-Yhh" firstAttribute="leading" secondItem="73f-qf-61d" secondAttribute="leading" constant="8" id="Zty-O7-8xT"/>
114 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 145 <constraint firstItem="paA-9W-bbM" firstAttribute="leading" secondItem="ds9-Gw-nOf" secondAttribute="trailing" constant="8" id="g70-bh-6yw"/>
116 146 <constraint firstItem="IQj-VB-dch" firstAttribute="leading" secondItem="FNV-Qr-xrm" secondAttribute="leading" id="hRh-iw-dub"/>
117 147 <constraint firstItem="WIc-YL-RvX" firstAttribute="leading" secondItem="FNV-Qr-xrm" secondAttribute="leading" id="lPb-2C-esz"/>
... ... @@ -120,6 +150,13 @@
120 150 <constraint firstAttribute="trailing" secondItem="yx0-8F-VaM" secondAttribute="trailing" constant="8" id="pBd-Lh-bTy"/>
121 151 </constraints>
122 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 160 </tableViewCell>
124 161 </prototypes>
125 162 <connections>
... ... @@ -127,71 +164,81 @@
127 164 <outlet property="delegate" destination="xEc-U1-QCp" id="iof-1s-GH1"/>
128 165 </connections>
129 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 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 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 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 196 </subviews>
174 197 <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
175 198 <constraints>
176 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 200 <constraint firstAttribute="trailing" secondItem="su6-Ve-Mu4" secondAttribute="trailing" id="Bce-ui-FBr"/>
180 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 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 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 212 <constraint firstItem="su6-Ve-Mu4" firstAttribute="leading" secondItem="SdC-Ao-cee" secondAttribute="leading" id="ydL-OO-314"/>
186 213 </constraints>
187 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 223 </viewController>
190 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 238 </objects>
192 239 <point key="canvasLocation" x="-1084" y="2112.5937031484259"/>
193 240 </scene>
194   - <!--Main Home Table View Controller-->
  241 + <!--教育视频云-->
195 242 <scene sceneID="Npa-Do-pvj">
196 243 <objects>
197 244 <tableViewController id="HdB-6p-eAX" customClass="MainHomeTableViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController">
... ... @@ -205,7 +252,7 @@
205 252 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
206 253 </view>
207 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 256 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
210 257 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
211 258 </view>
... ... @@ -220,60 +267,68 @@
220 267 <autoresizingMask key="autoresizingMask"/>
221 268 <subviews>
222 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 271 <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
225 272 <constraints>
226   - <constraint firstAttribute="height" constant="20" id="mtL-aK-O9I"/>
  273 + <constraint firstAttribute="height" constant="15" id="mtL-aK-O9I"/>
227 274 </constraints>
228 275 </view>
229 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 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 281 </constraints>
235 282 </imageView>
236 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 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 289 </constraints>
242 290 </imageView>
243 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 295 <nil key="highlightedColor"/>
248 296 </label>
249 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 299 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
252 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 302 <size key="headerReferenceSize" width="0.0" height="0.0"/>
255 303 <size key="footerReferenceSize" width="0.0" height="0.0"/>
256 304 <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
257 305 </collectionViewFlowLayout>
258 306 <cells>
259 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 309 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
262 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 312 <autoresizingMask key="autoresizingMask"/>
265 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 322 </imageView>
269 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 327 <nil key="highlightedColor"/>
274 328 </label>
275 329 </subviews>
276 330 </view>
  331 + <color key="backgroundColor" red="0.10980392160000001" green="0.63529411759999999" blue="1" alpha="1" colorSpace="calibratedRGB"/>
277 332 <constraints>
278 333 <constraint firstItem="633-X9-DpN" firstAttribute="leading" secondItem="0XL-6V-xV9" secondAttribute="leading" id="G57-Qp-dfe"/>
279 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 350 </collectionView>
296 351 </subviews>
297 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 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 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 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 366 </constraints>
312 367 </tableViewCellContentView>
313 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 371 <autoresizingMask key="autoresizingMask"/>
317 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 374 <autoresizingMask key="autoresizingMask"/>
320 375 <subviews>
321 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 378 <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
324 379 <constraints>
325   - <constraint firstAttribute="height" constant="20" id="cu9-3U-16R"/>
  380 + <constraint firstAttribute="height" constant="15" id="cu9-3U-16R"/>
326 381 </constraints>
327 382 </view>
328 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 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 388 </constraints>
334 389 </imageView>
335 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 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 395 </constraints>
341 396 </imageView>
342 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 401 <nil key="highlightedColor"/>
347 402 </label>
348 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 405 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
351 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 408 <size key="headerReferenceSize" width="0.0" height="0.0"/>
354 409 <size key="footerReferenceSize" width="0.0" height="0.0"/>
355 410 <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
356 411 </collectionViewFlowLayout>
357 412 <cells>
358 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 415 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
361 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 418 <autoresizingMask key="autoresizingMask"/>
364 419 <subviews>
365 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 422 <userDefinedRuntimeAttributes>
368 423 <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
369 424 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
... ... @@ -372,37 +427,37 @@
372 427 </userDefinedRuntimeAttributes>
373 428 </imageView>
374 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 433 <nil key="highlightedColor"/>
379 434 </label>
380 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 437 <fontDescription key="fontDescription" type="system" pointSize="12"/>
383 438 <nil key="textColor"/>
384 439 <nil key="highlightedColor"/>
385 440 </label>
386 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 443 <constraints>
389 444 <constraint firstAttribute="width" constant="34.5" id="4Ms-Yd-VYH"/>
390 445 </constraints>
391 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 448 <nil key="highlightedColor"/>
394 449 </label>
395 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 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 454 <nil key="highlightedColor"/>
400 455 </label>
401 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 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 461 </constraints>
407 462 </imageView>
408 463 </subviews>
... ... @@ -411,19 +466,19 @@
411 466 <constraint firstItem="Z3c-Ai-wr8" firstAttribute="leading" secondItem="FRa-kP-4Or" secondAttribute="trailing" constant="8" id="4L1-p3-lcO"/>
412 467 <constraint firstAttribute="trailingMargin" secondItem="Okq-ZI-Xh2" secondAttribute="trailing" constant="61" id="6V2-3e-YCS"/>
413 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 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 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 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 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 482 </constraints>
428 483 <connections>
429 484 <outlet property="dateLabel" destination="Z3c-Ai-wr8" id="FRL-DX-Cjy"/>
... ... @@ -441,76 +496,76 @@
441 496 </collectionView>
442 497 </subviews>
443 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 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 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 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 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 512 </constraints>
458 513 </tableViewCellContentView>
459 514 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
460 515 </tableViewCell>
461 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 518 <autoresizingMask key="autoresizingMask"/>
464 519 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="gzq-jC-D39" id="kA1-Za-kS2">
465 520 <rect key="frame" x="0.0" y="0.0" width="375" height="313"/>
466 521 <autoresizingMask key="autoresizingMask"/>
467 522 <subviews>
468 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 525 <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
471 526 <constraints>
472   - <constraint firstAttribute="height" constant="20" id="zk7-4f-Srd"/>
  527 + <constraint firstAttribute="height" constant="15" id="zk7-4f-Srd"/>
473 528 </constraints>
474 529 </view>
475 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 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 535 </constraints>
481 536 </imageView>
482 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 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 542 </constraints>
488 543 </imageView>
489 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 548 <nil key="highlightedColor"/>
494 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 552 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
498 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 555 <size key="headerReferenceSize" width="0.0" height="0.0"/>
501 556 <size key="footerReferenceSize" width="0.0" height="0.0"/>
502 557 <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
503 558 </collectionViewFlowLayout>
504 559 <cells>
505 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 562 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
508 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 565 <autoresizingMask key="autoresizingMask"/>
511 566 <subviews>
512 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 569 <constraints>
515 570 <constraint firstAttribute="width" secondItem="bUk-R1-5gT" secondAttribute="height" multiplier="1:1" id="MTe-oF-wJF"/>
516 571 </constraints>
... ... @@ -521,62 +576,66 @@
521 576 </userDefinedRuntimeAttribute>
522 577 </userDefinedRuntimeAttributes>
523 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 581 <constraints>
527   - <constraint firstAttribute="height" constant="42" id="9Hi-f9-B2N"/>
  582 + <constraint firstAttribute="height" constant="30" id="5EB-ra-Pnh"/>
528 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 586 <nil key="highlightedColor"/>
532 587 </label>
533 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 595 <nil key="highlightedColor"/>
538 596 </label>
539 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 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 601 <nil key="highlightedColor"/>
544 602 </label>
545 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 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 608 </constraints>
551 609 </imageView>
552 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 612 <constraints>
555 613 <constraint firstAttribute="height" constant="15" id="8nl-am-VuO"/>
556 614 </constraints>
557 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 617 <nil key="highlightedColor"/>
560 618 </label>
561 619 </subviews>
562 620 </view>
  621 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
563 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 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 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 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 635 <constraint firstItem="bUk-R1-5gT" firstAttribute="top" secondItem="gdp-Ji-zur" secondAttribute="top" id="q6C-YR-cFO"/>
578 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 639 </constraints>
581 640 <connections>
582 641 <outlet property="dateLabel" destination="q2O-JU-nOk" id="cCA-VL-aAf"/>
... ... @@ -594,61 +653,61 @@
594 653 </collectionView>
595 654 </subviews>
596 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 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 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 666 <constraint firstItem="9Zz-SB-8Fl" firstAttribute="leading" secondItem="kA1-Za-kS2" secondAttribute="leading" id="iZd-Ff-YdA"/>
608 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 669 </constraints>
611 670 </tableViewCellContentView>
612 671 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
613 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 675 <autoresizingMask key="autoresizingMask"/>
617 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 678 <autoresizingMask key="autoresizingMask"/>
620 679 <subviews>
621 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 682 <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
624 683 <constraints>
625   - <constraint firstAttribute="height" constant="20" id="8kZ-Qb-uv0"/>
  684 + <constraint firstAttribute="height" constant="15" id="8kZ-Qb-uv0"/>
626 685 </constraints>
627 686 </view>
628 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 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 692 </constraints>
634 693 </imageView>
635 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 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 699 </constraints>
641 700 </imageView>
642 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 705 <nil key="highlightedColor"/>
647 706 </label>
648 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 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 711 <size key="itemSize" width="128" height="200"/>
653 712 <size key="headerReferenceSize" width="0.0" height="0.0"/>
654 713 <size key="footerReferenceSize" width="0.0" height="0.0"/>
... ... @@ -668,8 +727,8 @@
668 727 <constraints>
669 728 <constraint firstAttribute="height" constant="30" id="4Og-hL-nhw"/>
670 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 732 <nil key="highlightedColor"/>
674 733 </label>
675 734 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="ZWf-Th-UTw">
... ... @@ -701,19 +760,19 @@
701 760 </collectionView>
702 761 </subviews>
703 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 767 <constraint firstItem="Mv3-YA-1zb" firstAttribute="top" secondItem="pAP-UQ-eh8" secondAttribute="top" id="ARU-SJ-pTz"/>
708 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 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 776 </constraints>
718 777 </tableViewCellContentView>
719 778 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
... ... @@ -726,13 +785,7 @@
726 785 <outlet property="delegate" destination="HdB-6p-eAX" id="k2q-uw-6l0"/>
727 786 </connections>
728 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 789 <connections>
737 790 <outlet property="tableHeaderView" destination="w64-sF-NZ9" id="GF0-Uu-8HD"/>
738 791 </connections>
... ... @@ -772,7 +825,7 @@
772 825 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
773 826 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
774 827 </view>
775   - <navigationItem key="navigationItem" id="bcC-ei-aNW"/>
  828 + <navigationItem key="navigationItem" title="用户" id="KBV-ql-Taf"/>
776 829 </viewController>
777 830 <placeholder placeholderIdentifier="IBFirstResponder" id="yJD-YG-4bQ" userLabel="First Responder" sceneMemberID="firstResponder"/>
778 831 </objects>
... ... @@ -1064,7 +1117,7 @@
1064 1117 </navigationBar>
1065 1118 <nil name="viewControllers"/>
1066 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 1121 </connections>
1069 1122 </navigationController>
1070 1123 <placeholder placeholderIdentifier="IBFirstResponder" id="xYG-HE-dff" userLabel="First Responder" sceneMemberID="firstResponder"/>
... ... @@ -1129,7 +1182,7 @@
1129 1182 <rect key="frame" x="0.0" y="28" width="375" height="178"/>
1130 1183 <autoresizingMask key="autoresizingMask"/>
1131 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 1186 <autoresizingMask key="autoresizingMask"/>
1134 1187 <subviews>
1135 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 1261 </constraints>
1209 1262 </view>
1210 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 1265 <connections>
1213 1266 <outlet property="tableView" destination="IhH-sz-Bd2" id="ut2-uV-tkE"/>
1214 1267 </connections>
... ... @@ -1236,6 +1289,233 @@
1236 1289 </objects>
1237 1290 <point key="canvasLocation" x="-1838" y="1415"/>
1238 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 1519 </scenes>
1240 1520 <resources>
1241 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 3 <device id="retina4_7" orientation="portrait">
4 4 <adaptation id="fullscreen"/>
5 5 </device>
6 6 <dependencies>
7 7 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11757"/>
  8 + <capability name="Constraints to layout margins" minToolsVersion="6.0"/>
8 9 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
9 10 </dependencies>
10 11 <scenes>
11   - <!--View Controller-->
12   - <scene sceneID="eHj-Hl-wWx">
  12 + <!--排行-->
  13 + <scene sceneID="dY5-uz-H10">
13 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 17 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
21 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 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 59 </subviews>
  60 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
55 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 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 124 </objects>
77   - <point key="canvasLocation" x="164" y="253.2233883058471"/>
  125 + <point key="canvasLocation" x="196" y="260.41979010494754"/>
78 126 </scene>
79 127 </scenes>
  128 + <resources>
  129 + <image name="botoom_image" width="48" height="48"/>
  130 + </resources>
80 131 </document>
... ...
YouerLiveVideo/YouerLiveVideo/controllers/HomePage/MainHomeTableViewController.swift
... ... @@ -21,7 +21,7 @@ class MainHomeTableViewController: UITableViewController {
21 21 func settingIconAndTitle(){
22 22 let photo=UIImageView(frame: CGRect(x: 0, y: 0, width: 35, height: 35))
23 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 25 photo.layer.masksToBounds=true
26 26 let leftBarButtonItem=UIBarButtonItem(customView: photo)
27 27 self.navigationItem.leftBarButtonItem=leftBarButtonItem
... ... @@ -80,12 +80,14 @@ class MainHomeTableViewController: UITableViewController {
80 80 return 4
81 81 }
82 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 87 }else if indexPath.row==2{
86   - return (getScreenWidth()-16)/3+103+86
  88 + return (getScreenWidth()-40)/3+170.5
87 89 }else{
88   - return (getScreenWidth()-30)/3+30+86
  90 + return (getScreenWidth()-40)/3+110
89 91 }
90 92 }
91 93 override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
... ... @@ -111,6 +113,11 @@ class MainHomeTableViewController: UITableViewController {
111 113 */
112 114 override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
113 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 155 }
149 156 }
150 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 161 func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
... ... @@ -202,7 +209,7 @@ class HomeSecondTableViewCell: UITableViewCell,UICollectionViewDelegate,UICollec
202 209 NSLog("点击了****\(dataSet[indexPath.row])")
203 210 }
204 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 214 func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
208 215 return dataSet.count
... ... @@ -324,7 +331,7 @@ class HomeThirdTableViewCell: UITableViewCell,UICollectionViewDelegate,UICollect
324 331 NSLog("点击了****\(dataSet[indexPath.row])")
325 332 }
326 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 336 func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
330 337 return dataSet.count
... ... @@ -383,7 +390,7 @@ class HomeFourTableViewCell: UITableViewCell,UICollectionViewDelegate,UICollecti
383 390 NSLog("点击了****\(dataSet[indexPath.row])")
384 391 }
385 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 395 func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
389 396 return dataSet.count
... ...
YouerLiveVideo/YouerLiveVideo/controllers/HomePage/RankingTableViewController.swift 0 → 100644
... ... @@ -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 20 super.viewDidLoad()
21 21 self.tabBar.tintColor=Theme.topBarColor()
22 22 tabBar.barTintColor=UIColor.white
  23 + tabBarController?.tabBar.isHidden=true
23 24 }
24 25  
25 26 override func didReceiveMemoryWarning() {
... ...
YouerLiveVideo/YouerLiveVideo/controllers/MicroCourse/MicroCourseViewController.swift
... ... @@ -8,28 +8,176 @@
8 8  
9 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 23 override func viewDidLoad() {
14 24 super.viewDidLoad()
15 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 @@
  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 16 @IBOutlet weak var updataPersonPhoto: UIImageView!
17 17 @IBOutlet weak var updataPersonName: UILabel!
18 18 @IBOutlet weak var updataTime: UILabel!
19   -
20   - var tvStation:TVStationSubject!
  19 + var item:MicroCourseModel!
21 20 override func viewDidLoad() {
22 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 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 27 }, failHandler: { (error) in
28 28  
29 29 })
30 30 }
  31 +
31 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 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 3 <device id="retina4_7" orientation="portrait">
4 4 <adaptation id="fullscreen"/>
5 5 </device>
... ... @@ -9,6 +9,25 @@
9 9 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
10 10 </dependencies>
11 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 31 <!--Live Infor View Controller-->
13 32 <scene sceneID="QrF-a4-VNS">
14 33 <objects>
... ...
YouerLiveVideo/YouerLiveVideo/controllers/Resource/ResourceViewController.swift
... ... @@ -8,49 +8,161 @@
8 8  
9 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 23 override func viewDidLoad() {
14 24 super.viewDidLoad()
15 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 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 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 166 extension ResourceViewController:UICollectionViewDelegate,UICollectionViewDelegateFlowLayout,UICollectionViewDataSource{
55 167  
56 168 func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
... ... @@ -68,7 +180,18 @@ extension ResourceViewController:UICollectionViewDelegate,UICollectionViewDelega
68 180 }
69 181  
70 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 103  
104 104 func TVStationBtnClick(btn:UIButton){
105 105 titleSelectBtn = btn.tag%10
  106 + classSelectBtn = 0
106 107 for i in 0..<TVStationClasses.count{
107 108 let item = AllTitleView.viewWithTag(200+i) as! UIButton
108 109 item.backgroundColor = UIColor.white
... ... @@ -200,10 +201,19 @@ extension ExcellentTVViewController:UICollectionViewDelegate,UICollectionViewDat
200 201 btn.setTitleColor(UIColor.white, for: .normal)
201 202 btn.backgroundColor = UIColor.blue
202 203 }
203   -
  204 +
204 205 func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
205 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 217 return cell
208 218 }
209 219  
... ... @@ -230,16 +240,7 @@ class ExcellentTVViewCell: UICollectionViewCell,UICollectionViewDelegate,UIColl
230 240  
231 241  
232 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 246 func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
... ... @@ -248,6 +249,8 @@ class ExcellentTVViewCell: UICollectionViewCell,UICollectionViewDelegate,UIColl
248 249  
249 250 func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
250 251 let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell1", for: indexPath) as! ExcellentTVInforViewCell
  252 + let item = datatSet[indexPath.row]
  253 + cell.model = item
251 254 return cell
252 255 }
253 256  
... ... @@ -256,7 +259,7 @@ class ExcellentTVViewCell: UICollectionViewCell,UICollectionViewDelegate,UIColl
256 259 }
257 260  
258 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 271  
269 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 293 class TVSubjectInfor{
... ...
YouerLiveVideo/YouerLiveVideo/controllers/TVStation/TVStation.storyboard
... ... @@ -136,20 +136,74 @@
136 136 <rect key="frame" x="0.0" y="0.0" width="376" height="392"/>
137 137 <color key="backgroundColor" red="0.89713114500000002" green="0.89431768659999999" blue="0.90413767099999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
138 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 140 <size key="headerReferenceSize" width="0.0" height="0.0"/>
141 141 <size key="footerReferenceSize" width="0.0" height="0.0"/>
142 142 <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
143 143 </collectionViewFlowLayout>
144 144 <cells>
145 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 147 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
148 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 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 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 207 </collectionViewCell>
154 208 </cells>
155 209 <connections>
... ...
YouerLiveVideo/YouerLiveVideo/controllers/User/UserCenter/LoginViewController.swift
... ... @@ -28,7 +28,7 @@ class LoginViewController: UIViewController,UITextFieldDelegate {
28 28 // let leftbtn = UIBarButtonItem(title: "返回", style: .plain, target: self, action: #selector(LoginViewController.back))
29 29 // self.navigationItem.title = "登录"
30 30 // self.navigationItem.leftBarButtonItem = leftbtn
31   - changeViewTop.constant=(getScreenHeight()-64-220)/3
  31 + changeViewTop.constant=(getScreenHeight()-64-220)/2
32 32 }
33 33 //点击页面回收键盘
34 34 @IBAction func touchAction(_ sender: AnyObject) {
... ... @@ -134,9 +134,9 @@ class LoginViewController: UIViewController,UITextFieldDelegate {
134 134 let userInfo:NSDictionary=noti.userInfo! as NSDictionary
135 135 let endFrame=(userInfo[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue
136 136 if endFrame?.origin.y==getScreenHeight() {
137   - changeViewTop.constant=(getScreenHeight()-64-220)/3
  137 + changeViewTop.constant=(getScreenHeight()-64-220)/2
138 138 }else{
139   - let y = (getScreenHeight()-64-220)/3+CGFloat(64+220)
  139 + let y = (getScreenHeight()-64-220)/2+CGFloat(64+220)
140 140 if (endFrame?.origin.y)! < y {
141 141 changeViewTop.constant=getScreenHeight()-64-(endFrame?.size.height)!-220
142 142 }
... ...
YouerLiveVideo/YouerLiveVideo/controllers/User/UserCenter/User.storyboard
... ... @@ -22,21 +22,46 @@
22 22 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
23 23 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
24 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 53 <view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="tqb-X5-ujR" customClass="UIControl">
29 54 <rect key="frame" x="0.0" y="186" width="375" height="220"/>
30 55 <subviews>
31 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 58 <subviews>
34 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 61 <subviews>
37 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 65 <constraints>
41 66 <constraint firstAttribute="height" constant="1" id="GtD-JL-A0z"/>
42 67 </constraints>
... ... @@ -51,8 +76,8 @@
51 76 <constraint firstAttribute="width" secondItem="1xZ-bM-AMz" secondAttribute="height" multiplier="9:14" id="DCg-L0-4Lx"/>
52 77 </constraints>
53 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 81 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
57 82 <fontDescription key="fontDescription" type="system" pointSize="13"/>
58 83 <textInputTraits key="textInputTraits" keyboardType="numberPad"/>
... ... @@ -61,7 +86,7 @@
61 86 </connections>
62 87 </textField>
63 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 90 <constraints>
66 91 <constraint firstAttribute="trailing" secondItem="IzH-dB-I9H" secondAttribute="trailing" id="DIX-3U-BQG"/>
67 92 <constraint firstAttribute="height" constant="56" id="Ff7-2n-071"/>
... ... @@ -69,16 +94,16 @@
69 94 <constraint firstItem="IzH-dB-I9H" firstAttribute="centerY" secondItem="EAC-sg-BLE" secondAttribute="centerY" id="Ud1-tF-ivz"/>
70 95 <constraint firstItem="1xZ-bM-AMz" firstAttribute="leading" secondItem="EAC-sg-BLE" secondAttribute="leading" constant="8" id="Z77-MJ-BF0"/>
71 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 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 100 </constraints>
76 101 </view>
77 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 104 <subviews>
80 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 107 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
83 108 <constraints>
84 109 <constraint firstAttribute="height" constant="1" id="aAz-El-TeO"/>
... ... @@ -94,8 +119,8 @@
94 119 <constraint firstAttribute="width" constant="20" id="vb3-Wd-N14"/>
95 120 </constraints>
96 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 124 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
100 125 <fontDescription key="fontDescription" type="system" pointSize="13"/>
101 126 <textInputTraits key="textInputTraits" secureTextEntry="YES"/>
... ... @@ -104,7 +129,7 @@
104 129 </connections>
105 130 </textField>
106 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 133 <constraints>
109 134 <constraint firstItem="oON-zY-4HS" firstAttribute="leading" secondItem="xba-Rv-jIe" secondAttribute="leading" constant="8" id="6sV-zB-qIs"/>
110 135 <constraint firstItem="nVn-EA-yWM" firstAttribute="centerY" secondItem="xba-Rv-jIe" secondAttribute="centerY" id="HaD-wa-ZFb"/>
... ... @@ -130,15 +155,18 @@
130 155 </constraints>
131 156 </view>
132 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 163 <fontDescription key="fontDescription" type="system" pointSize="15"/>
136 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 166 </state>
139 167 <userDefinedRuntimeAttributes>
140 168 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
141   - <integer key="value" value="15"/>
  169 + <integer key="value" value="5"/>
142 170 </userDefinedRuntimeAttribute>
143 171 <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
144 172 </userDefinedRuntimeAttributes>
... ... @@ -147,22 +175,20 @@
147 175 </connections>
148 176 </button>
149 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 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 182 <fontDescription key="fontDescription" type="system" pointSize="13"/>
155   - <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
156 183 <nil key="highlightedColor"/>
157 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 187 <fontDescription key="fontDescription" type="system" pointSize="13"/>
161   - <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
162 188 <nil key="highlightedColor"/>
163 189 </label>
164 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 192 <fontDescription key="fontDescription" type="system" pointSize="13"/>
167 193 <state key="normal">
168 194 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
... ... @@ -190,28 +216,38 @@
190 216 </subviews>
191 217 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
192 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 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 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 225 <constraint firstItem="eXd-TY-qlW" firstAttribute="centerX" secondItem="tqb-X5-ujR" secondAttribute="centerX" id="Yap-fj-Sza"/>
198 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 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 229 <constraint firstItem="pzO-1N-Vrz" firstAttribute="centerX" secondItem="tqb-X5-ujR" secondAttribute="centerX" id="o6l-Fj-Cb6"/>
202 230 <constraint firstItem="eXd-TY-qlW" firstAttribute="top" secondItem="tqb-X5-ujR" secondAttribute="top" id="uPt-SF-Tbq"/>
203 231 </constraints>
204 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 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 241 <gestureRecognizers/>
208 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 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 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 251 <constraint firstItem="tqb-X5-ujR" firstAttribute="leading" secondItem="rVC-Df-GKu" secondAttribute="leading" id="zlD-w4-YPr"/>
216 252 </constraints>
217 253 <connections>
... ... @@ -524,7 +560,7 @@
524 560 </textField>
525 561 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="hwv-0n-dsf">
526 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 564 <fontDescription key="fontDescription" type="system" pointSize="15"/>
529 565 <state key="normal" title=" 发送验证码 ">
530 566 <color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
... ... @@ -613,7 +649,7 @@
613 649 </view>
614 650 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="R1Y-16-Th7">
615 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 653 <constraints>
618 654 <constraint firstAttribute="height" constant="40" id="Kvn-w3-Juc"/>
619 655 </constraints>
... ... @@ -624,7 +660,7 @@
624 660 <userDefinedRuntimeAttributes>
625 661 <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
626 662 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
627   - <integer key="value" value="20"/>
  663 + <integer key="value" value="5"/>
628 664 </userDefinedRuntimeAttribute>
629 665 </userDefinedRuntimeAttributes>
630 666 <connections>
... ... @@ -635,7 +671,7 @@
635 671 <rect key="frame" x="325" y="359" width="35" height="30"/>
636 672 <fontDescription key="fontDescription" type="system" pointSize="15"/>
637 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 675 </state>
640 676 <connections>
641 677 <action selector="loginBtnClickAction:" destination="tCx-JF-YJm" eventType="touchUpInside" id="KlD-u3-W3P"/>
... ... @@ -724,7 +760,8 @@
724 760 </scene>
725 761 </scenes>
726 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 765 <image name="userId.png" width="36" height="56"/>
729 766 <image name="userPassword.png" width="31" height="41"/>
730 767 <image name="上传头像.png" width="70" height="70"/>
... ...
YouerLiveVideo/YouerLiveVideo/util/network.swift
... ... @@ -308,43 +308,43 @@ final class HTTPServer{
308 308  
309 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 49 }
50 50 class Theme{
51 51 static func topBarColor()->UIColor{
52   - return UIColorFromRGB(0xff6533)//UIColorFromRGB(0xff9b34)f6595f
  52 + return UIColorFromRGB(0x1CA2FF)//UIColorFromRGB(0xff9b34)f6595f
53 53 }
54 54 ///按钮样式
55 55 static func configButton(_ button:UIButton){
... ... @@ -191,7 +191,15 @@ class indexLongPressGesture: UILongPressGestureRecognizer {
191 191 class indexUIMenuItem: UIMenuItem {
192 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 204 extension UIImage{
197 205 func imageScaledToScale(_ scale:CGFloat)->UIImage{
... ...