Commit 6f06ed3ca1b7535ab55684e24c0bcce410f8f653

Authored by 葛建军
2 parents aa410649 8d05af0c
Exists in newLive

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

YouerLiveVideo/YouerLiveVideo.xcodeproj/project.pbxproj
... ... @@ -46,6 +46,7 @@
46 46 599B2CE11DE52F7E00B4F7FD /* UMShareMenuSelectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 599B2CCE1DE52F7E00B4F7FD /* UMShareMenuSelectionView.m */; };
47 47 599B2CE21DE52F7E00B4F7FD /* UMSocialShareScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 599B2CD01DE52F7E00B4F7FD /* UMSocialShareScrollView.m */; };
48 48 599B2CE31DE52F7E00B4F7FD /* UMSocialUIManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 599B2CD21DE52F7E00B4F7FD /* UMSocialUIManager.m */; };
  49 + 59AE3DF91ECE8A90003E2C62 /* pinyin.c in Sources */ = {isa = PBXBuildFile; fileRef = 59AE3DF71ECE8A90003E2C62 /* pinyin.c */; };
49 50 59BA13251E25CF2B00540DE0 /* AliyunPlayerSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59BA13241E25CF2B00540DE0 /* AliyunPlayerSDK.framework */; };
50 51 59BA13271E25CF4B00540DE0 /* AliyunPlayerSDK.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 59BA13241E25CF2B00540DE0 /* AliyunPlayerSDK.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
51 52 59BA13311E25D1C000540DE0 /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 59BA13301E25D1C000540DE0 /* Reachability.m */; };
... ... @@ -328,6 +329,8 @@
328 329 599B2CD01DE52F7E00B4F7FD /* UMSocialShareScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UMSocialShareScrollView.m; sourceTree = "<group>"; };
329 330 599B2CD11DE52F7E00B4F7FD /* UMSocialUIManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UMSocialUIManager.h; sourceTree = "<group>"; };
330 331 599B2CD21DE52F7E00B4F7FD /* UMSocialUIManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UMSocialUIManager.m; sourceTree = "<group>"; };
  332 + 59AE3DF71ECE8A90003E2C62 /* pinyin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pinyin.c; sourceTree = "<group>"; };
  333 + 59AE3DF81ECE8A90003E2C62 /* pinyin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pinyin.h; sourceTree = "<group>"; };
331 334 59BA13241E25CF2B00540DE0 /* AliyunPlayerSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AliyunPlayerSDK.framework; path = YouerLiveVideo/lib/AliyunPlayerSDK.framework; sourceTree = "<group>"; };
332 335 59BA132F1E25D1C000540DE0 /* Reachability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Reachability.h; sourceTree = "<group>"; };
333 336 59BA13301E25D1C000540DE0 /* Reachability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Reachability.m; sourceTree = "<group>"; };
... ... @@ -1224,6 +1227,8 @@
1224 1227 children = (
1225 1228 BFBB83D41ECC4446008B404B /* PassWordView.swift */,
1226 1229 BFBB83D51ECC4446008B404B /* PassWordView.xib */,
  1230 + 59AE3DF71ECE8A90003E2C62 /* pinyin.c */,
  1231 + 59AE3DF81ECE8A90003E2C62 /* pinyin.h */,
1227 1232 59F801A91DD57253000A78B0 /* ZSDSetPasswordView.h */,
1228 1233 59F801AA1DD57253000A78B0 /* ZSDSetPasswordView.m */,
1229 1234 BFDFDEC81DD55C0D0040F102 /* account.swift */,
... ... @@ -1497,6 +1502,7 @@
1497 1502 BF7B75A81E305A6D0011D5C7 /* UIScrollView+MJRefresh.m in Sources */,
1498 1503 BF25E0021DDAA36A003EC0C1 /* UIButton+WebCache.m in Sources */,
1499 1504 BF7B759E1E305A6D0011D5C7 /* MJRefreshBackGifFooter.m in Sources */,
  1505 + 59AE3DF91ECE8A90003E2C62 /* pinyin.c in Sources */,
1500 1506 BF25DFF81DDAA36A003EC0C1 /* NSData+ImageContentType.m in Sources */,
1501 1507 BF25E0151DDAAF73003EC0C1 /* SVIndefiniteAnimatedView.m in Sources */,
1502 1508 BFF5F4921DD5B7CA00D33B89 /* SwiftyJSON.swift in Sources */,
... ...
YouerLiveVideo/YouerLiveVideo/YouerLiveVideo-Bridging-Header.h
... ... @@ -25,4 +25,5 @@
25 25 #import "Reachability.h"
26 26 #import "MJRefresh.h"
27 27 #import "JYScrollView.h"
  28 +#import "pinyin.h"
28 29 #endif /* YouerLiveVideo_Bridging_Header_h */
... ...
YouerLiveVideo/YouerLiveVideo/controllers/TVStation/SearchTVStationListViewController.swift
... ... @@ -8,22 +8,102 @@
8 8  
9 9 import UIKit
10 10  
11   -class SearchTVStationListViewController: UIViewController {
  11 +class SearchTVStationListViewController: UIViewController,UISearchBarDelegate {
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 + var grad:[String] = []
13 14  
14   - @IBOutlet weak var selectView: UIView!
  15 + @IBOutlet weak var selectTableView: UITableView!
15 16  
  17 + @IBOutlet weak var downIcon: UIImageView!
  18 + @IBOutlet weak var gradName: UILabel!
  19 + @IBOutlet weak var tableView: UITableView!
  20 + @IBOutlet weak var selectView: UIView!
  21 + var dataSet:[TVStationInfor] = []
  22 + var dataDic:[String:[TVStationInfor]] = [:]
  23 + var allKeys:[String] = []
16 24 override func viewDidLoad() {
17 25 super.viewDidLoad()
  26 + gradName.text = "全部年段"
  27 + tableView.tintColor = UIColor.lightGray
  28 + AppDelegate.instance().httpServer.getAllSchool(parameters: nil) { (str, error) in
  29 + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in
  30 + self.grad.append("全部年段")
  31 + for item in json.contentData().arrayValue{
  32 + self.dataSet.append(TVStationInfor(json: item))
  33 + for (index,gr) in self.grad.enumerated(){
  34 + if item["f_SchoolType"].stringValue == gr{
  35 + break
  36 + }
  37 + if index == self.grad.count-1{
  38 + self.grad.insert(item["f_SchoolType"].stringValue, at: 0)
  39 + }
  40 + }
  41 + }
  42 + self.dataSet = self.dataSet.sorted { (t1, t2) -> Bool in
  43 + return getFirstLetter(str: t1.f_SchoolName) < getFirstLetter(str: t2.f_SchoolName)
  44 + }
  45 + self.sortDataSet(arr: self.dataSet,type: self.grad.last!)
  46 + }, failHandler: { (error) in
  47 +
  48 + })
  49 + }
18 50 // Do any additional setup after loading the view.
19 51 }
20   -
  52 +
  53 + //在一个的列表选择所有当前要求的年段的列表并放到dic中
  54 + func sortDataSet(arr:[TVStationInfor],type:String){
  55 + dataDic.removeAll()
  56 + var array:[TVStationInfor] = []
  57 + if type == grad.last{
  58 + array = arr
  59 + }else{
  60 + for item in arr {
  61 + if item.f_SchoolType == type{
  62 + array.append(item)
  63 + }
  64 + }
  65 + }
  66 + for al in alList {
  67 + var tmp:[TVStationInfor] = []
  68 + for item in array {
  69 + if getFirstLetter(str: item.f_SchoolName) == al{
  70 + tmp.append(item)
  71 + }
  72 + }
  73 + if tmp.count > 0{
  74 + dataDic.updateValue(tmp, forKey: al)
  75 + }
  76 + }
  77 + allKeys = Array(dataDic.keys).sorted(by: { (s1, s2) -> Bool in
  78 + return s1 < s2
  79 + })
  80 + tableView.reloadData()
  81 + }
  82 +
21 83 override func didReceiveMemoryWarning() {
22 84 super.didReceiveMemoryWarning()
23 85 // Dispose of any resources that can be recreated.
24 86 }
25 87  
26   -
  88 + @IBAction func selectGradClick(_ sender: UIButton) {
  89 + selectView.isHidden = false
  90 + selectTableView.reloadData()
  91 + }
  92 +
  93 + //搜索:根据搜索框中内容帅选全部符合的列表
  94 + func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
  95 + searchBar.resignFirstResponder()
  96 + if searchBar.text != nil && searchBar.text != ""{
  97 + var arr:[TVStationInfor] = []
  98 + for item in dataSet {
  99 + if item.f_SchoolName.contains(searchBar.text!) {
  100 + arr.append(item)
  101 + }
  102 + }
  103 + sortDataSet(arr: arr, type: gradName.text!)
  104 + }
  105 + }
  106 +
