Commit ab380ebb6e4e57bee87174f5d1652ff021411e14
Exists in
newLive
Merge branch 'newLive' of http://git.shunzhi.net/iosgroup/newlive into newLive
Showing
3 changed files
with
327 additions
and
22 deletions
Show diff stats
YouerLiveVideo/YouerLiveVideo/controllers/TVStation/SearchTVStationListViewController.swift
... | ... | @@ -10,6 +10,9 @@ import UIKit |
10 | 10 | |
11 | 11 | class SearchTVStationListViewController: UIViewController { |
12 | 12 | var alList:[String] = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"] |
13 | + | |
14 | + @IBOutlet weak var selectView: UIView! | |
15 | + | |
13 | 16 | override func viewDidLoad() { |
14 | 17 | super.viewDidLoad() |
15 | 18 | // Do any additional setup after loading the view. |
... | ... | @@ -39,7 +42,7 @@ extension SearchTVStationListViewController:UITableViewDataSource,UITableViewDel |
39 | 42 | } |
40 | 43 | |
41 | 44 | func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { |
42 | - return 3 | |
45 | + return 1 | |
43 | 46 | } |
44 | 47 | |
45 | 48 | func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { | ... | ... |
YouerLiveVideo/YouerLiveVideo/controllers/TVStation/TVStation.storyboard
1 | 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"> | |
2 | +<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12120" systemVersion="16A323" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> | |
3 | 3 | <device id="retina4_7" orientation="portrait"> |
4 | 4 | <adaptation id="fullscreen"/> |
5 | 5 | </device> |
6 | 6 | <dependencies> |
7 | - <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11757"/> | |
7 | + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12088"/> | |
8 | 8 | <capability name="Aspect ratio constraints" minToolsVersion="5.1"/> |
9 | 9 | <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |
10 | 10 | </dependencies> |
... | ... | @@ -89,37 +89,200 @@ |
89 | 89 | <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> |
90 | 90 | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
91 | 91 | <subviews> |
92 | - <searchBar contentMode="redraw" translatesAutoresizingMaskIntoConstraints="NO" id="ChK-me-hP6"> | |
92 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="LO5-7p-BlF"> | |
93 | + <rect key="frame" x="0.0" y="92" width="375" height="575"/> | |
94 | + <subviews> | |
95 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pA5-mr-wp5"> | |
96 | + <rect key="frame" x="0.0" y="0.0" width="375" height="48"/> | |
97 | + <subviews> | |
98 | + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fd9-K0-dbd"> | |
99 | + <rect key="frame" x="0.0" y="0.0" width="375" height="48"/> | |
100 | + <state key="normal" title="Button"/> | |
101 | + </button> | |
102 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Unb-Qo-FiA"> | |
103 | + <rect key="frame" x="16" y="0.0" width="343" height="0.0"/> | |
104 | + <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> | |
105 | + <constraints> | |
106 | + <constraint firstAttribute="height" id="BI9-34-fQB"/> | |
107 | + </constraints> | |
108 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | |
109 | + <nil key="textColor"/> | |
110 | + <nil key="highlightedColor"/> | |
111 | + </label> | |
112 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="小学" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rF3-mJ-pPr"> | |
113 | + <rect key="frame" x="169.5" y="13" width="35" height="21"/> | |
114 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | |
115 | + <nil key="textColor"/> | |
116 | + <nil key="highlightedColor"/> | |
117 | + </label> | |
118 | + </subviews> | |
119 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | |
120 | + <constraints> | |
121 | + <constraint firstAttribute="bottom" secondItem="fd9-K0-dbd" secondAttribute="bottom" id="6rw-GD-06f"/> | |
122 | + <constraint firstItem="rF3-mJ-pPr" firstAttribute="centerY" secondItem="pA5-mr-wp5" secondAttribute="centerY" id="Ncu-FL-IUg"/> | |
123 | + <constraint firstItem="fd9-K0-dbd" firstAttribute="top" secondItem="pA5-mr-wp5" secondAttribute="top" id="S2u-C5-cpE"/> | |
124 | + <constraint firstAttribute="trailing" secondItem="Unb-Qo-FiA" secondAttribute="trailing" constant="16" id="Wee-qc-CcZ"/> | |
125 | + <constraint firstAttribute="trailing" secondItem="fd9-K0-dbd" secondAttribute="trailing" id="Wz9-N2-5FD"/> | |
126 | + <constraint firstAttribute="height" constant="48" id="YGb-kx-Bvs"/> | |
127 | + <constraint firstItem="Unb-Qo-FiA" firstAttribute="leading" secondItem="pA5-mr-wp5" secondAttribute="leading" constant="16" id="eAi-qh-uTW"/> | |
128 | + <constraint firstItem="fd9-K0-dbd" firstAttribute="leading" secondItem="pA5-mr-wp5" secondAttribute="leading" id="lsn-sl-gUI"/> | |
129 | + <constraint firstItem="rF3-mJ-pPr" firstAttribute="centerX" secondItem="pA5-mr-wp5" secondAttribute="centerX" id="sKe-eU-InU"/> | |
130 | + <constraint firstItem="Unb-Qo-FiA" firstAttribute="top" secondItem="pA5-mr-wp5" secondAttribute="top" id="zmH-Rb-P8G"/> | |
131 | + </constraints> | |
132 | + </view> | |
133 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pKJ-J9-5CR"> | |
134 | + <rect key="frame" x="0.0" y="48" width="375" height="48"/> | |
135 | + <subviews> | |
136 | + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="veE-AU-inD"> | |
137 | + <rect key="frame" x="0.0" y="0.0" width="375" height="48"/> | |
138 | + <state key="normal" title="Button"/> | |
139 | + </button> | |
140 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ma4-Vs-Ai5"> | |
141 | + <rect key="frame" x="16" y="0.0" width="343" height="0.0"/> | |
142 | + <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> | |
143 | + <constraints> | |
144 | + <constraint firstAttribute="height" id="jyL-SO-bbs"/> | |
145 | + </constraints> | |
146 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | |
147 | + <nil key="textColor"/> | |
148 | + <nil key="highlightedColor"/> | |
149 | + </label> | |
150 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="初中" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FLD-Vw-eZ9"> | |
151 | + <rect key="frame" x="169.5" y="13" width="35" height="21"/> | |
152 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | |
153 | + <nil key="textColor"/> | |
154 | + <nil key="highlightedColor"/> | |
155 | + </label> | |
156 | + </subviews> | |
157 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | |
158 | + <constraints> | |
159 | + <constraint firstItem="ma4-Vs-Ai5" firstAttribute="top" secondItem="pKJ-J9-5CR" secondAttribute="top" id="Em3-dK-r7A"/> | |
160 | + <constraint firstItem="veE-AU-inD" firstAttribute="top" secondItem="pKJ-J9-5CR" secondAttribute="top" id="FHs-Rr-oDw"/> | |
161 | + <constraint firstItem="FLD-Vw-eZ9" firstAttribute="centerX" secondItem="pKJ-J9-5CR" secondAttribute="centerX" id="MaF-vn-NFk"/> | |
162 | + <constraint firstItem="FLD-Vw-eZ9" firstAttribute="centerY" secondItem="pKJ-J9-5CR" secondAttribute="centerY" id="OSS-PS-lIG"/> | |
163 | + <constraint firstAttribute="trailing" secondItem="ma4-Vs-Ai5" secondAttribute="trailing" constant="16" id="TK9-u0-NYJ"/> | |
164 | + <constraint firstAttribute="trailing" secondItem="veE-AU-inD" secondAttribute="trailing" id="he0-3w-aKO"/> | |
165 | + <constraint firstItem="ma4-Vs-Ai5" firstAttribute="leading" secondItem="pKJ-J9-5CR" secondAttribute="leading" constant="16" id="hvr-W0-KtG"/> | |
166 | + <constraint firstItem="veE-AU-inD" firstAttribute="leading" secondItem="pKJ-J9-5CR" secondAttribute="leading" id="iIG-ef-wiQ"/> | |
167 | + <constraint firstAttribute="bottom" secondItem="veE-AU-inD" secondAttribute="bottom" id="nnX-Fn-UsA"/> | |
168 | + <constraint firstAttribute="height" constant="48" id="zHI-3d-Hhy"/> | |
169 | + </constraints> | |
170 | + </view> | |
171 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="jQ0-hJ-LW9"> | |
172 | + <rect key="frame" x="0.0" y="96" width="375" height="48"/> | |
173 | + <subviews> | |
174 | + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="rrk-re-JuF"> | |
175 | + <rect key="frame" x="0.0" y="0.0" width="375" height="48"/> | |
176 | + <state key="normal" title="Button"/> | |
177 | + </button> | |
178 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="TwL-7i-SFE"> | |
179 | + <rect key="frame" x="16" y="0.0" width="343" height="0.0"/> | |
180 | + <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> | |
181 | + <constraints> | |
182 | + <constraint firstAttribute="height" id="wf7-2t-CcQ"/> | |
183 | + </constraints> | |
184 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | |
185 | + <nil key="textColor"/> | |
186 | + <nil key="highlightedColor"/> | |
187 | + </label> | |
188 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="高中" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bx3-SK-e4z"> | |
189 | + <rect key="frame" x="169.5" y="13" width="35" height="21"/> | |
190 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | |
191 | + <nil key="textColor"/> | |
192 | + <nil key="highlightedColor"/> | |
193 | + </label> | |
194 | + </subviews> | |
195 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | |
196 | + <constraints> | |
197 | + <constraint firstAttribute="bottom" secondItem="rrk-re-JuF" secondAttribute="bottom" id="1aG-FJ-kgi"/> | |
198 | + <constraint firstItem="rrk-re-JuF" firstAttribute="top" secondItem="jQ0-hJ-LW9" secondAttribute="top" id="4mU-tH-19D"/> | |
199 | + <constraint firstItem="rrk-re-JuF" firstAttribute="leading" secondItem="jQ0-hJ-LW9" secondAttribute="leading" id="8FP-Fd-szb"/> | |
200 | + <constraint firstAttribute="trailing" secondItem="TwL-7i-SFE" secondAttribute="trailing" constant="16" id="FJF-cd-6MQ"/> | |
201 | + <constraint firstItem="TwL-7i-SFE" firstAttribute="top" secondItem="jQ0-hJ-LW9" secondAttribute="top" id="HJS-18-xud"/> | |
202 | + <constraint firstAttribute="height" constant="48" id="L2i-9Z-Zje"/> | |
203 | + <constraint firstItem="TwL-7i-SFE" firstAttribute="leading" secondItem="jQ0-hJ-LW9" secondAttribute="leading" constant="16" id="WjE-rt-bZ1"/> | |
204 | + <constraint firstAttribute="trailing" secondItem="rrk-re-JuF" secondAttribute="trailing" id="ech-I6-0JJ"/> | |
205 | + <constraint firstItem="bx3-SK-e4z" firstAttribute="centerX" secondItem="jQ0-hJ-LW9" secondAttribute="centerX" id="l2K-Ec-fBQ"/> | |
206 | + <constraint firstItem="bx3-SK-e4z" firstAttribute="centerY" secondItem="jQ0-hJ-LW9" secondAttribute="centerY" id="yXB-yv-iX2"/> | |
207 | + </constraints> | |
208 | + </view> | |
209 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="PdH-vs-Gjn"> | |
210 | + <rect key="frame" x="0.0" y="144" width="375" height="48"/> | |
211 | + <subviews> | |
212 | + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bqH-ub-Nyu"> | |
213 | + <rect key="frame" x="0.0" y="0.0" width="375" height="48"/> | |
214 | + <state key="normal" title="Button"/> | |
215 | + </button> | |
216 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BGW-tg-2H6"> | |
217 | + <rect key="frame" x="16" y="0.0" width="343" height="0.0"/> | |
218 | + <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> | |
219 | + <constraints> | |
220 | + <constraint firstAttribute="height" id="eIc-hV-0qY"/> | |
221 | + </constraints> | |
222 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | |
223 | + <nil key="textColor"/> | |
224 | + <nil key="highlightedColor"/> | |
225 | + </label> | |
226 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="全部学段" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="VfQ-qt-gdx"> | |
227 | + <rect key="frame" x="152.5" y="13" width="69.5" height="21"/> | |
228 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | |
229 | + <nil key="textColor"/> | |
230 | + <nil key="highlightedColor"/> | |
231 | + </label> | |
232 | + </subviews> | |
233 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | |
234 | + <constraints> | |
235 | + <constraint firstItem="BGW-tg-2H6" firstAttribute="leading" secondItem="PdH-vs-Gjn" secondAttribute="leading" constant="16" id="46b-DV-o1H"/> | |
236 | + <constraint firstAttribute="trailing" secondItem="bqH-ub-Nyu" secondAttribute="trailing" id="8sC-if-wSg"/> | |
237 | + <constraint firstAttribute="height" constant="48" id="Kcs-Jq-OVL"/> | |
238 | + <constraint firstItem="VfQ-qt-gdx" firstAttribute="centerY" secondItem="PdH-vs-Gjn" secondAttribute="centerY" id="OqZ-vB-B5C"/> | |
239 | + <constraint firstAttribute="trailing" secondItem="BGW-tg-2H6" secondAttribute="trailing" constant="16" id="Rw7-eI-JeT"/> | |
240 | + <constraint firstItem="VfQ-qt-gdx" firstAttribute="centerX" secondItem="PdH-vs-Gjn" secondAttribute="centerX" id="UYW-un-bnL"/> | |
241 | + <constraint firstItem="bqH-ub-Nyu" firstAttribute="leading" secondItem="PdH-vs-Gjn" secondAttribute="leading" id="gA6-4E-cUz"/> | |
242 | + <constraint firstAttribute="bottom" secondItem="bqH-ub-Nyu" secondAttribute="bottom" id="kIr-4b-3GM"/> | |
243 | + <constraint firstItem="BGW-tg-2H6" firstAttribute="top" secondItem="PdH-vs-Gjn" secondAttribute="top" id="waV-La-z9s"/> | |
244 | + <constraint firstItem="bqH-ub-Nyu" firstAttribute="top" secondItem="PdH-vs-Gjn" secondAttribute="top" id="z5F-fk-r4o"/> | |
245 | + </constraints> | |
246 | + </view> | |
247 | + </subviews> | |
248 | + <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> | |
249 | + <constraints> | |
250 | + <constraint firstItem="pKJ-J9-5CR" firstAttribute="top" secondItem="pA5-mr-wp5" secondAttribute="bottom" id="As5-CP-OI8"/> | |
251 | + <constraint firstItem="PdH-vs-Gjn" firstAttribute="leading" secondItem="LO5-7p-BlF" secondAttribute="leading" id="EiX-RE-2mV"/> | |
252 | + <constraint firstItem="pA5-mr-wp5" firstAttribute="leading" secondItem="LO5-7p-BlF" secondAttribute="leading" id="NGc-W1-gFS"/> | |
253 | + <constraint firstItem="jQ0-hJ-LW9" firstAttribute="top" secondItem="pKJ-J9-5CR" secondAttribute="bottom" id="Rxs-mm-zbn"/> | |
254 | + <constraint firstItem="jQ0-hJ-LW9" firstAttribute="leading" secondItem="LO5-7p-BlF" secondAttribute="leading" id="SBR-LH-mkw"/> | |
255 | + <constraint firstItem="PdH-vs-Gjn" firstAttribute="top" secondItem="jQ0-hJ-LW9" secondAttribute="bottom" id="gRO-D5-TbH"/> | |
256 | + <constraint firstItem="pKJ-J9-5CR" firstAttribute="leading" secondItem="LO5-7p-BlF" secondAttribute="leading" id="krW-ip-UgT"/> | |
257 | + <constraint firstAttribute="trailing" secondItem="pA5-mr-wp5" secondAttribute="trailing" id="n92-8Z-2xl"/> | |
258 | + <constraint firstAttribute="trailing" secondItem="PdH-vs-Gjn" secondAttribute="trailing" id="nWt-wP-1JQ"/> | |
259 | + <constraint firstItem="pA5-mr-wp5" firstAttribute="top" secondItem="LO5-7p-BlF" secondAttribute="top" id="nsI-me-a5D"/> | |
260 | + <constraint firstAttribute="trailing" secondItem="pKJ-J9-5CR" secondAttribute="trailing" id="pqL-tc-0qy"/> | |
261 | + <constraint firstAttribute="trailing" secondItem="jQ0-hJ-LW9" secondAttribute="trailing" id="yc8-tE-p0i"/> | |
262 | + </constraints> | |
263 | + </view> | |
264 | + <searchBar contentMode="redraw" placeholder="搜索" translatesAutoresizingMaskIntoConstraints="NO" id="ChK-me-hP6"> | |
93 | 265 | <rect key="frame" x="0.0" y="0.0" width="375" height="44"/> |
94 | 266 | <constraints> |
95 | 267 | <constraint firstAttribute="height" constant="44" id="wzh-nF-6vU"/> |
96 | 268 | </constraints> |
97 | 269 | <textInputTraits key="textInputTraits"/> |
98 | 270 | </searchBar> |
99 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="E6Y-S5-ZKk"> | |
100 | - <rect key="frame" x="0.0" y="44" width="46" height="30"/> | |
101 | - <constraints> | |
102 | - <constraint firstAttribute="height" constant="30" id="M1h-gI-79A"/> | |
103 | - <constraint firstAttribute="width" constant="46" id="rQm-Xx-7cb"/> | |
104 | - </constraints> | |
105 | - <state key="normal" title="Button"/> | |
106 | - </button> | |
107 | 271 | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="DWH-iG-AGA"> |
108 | - <rect key="frame" x="46" y="44" width="329" height="30"/> | |
272 | + <rect key="frame" x="0.0" y="44" width="375" height="48"/> | |
109 | 273 | <constraints> |
110 | - <constraint firstAttribute="height" constant="30" id="ikm-dk-mzG"/> | |
274 | + <constraint firstAttribute="height" constant="48" id="ikm-dk-mzG"/> | |
111 | 275 | </constraints> |
112 | - <state key="normal" title="Button"/> | |
113 | 276 | </button> |
114 | 277 | <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="123" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="o4U-1y-nqL"> |
115 | - <rect key="frame" x="0.0" y="74" width="375" height="593"/> | |
278 | + <rect key="frame" x="0.0" y="92" width="375" height="575"/> | |
116 | 279 | <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> |
117 | 280 | <prototypes> |
118 | 281 | <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="123" id="MMn-tR-I0v"> |
119 | 282 | <rect key="frame" x="0.0" y="28" width="375" height="123"/> |
120 | 283 | <autoresizingMask key="autoresizingMask"/> |
121 | 284 | <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="MMn-tR-I0v" id="H7d-Zz-WAS"> |
122 | - <rect key="frame" x="0.0" y="0.0" width="375" height="122"/> | |
285 | + <rect key="frame" x="0.0" y="0.0" width="375" height="123"/> | |
123 | 286 | <autoresizingMask key="autoresizingMask"/> |
124 | 287 | <subviews> |
125 | 288 | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9Yk-8z-nas"> |
... | ... | @@ -166,20 +329,24 @@ |
166 | 329 | <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> |
167 | 330 | <constraints> |
168 | 331 | <constraint firstAttribute="trailing" secondItem="o4U-1y-nqL" secondAttribute="trailing" id="6aw-Wu-lvQ"/> |
169 | - <constraint firstItem="DWH-iG-AGA" firstAttribute="leading" secondItem="E6Y-S5-ZKk" secondAttribute="trailing" id="853-mG-r6G"/> | |
170 | - <constraint firstItem="E6Y-S5-ZKk" firstAttribute="top" secondItem="ChK-me-hP6" secondAttribute="bottom" id="8CV-HS-WH8"/> | |
332 | + <constraint firstItem="LO5-7p-BlF" firstAttribute="leading" secondItem="cjj-7m-eAq" secondAttribute="leading" id="NYD-jI-WGE"/> | |
171 | 333 | <constraint firstItem="DWH-iG-AGA" firstAttribute="top" secondItem="ChK-me-hP6" secondAttribute="bottom" id="OJG-ox-1L1"/> |
172 | - <constraint firstItem="DWH-iG-AGA" firstAttribute="leading" secondItem="E6Y-S5-ZKk" secondAttribute="trailing" id="QwD-fz-uia"/> | |
334 | + <constraint firstItem="DWH-iG-AGA" firstAttribute="leading" secondItem="cjj-7m-eAq" secondAttribute="leading" id="TKP-Gf-d9n"/> | |
335 | + <constraint firstItem="14l-HJ-g5s" firstAttribute="top" secondItem="LO5-7p-BlF" secondAttribute="bottom" id="VFT-qT-lpJ"/> | |
336 | + <constraint firstAttribute="trailing" secondItem="LO5-7p-BlF" secondAttribute="trailing" id="Vi7-T1-ipE"/> | |
173 | 337 | <constraint firstItem="ChK-me-hP6" firstAttribute="top" secondItem="cjj-7m-eAq" secondAttribute="top" id="dpW-I0-30v"/> |
174 | 338 | <constraint firstItem="14l-HJ-g5s" firstAttribute="top" secondItem="o4U-1y-nqL" secondAttribute="bottom" id="fSk-oc-iab"/> |
175 | 339 | <constraint firstAttribute="trailing" secondItem="DWH-iG-AGA" secondAttribute="trailing" id="hha-QC-DTt"/> |
176 | 340 | <constraint firstItem="o4U-1y-nqL" firstAttribute="leading" secondItem="cjj-7m-eAq" secondAttribute="leading" id="j5g-by-76o"/> |
341 | + <constraint firstItem="LO5-7p-BlF" firstAttribute="top" secondItem="DWH-iG-AGA" secondAttribute="bottom" id="om1-z7-AYr"/> | |
177 | 342 | <constraint firstAttribute="trailing" secondItem="ChK-me-hP6" secondAttribute="trailing" id="pC3-2b-J0P"/> |
178 | 343 | <constraint firstItem="ChK-me-hP6" firstAttribute="leading" secondItem="cjj-7m-eAq" secondAttribute="leading" id="uMH-Xr-Czy"/> |
179 | 344 | <constraint firstItem="o4U-1y-nqL" firstAttribute="top" secondItem="DWH-iG-AGA" secondAttribute="bottom" id="zEQ-6J-fPf"/> |
180 | - <constraint firstItem="E6Y-S5-ZKk" firstAttribute="leading" secondItem="cjj-7m-eAq" secondAttribute="leading" id="zYQ-nv-0ym"/> | |
181 | 345 | </constraints> |
182 | 346 | </view> |
347 | + <connections> | |
348 | + <outlet property="selectView" destination="LO5-7p-BlF" id="BCJ-8J-krQ"/> | |
349 | + </connections> | |
183 | 350 | </viewController> |
184 | 351 | <placeholder placeholderIdentifier="IBFirstResponder" id="aje-z7-dD9" userLabel="First Responder" sceneMemberID="firstResponder"/> |
185 | 352 | </objects> | ... | ... |
YouerLiveVideo/YouerLiveVideo/util/network.swift
... | ... | @@ -93,6 +93,7 @@ final class HTTPServer{ |
93 | 93 | |
94 | 94 | static let URL_OAUTH_TOKEN=HOST+"/OAuth/Token" //登录 |
95 | 95 | |
96 | + //MARK:-Account(url) | |
96 | 97 | static let URL_ACCOUNTPHONECAPTCHA=HOST+"/api/Account/PhoneCaptcha" //获取验证码 |
97 | 98 | static let URL_ACCOUNTCREATEUSER=HOST+"/api/Account/CreateUser" //游客注册 |
98 | 99 | static let URL_ACCOUNTUPDATEPASSWORD=HOST+"/api/Account/UpdatePassword" //重设密码 |
... | ... | @@ -101,6 +102,7 @@ final class HTTPServer{ |
101 | 102 | static let URL_ACCOUNTUPDATEUSER=HOST+"/api/Account/Updateuser" //修改用户信息 |
102 | 103 | static let URL_ACCOUNTADDUSER=HOST+"/api/Account/AddUser" // |
103 | 104 | |
105 | + //MARK:-Common(url) | |
104 | 106 | static let URL_COMMONGETCOURSEWAREVERSIONS=HOST+"/api/Common/GetCourseWareVersions" //获取所有的教材版本 |
105 | 107 | static let URL_COMMONGETSUBJECTS=HOST+"/api/Common/GetSubjects" //获取学科 |
106 | 108 | static let URL_COMMONGETSCHOOLTYPES=HOST+"/api/Common/GetSchoolTypes" //获取学段 |
... | ... | @@ -109,6 +111,7 @@ final class HTTPServer{ |
109 | 111 | static let URL_COMMONGETCOURSEWAVES=HOST+"/api/Common/GetCourseWaves" //获取教材 |
110 | 112 | static let URL_UPLOAD_FILE=HOST+"/api/Common/UploadFile" //文件上传接口,接受图片(gif,jpg,jpeg,png,bmp)、视频(flv,mp4)、音频(mp3,aac) |
111 | 113 | |
114 | + //MARK:-Course(url) | |
112 | 115 | static let URL_COURSEGETHOTRESCOURSE=HOST+"/api/Course/GetHotRescourse" //获取热门微课/课件/电视台节目 |
113 | 116 | static let URL_COURSEGETRESOURCECOUNT=HOST+"/api/Course/GetResourceCount" //获取微课/课件/电视台节目的总数量 |
114 | 117 | static let URL_COURSEGETTOPTENSCHOOL=HOST+"/api/Course/GetTopTenSchool" //获取十佳校园电视台 |
... | ... | @@ -121,6 +124,31 @@ final class HTTPServer{ |
121 | 124 | static let URL_COURSEGETTESTCATAGORY=HOST+"/api/Course/GetTestCatagory" //获取考点目录(已初始化成ztree所要求的格式) |
122 | 125 | static let URL_COURSEGETTELEVISIONSTATIONCATAGORY=HOST+"/api/Course/GetTelevisionStationCatagory" //获取电视台目录 |
123 | 126 | |
127 | + //MARK:-DataStatistics(url) | |
128 | + static let URL_DATASTATISTICGETSCHOOLGENERAL=HOST+"/api/DataStatistics/GetSchoolGeneral" //获取前十学校的综合排行 | |
129 | + static let URL_DATASTATISTICGETSCHOOLPV=HOST+"/api/DataStatistics/GetSchoolPv" //获取前十学校的阅读量排行 | |
130 | + static let URL_DATASTATISTICGETSCHOOLDOWNLOADS=HOST+"/api/DataStatistics/GetSchoolDownloads" //获取排行前十学校的下载量 | |
131 | + static let URL_DATASTATISTICGETSCHOOLUPLOAD=HOST+"/api/DataStatistics/GetSchoolUpload" //获取排行前十学校的上传数 | |
132 | + static let URL_DATASTATISTICGETTEACHERGENERALS=HOST+"/api/DataStatistics/GetTeacherGenerals" //获取排行前十的教师的综合数 | |
133 | + static let URL_DATASTATISTICGETTEACHERPVS=HOST+"/api/DataStatistics/GetTeacherPvs" //获取排名前十的教师发的资源的阅读量 | |
134 | + static let URL_DATASTATISTICGETTEACHERDOWNLOAD=HOST+"/api/DataStatistics/GetTeacherDownload" //获取排名前十的资源的下载量 | |
135 | + static let URL_DATASTATISTICGETTEACHERUPLOAD=HOST+"/api/DataStatistics/GetTeacherUpload" //获取排名前十的教师的上传量 | |
136 | + static let URL_DATASTATISTICGETGETRANKSBYPAGE=HOST+"/api/DataStatistics/GetRanksByPage" //分页获取排行榜 | |
137 | + | |
138 | + //MARK:-UserCenter(url) | |
139 | + static let URL_USERCENTERGETMYALLRESOURCES=HOST+"/api/UserCenter/GetMyAllResources" //获取我的资源 | |
140 | + static let URL_USERCENTERGETALLRESOURCES=HOST+"/api/UserCenter/GetAllResources" //获取校本资源 | |
141 | + static let URL_USERCENTERGETADDRESOURCE=HOST+"/api/UserCenter/AddResource" //上传资源/微课/校园电视台 | |
142 | + static let URL_USERCENTERGETUPDATERESOURCE=HOST+"/api/UserCenter/UpdateResource" //修改资源/微课/校园电视台 | |
143 | + static let URL_USERCENTERGETEXAMINERESOURCE=HOST+"/api/UserCenter/ExamineResource" //审核资源/微课/校园电视台 | |
144 | + static let URL_USERCENTERGETDELETERESOURCE=HOST+"/api/UserCenter/DeleteResource" //删除资源/微课/校园电视台 | |
145 | + static let URL_USERCENTERGETHIDERESOURCE=HOST+"/api/UserCenter/HideResource" //隐藏资源/微课/校园电视台 | |
146 | + static let URL_USERCENTERGETUPDATEDOWNLOADSUM=HOST+"/api/UserCenter/UpdateDownloadSum" //资源下载时更新下载量 | |
147 | + static let URL_USERCENTERGETGETHISTORYVIEW=HOST+"/api/UserCenter/GetHistroyView" //历史记录 | |
148 | + static let URL_USERCENTERGETADDHISTORYVIEW=HOST+"/api/UserCenter/AddHistoryView" //添加历史记录 | |
149 | + static let URL_USERCENTERGETGETMYUSER=HOST+"/api/UserCenter/GetMyUser" //已开设账号 | |
150 | + static let URL_USERCENTERGETADDUSER=HOST+"/api/UserCenter/AddUser" //开设学生账号 | |
151 | + | |
124 | 152 | |
125 | 153 | var token:String?{ |
126 | 154 | return accountManager.token |
... | ... | @@ -261,9 +289,116 @@ final class HTTPServer{ |
261 | 289 | func getTelevisionStationCatagory(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ |
262 | 290 | KHttp.GET(url: HTTPServer.URL_COURSEGETTELEVISIONSTATIONCATAGORY, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) |
263 | 291 | } |
292 | + | |
293 | + | |
264 | 294 | //MARK:-DataStatistics |
295 | + //获取前十学校的综合排行 | |
296 | + func getSchoolGeneral(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | |
297 | + KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETSCHOOLGENERAL, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | |
298 | + } | |
299 | + | |
300 | + //获取前十学校的阅读量排行 | |
301 | + func getSchoolPv(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | |
302 | + KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETSCHOOLPV, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | |
303 | + } | |
304 | + | |
305 | + //获取排行前十学校的下载量 | |
306 | + func getSchoolDownloads(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | |
307 | + KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETSCHOOLDOWNLOADS, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | |
308 | + } | |
309 | + | |
310 | + //获取排行前十学校的上传数 | |
311 | + func getSchoolUpload(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | |
312 | + KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETSCHOOLUPLOAD, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | |
313 | + } | |
314 | + | |
315 | + //获取排行前十的教师的综合数 | |
316 | + func getTeacherGenerals(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | |
317 | + KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETTEACHERGENERALS, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | |
318 | + } | |
319 | + | |
320 | + //获取排名前十的教师发的资源的阅读量 | |
321 | + func getTeacherPvs(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | |
322 | + KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETTEACHERPVS, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | |
323 | + } | |
324 | + | |
325 | + //获取排名前十的资源的下载量 | |
326 | + func getTeacherDownload(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | |
327 | + KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETTEACHERDOWNLOAD, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | |
328 | + } | |
329 | + | |
330 | + //获取排名前十的教师的上传量 | |
331 | + func getTeacherUpload(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | |
332 | + KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETTEACHERUPLOAD, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | |
333 | + } | |
334 | + | |
335 | + //分页获取排行榜 | |
336 | + func getRanksByPage(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | |
337 | + KHttp.POST(url: HTTPServer.URL_DATASTATISTICGETGETRANKSBYPAGE, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | |
338 | + } | |
339 | + | |
340 | + | |
265 | 341 | //MARK:-UserCenter |
266 | - | |
342 | + //获取我的资源 | |
343 | + func getMyAllResources(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | |
344 | + KHttp.POST(url: HTTPServer.URL_USERCENTERGETMYALLRESOURCES, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | |
345 | + } | |
346 | + | |
347 | + //获取校本资源 | |
348 | + func getAllResources(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | |
349 | + KHttp.POST(url: HTTPServer.URL_USERCENTERGETALLRESOURCES, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | |
350 | + } | |
351 | + | |
352 | + //上传资源/微课/校园电视台 | |
353 | + func addResource(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | |
354 | + KHttp.POST(url: HTTPServer.URL_USERCENTERGETADDRESOURCE, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | |
355 | + } | |
356 | + | |
357 | + //修改资源/微课/校园电视台 | |
358 | + func updateResource(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | |
359 | + KHttp.POST(url: HTTPServer.URL_USERCENTERGETUPDATERESOURCE, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | |
360 | + } | |
361 | + | |
362 | + //审核资源/微课/校园电视台 | |
363 | + func examineResource(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | |
364 | + KHttp.GET(url: HTTPServer.URL_USERCENTERGETEXAMINERESOURCE, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | |
365 | + } | |
366 | + | |
367 | + //删除资源/微课/校园电视台 | |
368 | + func deleteResource(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | |
369 | + KHttp.GET(url: HTTPServer.URL_USERCENTERGETDELETERESOURCE, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | |
370 | + } | |
371 | + | |
372 | + //隐藏资源/微课/校园电视台 | |
373 | + func hideResource(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | |
374 | + KHttp.GET(url: HTTPServer.URL_USERCENTERGETHIDERESOURCE, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | |
375 | + } | |
376 | + | |
377 | + //资源下载时更新下载量 | |
378 | + func updateDownloadSum(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | |
379 | + KHttp.GET(url: HTTPServer.URL_USERCENTERGETUPDATEDOWNLOADSUM, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | |
380 | + } | |
381 | + | |
382 | + //历史记录 | |
383 | + func getHistroyView(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | |
384 | + KHttp.POST(url: HTTPServer.URL_USERCENTERGETGETHISTORYVIEW, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | |
385 | + } | |
386 | + | |
387 | + //添加历史记录 | |
388 | + func addHistoryView(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | |
389 | + KHttp.POST(url: HTTPServer.URL_USERCENTERGETADDHISTORYVIEW, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | |
390 | + } | |
391 | + | |
392 | + //已开设账号 | |
393 | + func getMyUser(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | |
394 | + KHttp.POST(url: HTTPServer.URL_USERCENTERGETGETMYUSER, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | |
395 | + } | |
396 | + | |
397 | + //开设学生账号 | |
398 | + func addUser(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | |
399 | + KHttp.POST(url: HTTPServer.URL_USERCENTERGETADDUSER, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | |
400 | + } | |
401 | + | |
267 | 402 | |
268 | 403 | } |
269 | 404 | let SERVER_MESSAGE=393939 | ... | ... |