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 | ... | ... |