27 107 /*
28 108 // MARK: - Navigation
29 109  
... ... @@ -38,26 +118,84 @@ class SearchTVStationListViewController: UIViewController {
38 118  
39 119 extension SearchTVStationListViewController:UITableViewDataSource,UITableViewDelegate{
40 120 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
41   -
  121 + if tableView == selectTableView{
  122 + selectView.isHidden = true
  123 + gradName.text = grad[indexPath.row]
  124 + sortDataSet(arr: dataSet,type: grad[indexPath.row])
  125 + }
42 126 }
43 127  
44 128 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
45   - return 1
  129 + if tableView == selectTableView{
  130 + return grad.count
  131 + }else{
  132 + return dataDic[allKeys[section]]!.count
  133 + }
  134 +
46 135 }
47 136  
48 137 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
49   - let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
50   - return cell
  138 + if tableView == selectTableView{
  139 + let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! SearchSelectCell
  140 + cell.selectName.text = grad[indexPath.row]
  141 + return cell
  142 + }else{
  143 + let item = dataDic[allKeys[indexPath.section]]![indexPath.row]
  144 + let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! SearchTVStationListCell
  145 + cell.stationName.text = item.f_SchoolName
  146 + cell.tvStationImage.sd_setImage(with: URL(string: item.f_Logo), placeholderImage: UIImage(named:"icon"))
  147 + return cell
  148 + }
  149 +
51 150 }
52 151  
53 152 func sectionIndexTitles(for tableView: UITableView) -> [String]? {
54   - return alList+["#"]
  153 + if tableView == selectTableView{
  154 + return []
  155 + }else{
  156 + return allKeys+["#"]
  157 + }
  158 +
55 159 }
56 160  
57 161 func numberOfSections(in tableView: UITableView) -> Int {
58   - return alList.count
  162 + if tableView == selectTableView{
  163 + return 1
  164 + }else{
  165 + return dataDic.keys.count
  166 + }
  167 +
  168 + }
  169 +
  170 + func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
  171 + if tableView == selectTableView{
  172 + return nil
  173 + }else{
  174 + return allKeys[section]
  175 + }
59 176 }
60 177  
  178 + func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
  179 + if tableView == selectTableView{
  180 + return 0
  181 + }else{
  182 + return 44
  183 + }
  184 + }
  185 +
  186 + func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
  187 + return 1
  188 + }
  189 +}
  190 +
  191 +class SearchTVStationListCell: UITableViewCell {
  192 + @IBOutlet weak var stationName: UILabel!
  193 + @IBOutlet weak var tvStationImage: UIImageView!
  194 +
  195 +}
  196 +
  197 +class SearchSelectCell: UITableViewCell {
61 198  
  199 + @IBOutlet weak var selectName: UILabel!
62 200  
63 201 }
... ...
YouerLiveVideo/YouerLiveVideo/controllers/TVStation/TVStation.storyboard
... ... @@ -97,196 +97,59 @@
97 97 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
98 98 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
99 99 <subviews>
100   - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="LO5-7p-BlF">
101   - <rect key="frame" x="0.0" y="92" width="375" height="575"/>
  100 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="q0y-9I-pQG">
  101 + <rect key="frame" x="0.0" y="44" width="375" height="48"/>
102 102 <subviews>
103   - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pA5-mr-wp5">
104   - <rect key="frame" x="0.0" y="0.0" width="375" height="48"/>
  103 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="REy-qu-6cO">
  104 + <rect key="frame" x="144.5" y="0.0" width="86" height="48"/>
105 105 <subviews>
106   - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fd9-K0-dbd">
107   - <rect key="frame" x="0.0" y="0.0" width="375" height="48"/>
108   - <state key="normal" title="Button"/>
109   - </button>
110   - <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">
111   - <rect key="frame" x="16" y="0.0" width="343" height="0.0"/>
112   - <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
113   - <constraints>
114   - <constraint firstAttribute="height" id="BI9-34-fQB"/>
115   - </constraints>
116   - <fontDescription key="fontDescription" type="system" pointSize="17"/>
117   - <nil key="textColor"/>
118   - <nil key="highlightedColor"/>
119   - </label>
120   - <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">
121   - <rect key="frame" x="169.5" y="13" width="35" height="21"/>
122   - <fontDescription key="fontDescription" type="system" pointSize="17"/>
123   - <nil key="textColor"/>
124   - <nil key="highlightedColor"/>
125   - </label>
126   - </subviews>
127   - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
128   - <constraints>
129   - <constraint firstAttribute="bottom" secondItem="fd9-K0-dbd" secondAttribute="bottom" id="6rw-GD-06f"/>
130   - <constraint firstItem="rF3-mJ-pPr" firstAttribute="centerY" secondItem="pA5-mr-wp5" secondAttribute="centerY" id="Ncu-FL-IUg"/>
131   - <constraint firstItem="fd9-K0-dbd" firstAttribute="top" secondItem="pA5-mr-wp5" secondAttribute="top" id="S2u-C5-cpE"/>
132   - <constraint firstAttribute="trailing" secondItem="Unb-Qo-FiA" secondAttribute="trailing" constant="16" id="Wee-qc-CcZ"/>
133   - <constraint firstAttribute="trailing" secondItem="fd9-K0-dbd" secondAttribute="trailing" id="Wz9-N2-5FD"/>
134   - <constraint firstAttribute="height" constant="48" id="YGb-kx-Bvs"/>
135   - <constraint firstItem="Unb-Qo-FiA" firstAttribute="leading" secondItem="pA5-mr-wp5" secondAttribute="leading" constant="16" id="eAi-qh-uTW"/>
136   - <constraint firstItem="fd9-K0-dbd" firstAttribute="leading" secondItem="pA5-mr-wp5" secondAttribute="leading" id="lsn-sl-gUI"/>
137   - <constraint firstItem="rF3-mJ-pPr" firstAttribute="centerX" secondItem="pA5-mr-wp5" secondAttribute="centerX" id="sKe-eU-InU"/>
138   - <constraint firstItem="Unb-Qo-FiA" firstAttribute="top" secondItem="pA5-mr-wp5" secondAttribute="top" id="zmH-Rb-P8G"/>
139   - </constraints>
140   - </view>
141   - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pKJ-J9-5CR">
142   - <rect key="frame" x="0.0" y="48" width="375" height="48"/>
143   - <subviews>
144   - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="veE-AU-inD">
145   - <rect key="frame" x="0.0" y="0.0" width="375" height="48"/>
146   - <state key="normal" title="Button"/>
147   - </button>
148   - <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">
149   - <rect key="frame" x="16" y="0.0" width="343" height="0.0"/>
150   - <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
151   - <constraints>
152   - <constraint firstAttribute="height" id="jyL-SO-bbs"/>
153   - </constraints>
154   - <fontDescription key="fontDescription" type="system" pointSize="17"/>
155   - <nil key="textColor"/>
156   - <nil key="highlightedColor"/>
157   - </label>
158   - <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">
159   - <rect key="frame" x="169.5" y="13" width="35" height="21"/>
  106 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="EkU-OV-GCU">
  107 + <rect key="frame" x="8" y="13" width="42" height="21"/>
160 108 <fontDescription key="fontDescription" type="system" pointSize="17"/>
161 109 <nil key="textColor"/>
162 110 <nil key="highlightedColor"/>
163 111 </label>
164   - </subviews>
165   - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
166   - <constraints>
167   - <constraint firstItem="ma4-Vs-Ai5" firstAttribute="top" secondItem="pKJ-J9-5CR" secondAttribute="top" id="Em3-dK-r7A"/>
168   - <constraint firstItem="veE-AU-inD" firstAttribute="top" secondItem="pKJ-J9-5CR" secondAttribute="top" id="FHs-Rr-oDw"/>
169   - <constraint firstItem="FLD-Vw-eZ9" firstAttribute="centerX" secondItem="pKJ-J9-5CR" secondAttribute="centerX" id="MaF-vn-NFk"/>
170   - <constraint firstItem="FLD-Vw-eZ9" firstAttribute="centerY" secondItem="pKJ-J9-5CR" secondAttribute="centerY" id="OSS-PS-lIG"/>
171   - <constraint firstAttribute="trailing" secondItem="ma4-Vs-Ai5" secondAttribute="trailing" constant="16" id="TK9-u0-NYJ"/>
172   - <constraint firstAttribute="trailing" secondItem="veE-AU-inD" secondAttribute="trailing" id="he0-3w-aKO"/>
173   - <constraint firstItem="ma4-Vs-Ai5" firstAttribute="leading" secondItem="pKJ-J9-5CR" secondAttribute="leading" constant="16" id="hvr-W0-KtG"/>
174   - <constraint firstItem="veE-AU-inD" firstAttribute="leading" secondItem="pKJ-J9-5CR" secondAttribute="leading" id="iIG-ef-wiQ"/>
175   - <constraint firstAttribute="bottom" secondItem="veE-AU-inD" secondAttribute="bottom" id="nnX-Fn-UsA"/>
176   - <constraint firstAttribute="height" constant="48" id="zHI-3d-Hhy"/>
177   - </constraints>
178   - </view>
179   - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="jQ0-hJ-LW9">
180   - <rect key="frame" x="0.0" y="96" width="375" height="48"/>
181   - <subviews>
182   - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="rrk-re-JuF">
183   - <rect key="frame" x="0.0" y="0.0" width="375" height="48"/>
184   - <state key="normal" title="Button"/>
185   - </button>
186   - <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">
187   - <rect key="frame" x="16" y="0.0" width="343" height="0.0"/>
188   - <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
  112 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="30V-Xl-lRB">
  113 + <rect key="frame" x="58" y="14" width="20" height="20"/>
189 114 <constraints>
190   - <constraint firstAttribute="height" id="wf7-2t-CcQ"/>
  115 + <constraint firstAttribute="height" constant="20" id="5L5-sW-hMu"/>
  116 + <constraint firstAttribute="width" secondItem="30V-Xl-lRB" secondAttribute="height" multiplier="1:1" id="MYE-j0-EQV"/>
191 117 </constraints>
192   - <fontDescription key="fontDescription" type="system" pointSize="17"/>
193   - <nil key="textColor"/>
194   - <nil key="highlightedColor"/>
195   - </label>
196   - <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">
197   - <rect key="frame" x="169.5" y="13" width="35" height="21"/>
198   - <fontDescription key="fontDescription" type="system" pointSize="17"/>
199   - <nil key="textColor"/>
200   - <nil key="highlightedColor"/>
201   - </label>
  118 + </imageView>
202 119 </subviews>
203 120 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
204 121 <constraints>
205   - <constraint firstAttribute="bottom" secondItem="rrk-re-JuF" secondAttribute="bottom" id="1aG-FJ-kgi"/>
206   - <constraint firstItem="rrk-re-JuF" firstAttribute="top" secondItem="jQ0-hJ-LW9" secondAttribute="top" id="4mU-tH-19D"/>
207   - <constraint firstItem="rrk-re-JuF" firstAttribute="leading" secondItem="jQ0-hJ-LW9" secondAttribute="leading" id="8FP-Fd-szb"/>
208   - <constraint firstAttribute="trailing" secondItem="TwL-7i-SFE" secondAttribute="trailing" constant="16" id="FJF-cd-6MQ"/>
209   - <constraint firstItem="TwL-7i-SFE" firstAttribute="top" secondItem="jQ0-hJ-LW9" secondAttribute="top" id="HJS-18-xud"/>
210   - <constraint firstAttribute="height" constant="48" id="L2i-9Z-Zje"/>
211   - <constraint firstItem="TwL-7i-SFE" firstAttribute="leading" secondItem="jQ0-hJ-LW9" secondAttribute="leading" constant="16" id="WjE-rt-bZ1"/>
212   - <constraint firstAttribute="trailing" secondItem="rrk-re-JuF" secondAttribute="trailing" id="ech-I6-0JJ"/>
213   - <constraint firstItem="bx3-SK-e4z" firstAttribute="centerX" secondItem="jQ0-hJ-LW9" secondAttribute="centerX" id="l2K-Ec-fBQ"/>
214   - <constraint firstItem="bx3-SK-e4z" firstAttribute="centerY" secondItem="jQ0-hJ-LW9" secondAttribute="centerY" id="yXB-yv-iX2"/>
215   - </constraints>
216   - </view>
217   - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="PdH-vs-Gjn">
218   - <rect key="frame" x="0.0" y="144" width="375" height="48"/>
219   - <subviews>
220   - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bqH-ub-Nyu">
221   - <rect key="frame" x="0.0" y="0.0" width="375" height="48"/>
222   - <state key="normal" title="Button"/>
223   - </button>
224   - <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">
225   - <rect key="frame" x="16" y="0.0" width="343" height="0.0"/>
226   - <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
227   - <constraints>
228   - <constraint firstAttribute="height" id="eIc-hV-0qY"/>
229   - </constraints>
230   - <fontDescription key="fontDescription" type="system" pointSize="17"/>
231   - <nil key="textColor"/>
232   - <nil key="highlightedColor"/>
233   - </label>
234   - <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">
235   - <rect key="frame" x="152.5" y="13" width="69.5" height="21"/>
236   - <fontDescription key="fontDescription" type="system" pointSize="17"/>
237   - <nil key="textColor"/>
238   - <nil key="highlightedColor"/>
239   - </label>
240   - </subviews>
241   - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
242   - <constraints>
243   - <constraint firstItem="BGW-tg-2H6" firstAttribute="leading" secondItem="PdH-vs-Gjn" secondAttribute="leading" constant="16" id="46b-DV-o1H"/>
244   - <constraint firstAttribute="trailing" secondItem="bqH-ub-Nyu" secondAttribute="trailing" id="8sC-if-wSg"/>
245   - <constraint firstAttribute="height" constant="48" id="Kcs-Jq-OVL"/>
246   - <constraint firstItem="VfQ-qt-gdx" firstAttribute="centerY" secondItem="PdH-vs-Gjn" secondAttribute="centerY" id="OqZ-vB-B5C"/>
247   - <constraint firstAttribute="trailing" secondItem="BGW-tg-2H6" secondAttribute="trailing" constant="16" id="Rw7-eI-JeT"/>
248   - <constraint firstItem="VfQ-qt-gdx" firstAttribute="centerX" secondItem="PdH-vs-Gjn" secondAttribute="centerX" id="UYW-un-bnL"/>
249   - <constraint firstItem="bqH-ub-Nyu" firstAttribute="leading" secondItem="PdH-vs-Gjn" secondAttribute="leading" id="gA6-4E-cUz"/>
250   - <constraint firstAttribute="bottom" secondItem="bqH-ub-Nyu" secondAttribute="bottom" id="kIr-4b-3GM"/>
251   - <constraint firstItem="BGW-tg-2H6" firstAttribute="top" secondItem="PdH-vs-Gjn" secondAttribute="top" id="waV-La-z9s"/>
252   - <constraint firstItem="bqH-ub-Nyu" firstAttribute="top" secondItem="PdH-vs-Gjn" secondAttribute="top" id="z5F-fk-r4o"/>
  122 + <constraint firstItem="EkU-OV-GCU" firstAttribute="leading" secondItem="REy-qu-6cO" secondAttribute="leading" constant="8" id="BP2-0y-W2m"/>
  123 + <constraint firstItem="30V-Xl-lRB" firstAttribute="leading" secondItem="EkU-OV-GCU" secondAttribute="trailing" constant="8" id="MuH-Ax-jK5"/>
  124 + <constraint firstAttribute="height" constant="48" id="Wyu-Lq-o7c"/>
  125 + <constraint firstItem="30V-Xl-lRB" firstAttribute="centerY" secondItem="REy-qu-6cO" secondAttribute="centerY" id="ere-Pn-a1S"/>
  126 + <constraint firstAttribute="trailing" secondItem="30V-Xl-lRB" secondAttribute="trailing" constant="8" id="oCN-2l-mHX"/>
  127 + <constraint firstItem="EkU-OV-GCU" firstAttribute="centerY" secondItem="REy-qu-6cO" secondAttribute="centerY" id="veC-Ip-0YS"/>
253 128 </constraints>
254 129 </view>
  130 + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="DWH-iG-AGA">
  131 + <rect key="frame" x="0.0" y="0.0" width="375" height="48"/>
  132 + <connections>
  133 + <action selector="selectGradClick:" destination="zPk-GV-x5H" eventType="touchUpInside" id="mFn-6w-fBL"/>
  134 + </connections>
  135 + </button>
255 136 </subviews>
256   - <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
  137 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
257 138 <constraints>
258   - <constraint firstItem="pKJ-J9-5CR" firstAttribute="top" secondItem="pA5-mr-wp5" secondAttribute="bottom" id="As5-CP-OI8"/>
259   - <constraint firstItem="PdH-vs-Gjn" firstAttribute="leading" secondItem="LO5-7p-BlF" secondAttribute="leading" id="EiX-RE-2mV"/>
260   - <constraint firstItem="pA5-mr-wp5" firstAttribute="leading" secondItem="LO5-7p-BlF" secondAttribute="leading" id="NGc-W1-gFS"/>
261   - <constraint firstItem="jQ0-hJ-LW9" firstAttribute="top" secondItem="pKJ-J9-5CR" secondAttribute="bottom" id="Rxs-mm-zbn"/>
262   - <constraint firstItem="jQ0-hJ-LW9" firstAttribute="leading" secondItem="LO5-7p-BlF" secondAttribute="leading" id="SBR-LH-mkw"/>
263   - <constraint firstItem="PdH-vs-Gjn" firstAttribute="top" secondItem="jQ0-hJ-LW9" secondAttribute="bottom" id="gRO-D5-TbH"/>
264   - <constraint firstItem="pKJ-J9-5CR" firstAttribute="leading" secondItem="LO5-7p-BlF" secondAttribute="leading" id="krW-ip-UgT"/>
265   - <constraint firstAttribute="trailing" secondItem="pA5-mr-wp5" secondAttribute="trailing" id="n92-8Z-2xl"/>
266   - <constraint firstAttribute="trailing" secondItem="PdH-vs-Gjn" secondAttribute="trailing" id="nWt-wP-1JQ"/>
267   - <constraint firstItem="pA5-mr-wp5" firstAttribute="top" secondItem="LO5-7p-BlF" secondAttribute="top" id="nsI-me-a5D"/>
268   - <constraint firstAttribute="trailing" secondItem="pKJ-J9-5CR" secondAttribute="trailing" id="pqL-tc-0qy"/>
269   - <constraint firstAttribute="trailing" secondItem="jQ0-hJ-LW9" secondAttribute="trailing" id="yc8-tE-p0i"/>
  139 + <constraint firstAttribute="bottom" secondItem="DWH-iG-AGA" secondAttribute="bottom" id="BB2-Ef-8Oz"/>
  140 + <constraint firstItem="DWH-iG-AGA" firstAttribute="top" secondItem="q0y-9I-pQG" secondAttribute="top" id="KdR-z6-VcZ"/>
  141 + <constraint firstItem="REy-qu-6cO" firstAttribute="top" secondItem="q0y-9I-pQG" secondAttribute="top" id="YeU-Ex-rj0"/>
  142 + <constraint firstAttribute="trailing" secondItem="DWH-iG-AGA" secondAttribute="trailing" id="eW0-uW-isJ"/>
  143 + <constraint firstAttribute="height" constant="48" id="u0w-Ne-gDI"/>
  144 + <constraint firstItem="DWH-iG-AGA" firstAttribute="leading" secondItem="q0y-9I-pQG" secondAttribute="leading" id="z34-2n-v3C"/>
  145 + <constraint firstItem="REy-qu-6cO" firstAttribute="centerX" secondItem="q0y-9I-pQG" secondAttribute="centerX" id="zoe-K7-XTj"/>
270 146 </constraints>
271 147 </view>
272   - <searchBar contentMode="redraw" placeholder="搜索" translatesAutoresizingMaskIntoConstraints="NO" id="ChK-me-hP6">
273   - <rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
274   - <constraints>
275   - <constraint firstAttribute="height" constant="44" id="wzh-nF-6vU"/>
276   - </constraints>
277   - <textInputTraits key="textInputTraits"/>
278   - </searchBar>
279   - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="DWH-iG-AGA">
280   - <rect key="frame" x="0.0" y="44" width="375" height="48"/>
281   - <constraints>
282   - <constraint firstAttribute="height" constant="48" id="ikm-dk-mzG"/>
283   - </constraints>
284   - </button>
285 148 <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">
286 149 <rect key="frame" x="0.0" y="92" width="375" height="575"/>
287   - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  150 + <color key="backgroundColor" red="0.93503493069999999" green="0.93562394380000002" blue="0.96585971120000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
288 151 <prototypes>
289   - <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="123" id="MMn-tR-I0v">
  152 + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="cell" rowHeight="123" id="MMn-tR-I0v" customClass="SearchTVStationListCell" customModule="YouerLiveVideo" customModuleProvider="target">
290 153 <rect key="frame" x="0.0" y="28" width="375" height="123"/>
291 154 <autoresizingMask key="autoresizingMask"/>
292 155 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="MMn-tR-I0v" id="H7d-Zz-WAS">
... ... @@ -326,6 +189,11 @@
326 189 <constraint firstItem="9Yk-8z-nas" firstAttribute="top" secondItem="H7d-Zz-WAS" secondAttribute="top" constant="4" id="vne-hK-wLf"/>
327 190 </constraints>
328 191 </tableViewCellContentView>
  192 + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
  193 + <connections>
  194 + <outlet property="stationName" destination="Lnl-RY-Pw3" id="0S0-Kr-H0X"/>
  195 + <outlet property="tvStationImage" destination="IYQ-S7-ka2" id="m9f-mQ-TFc"/>
  196 + </connections>
329 197 </tableViewCell>
330 198 </prototypes>
331 199 <connections>
... ... @@ -333,27 +201,87 @@
333 201 <outlet property="delegate" destination="zPk-GV-x5H" id="30K-a5-vlb"/>
334 202 </connections>
335 203 </tableView>
  204 + <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="LO5-7p-BlF">
  205 + <rect key="frame" x="0.0" y="92" width="375" height="575"/>
  206 + <subviews>
  207 + <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="IbJ-62-QUz">
  208 + <rect key="frame" x="0.0" y="0.0" width="375" height="575"/>
  209 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
  210 + <prototypes>
  211 + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="cell" id="1Ns-5p-fDD" customClass="SearchSelectCell" customModule="YouerLiveVideo" customModuleProvider="target">
  212 + <rect key="frame" x="0.0" y="28" width="375" height="44"/>
  213 + <autoresizingMask key="autoresizingMask"/>
  214 + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="1Ns-5p-fDD" id="vyn-xK-ILQ">
  215 + <rect key="frame" x="0.0" y="0.0" width="375" height="43"/>
  216 + <autoresizingMask key="autoresizingMask"/>
  217 + <subviews>
  218 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vrU-H8-dYc">
  219 + <rect key="frame" x="166" y="11" width="42" height="21"/>
  220 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  221 + <nil key="textColor"/>
  222 + <nil key="highlightedColor"/>
  223 + </label>
  224 + </subviews>
  225 + <constraints>
  226 + <constraint firstItem="vrU-H8-dYc" firstAttribute="centerX" secondItem="vyn-xK-ILQ" secondAttribute="centerX" id="5wV-xH-hMA"/>
  227 + <constraint firstItem="vrU-H8-dYc" firstAttribute="centerY" secondItem="vyn-xK-ILQ" secondAttribute="centerY" id="zWG-wG-2M2"/>
  228 + </constraints>
  229 + </tableViewCellContentView>
  230 + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
  231 + <connections>
  232 + <outlet property="selectName" destination="vrU-H8-dYc" id="ywV-L6-dGm"/>
  233 + </connections>
  234 + </tableViewCell>
  235 + </prototypes>
  236 + <connections>
  237 + <outlet property="dataSource" destination="zPk-GV-x5H" id="i24-vK-mDm"/>
  238 + <outlet property="delegate" destination="zPk-GV-x5H" id="oP3-9x-9qA"/>
  239 + </connections>
  240 + </tableView>
  241 + </subviews>
  242 + <color key="backgroundColor" white="0.66666666666666663" alpha="0.50786493288590606" colorSpace="calibratedWhite"/>
  243 + <constraints>
  244 + <constraint firstItem="IbJ-62-QUz" firstAttribute="leading" secondItem="LO5-7p-BlF" secondAttribute="leading" id="JAu-J6-dIy"/>
  245 + <constraint firstAttribute="bottom" secondItem="IbJ-62-QUz" secondAttribute="bottom" id="JKF-1f-M6c"/>
  246 + <constraint firstAttribute="trailing" secondItem="IbJ-62-QUz" secondAttribute="trailing" id="KD6-Yw-jTW"/>
  247 + <constraint firstItem="IbJ-62-QUz" firstAttribute="top" secondItem="LO5-7p-BlF" secondAttribute="top" id="o12-8S-W6V"/>
  248 + </constraints>
  249 + </view>
  250 + <searchBar contentMode="redraw" placeholder="搜索" translatesAutoresizingMaskIntoConstraints="NO" id="ChK-me-hP6">
  251 + <rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
  252 + <constraints>
  253 + <constraint firstAttribute="height" constant="44" id="wzh-nF-6vU"/>
  254 + </constraints>
  255 + <textInputTraits key="textInputTraits"/>
  256 + <connections>
  257 + <outlet property="delegate" destination="zPk-GV-x5H" id="KiT-X3-fSi"/>
  258 + </connections>
  259 + </searchBar>
336 260 </subviews>
337 261 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
338 262 <constraints>
339 263 <constraint firstAttribute="trailing" secondItem="o4U-1y-nqL" secondAttribute="trailing" id="6aw-Wu-lvQ"/>
  264 + <constraint firstItem="q0y-9I-pQG" firstAttribute="top" secondItem="ChK-me-hP6" secondAttribute="bottom" id="BKw-ks-FzH"/>
340 265 <constraint firstItem="LO5-7p-BlF" firstAttribute="leading" secondItem="cjj-7m-eAq" secondAttribute="leading" id="NYD-jI-WGE"/>
341   - <constraint firstItem="DWH-iG-AGA" firstAttribute="top" secondItem="ChK-me-hP6" secondAttribute="bottom" id="OJG-ox-1L1"/>
342   - <constraint firstItem="DWH-iG-AGA" firstAttribute="leading" secondItem="cjj-7m-eAq" secondAttribute="leading" id="TKP-Gf-d9n"/>
  266 + <constraint firstItem="LO5-7p-BlF" firstAttribute="top" secondItem="q0y-9I-pQG" secondAttribute="bottom" id="OlM-Cx-1Pu"/>
  267 + <constraint firstItem="q0y-9I-pQG" firstAttribute="leading" secondItem="cjj-7m-eAq" secondAttribute="leading" id="R3W-MX-aXd"/>
343 268 <constraint firstItem="14l-HJ-g5s" firstAttribute="top" secondItem="LO5-7p-BlF" secondAttribute="bottom" id="VFT-qT-lpJ"/>
344 269 <constraint firstAttribute="trailing" secondItem="LO5-7p-BlF" secondAttribute="trailing" id="Vi7-T1-ipE"/>
  270 + <constraint firstItem="o4U-1y-nqL" firstAttribute="top" secondItem="q0y-9I-pQG" secondAttribute="bottom" id="bZr-dz-CRh"/>
  271 + <constraint firstAttribute="trailing" secondItem="q0y-9I-pQG" secondAttribute="trailing" id="d9O-y7-yDw"/>
345 272 <constraint firstItem="ChK-me-hP6" firstAttribute="top" secondItem="cjj-7m-eAq" secondAttribute="top" id="dpW-I0-30v"/>
346 273 <constraint firstItem="14l-HJ-g5s" firstAttribute="top" secondItem="o4U-1y-nqL" secondAttribute="bottom" id="fSk-oc-iab"/>
347   - <constraint firstAttribute="trailing" secondItem="DWH-iG-AGA" secondAttribute="trailing" id="hha-QC-DTt"/>
348 274 <constraint firstItem="o4U-1y-nqL" firstAttribute="leading" secondItem="cjj-7m-eAq" secondAttribute="leading" id="j5g-by-76o"/>
349   - <constraint firstItem="LO5-7p-BlF" firstAttribute="top" secondItem="DWH-iG-AGA" secondAttribute="bottom" id="om1-z7-AYr"/>
350 275 <constraint firstAttribute="trailing" secondItem="ChK-me-hP6" secondAttribute="trailing" id="pC3-2b-J0P"/>
351 276 <constraint firstItem="ChK-me-hP6" firstAttribute="leading" secondItem="cjj-7m-eAq" secondAttribute="leading" id="uMH-Xr-Czy"/>
352   - <constraint firstItem="o4U-1y-nqL" firstAttribute="top" secondItem="DWH-iG-AGA" secondAttribute="bottom" id="zEQ-6J-fPf"/>
353 277 </constraints>
354 278 </view>
355 279 <connections>
  280 + <outlet property="downIcon" destination="30V-Xl-lRB" id="GHM-Kf-F2D"/>
  281 + <outlet property="gradName" destination="EkU-OV-GCU" id="1x2-I5-Dmb"/>
  282 + <outlet property="selectTableView" destination="IbJ-62-QUz" id="g3g-lN-96y"/>
356 283 <outlet property="selectView" destination="LO5-7p-BlF" id="BCJ-8J-krQ"/>
  284 + <outlet property="tableView" destination="o4U-1y-nqL" id="mW2-XQ-YbM"/>
357 285 </connections>
358 286 </viewController>
359 287 <placeholder placeholderIdentifier="IBFirstResponder" id="aje-z7-dD9" userLabel="First Responder" sceneMemberID="firstResponder"/>
... ... @@ -384,8 +312,8 @@
384 312 <nil key="textColor"/>
385 313 <nil key="highlightedColor"/>
386 314 </label>
387   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="创建时间" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tOg-Dx-FMX">
388   - <rect key="frame" x="16" y="303" width="69.5" height="21"/>
  315 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="创建时间:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tOg-Dx-FMX">
  316 + <rect key="frame" x="16" y="303" width="74" height="21"/>
389 317 <fontDescription key="fontDescription" type="system" pointSize="17"/>
390 318 <color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
391 319 <nil key="highlightedColor"/>
... ... @@ -419,7 +347,6 @@
419 347 <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" editable="NO" textAlignment="natural" translatesAutoresizingMaskIntoConstraints="NO" id="Nwx-qi-TmG">
420 348 <rect key="frame" x="16" y="0.0" width="343" height="290"/>
421 349 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
422   - <string key="text">Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Nam liber te conscient to factor tum poen legum odioque civiuda.阿萨德会卡死对方不懂撒八十 按时 啊施工方按时啊 按时按时按时按时按时按时按时按时啊啊发送按时按时按时阿萨斯按时按时阿斯顿发的说法是发送到发送到发斯蒂芬啊啊的所发生的法守法的司法手段办公室的风格无法改变第三方合法工本费撒da.阿萨德会卡死对方不懂撒八十 按时 啊施工方按时啊 按时按时按时按时按时按时按时按时啊啊发送按时按时按时阿萨斯按时按时阿斯顿发的说法是发送到发送到发斯蒂芬啊啊的所发生的法守法的司法手段办公室的风格无法改变第三方合法工本费撒</string>
423 350 <fontDescription key="fontDescription" type="system" pointSize="15"/>
424 351 <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
425 352 </textView>
... ... @@ -433,7 +360,7 @@
433 360 </constraints>
434 361 </view>
435 362 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="04n-fF-iSZ">
436   - <rect key="frame" x="93" y="303" width="42" height="21"/>
  363 + <rect key="frame" x="97.5" y="303" width="42" height="21"/>
437 364 <fontDescription key="fontDescription" type="system" pointSize="17"/>
438 365 <color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
439 366 <nil key="highlightedColor"/>
... ...
YouerLiveVideo/YouerLiveVideo/controllers/TVStation/TVStationViewController.swift
... ... @@ -19,11 +19,13 @@ class TVStationViewController: UIViewController {
19 19 super.viewDidLoad()
20 20 self.configTheme()
21 21 getDataList()
  22 + self.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .search, target: self, action: #selector(TVStationViewController.pushToSeachViewController))
22 23 // Do any additional setup after loading the view.
23 24 }
24 25  
25 26 func pushToSeachViewController(){
26 27 let vc = Story.instantiateViewControllerWithIdentifier("SearchTVStationListViewControllerVC", storyName: "TVStation") as! SearchTVStationListViewController
  28 + vc.title = "搜索电视台"
27 29 self.navigationController?.pushViewController(vc, animated: true)
28 30 }
29 31  
... ... @@ -194,6 +196,7 @@ class TVStationViewControllerCollectionCell:UICollectionViewCell{
194 196 }
195 197  
196 198 class TVStationInfor {
  199 + var f_SchoolType:String!
197 200 var f_Id:String! //标识字段,Guid标识 ,
198 201 var f_DeleteMark:Bool = false //删除标识,1-已删除 ,
199 202 var f_CreatorTime:String!//创建时间 ,
... ... @@ -210,6 +213,7 @@ class TVStationInfor {
210 213 var f_Url:String!// 机构地址
211 214  
212 215 init(json:JSON){
  216 + f_SchoolType = json["f_SchoolType"].stringValue
213 217 f_Id = json["f_Id"].stringValue
214 218 f_DeleteMark = json["f_DeleteMark"].boolValue
215 219 f_CreatorTime = json["f_CreatorTime"].stringValue
... ...
YouerLiveVideo/YouerLiveVideo/util/network.swift
... ... @@ -124,6 +124,10 @@ final class HTTPServer{
124 124 static let URL_COURSEGETTESTCATAGORY=HOST+"/api/Course/GetTestCatagory" //获取考点目录(已初始化成ztree所要求的格式)
125 125 static let URL_COURSEGETTELEVISIONSTATIONCATAGORY=HOST+"/api/Course/GetTelevisionStationCatagory" //获取电视台目录
126 126  
  127 + //MARK:-APP
  128 + static let URL_APPGETALLSCHOOL=HOST+"/api/App/GetAllSchool" //获取所有学校
  129 + static let URL_APPGETSCHOOLBYID=HOST+"/api/App/GetSchoolById" //获取学校详情
  130 +
127 131 //MARK:-DataStatistics(url)
128 132 static let URL_DATASTATISTICGETSCHOOLGENERAL=HOST+"/api/DataStatistics/GetSchoolGeneral" //获取前十学校的综合排行
129 133 static let URL_DATASTATISTICGETSCHOOLPV=HOST+"/api/DataStatistics/GetSchoolPv" //获取前十学校的阅读量排行
... ... @@ -290,6 +294,17 @@ final class HTTPServer{
290 294 KHttp.GET(url: HTTPServer.URL_COURSEGETTELEVISIONSTATIONCATAGORY, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler)
291 295 }
292 296  
  297 + //MARK:-APP
  298 + //获取所有学校
  299 + func getAllSchool(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){
  300 + KHttp.GET(url: HTTPServer.URL_APPGETALLSCHOOL, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler)
  301 + }
  302 +
  303 + //获取学校详情
  304 + func getSchoolById(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){
  305 + KHttp.GET(url: HTTPServer.URL_APPGETSCHOOLBYID, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler)
  306 + }
  307 +
293 308  
294 309 //MARK:-DataStatistics
295 310 //获取前十学校的综合排行
... ...
YouerLiveVideo/YouerLiveVideo/util/pinyin.c 0 → 100644
... ... @@ -0,0 +1,235 @@
  1 +/*
  2 + * pinyin.c
  3 + * Chinese Pinyin First Letter
  4 + *
  5 + * Created by George on 4/21/10.
  6 + * Copyright 2010 RED/SAFI. All rights reserved.
  7 + *
  8 + */
  9 +#define HANZI_START 19968
  10 +#define HANZI_COUNT 20902
  11 +
  12 +static char firstLetterArray[HANZI_COUNT] =
  13 +"ydkqsxnwzssxjbymgcczqpssqbycdscdqldylybssjgyqzjjfgcclzznwdwzjljpfyynnjjtmynzwzhflzppqhgccyynmjqyxxgd"
  14 +"nnsnsjnjnsnnmlnrxyfsngnnnnqzggllyjlnyzssecykyyhqwjssggyxyqyjtwktjhychmnxjtlhjyqbyxdldwrrjnwysrldzjpc"
  15 +"bzjjbrcfslnczstzfxxchtrqggddlyccssymmrjcyqzpwwjjyfcrwfdfzqpyddwyxkyjawjffxjbcftzyhhycyswccyxsclcxxwz"
  16 +"cxnbgnnxbxlzsqsbsjpysazdhmdzbqbscwdzzyytzhbtsyyfzgntnxjywqnknphhlxgybfmjnbjhhgqtjcysxstkzglyckglysmz"
  17 +"xyalmeldccxgzyrjxjzlnjzcqkcnnjwhjczccqljststbnhbtyxceqxkkwjyflzqlyhjxspsfxlmpbysxxxytccnylllsjxfhjxp"
  18 +"jbtffyabyxbcczbzyclwlczggbtssmdtjcxpthyqtgjjxcjfzkjzjqnlzwlslhdzbwjncjzyzsqnycqynzcjjwybrtwpyftwexcs"
  19 +"kdzctbyhyzqyyjxzcfbzzmjyxxsdczottbzljwfckscsxfyrlrygmbdthjxsqjccsbxyytswfbjdztnbcnzlcyzzpsacyzzsqqcs"
  20 +"hzqydxlbpjllmqxqydzxsqjtzpxlcglqdcwzfhctdjjsfxjejjtlbgxsxjmyjjqpfzasyjnsydjxkjcdjsznbartcclnjqmwnqnc"
  21 +"lllkbdbzzsyhqcltwlccrshllzntylnewyzyxczxxgdkdmtcedejtsyyssdqdfmxdbjlkrwnqlybglxnlgtgxbqjdznyjsjyjcjm"
  22 +"rnymgrcjczgjmzmgxmmryxkjnymsgmzzymknfxmbdtgfbhcjhkylpfmdxlxjjsmsqgzsjlqdldgjycalcmzcsdjllnxdjffffjcn"
  23 +"fnnffpfkhkgdpqxktacjdhhzdddrrcfqyjkqccwjdxhwjlyllzgcfcqjsmlzpbjjblsbcjggdckkdezsqcckjgcgkdjtjllzycxk"
  24 +"lqccgjcltfpcqczgwbjdqyzjjbyjhsjddwgfsjgzkcjctllfspkjgqjhzzljplgjgjjthjjyjzccmlzlyqbgjwmljkxzdznjqsyz"
  25 +"mljlljkywxmkjlhskjhbmclyymkxjqlbmllkmdxxkwyxwslmlpsjqqjqxyqfjtjdxmxxllcrqbsyjbgwynnggbcnxpjtgpapfgdj"
  26 +"qbhbncfjyzjkjkhxqfgqckfhygkhdkllsdjqxpqyaybnqsxqnszswhbsxwhxwbzzxdmndjbsbkbbzklylxgwxjjwaqzmywsjqlsj"
  27 +"xxjqwjeqxnchetlzalyyyszzpnkyzcptlshtzcfycyxyljsdcjqagyslcllyyysslqqqnldxzsccscadycjysfsgbfrsszqsbxjp"
  28 +"sjysdrckgjlgtkzjzbdktcsyqpyhstcldjnhmymcgxyzhjdctmhltxzhylamoxyjcltyfbqqjpfbdfehthsqhzywwcncxcdwhowg"
  29 +"yjlegmdqcwgfjhcsntmydolbygnqwesqpwnmlrydzszzlyqpzgcwxhnxpyxshmdqjgztdppbfbhzhhjyfdzwkgkzbldnzsxhqeeg"
  30 +"zxylzmmzyjzgszxkhkhtxexxgylyapsthxdwhzydpxagkydxbhnhnkdnjnmyhylpmgecslnzhkxxlbzzlbmlsfbhhgsgyyggbhsc"
  31 +"yajtxglxtzmcwzydqdqmngdnllszhngjzwfyhqswscelqajynytlsxthaznkzzsdhlaxxtwwcjhqqtddwzbcchyqzflxpslzqgpz"
  32 +"sznglydqtbdlxntctajdkywnsyzljhhdzckryyzywmhychhhxhjkzwsxhdnxlyscqydpslyzwmypnkxyjlkchtyhaxqsyshxasmc"
  33 +"hkdscrsgjpwqsgzjlwwschsjhsqnhnsngndantbaalczmsstdqjcjktscjnxplggxhhgoxzcxpdmmhldgtybynjmxhmrzplxjzck"
  34 +"zxshflqxxcdhxwzpckczcdytcjyxqhlxdhypjqxnlsyydzozjnhhqezysjyayxkypdgxddnsppyzndhthrhxydpcjjhtcnnctlhb"
  35 +"ynyhmhzllnnxmylllmdcppxhmxdkycyrdltxjchhznxclcclylnzsxnjzzlnnnnwhyqsnjhxynttdkyjpychhyegkcwtwlgjrlgg"
  36 +"tgtygyhpyhylqyqgcwyqkpyyettttlhyylltyttsylnyzwgywgpydqqzzdqnnkcqnmjjzzbxtqfjkdffbtkhzkbxdjjkdjjtlbwf"
  37 +"zpptkqtztgpdwntpjyfalqmkgxbcclzfhzcllllanpnxtjklcclgyhdzfgyddgcyyfgydxkssendhykdndknnaxxhbpbyyhxccga"
  38 +"pfqyjjdmlxcsjzllpcnbsxgjyndybwjspcwjlzkzddtacsbkzdyzypjzqsjnkktknjdjgyepgtlnyqnacdntcyhblgdzhbbydmjr"
  39 +"egkzyheyybjmcdtafzjzhgcjnlghldwxjjkytcyksssmtwcttqzlpbszdtwcxgzagyktywxlnlcpbclloqmmzsslcmbjcsdzkydc"
  40 +"zjgqjdsmcytzqqlnzqzxssbpkdfqmddzzsddtdmfhtdycnaqjqkypbdjyyxtljhdrqxlmhkydhrnlklytwhllrllrcxylbnsrnzz"
  41 +"symqzzhhkyhxksmzsyzgcxfbnbsqlfzxxnnxkxwymsddyqnggqmmyhcdzttfgyyhgsbttybykjdnkyjbelhdypjqnfxfdnkzhqks"
  42 +"byjtzbxhfdsbdaswpawajldyjsfhblcnndnqjtjnchxfjsrfwhzfmdrfjyxwzpdjkzyjympcyznynxfbytfyfwygdbnzzzdnytxz"
  43 +"emmqbsqehxfznbmflzzsrsyqjgsxwzjsprytjsjgskjjgljjynzjjxhgjkymlpyyycxycgqzswhwlyrjlpxslcxmnsmwklcdnkny"
  44 +"npsjszhdzeptxmwywxyysywlxjqcqxzdclaeelmcpjpclwbxsqhfwrtfnjtnqjhjqdxhwlbyccfjlylkyynldxnhycstyywncjtx"
  45 +"ywtrmdrqnwqcmfjdxzmhmayxnwmyzqtxtlmrspwwjhanbxtgzypxyyrrclmpamgkqjszycymyjsnxtplnbappypylxmyzkynldgy"
  46 +"jzcchnlmzhhanqnbgwqtzmxxmllhgdzxnhxhrxycjmffxywcfsbssqlhnndycannmtcjcypnxnytycnnymnmsxndlylysljnlxys"
  47 +"sqmllyzlzjjjkyzzcsfbzxxmstbjgnxnchlsnmcjscyznfzlxbrnnnylmnrtgzqysatswryhyjzmgdhzgzdwybsscskxsyhytsxg"
  48 +"cqgxzzbhyxjscrhmkkbsczjyjymkqhzjfnbhmqhysnjnzybknqmcjgqhwlsnzswxkhljhyybqcbfcdsxdldspfzfskjjzwzxsddx"
  49 +"jseeegjscssygclxxnwwyllymwwwgydkzjggggggsycknjwnjpcxbjjtqtjwdsspjxcxnzxnmelptfsxtllxcljxjjljsxctnswx"
  50 +"lennlyqrwhsycsqnybyaywjejqfwqcqqcjqgxaldbzzyjgkgxbltqyfxjltpydkyqhpmatlcndnkxmtxynhklefxdllegqtymsaw"
  51 +"hzmljtkynxlyjzljeeyybqqffnlyxhdsctgjhxywlkllxqkcctnhjlqmkkzgcyygllljdcgydhzwypysjbzjdzgyzzhywyfqdtyz"
  52 +"szyezklymgjjhtsmqwyzljyywzcsrkqyqltdxwcdrjalwsqzwbdcqyncjnnszjlncdcdtlzzzacqqzzddxyblxcbqjylzllljddz"
  53 +"jgyqyjzyxnyyyexjxksdaznyrdlzyyynjlslldyxjcykywnqcclddnyyynycgczhjxcclgzqjgnwnncqqjysbzzxyjxjnxjfzbsb"
  54 +"dsfnsfpzxhdwztdmpptflzzbzdmyypqjrsdzsqzsqxbdgcpzswdwcsqzgmdhzxmwwfybpngphdmjthzsmmbgzmbzjcfzhfcbbnmq"
  55 +"dfmbcmcjxlgpnjbbxgyhyyjgptzgzmqbqdcgybjxlwnkydpdymgcftpfxyztzxdzxtgkptybbclbjaskytssqyymscxfjhhlslls"
  56 +"jpqjjqaklyldlycctsxmcwfgngbqxllllnyxtyltyxytdpjhnhgnkbyqnfjyyzbyyessessgdyhfhwtcqbsdzjtfdmxhcnjzymqw"
  57 +"srxjdzjqbdqbbsdjgnfbknbxdkqhmkwjjjgdllthzhhyyyyhhsxztyyyccbdbpypzyccztjpzywcbdlfwzcwjdxxhyhlhwczxjtc"
  58 +"nlcdpxnqczczlyxjjcjbhfxwpywxzpcdzzbdccjwjhmlxbqxxbylrddgjrrctttgqdczwmxfytmmzcwjwxyywzzkybzcccttqnhx"
  59 +"nwxxkhkfhtswoccjybcmpzzykbnnzpbthhjdlszddytyfjpxyngfxbyqxzbhxcpxxtnzdnnycnxsxlhkmzxlthdhkghxxsshqyhh"
  60 +"cjyxglhzxcxnhekdtgqxqypkdhentykcnymyyjmkqyyyjxzlthhqtbyqhxbmyhsqckwwyllhcyylnneqxqwmcfbdccmljggxdqkt"
  61 +"lxkknqcdgcjwyjjlyhhqyttnwchhxcxwherzjydjccdbqcdgdnyxzdhcqrxcbhztqcbxwgqwyybxhmbymykdyecmqkyaqyngyzsl"
  62 +"fnkkqgyssqyshngjctxkzycssbkyxhyylstycxqthysmnscpmmgcccccmnztasmgqzjhklosjylswtmqzyqkdzljqqyplzycztcq"
  63 +"qpbbcjzclpkhqcyyxxdtdddsjcxffllchqxmjlwcjcxtspycxndtjshjwhdqqqckxyamylsjhmlalygxcyydmamdqmlmcznnyybz"
  64 +"xkyflmcncmlhxrcjjhsylnmtjggzgywjxsrxcwjgjqhqzdqjdcjjskjkgdzcgjjyjylxzxxcdqhhheslmhlfsbdjsyyshfyssczq"
  65 +"lpbdrfnztzdkykhsccgkwtqzckmsynbcrxqbjyfaxpzzedzcjykbcjwhyjbqzzywnyszptdkzpfpbaztklqnhbbzptpptyzzybhn"
  66 +"ydcpzmmcycqmcjfzzdcmnlfpbplngqjtbttajzpzbbdnjkljqylnbzqhksjznggqstzkcxchpzsnbcgzkddzqanzgjkdrtlzldwj"
  67 +"njzlywtxndjzjhxnatncbgtzcsskmljpjytsnwxcfjwjjtkhtzplbhsnjssyjbhbjyzlstlsbjhdnwqpslmmfbjdwajyzccjtbnn"
  68 +"nzwxxcdslqgdsdpdzgjtqqpsqlyyjzlgyhsdlctcbjtktyczjtqkbsjlgnnzdncsgpynjzjjyyknhrpwszxmtncszzyshbyhyzax"
  69 +"ywkcjtllckjjtjhgcssxyqyczbynnlwqcglzgjgqyqcczssbcrbcskydznxjsqgxssjmecnstjtpbdlthzwxqwqczexnqczgwesg"
  70 +"ssbybstscslccgbfsdqnzlccglllzghzcthcnmjgyzazcmsksstzmmzckbjygqljyjppldxrkzyxccsnhshhdznlzhzjjcddcbcj"
  71 +"xlbfqbczztpqdnnxljcthqzjgylklszzpcjdscqjhjqkdxgpbajynnsmjtzdxlcjyryynhjbngzjkmjxltbsllrzpylssznxjhll"
  72 +"hyllqqzqlsymrcncxsljmlzltzldwdjjllnzggqxppskyggggbfzbdkmwggcxmcgdxjmcjsdycabxjdlnbcddygskydqdxdjjyxh"
  73 +"saqazdzfslqxxjnqzylblxxwxqqzbjzlfbblylwdsljhxjyzjwtdjcyfqzqzzdzsxzzqlzcdzfxhwspynpqzmlpplffxjjnzzyls"
  74 +"jnyqzfpfzgsywjjjhrdjzzxtxxglghtdxcskyswmmtcwybazbjkshfhgcxmhfqhyxxyzftsjyzbxyxpzlchmzmbxhzzssyfdmncw"
  75 +"dabazlxktcshhxkxjjzjsthygxsxyyhhhjwxkzxssbzzwhhhcwtzzzpjxsyxqqjgzyzawllcwxznxgyxyhfmkhydwsqmnjnaycys"
  76 +"pmjkgwcqhylajgmzxhmmcnzhbhxclxdjpltxyjkdyylttxfqzhyxxsjbjnayrsmxyplckdnyhlxrlnllstycyyqygzhhsccsmcct"
  77 +"zcxhyqfpyyrpbflfqnntszlljmhwtcjqyzwtlnmlmdwmbzzsnzrbpdddlqjjbxtcsnzqqygwcsxfwzlxccrszdzmcyggdyqsgtnn"
  78 +"nlsmymmsyhfbjdgyxccpshxczcsbsjyygjmpbwaffyfnxhydxzylremzgzzyndsznlljcsqfnxxkptxzgxjjgbmyyssnbtylbnlh"
  79 +"bfzdcyfbmgqrrmzszxysjtznnydzzcdgnjafjbdknzblczszpsgcycjszlmnrznbzzldlnllysxsqzqlcxzlsgkbrxbrbzcycxzj"
  80 +"zeeyfgklzlnyhgzcgzlfjhgtgwkraajyzkzqtsshjjxdzyznynnzyrzdqqhgjzxsszbtkjbbfrtjxllfqwjgclqtymblpzdxtzag"
  81 +"bdhzzrbgjhwnjtjxlkscfsmwlldcysjtxkzscfwjlbnntzlljzllqblcqmqqcgcdfpbphzczjlpyyghdtgwdxfczqyyyqysrclqz"
  82 +"fklzzzgffcqnwglhjycjjczlqzzyjbjzzbpdcsnnjgxdqnknlznnnnpsntsdyfwwdjzjysxyyczcyhzwbbyhxrylybhkjksfxtjj"
  83 +"mmchhlltnyymsxxyzpdjjycsycwmdjjkqyrhllngpngtlyycljnnnxjyzfnmlrgjjtyzbsyzmsjyjhgfzqmsyxrszcytlrtqzsst"
  84 +"kxgqkgsptgxdnjsgcqcqhmxggztqydjjznlbznxqlhyqgggthqscbyhjhhkyygkggcmjdzllcclxqsftgjslllmlcskctbljszsz"
  85 +"mmnytpzsxqhjcnnqnyexzqzcpshkzzyzxxdfgmwqrllqxrfztlystctmjcsjjthjnxtnrztzfqrhcgllgcnnnnjdnlnnytsjtlny"
  86 +"xsszxcgjzyqpylfhdjsbbdczgjjjqzjqdybssllcmyttmqnbhjqmnygjyeqyqmzgcjkpdcnmyzgqllslnclmholzgdylfzslncnz"
  87 +"lylzcjeshnyllnxnjxlyjyyyxnbcljsswcqqnnyllzldjnllzllbnylnqchxyyqoxccqkyjxxxyklksxeyqhcqkkkkcsnyxxyqxy"
  88 +"gwtjohthxpxxhsnlcykychzzcbwqbbwjqcscszsslcylgddsjzmmymcytsdsxxscjpqqsqylyfzychdjynywcbtjsydchcyddjlb"
  89 +"djjsodzyqyskkyxdhhgqjyohdyxwgmmmazdybbbppbcmnnpnjzsmtxerxjmhqdntpjdcbsnmssythjtslmltrcplzszmlqdsdmjm"
  90 +"qpnqdxcfrnnfsdqqyxhyaykqyddlqyyysszbydslntfgtzqbzmchdhczcwfdxtmqqsphqwwxsrgjcwnntzcqmgwqjrjhtqjbbgwz"
  91 +"fxjhnqfxxqywyyhyscdydhhqmrmtmwctbszppzzglmzfollcfwhmmsjzttdhlmyffytzzgzyskjjxqyjzqbhmbzclyghgfmshpcf"
  92 +"zsnclpbqsnjyzslxxfpmtyjygbxlldlxpzjyzjyhhzcywhjylsjexfszzywxkzjlnadymlymqjpwxxhxsktqjezrpxxzghmhwqpw"
  93 +"qlyjjqjjzszcnhjlchhnxjlqwzjhbmzyxbdhhypylhlhlgfwlcfyytlhjjcwmscpxstkpnhjxsntyxxtestjctlsslstdlllwwyh"
  94 +"dnrjzsfgxssyczykwhtdhwjglhtzdqdjzxxqgghltzphcsqfclnjtclzpfstpdynylgmjllycqhynspchylhqyqtmzymbywrfqyk"
  95 +"jsyslzdnjmpxyyssrhzjnyqtqdfzbwwdwwrxcwggyhxmkmyyyhmxmzhnksepmlqqmtcwctmxmxjpjjhfxyyzsjzhtybmstsyjznq"
  96 +"jnytlhynbyqclcycnzwsmylknjxlggnnpjgtysylymzskttwlgsmzsylmpwlcwxwqcssyzsyxyrhssntsrwpccpwcmhdhhxzdzyf"
  97 +"jhgzttsbjhgyglzysmyclllxbtyxhbbzjkssdmalhhycfygmqypjyjqxjllljgclzgqlycjcctotyxmtmshllwlqfxymzmklpszz"
  98 +"cxhkjyclctyjcyhxsgyxnnxlzwpyjpxhjwpjpwxqqxlxsdhmrslzzydwdtcxknstzshbsccstplwsscjchjlcgchssphylhfhhxj"
  99 +"sxallnylmzdhzxylsxlmzykcldyahlcmddyspjtqjzlngjfsjshctsdszlblmssmnyymjqbjhrzwtyydchjljapzwbgqxbkfnbjd"
  100 +"llllyylsjydwhxpsbcmljpscgbhxlqhyrljxyswxhhzlldfhlnnymjljyflyjycdrjlfsyzfsllcqyqfgqyhnszlylmdtdjcnhbz"
  101 +"llnwlqxygyyhbmgdhxxnhlzzjzxczzzcyqzfngwpylcpkpykpmclgkdgxzgxwqbdxzzkzfbddlzxjtpjpttbythzzdwslcpnhslt"
  102 +"jxxqlhyxxxywzyswttzkhlxzxzpyhgzhknfsyhntjrnxfjcpjztwhplshfcrhnslxxjxxyhzqdxqwnnhyhmjdbflkhcxcwhjfyjc"
  103 +"fpqcxqxzyyyjygrpynscsnnnnchkzdyhflxxhjjbyzwttxnncyjjymswyxqrmhxzwfqsylznggbhyxnnbwttcsybhxxwxyhhxyxn"
  104 +"knyxmlywrnnqlxbbcljsylfsytjzyhyzawlhorjmnsczjxxxyxchcyqryxqzddsjfslyltsffyxlmtyjmnnyyyxltzcsxqclhzxl"
  105 +"wyxzhnnlrxkxjcdyhlbrlmbrdlaxksnlljlyxxlynrylcjtgncmtlzllcyzlpzpzyawnjjfybdyyzsepckzzqdqpbpsjpdyttbdb"
  106 +"bbyndycncpjmtmlrmfmmrwyfbsjgygsmdqqqztxmkqwgxllpjgzbqrdjjjfpkjkcxbljmswldtsjxldlppbxcwkcqqbfqbccajzg"
  107 +"mykbhyhhzykndqzybpjnspxthlfpnsygyjdbgxnhhjhzjhstrstldxskzysybmxjlxyslbzyslzxjhfybqnbylljqkygzmcyzzym"
  108 +"ccslnlhzhwfwyxzmwyxtynxjhbyymcysbmhysmydyshnyzchmjjmzcaahcbjbbhblytylsxsnxgjdhkxxtxxnbhnmlngsltxmrhn"
  109 +"lxqqxmzllyswqgdlbjhdcgjyqyymhwfmjybbbyjyjwjmdpwhxqldyapdfxxbcgjspckrssyzjmslbzzjfljjjlgxzgyxyxlszqkx"
  110 +"bexyxhgcxbpndyhwectwwcjmbtxchxyqqllxflyxlljlssnwdbzcmyjclwswdczpchqekcqbwlcgydblqppqzqfnqdjhymmcxtxd"
  111 +"rmzwrhxcjzylqxdyynhyyhrslnrsywwjjymtltllgtqcjzyabtckzcjyccqlysqxalmzynywlwdnzxqdllqshgpjfjljnjabcqzd"
  112 +"jgthhsstnyjfbswzlxjxrhgldlzrlzqzgsllllzlymxxgdzhgbdphzpbrlwnjqbpfdwonnnhlypcnjccndmbcpbzzncyqxldomzb"
  113 +"lzwpdwyygdstthcsqsccrsssyslfybnntyjszdfndpdhtqzmbqlxlcmyffgtjjqwftmnpjwdnlbzcmmcngbdzlqlpnfhyymjylsd"
  114 +"chdcjwjcctljcldtljjcbddpndsszycndbjlggjzxsxnlycybjjxxcbylzcfzppgkcxqdzfztjjfjdjxzbnzyjqctyjwhdyczhym"
  115 +"djxttmpxsplzcdwslshxypzgtfmlcjtacbbmgdewycyzxdszjyhflystygwhkjyylsjcxgywjcbllcsnddbtzbsclyzczzssqdll"
  116 +"mjyyhfllqllxfdyhabxggnywyypllsdldllbjcyxjznlhljdxyyqytdlllbngpfdfbbqbzzmdpjhgclgmjjpgaehhbwcqxajhhhz"
  117 +"chxyphjaxhlphjpgpzjqcqzgjjzzgzdmqyybzzphyhybwhazyjhykfgdpfqsdlzmljxjpgalxzdaglmdgxmmzqwtxdxxpfdmmssy"
  118 +"mpfmdmmkxksyzyshdzkjsysmmzzzmdydyzzczxbmlstmdyemxckjmztyymzmzzmsshhdccjewxxkljsthwlsqlyjzllsjssdppmh"
  119 +"nlgjczyhmxxhgncjmdhxtkgrmxfwmckmwkdcksxqmmmszzydkmsclcmpcjmhrpxqpzdsslcxkyxtwlkjyahzjgzjwcjnxyhmmbml"
  120 +"gjxmhlmlgmxctkzmjlyscjsyszhsyjzjcdajzhbsdqjzgwtkqxfkdmsdjlfmnhkzqkjfeypzyszcdpynffmzqykttdzzefmzlbnp"
  121 +"plplpbpszalltnlkckqzkgenjlwalkxydpxnhsxqnwqnkxqclhyxxmlnccwlymqyckynnlcjnszkpyzkcqzqljbdmdjhlasqlbyd"
  122 +"wqlwdgbqcryddztjybkbwszdxdtnpjdtcnqnfxqqmgnseclstbhpwslctxxlpwydzklnqgzcqapllkqcylbqmqczqcnjslqzdjxl"
  123 +"ddhpzqdljjxzqdjyzhhzlkcjqdwjppypqakjyrmpzbnmcxkllzllfqpylllmbsglzysslrsysqtmxyxzqzbscnysyztffmzzsmzq"
  124 +"hzssccmlyxwtpzgxzjgzgsjzgkddhtqggzllbjdzlsbzhyxyzhzfywxytymsdnzzyjgtcmtnxqyxjscxhslnndlrytzlryylxqht"
  125 +"xsrtzcgyxbnqqzfhykmzjbzymkbpnlyzpblmcnqyzzzsjztjctzhhyzzjrdyzhnfxklfzslkgjtctssyllgzrzbbjzzklpkbczys"
  126 +"nnyxbjfbnjzzxcdwlzyjxzzdjjgggrsnjkmsmzjlsjywqsnyhqjsxpjztnlsnshrnynjtwchglbnrjlzxwjqxqkysjycztlqzybb"
  127 +"ybyzjqdwgyzcytjcjxckcwdkkzxsnkdnywwyyjqyytlytdjlxwkcjnklccpzcqqdzzqlcsfqchqqgssmjzzllbjjzysjhtsjdysj"
  128 +"qjpdszcdchjkjzzlpycgmzndjxbsjzzsyzyhgxcpbjydssxdzncglqmbtsfcbfdzdlznfgfjgfsmpnjqlnblgqcyyxbqgdjjqsrf"
  129 +"kztjdhczklbsdzcfytplljgjhtxzcsszzxstjygkgckgynqxjplzbbbgcgyjzgczqszlbjlsjfzgkqqjcgycjbzqtldxrjnbsxxp"
  130 +"zshszycfwdsjjhxmfczpfzhqhqmqnknlyhtycgfrzgnqxcgpdlbzcsczqlljblhbdcypscppdymzzxgyhckcpzjgslzlnscnsldl"
  131 +"xbmsdlddfjmkdqdhslzxlsznpqpgjdlybdskgqlbzlnlkyyhzttmcjnqtzzfszqktlljtyyllnllqyzqlbdzlslyyzxmdfszsnxl"
  132 +"xznczqnbbwskrfbcylctnblgjpmczzlstlxshtzcyzlzbnfmqnlxflcjlyljqcbclzjgnsstbrmhxzhjzclxfnbgxgtqncztmsfz"
  133 +"kjmssncljkbhszjntnlzdntlmmjxgzjyjczxyhyhwrwwqnztnfjscpyshzjfyrdjsfscjzbjfzqzchzlxfxsbzqlzsgyftzdcszx"
  134 +"zjbjpszkjrhxjzcgbjkhcggtxkjqglxbxfgtrtylxqxhdtsjxhjzjjcmzlcqsbtxwqgxtxxhxftsdkfjhzyjfjxnzldlllcqsqqz"
  135 +"qwqxswqtwgwbzcgcllqzbclmqjtzgzyzxljfrmyzflxnsnxxjkxrmjdzdmmyxbsqbhgzmwfwygmjlzbyytgzyccdjyzxsngnyjyz"
  136 +"nbgpzjcqsyxsxrtfyzgrhztxszzthcbfclsyxzlzqmzlmplmxzjssfsbysmzqhxxnxrxhqzzzsslyflczjrcrxhhzxqndshxsjjh"
  137 +"qcjjbcynsysxjbqjpxzqplmlxzkyxlxcnlcycxxzzlxdlllmjyhzxhyjwkjrwyhcpsgnrzlfzwfzznsxgxflzsxzzzbfcsyjdbrj"
  138 +"krdhhjxjljjtgxjxxstjtjxlyxqfcsgswmsbctlqzzwlzzkxjmltmjyhsddbxgzhdlbmyjfrzfcgclyjbpmlysmsxlszjqqhjzfx"
  139 +"gfqfqbphngyyqxgztnqwyltlgwgwwhnlfmfgzjmgmgbgtjflyzzgzyzaflsspmlbflcwbjztljjmzlpjjlymqtmyyyfbgygqzgly"
  140 +"zdxqyxrqqqhsxyyqxygjtyxfsfsllgnqcygycwfhcccfxpylypllzqxxxxxqqhhsshjzcftsczjxspzwhhhhhapylqnlpqafyhxd"
  141 +"ylnkmzqgggddesrenzltzgchyppcsqjjhclljtolnjpzljlhymhezdydsqycddhgznndzclzywllznteydgnlhslpjjbdgwxpcnn"
  142 +"tycklkclwkllcasstknzdnnjttlyyzssysszzryljqkcgdhhyrxrzydgrgcwcgzqffbppjfzynakrgywyjpqxxfkjtszzxswzddf"
  143 +"bbqtbgtzkznpzfpzxzpjszbmqhkyyxyldkljnypkyghgdzjxxeaxpnznctzcmxcxmmjxnkszqnmnlwbwwqjjyhclstmcsxnjcxxt"
  144 +"pcnfdtnnpglllzcjlspblpgjcdtnjjlyarscffjfqwdpgzdwmrzzcgodaxnssnyzrestyjwjyjdbcfxnmwttbqlwstszgybljpxg"
  145 +"lbnclgpcbjftmxzljylzxcltpnclcgxtfzjshcrxsfysgdkntlbyjcyjllstgqcbxnhzxbxklylhzlqzlnzcqwgzlgzjncjgcmnz"
  146 +"zgjdzxtzjxycyycxxjyyxjjxsssjstsstdppghtcsxwzdcsynptfbchfbblzjclzzdbxgcjlhpxnfzflsyltnwbmnjhszbmdnbcy"
  147 +"sccldnycndqlyjjhmqllcsgljjsyfpyyccyltjantjjpwycmmgqyysxdxqmzhszxbftwwzqswqrfkjlzjqqyfbrxjhhfwjgzyqac"
  148 +"myfrhcyybynwlpexcczsyyrlttdmqlrkmpbgmyyjprkznbbsqyxbhyzdjdnghpmfsgbwfzmfqmmbzmzdcgjlnnnxyqgmlrygqccy"
  149 +"xzlwdkcjcggmcjjfyzzjhycfrrcmtznzxhkqgdjxccjeascrjthpljlrzdjrbcqhjdnrhylyqjsymhzydwcdfryhbbydtssccwbx"
  150 +"glpzmlzjdqsscfjmmxjcxjytycghycjwynsxlfemwjnmkllswtxhyyyncmmcyjdqdjzglljwjnkhpzggflccsczmcbltbhbqjxqd"
  151 +"jpdjztghglfjawbzyzjltstdhjhctcbchflqmpwdshyytqwcnntjtlnnmnndyyyxsqkxwyyflxxnzwcxypmaelyhgjwzzjbrxxaq"
  152 +"jfllpfhhhytzzxsgqjmhspgdzqwbwpjhzjdyjcqwxkthxsqlzyymysdzgnqckknjlwpnsyscsyzlnmhqsyljxbcxtlhzqzpcycyk"
  153 +"pppnsxfyzjjrcemhszmnxlxglrwgcstlrsxbygbzgnxcnlnjlclynymdxwtzpalcxpqjcjwtcyyjlblxbzlqmyljbghdslssdmxm"
  154 +"bdczsxyhamlczcpjmcnhjyjnsykchskqmczqdllkablwjqsfmocdxjrrlyqchjmybyqlrhetfjzfrfksryxfjdwtsxxywsqjysly"
  155 +"xwjhsdlxyyxhbhawhwjcxlmyljcsqlkydttxbzslfdxgxsjkhsxxybssxdpwncmrptqzczenygcxqfjxkjbdmljzmqqxnoxslyxx"
  156 +"lylljdzptymhbfsttqqwlhsgynlzzalzxclhtwrrqhlstmypyxjjxmnsjnnbryxyjllyqyltwylqyfmlkljdnlltfzwkzhljmlhl"
  157 +"jnljnnlqxylmbhhlnlzxqchxcfxxlhyhjjgbyzzkbxscqdjqdsndzsygzhhmgsxcsymxfepcqwwrbpyyjqryqcyjhqqzyhmwffhg"
  158 +"zfrjfcdbxntqyzpcyhhjlfrzgpbxzdbbgrqstlgdgylcqmgchhmfywlzyxkjlypjhsywmqqggzmnzjnsqxlqsyjtcbehsxfszfxz"
  159 +"wfllbcyyjdytdthwzsfjmqqyjlmqsxlldttkghybfpwdyysqqrnqwlgwdebzwcyygcnlkjxtmxmyjsxhybrwfymwfrxyymxysctz"
  160 +"ztfykmldhqdlgyjnlcryjtlpsxxxywlsbrrjwxhqybhtydnhhxmmywytycnnmnssccdalwztcpqpyjllqzyjswjwzzmmglmxclmx"
  161 +"nzmxmzsqtzppjqblpgxjzhfljjhycjsrxwcxsncdlxsyjdcqzxslqyclzxlzzxmxqrjmhrhzjbhmfljlmlclqnldxzlllfyprgjy"
  162 +"nxcqqdcmqjzzxhnpnxzmemmsxykynlxsxtljxyhwdcwdzhqyybgybcyscfgfsjnzdrzzxqxrzrqjjymcanhrjtldbpyzbstjhxxz"
  163 +"ypbdwfgzzrpymnnkxcqbyxnbnfyckrjjcmjegrzgyclnnzdnkknsjkcljspgyyclqqjybzssqlllkjftbgtylcccdblsppfylgyd"
  164 +"tzjqjzgkntsfcxbdkdxxhybbfytyhbclnnytgdhryrnjsbtcsnyjqhklllzslydxxwbcjqsbxnpjzjzjdzfbxxbrmladhcsnclbj"
  165 +"dstblprznswsbxbcllxxlzdnzsjpynyxxyftnnfbhjjjgbygjpmmmmsszljmtlyzjxswxtyledqpjmpgqzjgdjlqjwjqllsdgjgy"
  166 +"gmscljjxdtygjqjjjcjzcjgdzdshqgzjggcjhqxsnjlzzbxhsgzxcxyljxyxyydfqqjhjfxdhctxjyrxysqtjxyefyyssyxjxncy"
  167 +"zxfxcsxszxyyschshxzzzgzzzgfjdldylnpzgsjaztyqzpbxcbdztzczyxxyhhscjshcggqhjhgxhsctmzmehyxgebtclzkkwytj"
  168 +"zrslekestdbcyhqqsayxcjxwwgsphjszsdncsjkqcxswxfctynydpccczjqtcwjqjzzzqzljzhlsbhpydxpsxshhezdxfptjqyzc"
  169 +"xhyaxncfzyyhxgnqmywntzsjbnhhgymxmxqcnssbcqsjyxxtyyhybcqlmmszmjzzllcogxzaajzyhjmchhcxzsxsdznleyjjzjbh"
  170 +"zwjzsqtzpsxzzdsqjjjlnyazphhyysrnqzthzhnyjyjhdzxzlswclybzyecwcycrylchzhzydzydyjdfrjjhtrsqtxyxjrjhojyn"
  171 +"xelxsfsfjzghpzsxzszdzcqzbyyklsgsjhczshdgqgxyzgxchxzjwyqwgyhksseqzzndzfkwyssdclzstsymcdhjxxyweyxczayd"
  172 +"mpxmdsxybsqmjmzjmtjqlpjyqzcgqhyjhhhqxhlhdldjqcfdwbsxfzzyyschtytyjbhecxhjkgqfxbhyzjfxhwhbdzfyzbchpnpg"
  173 +"dydmsxhkhhmamlnbyjtmpxejmcthqbzyfcgtyhwphftgzzezsbzegpbmdskftycmhbllhgpzjxzjgzjyxzsbbqsczzlzscstpgxm"
  174 +"jsfdcczjzdjxsybzlfcjsazfgszlwbczzzbyztzynswyjgxzbdsynxlgzbzfygczxbzhzftpbgzgejbstgkdmfhyzzjhzllzzgjq"
  175 +"zlsfdjsscbzgpdlfzfzszyzyzsygcxsnxxchczxtzzljfzgqsqqxcjqccccdjcdszzyqjccgxztdlgscxzsyjjqtcclqdqztqchq"
  176 +"qyzynzzzpbkhdjfcjfztypqyqttynlmbdktjcpqzjdzfpjsbnjlgyjdxjdcqkzgqkxclbzjtcjdqbxdjjjstcxnxbxqmslyjcxnt"
  177 +"jqwwcjjnjjlllhjcwqtbzqqczczpzzdzyddcyzdzccjgtjfzdprntctjdcxtqzdtjnplzbcllctdsxkjzqdmzlbznbtjdcxfczdb"
  178 +"czjjltqqpldckztbbzjcqdcjwynllzlzccdwllxwzlxrxntqjczxkjlsgdnqtddglnlajjtnnynkqlldzntdnycygjwyxdxfrsqs"
  179 +"tcdenqmrrqzhhqhdldazfkapbggpzrebzzykyqspeqjjglkqzzzjlysyhyzwfqznlzzlzhwcgkypqgnpgblplrrjyxcccgyhsfzf"
  180 +"wbzywtgzxyljczwhncjzplfflgskhyjdeyxhlpllllcygxdrzelrhgklzzyhzlyqszzjzqljzflnbhgwlczcfjwspyxzlzlxgccp"
  181 +"zbllcxbbbbnbbcbbcrnnzccnrbbnnldcgqyyqxygmqzwnzytyjhyfwtehznjywlccntzyjjcdedpwdztstnjhtymbjnyjzlxtsst"
  182 +"phndjxxbyxqtzqddtjtdyztgwscszqflshlnzbcjbhdlyzjyckwtydylbnydsdsycctyszyyebgexhqddwnygyclxtdcystqnygz"
  183 +"ascsszzdzlcclzrqxyywljsbymxshzdembbllyyllytdqyshymrqnkfkbfxnnsbychxbwjyhtqbpbsbwdzylkgzskyghqzjxhxjx"
  184 +"gnljkzlyycdxlfwfghljgjybxblybxqpqgntzplncybxdjyqydymrbeyjyyhkxxstmxrczzjwxyhybmcflyzhqyzfwxdbxbcwzms"
  185 +"lpdmyckfmzklzcyqycclhxfzlydqzpzygyjyzmdxtzfnnyttqtzhgsfcdmlccytzxjcytjmkslpzhysnwllytpzctzccktxdhxxt"
  186 +"qcyfksmqccyyazhtjplylzlyjbjxtfnyljyynrxcylmmnxjsmybcsysslzylljjgyldzdlqhfzzblfndsqkczfyhhgqmjdsxyctt"
  187 +"xnqnjpyybfcjtyyfbnxejdgyqbjrcnfyyqpghyjsyzngrhtknlnndzntsmgklbygbpyszbydjzsstjztsxzbhbscsbzczptqfzlq"
  188 +"flypybbjgszmnxdjmtsyskkbjtxhjcegbsmjyjzcstmljyxrczqscxxqpyzhmkyxxxjcljyrmyygadyskqlnadhrskqxzxztcggz"
  189 +"dlmlwxybwsyctbhjhcfcwzsxwwtgzlxqshnyczjxemplsrcgltnzntlzjcyjgdtclglbllqpjmzpapxyzlaktkdwczzbncctdqqz"
  190 +"qyjgmcdxltgcszlmlhbglkznnwzndxnhlnmkydlgxdtwcfrjerctzhydxykxhwfzcqshknmqqhzhhymjdjskhxzjzbzzxympajnm"
  191 +"ctbxlsxlzynwrtsqgscbptbsgzwyhtlkssswhzzlyytnxjgmjrnsnnnnlskztxgxlsammlbwldqhylakqcqctmycfjbslxclzjcl"
  192 +"xxknbnnzlhjphqplsxsckslnhpsfqcytxjjzljldtzjjzdlydjntptnndskjfsljhylzqqzlbthydgdjfdbyadxdzhzjnthqbykn"
  193 +"xjjqczmlljzkspldsclbblnnlelxjlbjycxjxgcnlcqplzlznjtsljgyzdzpltqcssfdmnycxgbtjdcznbgbqyqjwgkfhtnbyqzq"
  194 +"gbkpbbyzmtjdytblsqmbsxtbnpdxklemyycjynzdtldykzzxtdxhqshygmzsjycctayrzlpwltlkxslzcggexclfxlkjrtlqjaqz"
  195 +"ncmbqdkkcxglczjzxjhptdjjmzqykqsecqzdshhadmlzfmmzbgntjnnlhbyjbrbtmlbyjdzxlcjlpldlpcqdhlhzlycblcxccjad"
  196 +"qlmzmmsshmybhbnkkbhrsxxjmxmdznnpklbbrhgghfchgmnklltsyyycqlcskymyehywxnxqywbawykqldnntndkhqcgdqktgpkx"
  197 +"hcpdhtwnmssyhbwcrwxhjmkmzngwtmlkfghkjyldyycxwhyyclqhkqhtdqkhffldxqwytyydesbpkyrzpjfyyzjceqdzzdlattpb"
  198 +"fjllcxdlmjsdxegwgsjqxcfbssszpdyzcxznyxppzydlyjccpltxlnxyzyrscyyytylwwndsahjsygyhgywwaxtjzdaxysrltdps"
  199 +"syxfnejdxyzhlxlllzhzsjnyqyqyxyjghzgjcyjchzlycdshhsgczyjscllnxzjjyyxnfsmwfpyllyllabmddhwzxjmcxztzpmlq"
  200 +"chsfwzynctlndywlslxhymmylmbwwkyxyaddxylldjpybpwnxjmmmllhafdllaflbnhhbqqjqzjcqjjdjtffkmmmpythygdrjrdd"
  201 +"wrqjxnbysrmzdbyytbjhpymyjtjxaahggdqtmystqxkbtzbkjlxrbyqqhxmjjbdjntgtbxpgbktlgqxjjjcdhxqdwjlwrfmjgwqh"
  202 +"cnrxswgbtgygbwhswdwrfhwytjjxxxjyzyslphyypyyxhydqpxshxyxgskqhywbdddpplcjlhqeewjgsyykdpplfjthkjltcyjhh"
  203 +"jttpltzzcdlyhqkcjqysteeyhkyzyxxyysddjkllpymqyhqgxqhzrhbxpllnqydqhxsxxwgdqbshyllpjjjthyjkyphthyyktyez"
  204 +"yenmdshlzrpqfbnfxzbsftlgxsjbswyysksflxlpplbbblnsfbfyzbsjssylpbbffffsscjdstjsxtryjcyffsyzyzbjtlctsbsd"
  205 +"hrtjjbytcxyyeylycbnebjdsysyhgsjzbxbytfzwgenhhhthjhhxfwgcstbgxklstyymtmbyxjskzscdyjrcythxzfhmymcxlzns"
  206 +"djtxtxrycfyjsbsdyerxhljxbbdeynjghxgckgscymblxjmsznskgxfbnbbthfjyafxwxfbxmyfhdttcxzzpxrsywzdlybbktyqw"
  207 +"qjbzypzjznjpzjlztfysbttslmptzrtdxqsjehbnylndxljsqmlhtxtjecxalzzspktlzkqqyfsyjywpcpqfhjhytqxzkrsgtksq"
  208 +"czlptxcdyyzsslzslxlzmacpcqbzyxhbsxlzdltztjtylzjyytbzypltxjsjxhlbmytxcqrblzssfjzztnjytxmyjhlhpblcyxqj"
  209 +"qqkzzscpzkswalqsplczzjsxgwwwygyatjbbctdkhqhkgtgpbkqyslbxbbckbmllndzstbklggqkqlzbkktfxrmdkbftpzfrtppm"
  210 +"ferqnxgjpzsstlbztpszqzsjdhljqlzbpmsmmsxlqqnhknblrddnhxdkddjcyyljfqgzlgsygmjqjkhbpmxyxlytqwlwjcpbmjxc"
  211 +"yzydrjbhtdjyeqshtmgsfyplwhlzffnynnhxqhpltbqpfbjwjdbygpnxtbfzjgnnntjshxeawtzylltyqbwjpgxghnnkndjtmszs"
  212 +"qynzggnwqtfhclssgmnnnnynzqqxncjdqgzdlfnykljcjllzlmzznnnnsshthxjlzjbbhqjwwycrdhlyqqjbeyfsjhthnrnwjhwp"
  213 +"slmssgzttygrqqwrnlalhmjtqjsmxqbjjzjqzyzkxbjqxbjxshzssfglxmxnxfghkzszggslcnnarjxhnlllmzxelglxydjytlfb"
  214 +"kbpnlyzfbbhptgjkwetzhkjjxzxxglljlstgshjjyqlqzfkcgnndjsszfdbctwwseqfhqjbsaqtgypjlbxbmmywxgslzhglsgnyf"
  215 +"ljbyfdjfngsfmbyzhqffwjsyfyjjphzbyyzffwotjnlmftwlbzgyzqxcdjygzyyryzynyzwegazyhjjlzrthlrmgrjxzclnnnljj"
  216 +"yhtbwjybxxbxjjtjteekhwslnnlbsfazpqqbdlqjjtyyqlyzkdksqjnejzldqcgjqnnjsncmrfqthtejmfctyhypymhydmjncfgy"
  217 +"yxwshctxrljgjzhzcyyyjltkttntmjlzclzzayyoczlrlbszywjytsjyhbyshfjlykjxxtmzyyltxxypslqyjzyzyypnhmymdyyl"
  218 +"blhlsyygqllnjjymsoycbzgdlyxylcqyxtszegxhzglhwbljheyxtwqmakbpqcgyshhegqcmwyywljyjhyyzlljjylhzyhmgsljl"
  219 +"jxcjjyclycjbcpzjzjmmwlcjlnqljjjlxyjmlszljqlycmmgcfmmfpqqmfxlqmcffqmmmmhnznfhhjgtthxkhslnchhyqzxtmmqd"
  220 +"cydyxyqmyqylddcyaytazdcymdydlzfffmmycqcwzzmabtbyctdmndzggdftypcgqyttssffwbdttqssystwnjhjytsxxylbyyhh"
  221 +"whxgzxwznnqzjzjjqjccchykxbzszcnjtllcqxynjnckycynccqnxyewyczdcjycchyjlbtzyycqwlpgpyllgktltlgkgqbgychj"
  222 +"xy";
  223 +
  224 +char pinyinFirstLetter(unsigned short hanzi)
  225 +{
  226 + int index = hanzi - HANZI_START;
  227 + if (index >= 0 && index <= HANZI_COUNT)
  228 + {
  229 + return firstLetterArray[index];
  230 + }
  231 + else
  232 + {
  233 + return hanzi;
  234 + }
  235 +}
