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