0 236 \ No newline at end of file
... ...
YouerLiveVideo/YouerLiveVideo/util/pinyin.h 0 → 100644
... ... @@ -0,0 +1,23 @@
  1 +/*
  2 + * pinyin.h
  3 + * Chinese Pinyin First Letter
  4 + *
  5 + * Created by George on 4/21/10.
  6 + * Copyright 2010 RED/SAFI. All rights reserved.
  7 + *
  8 + */
  9 +
  10 +/*
  11 + * // Example
  12 + *
  13 + * #import "pinyin.h"
  14 + *
  15 + * NSString *hanyu = @"中国共产党万岁!";
  16 + * for (int i = 0; i < [hanyu length]; i++)
  17 + * {
  18 + * printf("%c", pinyinFirstLetter([hanyu characterAtIndex:i]));
  19 + * }
  20 + *
  21 + */
  22 +#define ALPHA @"ABCDEFGHIJKLMNOPQRSTUVWXYZ#"
  23 +char pinyinFirstLetter(unsigned short hanzi);
0 24 \ No newline at end of file
... ...
YouerLiveVideo/YouerLiveVideo/util/utiles.swift
... ... @@ -440,4 +440,6 @@ func selectImageFromString(string:String)-&gt;String{
440 440 return "icon"
441 441 }
442 442  
443   -
  443 +func getFirstLetter(str:String)->String{
  444 + return String(format: "%c",pinyinFirstLetter((str as NSString).character(at: 0))).uppercased()
  445 +}
... ...