Commit 7b40e2617ead9d5723269c0ba3faab27bf60d994

Authored by 左丞
1 parent 5e82f595
Exists in newLive

no message

YouerLiveVideo/YouerLiveVideo.xcodeproj/project.pbxproj
... ... @@ -180,7 +180,7 @@
180 180 BFBB83E31ECC445D008B404B /* User.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = BFBB83D91ECC445D008B404B /* User.storyboard */; };
181 181 BFBB83E61ECC445D008B404B /* LoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83DD1ECC445D008B404B /* LoginViewController.swift */; };
182 182 BFBB83E91ECC445D008B404B /* RegisterViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83E01ECC445D008B404B /* RegisterViewController.swift */; };
183   - BFBB83EA1ECC445D008B404B /* User.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = BFBB83E11ECC445D008B404B /* User.storyboard */; };
  183 + BFBB83EA1ECC445D008B404B /* Login.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = BFBB83E11ECC445D008B404B /* Login.storyboard */; };
184 184 BFBB83EB1ECC445D008B404B /* UserViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83E21ECC445D008B404B /* UserViewController.swift */; };
185 185 BFC076781E3445F3008BAC79 /* DownLoad.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFC076771E3445F3008BAC79 /* DownLoad.swift */; };
186 186 BFDA8F331DDE88ED00F0C4E4 /* XSTLiveManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFDA8F321DDE88ED00F0C4E4 /* XSTLiveManager.swift */; };
... ... @@ -533,7 +533,7 @@
533 533 BFBB83D91ECC445D008B404B /* User.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = User.storyboard; sourceTree = "<group>"; };
534 534 BFBB83DD1ECC445D008B404B /* LoginViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginViewController.swift; sourceTree = "<group>"; };
535 535 BFBB83E01ECC445D008B404B /* RegisterViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RegisterViewController.swift; sourceTree = "<group>"; };
536   - BFBB83E11ECC445D008B404B /* User.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = User.storyboard; sourceTree = "<group>"; };
  536 + BFBB83E11ECC445D008B404B /* Login.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Login.storyboard; sourceTree = "<group>"; };
537 537 BFBB83E21ECC445D008B404B /* UserViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserViewController.swift; sourceTree = "<group>"; };
538 538 BFC076771E3445F3008BAC79 /* DownLoad.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DownLoad.swift; sourceTree = "<group>"; };
539 539 BFDA8F321DDE88ED00F0C4E4 /* XSTLiveManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XSTLiveManager.swift; sourceTree = "<group>"; };
... ... @@ -1225,7 +1225,7 @@
1225 1225 children = (
1226 1226 BFBB83DD1ECC445D008B404B /* LoginViewController.swift */,
1227 1227 BFBB83E01ECC445D008B404B /* RegisterViewController.swift */,
1228   - BFBB83E11ECC445D008B404B /* User.storyboard */,
  1228 + BFBB83E11ECC445D008B404B /* Login.storyboard */,
1229 1229 );
1230 1230 path = UserCenter;
1231 1231 sourceTree = "<group>";
... ... @@ -1460,7 +1460,7 @@
1460 1460 BF25DFE51DDAA36A003EC0C1 /* Info-tvOS.plist in Resources */,
1461 1461 BF6977881E2DC264006FA934 /* 我的关注.png in Resources */,
1462 1462 599B2CD51DE52F7E00B4F7FD /* TencentOpenApi_IOS_Bundle.bundle in Resources */,
1463   - BFBB83EA1ECC445D008B404B /* User.storyboard in Resources */,
  1463 + BFBB83EA1ECC445D008B404B /* Login.storyboard in Resources */,
1464 1464 597185B51ECA990C00D7F478 /* Resource.storyboard in Resources */,
1465 1465 BF25DFE61DDAA36A003EC0C1 /* Info.plist in Resources */,
1466 1466 BFF5F4771DD5AA5C00D33B89 /* 上传头像.png in Resources */,
... ...
YouerLiveVideo/YouerLiveVideo/controllers/LeadViewController.swift
... ... @@ -26,7 +26,7 @@ class LeadViewController: UIViewController {
26 26 }
27 27 func showLogin() {
28 28 removeAll()
29   - let vc=Story.instantiateViewControllerWithIdentifier("LoginViewControllerVC", storyName: "User") as! LoginViewController
  29 + let vc=Story.instantiateViewControllerWithIdentifier("LoginViewControllerVC", storyName: "Login") as! LoginViewController
30 30 displayContentController(content: vc)
31 31 }
32 32 override func didReceiveMemoryWarning() {
... ...
YouerLiveVideo/YouerLiveVideo/controllers/TVStation/ExcellentTVViewController.swift
... ... @@ -10,18 +10,12 @@ import UIKit
10 10 import AVKit
11 11 class ExcellentTVViewController: UIViewController {
12 12  
13   - @IBOutlet weak var collectionHeight: NSLayoutConstraint!
14   - @IBOutlet weak var ContentSizeHeight: NSLayoutConstraint!
15   - @IBOutlet weak var AllTitleView: UIView!
  13 + @IBOutlet weak var collectionView: UICollectionView!
  14 +
16 15 var isForbidScrollDelegate:Bool = true
17 16 var startOffsetX:CGFloat = 0
18   - var TVStationScrollView:UIScrollView!//第一排目录
19   - @IBOutlet weak var lunboView: UIView!
20   - @IBOutlet weak var TVStationClass: UIView!
21   - @IBOutlet weak var collectionView: UICollectionView!
22 17 var TVStationClasses:[TVSubjectInfor] = []
23   - var titleSelectBtn:Int = 0
24   - var classSelectBtn:Int = 0
  18 + var allDataSet:[TVStationSubject] = []
25 19 override func viewDidLoad() {
26 20 super.viewDidLoad()
27 21 self.automaticallyAdjustsScrollViewInsets = false
... ... @@ -30,7 +24,6 @@ class ExcellentTVViewController: UIViewController {
30 24 for item in json.contentData().arrayValue{
31 25 self.TVStationClasses.append(TVSubjectInfor(json: item))
32 26 }
33   - self.creatTVStationClassScrollView()
34 27 self.collectionView.reloadData()
35 28 }, failHandler: { (error) in
36 29  
... ... @@ -44,6 +37,159 @@ class ExcellentTVViewController: UIViewController {
44 37 // Dispose of any resources that can be recreated.
45 38 }
46 39  
  40 +
  41 +
  42 +
  43 + /*
  44 + // MARK: - Navigation
  45 +
  46 + // In a storyboard-based application, you will often want to do a little preparation before navigation
  47 + override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
  48 + // Get the new view controller using segue.destinationViewController.
  49 + // Pass the selected object to the new view controller.
  50 + }
  51 + */
  52 +
  53 +}
  54 +
  55 +
  56 +//下方的所有电视节目所在的collcetionView
  57 +extension ExcellentTVViewController:UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout{
  58 +// func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
  59 +// startOffsetX = scrollView.contentOffset.x
  60 +// isForbidScrollDelegate = false
  61 +// }
  62 +
  63 +// func scrollViewDidScroll(_ scrollView: UIScrollView) {
  64 +// if isForbidScrollDelegate { return }
  65 +// NSLog("\(scrollView.contentOffset.x)")
  66 +// var btn:UIButton!
  67 +// var num:CGFloat!
  68 +// let btnIndex = scrollView.contentOffset.x/getScreenWidth()
  69 +// let view = TVStationClass.viewWithTag(2000+titleSelectBtn)! as! UIScrollView
  70 +// if view.contentSize.width > getScreenWidth(){
  71 +// if scrollView.contentOffset.x > startOffsetX{
  72 +// if scrollView.contentOffset.x - startOffsetX == getScreenWidth(){
  73 +// num = btnIndex
  74 +// }else{
  75 +// num = btnIndex+1
  76 +// }
  77 +// if Int(num) >= TVStationClasses[titleSelectBtn].ch.count {
  78 +// return
  79 +// }
  80 +// btn = view.viewWithTag(1000+100*titleSelectBtn+Int(num))! as! UIButton
  81 +// let TVStationContentOffset = btn.frame.origin.x+btn.frame.width/2
  82 +// if TVStationContentOffset < view.contentSize.width-getScreenWidth()/2 && TVStationContentOffset >= getScreenWidth()/2{
  83 +// view.contentOffset.x = TVStationContentOffset - getScreenWidth()/2
  84 +// }
  85 +// if TVStationContentOffset >= view.contentSize.width-getScreenWidth()/2{
  86 +// view.contentOffset.x = view.contentSize.width-getScreenWidth()
  87 +// }
  88 +// }
  89 +// else{
  90 +// let num = btnIndex
  91 +// if num < 0{
  92 +// return
  93 +// }
  94 +// btn = view.viewWithTag(1000+100*titleSelectBtn+Int(num))! as! UIButton
  95 +// let TVStationContentOffset = btn.frame.origin.x+btn.frame.width/2
  96 +// if TVStationContentOffset < view.contentSize.width-getScreenWidth()/2 && TVStationContentOffset >= getScreenWidth()/2{
  97 +// view.contentOffset.x = TVStationContentOffset-getScreenWidth()/2
  98 +// }
  99 +// if TVStationContentOffset < getScreenWidth()/2{
  100 +// view.contentOffset.x = 0
  101 +// }
  102 +// }
  103 +// }else{
  104 +// btn = view.viewWithTag(1000+100*titleSelectBtn+Int(btnIndex))! as! UIButton
  105 +// }
  106 +// for i in 0..<TVStationClasses[titleSelectBtn].ch.count{
  107 +// let item = view.viewWithTag(i+1000+100*titleSelectBtn) as! UIButton
  108 +// item.backgroundColor = UIColor.white
  109 +// item.setTitleColor(UIColor.black, for: .normal)
  110 +// }
  111 +// btn.setTitleColor(UIColor.white, for: .normal)
  112 +// btn.backgroundColor = UIColorFromRGB(0x17B3FF)
  113 +// }
  114 +
  115 + func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
  116 + let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell1", for: indexPath) as! ExcellentTVInforViewCell
  117 + cell.superNavigation = self.navigationController
  118 + cell.model = allDataSet[indexPath.row]
  119 + return cell
  120 + }
  121 +
  122 + func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
  123 + return allDataSet.count
  124 + }
  125 +
  126 +
  127 + func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
  128 + return CGSize(width: (getScreenWidth()-30)/2, height: 200)
  129 + }
  130 +
  131 + func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
  132 + return UIEdgeInsetsMake(10, 10, 10, 10)
  133 + }
  134 +
  135 + func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
  136 + var reusableView:UICollectionReusableView!
  137 + if kind == UICollectionElementKindSectionHeader{
  138 + let headerView = collectionView.dequeueReusableSupplementaryView(ofKind: UICollectionElementKindSectionHeader, withReuseIdentifier: "HeaderView", for: indexPath) as! ExcellentTVInforHeaderView
  139 + if headerView.TVStationClasses.count == 0{
  140 + headerView.TVStationClasses = TVStationClasses
  141 + headerView.creatTVStationClassScrollView()
  142 + headerView.settingCarouselView()
  143 + headerView.superViewController = self
  144 + }
  145 + reusableView = headerView
  146 + }
  147 + return reusableView
  148 + }
  149 +}
  150 +
  151 +class ExcellentTVInforHeaderView:UICollectionReusableView{
  152 + @IBOutlet weak var AllTitleView: UIView!
  153 + @IBOutlet weak var lunboView: UIView!
  154 + @IBOutlet weak var TVStationClass: UIView!
  155 + var TVStationScrollView:UIScrollView!//第一排目录
  156 + var TVStationClasses:[TVSubjectInfor] = []
  157 + var titleSelectBtn:Int = 0
  158 + var classSelectBtn:Int = 0
  159 + var superViewController:ExcellentTVViewController!
  160 +
  161 + func settingCarouselView(){
  162 + AppDelegate.instance().httpServer.getLunboList(parameters: ["type": 1 as AnyObject]) { (str, error) in
  163 + if error==nil {
  164 + if JSON.fromString(jsonString: str)!["status"].intValue == 1{
  165 + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in
  166 + var lineAry:[String]=[]
  167 + var lineModelAry:[InLineModel]=[]
  168 + for item in JSON.fromString(jsonString: str)!["data"].arrayValue {
  169 + lineModelAry.append(InLineModel(j: item))
  170 + lineAry.append(item["f_Img"].stringValue)
  171 + }
  172 + if lineModelAry.count>0{
  173 + let jyScrollViews=JYScrollView(frame: CGRect(x: 0, y: 0, width: getScreenWidth(), height: getScreenWidth()/12*5))
  174 + jyScrollViews.banner(with: lineAry, imageType: JYImageType.urlType, placeHolder: "default") { (index) in
  175 +
  176 + NSLog("点击了轮播图 图片ID:\(lineModelAry[index].f_Id)")
  177 + }
  178 + jyScrollViews.timeInterval=2
  179 + self.lunboView.addSubview(jyScrollViews)
  180 + }
  181 + }, failHandler: { (error) in
  182 + self.superViewController.view.makeToast("获取轮播图失败:\(error.localizedDescription)")
  183 + })
  184 + }else{
  185 + self.superViewController.view.makeToast("获取轮播图失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)")
  186 + }
  187 + }else{
  188 + self.superViewController.view.makeToast("获取轮播图失败:\(error!.description)")
  189 + }
  190 + }
  191 + }
  192 +
47 193 func creatTVStationClassScrollView(){
48 194 TVStationScrollView = UIScrollView(frame: CGRect(origin: CGPointZero, size: TVStationClass.frame.size))
49 195 TVStationScrollView.showsHorizontalScrollIndicator = false
... ... @@ -52,7 +198,7 @@ class ExcellentTVViewController: UIViewController {
52 198 var x:CGFloat = 0
53 199 for (index,item) in TVStationClasses.enumerated() {
54 200 let TVStationClassScrollView = UIScrollView(frame: CGRect(origin: CGPointZero, size: AllTitleView.frame.size))
55   -
  201 +
56 202 let btn = UIButton(frame: CGRect(x: 0, y: 0, width: 100, height: TVStationClass.frame.size.height))
57 203 btn.backgroundColor = UIColor.white
58 204 btn.setTitleColor(UIColor.black, for: .normal)
... ... @@ -64,15 +210,14 @@ class ExcellentTVViewController: UIViewController {
64 210 }else{
65 211 x = 0
66 212 TVStationClassScrollView.isHidden = false
67   - btn.backgroundColor = UIColor.blue
  213 + btn.backgroundColor = UIColorFromRGB(0x17B3FF)
68 214 btn.setTitleColor(UIColor.white, for: .normal)
69   -
70 215 }
71 216 btn.frame.origin.x = x
72 217 btn.frame.size = CGSize(width: btn.frame.size.width+20, height: TVStationClass.frame.size.height)
73 218 btn.tag = 200+index
74 219 TVStationScrollView.contentSize = CGSize(width: btn.frame.maxX, height: 0)
75   - btn.addTarget(self, action: #selector(ExcellentTVViewController.TVStationBtnClick(btn:)), for: .touchUpInside)
  220 + btn.addTarget(self, action: #selector(ExcellentTVInforHeaderView.TVStationBtnClick(btn:)), for: .touchUpInside)
76 221 TVStationScrollView.addSubview(btn)
77 222  
78 223 TVStationClassScrollView.showsHorizontalScrollIndicator = false
... ... @@ -89,14 +234,15 @@ class ExcellentTVViewController: UIViewController {
89 234 x = TVStationClassScrollView.viewWithTag(1000+index*100+ind-1)!.frame.maxX
90 235 }else{
91 236 x = 0
92   - button.backgroundColor = UIColor.blue
  237 +
  238 + button.backgroundColor = UIColorFromRGB(0x17B3FF)
93 239 button.setTitleColor(UIColor.white, for: .normal)
94 240 }
95 241 button.frame.origin.x = x
96 242 button.frame.size = CGSize(width: button.frame.size.width+20, height: TVStationClass.frame.size.height)
97 243 button.tag = 1000+index*100+ind
98 244 TVStationClassScrollView.contentSize = CGSize(width: button.frame.maxX, height: 0)
99   - button.addTarget(self, action: #selector(ExcellentTVViewController.TVStationClassBtnClick(btn:)), for: .touchUpInside)
  245 + button.addTarget(self, action: #selector(ExcellentTVInforHeaderView.TVStationClassBtnClick(btn:)), for: .touchUpInside)
100 246 TVStationClassScrollView.addSubview(button)
101 247 }
102 248 TVStationClass.addSubview(TVStationClassScrollView)
... ... @@ -107,173 +253,60 @@ class ExcellentTVViewController: UIViewController {
107 253 func TVStationBtnClick(btn:UIButton){
108 254 titleSelectBtn = btn.tag%10
109 255 classSelectBtn = 0
  256 + getData()
110 257 for i in 0..<TVStationClasses.count{
111 258 let item = AllTitleView.viewWithTag(200+i) as! UIButton
112 259 item.backgroundColor = UIColor.white
113 260 item.setTitleColor(UIColor.black, for: .normal)
114 261 TVStationClass.viewWithTag(2000+i)?.isHidden = true
115 262 }
  263 + for i in 0..<TVStationClasses[titleSelectBtn].ch.count{
  264 + let item = TVStationClass.viewWithTag(2000+titleSelectBtn)!.viewWithTag(1000+100*titleSelectBtn+i) as! UIButton
  265 + if i == 0{
  266 + item.backgroundColor = UIColorFromRGB(0x17B3FF)
  267 + item.setTitleColor(UIColor.white, for: .normal)
  268 +
  269 + }else{
  270 + item.backgroundColor = UIColor.white
  271 + item.setTitleColor(UIColor.black, for: .normal)
  272 +
  273 + }
  274 + }
116 275 btn.setTitleColor(UIColor.white, for: .normal)
117   - btn.backgroundColor = UIColor.blue
  276 + btn.backgroundColor = UIColorFromRGB(0x17B3FF)
118 277 TVStationClass.viewWithTag(2000+btn.tag%10)?.isHidden = false
119   - collectionView.reloadData()
120 278 }
121   -
122 279 func TVStationClassBtnClick(btn:UIButton){
123 280 classSelectBtn = btn.tag%10
124 281 let index = btn.tag%1000/100
125   - isForbidScrollDelegate = true
126   - collectionView.scrollToItem(at: IndexPath(item: classSelectBtn, section: 0), at: .centeredHorizontally, animated: false)
  282 + getData()
127 283 for i in 0..<TVStationClasses[index].ch.count{
128 284 let item = TVStationClass.viewWithTag(2000+titleSelectBtn)!.viewWithTag(1000+100*index+i) as! UIButton
129 285 item.backgroundColor = UIColor.white
130 286 item.setTitleColor(UIColor.black, for: .normal)
131 287 }
132 288 btn.setTitleColor(UIColor.white, for: .normal)
133   - btn.backgroundColor = UIColor.blue
134   - }
135   -
136   - /*
137   - // MARK: - Navigation
138   -
139   - // In a storyboard-based application, you will often want to do a little preparation before navigation
140   - override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
141   - // Get the new view controller using segue.destinationViewController.
142   - // Pass the selected object to the new view controller.
143   - }
144   - */
145   -
146   -}
147   -
148   -
149   -//下方的所有电视节目所在的collcetionView
150   -extension ExcellentTVViewController:UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout{
151   - func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
152   - startOffsetX = scrollView.contentOffset.x
153   - isForbidScrollDelegate = false
154   - }
155   -
156   - func scrollViewDidScroll(_ scrollView: UIScrollView) {
157   - if isForbidScrollDelegate { return }
158   - NSLog("\(scrollView.contentOffset.x)")
159   - var btn:UIButton!
160   - var num:CGFloat!
161   - let btnIndex = scrollView.contentOffset.x/getScreenWidth()
162   - let view = TVStationClass.viewWithTag(2000+titleSelectBtn)! as! UIScrollView
163   - if view.contentSize.width > getScreenWidth(){
164   - if scrollView.contentOffset.x > startOffsetX{
165   - if scrollView.contentOffset.x - startOffsetX == getScreenWidth(){
166   - num = btnIndex
167   - }else{
168   - num = btnIndex+1
169   - }
170   - if Int(num) >= TVStationClasses[titleSelectBtn].ch.count {
171   - return
172   - }
173   - btn = view.viewWithTag(1000+100*titleSelectBtn+Int(num))! as! UIButton
174   - let TVStationContentOffset = btn.frame.origin.x+btn.frame.width/2
175   - if TVStationContentOffset < view.contentSize.width-getScreenWidth()/2 && TVStationContentOffset >= getScreenWidth()/2{
176   - view.contentOffset.x = TVStationContentOffset - getScreenWidth()/2
177   - }
178   - if TVStationContentOffset >= view.contentSize.width-getScreenWidth()/2{
179   - view.contentOffset.x = view.contentSize.width-getScreenWidth()
180   - }
181   - }
182   - else{
183   - let num = btnIndex
184   - if num < 0{
185   - return
186   - }
187   - btn = view.viewWithTag(1000+100*titleSelectBtn+Int(num))! as! UIButton
188   - let TVStationContentOffset = btn.frame.origin.x+btn.frame.width/2
189   - if TVStationContentOffset < view.contentSize.width-getScreenWidth()/2 && TVStationContentOffset >= getScreenWidth()/2{
190   - view.contentOffset.x = TVStationContentOffset-getScreenWidth()/2
191   - }
192   - if TVStationContentOffset < getScreenWidth()/2{
193   - view.contentOffset.x = 0
194   - }
195   - }
196   - }else{
197   - btn = view.viewWithTag(1000+100*titleSelectBtn+Int(btnIndex))! as! UIButton
198   - }
199   - for i in 0..<TVStationClasses[titleSelectBtn].ch.count{
200   - let item = view.viewWithTag(i+1000+100*titleSelectBtn) as! UIButton
201   - item.backgroundColor = UIColor.white
202   - item.setTitleColor(UIColor.black, for: .normal)
203   - }
204   - btn.setTitleColor(UIColor.white, for: .normal)
205   - btn.backgroundColor = UIColor.blue
  289 + btn.backgroundColor = UIColorFromRGB(0x17B3FF)
206 290 }
207 291  
208   - func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
209   - let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! ExcellentTVViewCell
210   - cell.superNacigation = self.navigationController
  292 + func getData(){
  293 + if TVStationClasses.count == 0{
  294 + return
  295 + }
  296 + superViewController.allDataSet.removeAll()
211 297 AppDelegate.instance().httpServer.postExcellentProgram(parameters: ["f_TelevisionId":TVStationClasses[titleSelectBtn].ch[classSelectBtn].id as AnyObject,"pageIndex":1 as AnyObject]) { (str, error) in
212 298 httpJsonResule(jsonString: str, error: error, successHandler: { (json) in
213 299 for item in json.contentData()["resultData"].arrayValue{
214   - cell.datatSet.append(TVStationSubject(json: item))
  300 + self.superViewController.allDataSet.append(TVStationSubject(json: item))
215 301 }
216   - cell.inforCollectionView.reloadData()
217   - let height = CGFloat(ceil(CGFloat(cell.datatSet.count)/2))*cell.cellHeight
218   - self.collectionHeight.constant = height == 0 ? cell.cellHeight : height
  302 + self.superViewController.collectionView.reloadData()
219 303 }, failHandler: { (error) in
220 304  
221 305 })
222 306 }
223   - return cell
224   - }
225   -
226   - func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
227   - if TVStationClasses.count > 0{
228   - return TVStationClasses[titleSelectBtn].ch.count
229   - }
230   - return 0
231   - }
232   -
233   -
234   - func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
235   - return CGSize(width: getScreenWidth(), height: collectionView.frame.size.height)
236 307 }
237 308 }
238 309  
239   -//单项选项中的CollectionView
240   -class ExcellentTVViewCell: UICollectionViewCell,UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout{
241   - var f_TelevisionId:String!
242   - @IBOutlet weak var inforCollectionView: UICollectionView!
243   - var datatSet:[TVStationSubject] = []
244   - var superNacigation:UINavigationController!
245   - var cellHeight:CGFloat = 200
246   -
247   - override func awakeFromNib() {
248   - super.awakeFromNib()
249   - }
250   -
251   - func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
252   -
253   - }
254   -
255   - func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
256   - let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell1", for: indexPath) as! ExcellentTVInforViewCell
257   - let item = datatSet[indexPath.row]
258   - cell.model = item
259   - cell.superNavigation = superNacigation
260   - return cell
261   - }
262   -
263   - func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
264   - return datatSet.count
265   - }
266   -
267   - func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
268   - return CGSize(width: (getScreenWidth()-30)/2, height: cellHeight)
269   - }
270   -
271   -
272   - func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
273   - return UIEdgeInsetsMake(10, 10, 10, 10)
274   - }
275   -
276   -}
277 310  
278 311 class ExcellentTVInforViewCell: UICollectionViewCell{
279 312  
... ...
YouerLiveVideo/YouerLiveVideo/controllers/TVStation/MoreTVStationViewController.swift
... ... @@ -118,7 +118,6 @@ extension MoreTVStationViewController:UICollectionViewDelegate,UICollectionViewD
118 118 vc.excellentTVStationProgram = excellentTVStationProgram[indexPath.row]
119 119 self.navigationController?.pushViewController(vc, animated: true)
120 120 }
121   -
122 121 }
123 122 func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
124 123 let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! MoreTVStationViewCollectionCell
... ...
YouerLiveVideo/YouerLiveVideo/controllers/TVStation/TVStation.storyboard
... ... @@ -97,204 +97,140 @@
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   - <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="I5d-rQ-mbN">
  100 + <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="87C-SA-ne7">
101 101 <rect key="frame" x="0.0" y="20" width="375" height="647"/>
102   - <subviews>
103   - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="zXX-de-diQ">
104   - <rect key="frame" x="0.0" y="0.0" width="375" height="647"/>
105   - <subviews>
106   - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="beS-zl-5ku">
107   - <rect key="frame" x="0.0" y="252" width="375" height="51"/>
108   - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
109   - <constraints>
110   - <constraint firstAttribute="height" constant="51" id="CsW-m7-aCa"/>
111   - </constraints>
112   - </view>
113   - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kGb-T7-Fzf">
114   - <rect key="frame" x="0.0" y="201" width="375" height="51"/>
115   - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
116   - <constraints>
117   - <constraint firstAttribute="height" constant="51" id="56p-A7-q9E"/>
118   - </constraints>
119   - </view>
120   - <searchBar contentMode="redraw" placeholder="搜索" translatesAutoresizingMaskIntoConstraints="NO" id="D8L-US-h8q">
121   - <rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
122   - <textInputTraits key="textInputTraits"/>
123   - </searchBar>
124   - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="0j4-AN-Lgn">
125   - <rect key="frame" x="0.0" y="44" width="375" height="157"/>
126   - <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
127   - <constraints>
128   - <constraint firstAttribute="height" constant="157" id="X33-fj-VHm"/>
129   - </constraints>
130   - </view>
131   - <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" pagingEnabled="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="fAv-jW-Nwz">
132   - <rect key="frame" x="0.0" y="303" width="375" height="344"/>
133   - <color key="backgroundColor" red="0.89713114500000002" green="0.89431768659999999" blue="0.90413767099999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
134   - <constraints>
135   - <constraint firstAttribute="height" constant="344" id="lO8-kE-zqe"/>
136   - </constraints>
137   - <collectionViewFlowLayout key="collectionViewLayout" scrollDirection="horizontal" minimumLineSpacing="0.0" minimumInteritemSpacing="0.0" id="xIO-a0-DAd">
138   - <size key="itemSize" width="376" height="392"/>
139   - <size key="headerReferenceSize" width="0.0" height="0.0"/>
140   - <size key="footerReferenceSize" width="0.0" height="0.0"/>
141   - <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
142   - </collectionViewFlowLayout>
143   - <cells>
144   - <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="cell" id="VJB-1R-iLv" customClass="ExcellentTVViewCell" customModule="YouerLiveVideo" customModuleProvider="target">
145   - <rect key="frame" x="0.0" y="-24" width="376" height="392"/>
146   - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
147   - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
148   - <rect key="frame" x="0.0" y="0.0" width="376" height="392"/>
149   - <autoresizingMask key="autoresizingMask"/>
150   - <subviews>
151   - <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="87C-SA-ne7">
152   - <rect key="frame" x="0.0" y="0.0" width="376" height="392"/>
153   - <color key="backgroundColor" red="0.89713114500000002" green="0.89431768659999999" blue="0.90413767099999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
154   - <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="td3-ot-O0A">
155   - <size key="itemSize" width="170" height="262"/>
156   - <size key="headerReferenceSize" width="0.0" height="0.0"/>
157   - <size key="footerReferenceSize" width="0.0" height="0.0"/>
158   - <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
159   - </collectionViewFlowLayout>
160   - <cells>
161   - <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="cell1" id="h38-NB-8y1" customClass="ExcellentTVInforViewCell" customModule="YouerLiveVideo" customModuleProvider="target">
162   - <rect key="frame" x="0.0" y="0.0" width="170" height="262"/>
163   - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
164   - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
165   - <rect key="frame" x="0.0" y="0.0" width="170" height="262"/>
166   - <autoresizingMask key="autoresizingMask"/>
167   - <subviews>
168   - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="q0M-rc-EXR">
169   - <rect key="frame" x="0.0" y="0.0" width="170" height="134.5"/>
170   - <constraints>
171   - <constraint firstAttribute="width" secondItem="q0M-rc-EXR" secondAttribute="height" multiplier="81:64" id="4QF-fC-lnx"/>
172   - </constraints>
173   - </imageView>
174   - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="6It-kH-Zwv">
175   - <rect key="frame" x="0.0" y="134.5" width="170" height="127.5"/>
176   - <subviews>
177   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AdV-R1-gWf">
178   - <rect key="frame" x="8" y="8" width="42" height="20.5"/>
179   - <fontDescription key="fontDescription" type="system" pointSize="17"/>
180   - <nil key="textColor"/>
181   - <nil key="highlightedColor"/>
182   - </label>
183   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="v6H-KX-FQE">
184   - <rect key="frame" x="8" y="98.5" width="42" height="21"/>
185   - <fontDescription key="fontDescription" type="system" pointSize="17"/>
186   - <nil key="textColor"/>
187   - <nil key="highlightedColor"/>
188   - </label>
189   - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="h8e-iU-RLj">
190   - <rect key="frame" x="132" y="49" width="30" height="30"/>
191   - <state key="normal" backgroundImage="starLive"/>
192   - <connections>
193   - <action selector="playBtnClick:" destination="h38-NB-8y1" eventType="touchUpInside" id="Pgb-5q-Qcn"/>
194   - </connections>
195   - </button>
196   - </subviews>
197   - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
198   - <constraints>
199   - <constraint firstItem="AdV-R1-gWf" firstAttribute="leading" secondItem="6It-kH-Zwv" secondAttribute="leading" constant="8" id="0yf-hR-rEU"/>
200   - <constraint firstItem="h8e-iU-RLj" firstAttribute="centerY" secondItem="6It-kH-Zwv" secondAttribute="centerY" id="1a8-8d-Afp"/>
201   - <constraint firstItem="AdV-R1-gWf" firstAttribute="top" secondItem="6It-kH-Zwv" secondAttribute="top" constant="8" id="Jnu-fO-TZo"/>
202   - <constraint firstItem="v6H-KX-FQE" firstAttribute="leading" secondItem="6It-kH-Zwv" secondAttribute="leading" constant="8" id="YiO-cN-CEH"/>
203   - <constraint firstAttribute="bottom" secondItem="v6H-KX-FQE" secondAttribute="bottom" constant="8" id="ZvT-ej-8MF"/>
204   - <constraint firstAttribute="trailing" secondItem="h8e-iU-RLj" secondAttribute="trailing" constant="8" id="dxl-DA-IUE"/>
205   - </constraints>
206   - </view>
207   - </subviews>
208   - </view>
209   - <constraints>
210   - <constraint firstItem="6It-kH-Zwv" firstAttribute="leading" secondItem="h38-NB-8y1" secondAttribute="leading" id="6I0-Kb-Zvf"/>
211   - <constraint firstAttribute="bottom" secondItem="6It-kH-Zwv" secondAttribute="bottom" id="7Td-xD-GLC"/>
212   - <constraint firstItem="q0M-rc-EXR" firstAttribute="leading" secondItem="h38-NB-8y1" secondAttribute="leading" id="95s-ZM-FJ6"/>
213   - <constraint firstItem="6It-kH-Zwv" firstAttribute="top" secondItem="q0M-rc-EXR" secondAttribute="bottom" id="P3N-QU-XgJ"/>
214   - <constraint firstAttribute="trailing" secondItem="6It-kH-Zwv" secondAttribute="trailing" id="T2B-ph-CC8"/>
215   - <constraint firstItem="q0M-rc-EXR" firstAttribute="top" secondItem="h38-NB-8y1" secondAttribute="top" id="tow-B8-NRU"/>
216   - <constraint firstAttribute="trailing" secondItem="q0M-rc-EXR" secondAttribute="trailing" id="x8Q-dQ-IBl"/>
217   - </constraints>
218   - <connections>
219   - <outlet property="playCount" destination="v6H-KX-FQE" id="Gmp-Hy-5ya"/>
220   - <outlet property="subjectType" destination="AdV-R1-gWf" id="6UG-Dl-wmv"/>
221   - <outlet property="tvStationLogo" destination="q0M-rc-EXR" id="gB6-hs-Ozb"/>
222   - </connections>
223   - </collectionViewCell>
224   - </cells>
225   - <connections>
226   - <outlet property="dataSource" destination="VJB-1R-iLv" id="yd4-wv-GYI"/>
227   - <outlet property="delegate" destination="VJB-1R-iLv" id="YwX-PI-A7C"/>
228   - </connections>
229   - </collectionView>
230   - </subviews>
231   - </view>
232   - <constraints>
233   - <constraint firstItem="87C-SA-ne7" firstAttribute="leading" secondItem="VJB-1R-iLv" secondAttribute="leading" id="7um-iD-Oam"/>
234   - <constraint firstAttribute="bottom" secondItem="87C-SA-ne7" secondAttribute="bottom" id="IRV-Dh-rvw"/>
235   - <constraint firstItem="87C-SA-ne7" firstAttribute="top" secondItem="VJB-1R-iLv" secondAttribute="top" id="d8C-qF-Bbg"/>
236   - <constraint firstAttribute="trailing" secondItem="87C-SA-ne7" secondAttribute="trailing" id="fyF-GZ-Mc4"/>
237   - </constraints>
238   - <connections>
239   - <outlet property="inforCollectionView" destination="87C-SA-ne7" id="UpF-9K-g4l"/>
240   - </connections>
241   - </collectionViewCell>
242   - </cells>
243   - <connections>
244   - <outlet property="dataSource" destination="b8W-aX-LnV" id="mc0-fo-xS3"/>
245   - <outlet property="delegate" destination="b8W-aX-LnV" id="OFh-hb-28W"/>
246   - </connections>
247   - </collectionView>
248   - </subviews>
249   - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  102 + <color key="backgroundColor" red="0.89713114500000002" green="0.89431768659999999" blue="0.90413767099999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
  103 + <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="td3-ot-O0A">
  104 + <size key="itemSize" width="170" height="262"/>
  105 + <size key="headerReferenceSize" width="50" height="259"/>
  106 + <size key="footerReferenceSize" width="0.0" height="0.0"/>
  107 + <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
  108 + </collectionViewFlowLayout>
  109 + <cells>
  110 + <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="cell1" id="h38-NB-8y1" customClass="ExcellentTVInforViewCell" customModule="YouerLiveVideo" customModuleProvider="target">
  111 + <rect key="frame" x="0.0" y="259" width="170" height="262"/>
  112 + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
  113 + <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
  114 + <rect key="frame" x="0.0" y="0.0" width="170" height="262"/>
  115 + <autoresizingMask key="autoresizingMask"/>
  116 + <subviews>
  117 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="q0M-rc-EXR">
  118 + <rect key="frame" x="0.0" y="0.0" width="170" height="134.5"/>
  119 + <constraints>
  120 + <constraint firstAttribute="width" secondItem="q0M-rc-EXR" secondAttribute="height" multiplier="81:64" id="4QF-fC-lnx"/>
  121 + </constraints>
  122 + </imageView>
  123 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="6It-kH-Zwv">
  124 + <rect key="frame" x="0.0" y="134.5" width="170" height="127.5"/>
  125 + <subviews>
  126 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AdV-R1-gWf">
  127 + <rect key="frame" x="8" y="8" width="37.5" height="18"/>
  128 + <fontDescription key="fontDescription" type="system" pointSize="15"/>
  129 + <nil key="textColor"/>
  130 + <nil key="highlightedColor"/>
  131 + </label>
  132 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="v6H-KX-FQE">
  133 + <rect key="frame" x="8" y="103.5" width="33" height="16"/>
  134 + <fontDescription key="fontDescription" type="system" pointSize="13"/>
  135 + <nil key="textColor"/>
  136 + <nil key="highlightedColor"/>
  137 + </label>
  138 + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="h8e-iU-RLj">
  139 + <rect key="frame" x="132" y="49" width="30" height="30"/>
  140 + <state key="normal" backgroundImage="starLive"/>
  141 + <connections>
  142 + <action selector="playBtnClick:" destination="h38-NB-8y1" eventType="touchUpInside" id="Pgb-5q-Qcn"/>
  143 + </connections>
  144 + </button>
  145 + </subviews>
  146 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  147 + <constraints>
  148 + <constraint firstItem="AdV-R1-gWf" firstAttribute="leading" secondItem="6It-kH-Zwv" secondAttribute="leading" constant="8" id="0yf-hR-rEU"/>
  149 + <constraint firstItem="h8e-iU-RLj" firstAttribute="centerY" secondItem="6It-kH-Zwv" secondAttribute="centerY" id="1a8-8d-Afp"/>
  150 + <constraint firstItem="AdV-R1-gWf" firstAttribute="top" secondItem="6It-kH-Zwv" secondAttribute="top" constant="8" id="Jnu-fO-TZo"/>
  151 + <constraint firstItem="v6H-KX-FQE" firstAttribute="leading" secondItem="6It-kH-Zwv" secondAttribute="leading" constant="8" id="YiO-cN-CEH"/>
  152 + <constraint firstAttribute="bottom" secondItem="v6H-KX-FQE" secondAttribute="bottom" constant="8" id="ZvT-ej-8MF"/>
  153 + <constraint firstAttribute="trailing" secondItem="h8e-iU-RLj" secondAttribute="trailing" constant="8" id="dxl-DA-IUE"/>
  154 + </constraints>
  155 + </view>
  156 + </subviews>
  157 + </view>
250 158 <constraints>
251   - <constraint firstAttribute="trailing" secondItem="0j4-AN-Lgn" secondAttribute="trailing" id="32n-uz-LhT"/>
252   - <constraint firstAttribute="trailing" secondItem="kGb-T7-Fzf" secondAttribute="trailing" id="97n-jq-P7y"/>
253   - <constraint firstItem="fAv-jW-Nwz" firstAttribute="leading" secondItem="zXX-de-diQ" secondAttribute="leading" id="9ft-O9-tVH"/>
254   - <constraint firstItem="beS-zl-5ku" firstAttribute="top" secondItem="kGb-T7-Fzf" secondAttribute="bottom" id="Fsi-Db-hmv"/>
255   - <constraint firstItem="D8L-US-h8q" firstAttribute="leading" secondItem="zXX-de-diQ" secondAttribute="leading" id="ImS-U2-gLx"/>
256   - <constraint firstAttribute="trailing" secondItem="beS-zl-5ku" secondAttribute="trailing" id="KBm-fZ-b3c"/>
257   - <constraint firstItem="fAv-jW-Nwz" firstAttribute="top" secondItem="beS-zl-5ku" secondAttribute="bottom" id="L6D-hm-v8r"/>
258   - <constraint firstAttribute="trailing" secondItem="D8L-US-h8q" secondAttribute="trailing" id="Lv5-Oj-8Ac"/>
259   - <constraint firstItem="kGb-T7-Fzf" firstAttribute="top" secondItem="0j4-AN-Lgn" secondAttribute="bottom" id="RYK-Jh-QLR"/>
260   - <constraint firstItem="0j4-AN-Lgn" firstAttribute="top" secondItem="D8L-US-h8q" secondAttribute="bottom" id="VHQ-Mb-oRx"/>
261   - <constraint firstItem="beS-zl-5ku" firstAttribute="top" secondItem="kGb-T7-Fzf" secondAttribute="bottom" id="Wz6-EX-3ve"/>
262   - <constraint firstItem="fAv-jW-Nwz" firstAttribute="top" secondItem="beS-zl-5ku" secondAttribute="bottom" id="XjU-yQ-A7l"/>
263   - <constraint firstItem="D8L-US-h8q" firstAttribute="top" secondItem="zXX-de-diQ" secondAttribute="top" id="Ywt-la-Wsv"/>
264   - <constraint firstItem="kGb-T7-Fzf" firstAttribute="top" secondItem="0j4-AN-Lgn" secondAttribute="bottom" id="eYf-ac-1hI"/>
265   - <constraint firstItem="0j4-AN-Lgn" firstAttribute="top" secondItem="D8L-US-h8q" secondAttribute="bottom" id="fZA-Kv-gaF"/>
266   - <constraint firstAttribute="height" constant="647" id="hJt-hJ-igO"/>
267   - <constraint firstItem="kGb-T7-Fzf" firstAttribute="leading" secondItem="zXX-de-diQ" secondAttribute="leading" id="hbu-An-hpo"/>
268   - <constraint firstAttribute="trailing" secondItem="fAv-jW-Nwz" secondAttribute="trailing" id="ifZ-IO-lnF"/>
269   - <constraint firstItem="0j4-AN-Lgn" firstAttribute="leading" secondItem="zXX-de-diQ" secondAttribute="leading" id="u3e-M1-wHJ"/>
270   - <constraint firstItem="beS-zl-5ku" firstAttribute="leading" secondItem="zXX-de-diQ" secondAttribute="leading" id="uNE-5r-04p"/>
  159 + <constraint firstItem="6It-kH-Zwv" firstAttribute="leading" secondItem="h38-NB-8y1" secondAttribute="leading" id="6I0-Kb-Zvf"/>
  160 + <constraint firstAttribute="bottom" secondItem="6It-kH-Zwv" secondAttribute="bottom" id="7Td-xD-GLC"/>
  161 + <constraint firstItem="q0M-rc-EXR" firstAttribute="leading" secondItem="h38-NB-8y1" secondAttribute="leading" id="95s-ZM-FJ6"/>
  162 + <constraint firstItem="6It-kH-Zwv" firstAttribute="top" secondItem="q0M-rc-EXR" secondAttribute="bottom" id="P3N-QU-XgJ"/>
  163 + <constraint firstAttribute="trailing" secondItem="6It-kH-Zwv" secondAttribute="trailing" id="T2B-ph-CC8"/>
  164 + <constraint firstItem="q0M-rc-EXR" firstAttribute="top" secondItem="h38-NB-8y1" secondAttribute="top" id="tow-B8-NRU"/>
  165 + <constraint firstAttribute="trailing" secondItem="q0M-rc-EXR" secondAttribute="trailing" id="x8Q-dQ-IBl"/>
271 166 </constraints>
272   - </view>
273   - </subviews>
274   - <constraints>
275   - <constraint firstItem="zXX-de-diQ" firstAttribute="centerX" secondItem="I5d-rQ-mbN" secondAttribute="centerX" id="AI7-Rb-64k"/>
276   - <constraint firstItem="zXX-de-diQ" firstAttribute="top" secondItem="I5d-rQ-mbN" secondAttribute="top" id="Vew-O6-TEJ"/>
277   - <constraint firstAttribute="trailing" secondItem="zXX-de-diQ" secondAttribute="trailing" id="b4T-PL-kjW"/>
278   - <constraint firstItem="zXX-de-diQ" firstAttribute="leading" secondItem="I5d-rQ-mbN" secondAttribute="leading" id="gzp-vn-1Fh"/>
279   - <constraint firstAttribute="bottom" secondItem="zXX-de-diQ" secondAttribute="bottom" id="vyh-Bm-4vf"/>
280   - </constraints>
281   - </scrollView>
  167 + <connections>
  168 + <outlet property="playCount" destination="v6H-KX-FQE" id="Gmp-Hy-5ya"/>
  169 + <outlet property="subjectType" destination="AdV-R1-gWf" id="6UG-Dl-wmv"/>
  170 + <outlet property="tvStationLogo" destination="q0M-rc-EXR" id="gB6-hs-Ozb"/>
  171 + </connections>
  172 + </collectionViewCell>
  173 + </cells>
  174 + <collectionReusableView key="sectionHeaderView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="HeaderView" id="3l2-Hm-hjO" customClass="ExcellentTVInforHeaderView" customModule="YouerLiveVideo" customModuleProvider="target">
  175 + <rect key="frame" x="0.0" y="0.0" width="375" height="259"/>
  176 + <autoresizingMask key="autoresizingMask"/>
  177 + <subviews>
  178 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="beS-zl-5ku">
  179 + <rect key="frame" x="0.0" y="208" width="375" height="51"/>
  180 + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
  181 + <constraints>
  182 + <constraint firstAttribute="height" constant="51" id="CsW-m7-aCa"/>
  183 + </constraints>
  184 + </view>
  185 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kGb-T7-Fzf">
  186 + <rect key="frame" x="0.0" y="157" width="375" height="51"/>
  187 + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
  188 + <constraints>
  189 + <constraint firstAttribute="height" constant="51" id="56p-A7-q9E"/>
  190 + </constraints>
  191 + </view>
  192 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="0j4-AN-Lgn">
  193 + <rect key="frame" x="0.0" y="0.0" width="375" height="157"/>
  194 + <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
  195 + <constraints>
  196 + <constraint firstAttribute="height" constant="157" id="X33-fj-VHm"/>
  197 + </constraints>
  198 + </view>
  199 + </subviews>
  200 + <constraints>
  201 + <constraint firstAttribute="trailing" secondItem="0j4-AN-Lgn" secondAttribute="trailing" id="6fB-LC-ZrJ"/>
  202 + <constraint firstItem="0j4-AN-Lgn" firstAttribute="top" secondItem="3l2-Hm-hjO" secondAttribute="top" id="BYn-YH-lJL"/>
  203 + <constraint firstItem="beS-zl-5ku" firstAttribute="top" secondItem="kGb-T7-Fzf" secondAttribute="bottom" id="Fqa-Eg-XUb"/>
  204 + <constraint firstItem="beS-zl-5ku" firstAttribute="leading" secondItem="3l2-Hm-hjO" secondAttribute="leading" id="IkV-aM-fV6"/>
  205 + <constraint firstAttribute="bottom" secondItem="beS-zl-5ku" secondAttribute="bottom" id="NWd-Ml-JcS"/>
  206 + <constraint firstItem="kGb-T7-Fzf" firstAttribute="leading" secondItem="3l2-Hm-hjO" secondAttribute="leading" id="Vqm-HO-dNx"/>
  207 + <constraint firstItem="kGb-T7-Fzf" firstAttribute="top" secondItem="0j4-AN-Lgn" secondAttribute="bottom" id="Z2L-So-apb"/>
  208 + <constraint firstItem="0j4-AN-Lgn" firstAttribute="leading" secondItem="3l2-Hm-hjO" secondAttribute="leading" id="lxo-yU-mMH"/>
  209 + <constraint firstAttribute="trailing" secondItem="beS-zl-5ku" secondAttribute="trailing" id="tUt-Fl-IKy"/>
  210 + <constraint firstAttribute="trailing" secondItem="kGb-T7-Fzf" secondAttribute="trailing" id="zoy-wg-gJ9"/>
  211 + </constraints>
  212 + <connections>
  213 + <outlet property="AllTitleView" destination="kGb-T7-Fzf" id="8tj-X2-F15"/>
  214 + <outlet property="TVStationClass" destination="beS-zl-5ku" id="10h-wq-034"/>
  215 + <outlet property="lunboView" destination="0j4-AN-Lgn" id="gAm-l0-vUB"/>
  216 + </connections>
  217 + </collectionReusableView>
  218 + <connections>
  219 + <outlet property="dataSource" destination="b8W-aX-LnV" id="1yJ-JS-NVX"/>
  220 + <outlet property="delegate" destination="b8W-aX-LnV" id="oee-xR-km7"/>
  221 + </connections>
  222 + </collectionView>
282 223 </subviews>
283 224 <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
284 225 <constraints>
285   - <constraint firstItem="lho-df-W25" firstAttribute="top" secondItem="I5d-rQ-mbN" secondAttribute="bottom" id="GzF-3p-v7c"/>
286   - <constraint firstItem="I5d-rQ-mbN" firstAttribute="top" secondItem="4i9-Tx-rg9" secondAttribute="bottom" id="QKa-qf-yK1"/>
287   - <constraint firstItem="I5d-rQ-mbN" firstAttribute="leading" secondItem="Gv8-KK-Axo" secondAttribute="leading" id="SMU-ej-yfY"/>
288   - <constraint firstAttribute="trailing" secondItem="I5d-rQ-mbN" secondAttribute="trailing" id="ZEH-qm-ZZ9"/>
  226 + <constraint firstAttribute="trailing" secondItem="87C-SA-ne7" secondAttribute="trailing" id="AhN-Q3-84E"/>
  227 + <constraint firstItem="87C-SA-ne7" firstAttribute="leading" secondItem="Gv8-KK-Axo" secondAttribute="leading" id="UIS-t5-vbe"/>
  228 + <constraint firstItem="87C-SA-ne7" firstAttribute="top" secondItem="4i9-Tx-rg9" secondAttribute="bottom" id="Wiy-HL-IlA"/>
  229 + <constraint firstItem="lho-df-W25" firstAttribute="top" secondItem="87C-SA-ne7" secondAttribute="bottom" id="vS9-P8-blI"/>
289 230 </constraints>
290 231 </view>
291 232 <connections>
292   - <outlet property="AllTitleView" destination="kGb-T7-Fzf" id="PrI-T6-wBZ"/>
293   - <outlet property="ContentSizeHeight" destination="hJt-hJ-igO" id="TQl-dJ-JRW"/>
294   - <outlet property="TVStationClass" destination="beS-zl-5ku" id="ZFh-Ll-feE"/>
295   - <outlet property="collectionHeight" destination="lO8-kE-zqe" id="Iss-p6-ZBV"/>
296   - <outlet property="collectionView" destination="fAv-jW-Nwz" id="hyw-DI-wgJ"/>
297   - <outlet property="lunboView" destination="0j4-AN-Lgn" id="gFp-c9-mkM"/>
  233 + <outlet property="collectionView" destination="87C-SA-ne7" id="15X-81-NLe"/>
298 234 </connections>
299 235 </viewController>
300 236 <placeholder placeholderIdentifier="IBFirstResponder" id="KWc-cP-YUd" userLabel="First Responder" sceneMemberID="firstResponder"/>
... ... @@ -544,7 +480,7 @@
544 480 <color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
545 481 <nil key="highlightedColor"/>
546 482 </label>
547   - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="YGJ-f7-llj">
  483 + <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="YGJ-f7-llj">
548 484 <rect key="frame" x="263" y="266" width="96" height="33"/>
549 485 <color key="backgroundColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="calibratedRGB"/>
550 486 <fontDescription key="fontDescription" type="system" pointSize="17"/>
... ... @@ -655,7 +591,7 @@
655 591 <subviews>
656 592 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="1ZJ-ao-hBx">
657 593 <rect key="frame" x="0.0" y="0.0" width="160" height="120"/>
658   - <color key="backgroundColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="calibratedRGB"/>
  594 + <color key="backgroundColor" red="0.090196078431372548" green="0.70196078431372544" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
659 595 </imageView>
660 596 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="EE2-Y8-SP4">
661 597 <rect key="frame" x="59" y="139" width="42" height="21"/>
... ...
YouerLiveVideo/YouerLiveVideo/controllers/TVStation/TVStationInforViewController.swift
... ... @@ -10,17 +10,24 @@ import UIKit
10 10  
11 11 class TVStationInforViewController: UIViewController {
12 12 var excellentTVStationProgram:TVStationSubject!
13   -
  13 + var TVStationProgram:TVStationInfor!
14 14 @IBOutlet weak var tvImage: UIImageView!
15 15 @IBOutlet weak var creatTime: UILabel!
16 16 @IBOutlet weak var tvName: UILabel!
17 17 @IBOutlet weak var discreption: UITextView!
18 18 override func viewDidLoad() {
19 19 super.viewDidLoad()
20   - tvImage.sd_setImage(with: URL(string: excellentTVStationProgram.f_Img), placeholderImage: UIImage(named:"icon"))
21   - tvName.text = excellentTVStationProgram.f_Title
22   - creatTime.text = setDateToString(date:dateFromISO8601(dateString: excellentTVStationProgram.f_CreatorTime))
23   - discreption.text = excellentTVStationProgram.f_Detail
  20 + if excellentTVStationProgram != nil{
  21 + tvImage.sd_setImage(with: URL(string: excellentTVStationProgram.f_Img), placeholderImage: UIImage(named:"icon"))
  22 + tvName.text = excellentTVStationProgram.f_Title
  23 + creatTime.text = setDateToString(date:dateFromISO8601(dateString: excellentTVStationProgram.f_CreatorTime))
  24 + discreption.text = excellentTVStationProgram.f_Detail
  25 + }else if TVStationProgram != nil{
  26 + tvImage.sd_setImage(with: URL(string: TVStationProgram.f_Logo), placeholderImage: UIImage(named:"icon"))
  27 + tvName.text = TVStationProgram.f_SchoolName
  28 + creatTime.text = setDateToString(date:dateFromISO8601(dateString: TVStationProgram.f_CreatorTime))
  29 +// discreption.text = TVStationProgram.f_Detail
  30 + }
24 31  
25 32 // Do any additional setup after loading the view.
26 33 }
... ...
YouerLiveVideo/YouerLiveVideo/controllers/TVStation/TVStationViewController.swift
... ... @@ -81,7 +81,10 @@ class TVStationViewController: UIViewController {
81 81 case 1:
82 82 vc.xxcellentSchool = xxcellentSchool
83 83 case 2:
84   - vc.excellentTVStationProgram = excellentTVStationProgram
  84 + let vc = Story.instantiateViewControllerWithIdentifier("ExcellentTVViewControllerVC", storyName: "TVStation") as! ExcellentTVViewController
  85 + vc.title = "优秀电视节目"
  86 + self.navigationController?.pushViewController(vc, animated: true)
  87 + return
85 88 default:
86 89 break
87 90 }
... ... @@ -147,10 +150,19 @@ extension TVStationViewController:UITableViewDelegate,UITableViewDataSource{
147 150 extension TVStationViewController:UICollectionViewDelegate,UICollectionViewDelegateFlowLayout,UICollectionViewDataSource{
148 151  
149 152 func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
150   - if collectionView.tag == 3{
151   - let vc = Story.instantiateViewControllerWithIdentifier("ExcellentTVViewControllerVC", storyName: "TVStation") as! ExcellentTVViewController
152   - self.navigationController?.pushViewController(vc, animated: true)
  153 + let vc = Story.instantiateViewControllerWithIdentifier("TVStationInforViewControllerVC", storyName: "TVStation") as! TVStationInforViewController
  154 + if collectionView.tag == 1{
  155 + vc.TVStationProgram = topTenTVStation[indexPath.row]
  156 + vc.title = topTenTVStation[indexPath.row].f_SchoolName
  157 + }else if collectionView.tag == 2{
  158 + vc.TVStationProgram = xxcellentSchool[indexPath.row]
  159 + vc.title = xxcellentSchool[indexPath.row].f_SchoolName
  160 +
  161 + }else if collectionView.tag == 3{
  162 + vc.title = excellentTVStationProgram[indexPath.row].f_Title
  163 + vc.excellentTVStationProgram = excellentTVStationProgram[indexPath.row]
153 164 }
  165 + self.navigationController?.pushViewController(vc, animated: true)
154 166 }
155 167 func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
156 168 let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! TVStationViewControllerCollectionCell
... ...
YouerLiveVideo/YouerLiveVideo/controllers/User/AppSettingViewController.swift
... ... @@ -31,6 +31,10 @@ class AppSettingViewController: UIViewController {
31 31 self.tabBarController?.hidesBottomBarWhenPushed = false
32 32 }
33 33  
  34 + @IBAction func quitBtnClick(_ sender: Any) {
  35 + AppDelegate.instance().accountManager.cleanUserInfoAndPoptoRootVC()
  36 + self.navigationController!.popViewController(animated: true)
  37 + }
34 38  
35 39 /*
36 40 // MARK: - Navigation
... ...
YouerLiveVideo/YouerLiveVideo/controllers/User/User.storyboard
... ... @@ -220,6 +220,9 @@
220 220 <state key="normal" title="退出当前账号">
221 221 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
222 222 </state>
  223 + <connections>
  224 + <action selector="quitBtnClick:" destination="DOf-c9-nNw" eventType="touchUpInside" id="ySW-ZV-EoN"/>
  225 + </connections>
223 226 </button>
224 227 </subviews>
225 228 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
... ...
YouerLiveVideo/YouerLiveVideo/controllers/User/UserCenter/Login.storyboard 0 → 100644
... ... @@ -0,0 +1,772 @@
  1 +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2 +<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11762" systemVersion="15G1217" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
  3 + <device id="retina4_7" orientation="portrait">
  4 + <adaptation id="fullscreen"/>
  5 + </device>
  6 + <dependencies>
  7 + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11757"/>
  8 + <capability name="Aspect ratio constraints" minToolsVersion="5.1"/>
  9 + <capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
  10 + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
  11 + </dependencies>
  12 + <scenes>
  13 + <!--Login View Controller-->
  14 + <scene sceneID="orQ-wB-ipa">
  15 + <objects>
  16 + <viewController storyboardIdentifier="LoginViewControllerVC" id="fvc-9c-Gca" customClass="LoginViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController">
  17 + <layoutGuides>
  18 + <viewControllerLayoutGuide type="top" id="M3F-7t-f1g"/>
  19 + <viewControllerLayoutGuide type="bottom" id="agc-xf-u2B"/>
  20 + </layoutGuides>
  21 + <view key="view" contentMode="scaleToFill" id="rVC-Df-GKu">
  22 + <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
  23 + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
  24 + <subviews>
  25 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="rfv-aY-7Su">
  26 + <rect key="frame" x="0.0" y="0.0" width="375" height="186"/>
  27 + <subviews>
  28 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="教育视频云" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hWE-Vs-d0u">
  29 + <rect key="frame" x="150" y="0.0" width="225" height="186"/>
  30 + <fontDescription key="fontDescription" type="system" pointSize="22"/>
  31 + <color key="textColor" red="0.10980392156862745" green="0.63529411764705879" blue="1" alpha="1" colorSpace="calibratedRGB"/>
  32 + <nil key="highlightedColor"/>
  33 + </label>
  34 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="2J4-Xk-hLV">
  35 + <rect key="frame" x="62" y="53" width="80" height="80"/>
  36 + <constraints>
  37 + <constraint firstAttribute="height" constant="80" id="gMc-Hx-iZf"/>
  38 + <constraint firstAttribute="width" constant="80" id="kIC-aJ-75p"/>
  39 + </constraints>
  40 + </imageView>
  41 + </subviews>
  42 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
  43 + <constraints>
  44 + <constraint firstItem="2J4-Xk-hLV" firstAttribute="centerY" secondItem="rfv-aY-7Su" secondAttribute="centerY" id="CXG-zh-yXU"/>
  45 + <constraint firstAttribute="height" constant="186" id="MDO-eR-LT5"/>
  46 + <constraint firstItem="hWE-Vs-d0u" firstAttribute="top" secondItem="rfv-aY-7Su" secondAttribute="top" id="MIW-gU-FEh"/>
  47 + <constraint firstAttribute="trailing" secondItem="hWE-Vs-d0u" secondAttribute="trailing" id="RiE-Cg-vB6"/>
  48 + <constraint firstItem="hWE-Vs-d0u" firstAttribute="width" secondItem="rfv-aY-7Su" secondAttribute="width" multiplier="3:5" id="f3q-An-JLu"/>
  49 + <constraint firstItem="hWE-Vs-d0u" firstAttribute="leading" secondItem="2J4-Xk-hLV" secondAttribute="trailing" constant="8" id="h74-K9-uXy"/>
  50 + <constraint firstAttribute="bottom" secondItem="hWE-Vs-d0u" secondAttribute="bottom" id="zcB-F0-ox7"/>
  51 + </constraints>
  52 + </view>
  53 + <view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="tqb-X5-ujR" customClass="UIControl">
  54 + <rect key="frame" x="0.0" y="186" width="375" height="220"/>
  55 + <subviews>
  56 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="eXd-TY-qlW">
  57 + <rect key="frame" x="0.0" y="0.0" width="375" height="112"/>
  58 + <subviews>
  59 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="EAC-sg-BLE">
  60 + <rect key="frame" x="0.0" y="0.0" width="375" height="56"/>
  61 + <subviews>
  62 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NJW-yg-XQM">
  63 + <rect key="frame" x="8" y="55" width="359" height="1"/>
  64 + <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
  65 + <constraints>
  66 + <constraint firstAttribute="height" constant="1" id="GtD-JL-A0z"/>
  67 + </constraints>
  68 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  69 + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
  70 + <nil key="highlightedColor"/>
  71 + </label>
  72 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="userId.png" translatesAutoresizingMaskIntoConstraints="NO" id="1xZ-bM-AMz">
  73 + <rect key="frame" x="8" y="12.5" width="20" height="31"/>
  74 + <constraints>
  75 + <constraint firstAttribute="width" constant="20" id="3hd-Sx-hPC"/>
  76 + <constraint firstAttribute="width" secondItem="1xZ-bM-AMz" secondAttribute="height" multiplier="9:14" id="DCg-L0-4Lx"/>
  77 + </constraints>
  78 + </imageView>
  79 + <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入账号" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="IzH-dB-I9H">
  80 + <rect key="frame" x="36" y="18.5" width="339" height="19"/>
  81 + <fontDescription key="fontDescription" type="system" pointSize="13"/>
  82 + <textInputTraits key="textInputTraits" keyboardType="numberPad"/>
  83 + <connections>
  84 + <outlet property="delegate" destination="fvc-9c-Gca" id="l7n-F4-FsF"/>
  85 + </connections>
  86 + </textField>
  87 + </subviews>
  88 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  89 + <constraints>
  90 + <constraint firstAttribute="trailing" secondItem="IzH-dB-I9H" secondAttribute="trailing" id="DIX-3U-BQG"/>
  91 + <constraint firstAttribute="height" constant="56" id="Ff7-2n-071"/>
  92 + <constraint firstItem="IzH-dB-I9H" firstAttribute="leading" secondItem="1xZ-bM-AMz" secondAttribute="trailing" constant="8" id="Mi3-ud-m0O"/>
  93 + <constraint firstItem="IzH-dB-I9H" firstAttribute="centerY" secondItem="EAC-sg-BLE" secondAttribute="centerY" id="Ud1-tF-ivz"/>
  94 + <constraint firstItem="1xZ-bM-AMz" firstAttribute="leading" secondItem="EAC-sg-BLE" secondAttribute="leading" constant="8" id="Z77-MJ-BF0"/>
  95 + <constraint firstAttribute="bottom" secondItem="NJW-yg-XQM" secondAttribute="bottom" id="i3N-yW-fre"/>
  96 + <constraint firstAttribute="trailing" secondItem="NJW-yg-XQM" secondAttribute="trailing" constant="8" id="ued-ca-1l3"/>
  97 + <constraint firstItem="1xZ-bM-AMz" firstAttribute="centerY" secondItem="EAC-sg-BLE" secondAttribute="centerY" id="xd6-hf-JPu"/>
  98 + <constraint firstItem="NJW-yg-XQM" firstAttribute="leading" secondItem="EAC-sg-BLE" secondAttribute="leading" constant="8" id="xlc-R5-T0J"/>
  99 + </constraints>
  100 + </view>
  101 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xba-Rv-jIe">
  102 + <rect key="frame" x="0.0" y="56" width="375" height="56"/>
  103 + <subviews>
  104 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BcZ-u5-RFA">
  105 + <rect key="frame" x="0.0" y="55" width="375" height="1"/>
  106 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  107 + <constraints>
  108 + <constraint firstAttribute="height" constant="1" id="aAz-El-TeO"/>
  109 + </constraints>
  110 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  111 + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
  112 + <nil key="highlightedColor"/>
  113 + </label>
  114 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="userPassword.png" translatesAutoresizingMaskIntoConstraints="NO" id="oON-zY-4HS">
  115 + <rect key="frame" x="8" y="15" width="20" height="26"/>
  116 + <constraints>
  117 + <constraint firstAttribute="width" secondItem="oON-zY-4HS" secondAttribute="height" multiplier="31:41" id="hSc-3U-3kl"/>
  118 + <constraint firstAttribute="width" constant="20" id="vb3-Wd-N14"/>
  119 + </constraints>
  120 + </imageView>
  121 + <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入密码" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="nVn-EA-yWM">
  122 + <rect key="frame" x="36" y="18.5" width="339" height="19"/>
  123 + <fontDescription key="fontDescription" type="system" pointSize="13"/>
  124 + <textInputTraits key="textInputTraits" secureTextEntry="YES"/>
  125 + <connections>
  126 + <outlet property="delegate" destination="fvc-9c-Gca" id="tMS-9N-o09"/>
  127 + </connections>
  128 + </textField>
  129 + </subviews>
  130 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  131 + <constraints>
  132 + <constraint firstItem="oON-zY-4HS" firstAttribute="leading" secondItem="xba-Rv-jIe" secondAttribute="leading" constant="8" id="6sV-zB-qIs"/>
  133 + <constraint firstItem="nVn-EA-yWM" firstAttribute="centerY" secondItem="xba-Rv-jIe" secondAttribute="centerY" id="HaD-wa-ZFb"/>
  134 + <constraint firstAttribute="trailing" secondItem="BcZ-u5-RFA" secondAttribute="trailing" id="KDU-ei-Izn"/>
  135 + <constraint firstItem="nVn-EA-yWM" firstAttribute="leading" secondItem="oON-zY-4HS" secondAttribute="trailing" constant="8" id="LHP-bs-Kee"/>
  136 + <constraint firstAttribute="bottom" secondItem="BcZ-u5-RFA" secondAttribute="bottom" id="N41-uo-obj"/>
  137 + <constraint firstItem="oON-zY-4HS" firstAttribute="centerY" secondItem="xba-Rv-jIe" secondAttribute="centerY" id="Sf8-w6-WiM"/>
  138 + <constraint firstAttribute="trailing" secondItem="nVn-EA-yWM" secondAttribute="trailing" id="UTj-My-xsB"/>
  139 + <constraint firstItem="BcZ-u5-RFA" firstAttribute="leading" secondItem="xba-Rv-jIe" secondAttribute="leading" id="gei-H3-PPW"/>
  140 + </constraints>
  141 + </view>
  142 + </subviews>
  143 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
  144 + <constraints>
  145 + <constraint firstAttribute="trailing" secondItem="xba-Rv-jIe" secondAttribute="trailing" id="0A8-Lv-KWd"/>
  146 + <constraint firstAttribute="height" constant="112" id="0mn-L0-Qpr"/>
  147 + <constraint firstItem="EAC-sg-BLE" firstAttribute="top" secondItem="eXd-TY-qlW" secondAttribute="top" id="Bsa-ry-Tmn"/>
  148 + <constraint firstItem="xba-Rv-jIe" firstAttribute="top" secondItem="EAC-sg-BLE" secondAttribute="bottom" id="OKE-Ch-lJc"/>
  149 + <constraint firstAttribute="bottom" secondItem="xba-Rv-jIe" secondAttribute="bottom" id="aCK-P5-ecJ"/>
  150 + <constraint firstItem="xba-Rv-jIe" firstAttribute="leading" secondItem="eXd-TY-qlW" secondAttribute="leading" id="aap-4K-zSS"/>
  151 + <constraint firstItem="EAC-sg-BLE" firstAttribute="leading" secondItem="eXd-TY-qlW" secondAttribute="leading" id="e0b-LG-hBZ"/>
  152 + <constraint firstAttribute="trailing" secondItem="EAC-sg-BLE" secondAttribute="trailing" id="uOA-y7-ZUY"/>
  153 + </constraints>
  154 + </view>
  155 + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Qs2-9k-jbh">
  156 + <rect key="frame" x="16" y="134" width="343" height="40"/>
  157 + <color key="backgroundColor" red="0.10980392156862745" green="0.63529411764705879" blue="1" alpha="1" colorSpace="calibratedRGB"/>
  158 + <constraints>
  159 + <constraint firstAttribute="height" constant="40" id="gQn-hn-Wn2"/>
  160 + </constraints>
  161 + <fontDescription key="fontDescription" type="system" pointSize="15"/>
  162 + <state key="normal" title="登录">
  163 + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  164 + </state>
  165 + <userDefinedRuntimeAttributes>
  166 + <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
  167 + <integer key="value" value="5"/>
  168 + </userDefinedRuntimeAttribute>
  169 + <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
  170 + </userDefinedRuntimeAttributes>
  171 + <connections>
  172 + <action selector="loginBtnClickAction:" destination="fvc-9c-Gca" eventType="touchUpInside" id="INl-Rf-lsr"/>
  173 + </connections>
  174 + </button>
  175 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pzO-1N-Vrz">
  176 + <rect key="frame" x="16" y="182" width="343" height="30"/>
  177 + <subviews>
  178 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="设置密码或找回密码" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="v6n-Br-sBy">
  179 + <rect key="frame" x="0.0" y="0.0" width="119.5" height="30"/>
  180 + <fontDescription key="fontDescription" type="system" pointSize="13"/>
  181 + <nil key="highlightedColor"/>
  182 + </label>
  183 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="注册账号" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7fx-1i-VwW">
  184 + <rect key="frame" x="289.5" y="0.0" width="53.5" height="30"/>
  185 + <fontDescription key="fontDescription" type="system" pointSize="13"/>
  186 + <nil key="highlightedColor"/>
  187 + </label>
  188 + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ps0-yz-uMV">
  189 + <rect key="frame" x="0.0" y="0.0" width="343" height="30"/>
  190 + <fontDescription key="fontDescription" type="system" pointSize="13"/>
  191 + <state key="normal">
  192 + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  193 + </state>
  194 + <connections>
  195 + <action selector="registerBtnClickAction:" destination="fvc-9c-Gca" eventType="touchUpInside" id="joQ-gk-ZzE"/>
  196 + </connections>
  197 + </button>
  198 + </subviews>
  199 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
  200 + <constraints>
  201 + <constraint firstItem="ps0-yz-uMV" firstAttribute="top" secondItem="pzO-1N-Vrz" secondAttribute="top" id="7G1-mO-jQj"/>
  202 + <constraint firstAttribute="trailing" secondItem="7fx-1i-VwW" secondAttribute="trailing" id="8ot-xx-BFo"/>
  203 + <constraint firstAttribute="bottom" secondItem="7fx-1i-VwW" secondAttribute="bottom" id="Byb-9b-kOd"/>
  204 + <constraint firstAttribute="height" constant="30" id="TT4-WL-hYa"/>
  205 + <constraint firstItem="7fx-1i-VwW" firstAttribute="top" secondItem="pzO-1N-Vrz" secondAttribute="top" id="VzP-hc-s7a"/>
  206 + <constraint firstAttribute="bottom" secondItem="ps0-yz-uMV" secondAttribute="bottom" id="d8H-p3-iy8"/>
  207 + <constraint firstAttribute="trailing" secondItem="ps0-yz-uMV" secondAttribute="trailing" id="eo1-LL-5jy"/>
  208 + <constraint firstAttribute="bottom" secondItem="v6n-Br-sBy" secondAttribute="bottom" id="gbJ-jU-WFB"/>
  209 + <constraint firstItem="v6n-Br-sBy" firstAttribute="top" secondItem="pzO-1N-Vrz" secondAttribute="top" id="hj5-hs-ep4"/>
  210 + <constraint firstItem="ps0-yz-uMV" firstAttribute="leading" secondItem="pzO-1N-Vrz" secondAttribute="leading" id="uJt-wq-oTh"/>
  211 + <constraint firstItem="v6n-Br-sBy" firstAttribute="leading" secondItem="pzO-1N-Vrz" secondAttribute="leading" id="xdM-JA-UcQ"/>
  212 + </constraints>
  213 + </view>
  214 + </subviews>
  215 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
  216 + <constraints>
  217 + <constraint firstItem="eXd-TY-qlW" firstAttribute="width" secondItem="tqb-X5-ujR" secondAttribute="width" id="28b-2f-9yl"/>
  218 + <constraint firstAttribute="bottom" secondItem="pzO-1N-Vrz" secondAttribute="bottom" constant="8" id="AcS-52-YRY"/>
  219 + <constraint firstItem="Qs2-9k-jbh" firstAttribute="leading" secondItem="tqb-X5-ujR" secondAttribute="leading" constant="16" id="EHx-MA-nvQ"/>
  220 + <constraint firstAttribute="height" constant="220" id="JHj-W0-zAJ"/>
  221 + <constraint firstAttribute="trailing" secondItem="pzO-1N-Vrz" secondAttribute="trailing" constant="16" id="Qnk-VL-hpi"/>
  222 + <constraint firstAttribute="trailing" secondItem="Qs2-9k-jbh" secondAttribute="trailing" constant="16" id="SnW-DX-g3F"/>
  223 + <constraint firstItem="eXd-TY-qlW" firstAttribute="centerX" secondItem="tqb-X5-ujR" secondAttribute="centerX" id="Yap-fj-Sza"/>
  224 + <constraint firstItem="pzO-1N-Vrz" firstAttribute="top" secondItem="Qs2-9k-jbh" secondAttribute="bottom" constant="8" id="YqV-mN-jUi"/>
  225 + <constraint firstItem="pzO-1N-Vrz" firstAttribute="leading" secondItem="tqb-X5-ujR" secondAttribute="leading" constant="16" id="fWE-W3-H4P"/>
  226 + <constraint firstItem="Qs2-9k-jbh" firstAttribute="centerX" secondItem="tqb-X5-ujR" secondAttribute="centerX" id="icb-A7-CtC"/>
  227 + <constraint firstItem="pzO-1N-Vrz" firstAttribute="centerX" secondItem="tqb-X5-ujR" secondAttribute="centerX" id="o6l-Fj-Cb6"/>
  228 + <constraint firstItem="eXd-TY-qlW" firstAttribute="top" secondItem="tqb-X5-ujR" secondAttribute="top" id="uPt-SF-Tbq"/>
  229 + </constraints>
  230 + </view>
  231 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="login_bottom2" translatesAutoresizingMaskIntoConstraints="NO" id="w9T-jY-F3e">
  232 + <rect key="frame" x="0.0" y="520" width="375" height="147"/>
  233 + <constraints>
  234 + <constraint firstAttribute="width" secondItem="w9T-jY-F3e" secondAttribute="height" multiplier="636:249" id="HLo-XG-7PS"/>
  235 + </constraints>
  236 + </imageView>
  237 + </subviews>
  238 + <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
  239 + <gestureRecognizers/>
  240 + <constraints>
  241 + <constraint firstAttribute="trailing" secondItem="rfv-aY-7Su" secondAttribute="trailing" id="2JQ-xt-IcS"/>
  242 + <constraint firstItem="rfv-aY-7Su" firstAttribute="leading" secondItem="rVC-Df-GKu" secondAttribute="leading" id="CWh-Rw-Pq1"/>
  243 + <constraint firstItem="tqb-X5-ujR" firstAttribute="top" secondItem="rfv-aY-7Su" secondAttribute="bottom" id="DID-eg-sFe"/>
  244 + <constraint firstAttribute="trailing" secondItem="tqb-X5-ujR" secondAttribute="trailing" id="F9s-LV-2UW"/>
  245 + <constraint firstItem="agc-xf-u2B" firstAttribute="top" secondItem="w9T-jY-F3e" secondAttribute="bottom" id="MmO-RE-jQn"/>
  246 + <constraint firstItem="tqb-X5-ujR" firstAttribute="top" secondItem="M3F-7t-f1g" secondAttribute="bottom" constant="166" id="Oea-d4-0BB"/>
  247 + <constraint firstItem="w9T-jY-F3e" firstAttribute="leading" secondItem="rVC-Df-GKu" secondAttribute="leading" id="mVH-Af-iXP"/>
  248 + <constraint firstAttribute="trailing" secondItem="w9T-jY-F3e" secondAttribute="trailing" id="ofZ-WX-PK2"/>
  249 + <constraint firstItem="tqb-X5-ujR" firstAttribute="leading" secondItem="rVC-Df-GKu" secondAttribute="leading" id="zlD-w4-YPr"/>
  250 + </constraints>
  251 + <connections>
  252 + <outletCollection property="gestureRecognizers" destination="X5v-TO-Lu5" appends="YES" id="QuA-4X-qlp"/>
  253 + </connections>
  254 + </view>
  255 + <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
  256 + <size key="freeformSize" width="375" height="667"/>
  257 + <connections>
  258 + <outlet property="changeViewTop" destination="Oea-d4-0BB" id="FSX-wE-ENn"/>
  259 + <outlet property="passwordTextField" destination="nVn-EA-yWM" id="k8J-rx-Oub"/>
  260 + <outlet property="phoneNumberTextField" destination="IzH-dB-I9H" id="7Kd-jZ-pC2"/>
  261 + </connections>
  262 + </viewController>
  263 + <placeholder placeholderIdentifier="IBFirstResponder" id="4gl-mL-off" userLabel="First Responder" sceneMemberID="firstResponder"/>
  264 + <tapGestureRecognizer id="X5v-TO-Lu5">
  265 + <connections>
  266 + <action selector="touchAction:" destination="fvc-9c-Gca" id="oP2-EM-bgW"/>
  267 + </connections>
  268 + </tapGestureRecognizer>
  269 + </objects>
  270 + <point key="canvasLocation" x="-528.79999999999995" y="1534.1829085457273"/>
  271 + </scene>
  272 + <!--注册-->
  273 + <scene sceneID="81Y-IJ-Kye">
  274 + <objects>
  275 + <viewController storyboardIdentifier="RegisterViewControllerVC" id="tCx-JF-YJm" customClass="RegisterViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController">
  276 + <layoutGuides>
  277 + <viewControllerLayoutGuide type="top" id="o4V-sv-MMh"/>
  278 + <viewControllerLayoutGuide type="bottom" id="T9H-hV-piI"/>
  279 + </layoutGuides>
  280 + <view key="view" contentMode="scaleToFill" id="i7O-Dj-x5S" customClass="UIControl">
  281 + <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
  282 + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
  283 + <subviews>
  284 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="403-Gp-RaZ" customClass="UIControl">
  285 + <rect key="frame" x="0.0" y="64" width="375" height="168"/>
  286 + <subviews>
  287 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="8h8-sS-iJ1">
  288 + <rect key="frame" x="138" y="15" width="99" height="99"/>
  289 + <subviews>
  290 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="上传头像" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="MjO-1h-doT">
  291 + <rect key="frame" x="15" y="73" width="69.5" height="20.5"/>
  292 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  293 + <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
  294 + <nil key="highlightedColor"/>
  295 + </label>
  296 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="上传头像.png" translatesAutoresizingMaskIntoConstraints="NO" id="1fC-6m-eDG">
  297 + <rect key="frame" x="24.5" y="15" width="50" height="50"/>
  298 + <constraints>
  299 + <constraint firstAttribute="width" secondItem="1fC-6m-eDG" secondAttribute="height" multiplier="1:1" id="nya-81-raI"/>
  300 + <constraint firstAttribute="height" constant="50" id="uJA-jF-kBe"/>
  301 + </constraints>
  302 + </imageView>
  303 + </subviews>
  304 + <color key="backgroundColor" red="0.1058823529" green="0.82745098039999998" blue="0.74509803919999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
  305 + <gestureRecognizers/>
  306 + <constraints>
  307 + <constraint firstAttribute="width" secondItem="8h8-sS-iJ1" secondAttribute="height" multiplier="1:1" id="1dO-fX-vcH"/>
  308 + <constraint firstItem="1fC-6m-eDG" firstAttribute="top" secondItem="8h8-sS-iJ1" secondAttribute="top" constant="15" id="AZr-hi-5Ga"/>
  309 + <constraint firstAttribute="height" constant="99" id="EKP-qi-zdc"/>
  310 + <constraint firstAttribute="bottom" secondItem="1fC-6m-eDG" secondAttribute="bottom" constant="8" id="HCk-K2-bD9"/>
  311 + <constraint firstItem="MjO-1h-doT" firstAttribute="top" secondItem="1fC-6m-eDG" secondAttribute="bottom" constant="8" id="gDm-wv-uVd"/>
  312 + <constraint firstItem="MjO-1h-doT" firstAttribute="centerX" secondItem="8h8-sS-iJ1" secondAttribute="centerX" id="lEb-LK-Ayk"/>
  313 + <constraint firstItem="1fC-6m-eDG" firstAttribute="centerX" secondItem="8h8-sS-iJ1" secondAttribute="centerX" id="nF9-Di-ODB"/>
  314 + <constraint firstAttribute="bottom" secondItem="MjO-1h-doT" secondAttribute="bottom" constant="16" id="sgC-7Y-LpN"/>
  315 + </constraints>
  316 + <variation key="default">
  317 + <mask key="constraints">
  318 + <exclude reference="HCk-K2-bD9"/>
  319 + <exclude reference="sgC-7Y-LpN"/>
  320 + </mask>
  321 + </variation>
  322 + <connections>
  323 + <outletCollection property="gestureRecognizers" destination="aUf-CI-Y7V" appends="YES" id="6fC-6y-84F"/>
  324 + </connections>
  325 + </view>
  326 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="HCl-PT-sCJ">
  327 + <rect key="frame" x="130.5" y="118" width="114.5" height="30"/>
  328 + <subviews>
  329 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="编辑.png" translatesAutoresizingMaskIntoConstraints="NO" id="YJG-jG-Ix8">
  330 + <rect key="frame" x="85.5" y="4.5" width="21" height="21"/>
  331 + <constraints>
  332 + <constraint firstAttribute="width" secondItem="YJG-jG-Ix8" secondAttribute="height" multiplier="1:1" id="nDw-SN-tx9"/>
  333 + <constraint firstAttribute="height" constant="21" id="qhY-Et-icJ"/>
  334 + </constraints>
  335 + </imageView>
  336 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="设置昵称" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gj6-hl-Apj">
  337 + <rect key="frame" x="8" y="5" width="69.5" height="20.5"/>
  338 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  339 + <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
  340 + <nil key="highlightedColor"/>
  341 + </label>
  342 + </subviews>
  343 + <color key="backgroundColor" red="0.1058823529" green="0.82745098039999998" blue="0.74509803919999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
  344 + <gestureRecognizers/>
  345 + <constraints>
  346 + <constraint firstItem="YJG-jG-Ix8" firstAttribute="centerY" secondItem="HCl-PT-sCJ" secondAttribute="centerY" id="3WR-sv-c0Q"/>
  347 + <constraint firstItem="gj6-hl-Apj" firstAttribute="centerY" secondItem="HCl-PT-sCJ" secondAttribute="centerY" id="Dwp-Af-mLC"/>
  348 + <constraint firstItem="YJG-jG-Ix8" firstAttribute="leading" secondItem="gj6-hl-Apj" secondAttribute="trailing" constant="8" id="Yb9-mh-0fe"/>
  349 + <constraint firstItem="gj6-hl-Apj" firstAttribute="leading" secondItem="HCl-PT-sCJ" secondAttribute="leading" constant="8" id="kI8-65-C8Y"/>
  350 + <constraint firstAttribute="height" constant="30" id="laK-t9-f5W"/>
  351 + <constraint firstAttribute="trailing" secondItem="YJG-jG-Ix8" secondAttribute="trailing" constant="8" id="peS-OS-VwR"/>
  352 + </constraints>
  353 + <connections>
  354 + <outletCollection property="gestureRecognizers" destination="hfJ-NM-sst" appends="YES" id="AW1-A1-TlG"/>
  355 + </connections>
  356 + </view>
  357 + </subviews>
  358 + <color key="backgroundColor" red="0.1058823529" green="0.82745098039999998" blue="0.74509803919999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
  359 + <constraints>
  360 + <constraint firstItem="8h8-sS-iJ1" firstAttribute="top" secondItem="403-Gp-RaZ" secondAttribute="top" constant="15" id="2WG-wR-ZQY"/>
  361 + <constraint firstItem="HCl-PT-sCJ" firstAttribute="centerX" secondItem="403-Gp-RaZ" secondAttribute="centerX" id="Ctu-87-5Xl"/>
  362 + <constraint firstItem="HCl-PT-sCJ" firstAttribute="top" secondItem="8h8-sS-iJ1" secondAttribute="bottom" constant="4" id="GK6-Qh-dBO"/>
  363 + <constraint firstItem="HCl-PT-sCJ" firstAttribute="top" secondItem="8h8-sS-iJ1" secondAttribute="bottom" constant="8" id="QPI-Mk-b8n"/>
  364 + <constraint firstAttribute="height" constant="168" id="yi6-JV-ObE"/>
  365 + <constraint firstItem="8h8-sS-iJ1" firstAttribute="centerX" secondItem="403-Gp-RaZ" secondAttribute="centerX" id="yrY-zt-nHi"/>
  366 + </constraints>
  367 + <variation key="default">
  368 + <mask key="constraints">
  369 + <exclude reference="QPI-Mk-b8n"/>
  370 + </mask>
  371 + </variation>
  372 + </view>
  373 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xNc-I3-UL6">
  374 + <rect key="frame" x="0.0" y="64" width="375" height="168"/>
  375 + <subviews>
  376 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1Cp-hz-9O4">
  377 + <rect key="frame" x="0.0" y="0.0" width="375" height="56"/>
  378 + <subviews>
  379 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="o5G-fF-wVL">
  380 + <rect key="frame" x="0.0" y="55" width="375" height="1"/>
  381 + <color key="backgroundColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
  382 + <constraints>
  383 + <constraint firstAttribute="height" constant="1" id="lXH-lx-MSn"/>
  384 + </constraints>
  385 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  386 + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
  387 + <nil key="highlightedColor"/>
  388 + </label>
  389 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="昵称" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="O8o-oN-LAH">
  390 + <rect key="frame" x="8" y="19" width="73" height="18"/>
  391 + <constraints>
  392 + <constraint firstAttribute="width" constant="73" id="bAz-Uv-bTd"/>
  393 + </constraints>
  394 + <fontDescription key="fontDescription" type="system" pointSize="15"/>
  395 + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
  396 + <nil key="highlightedColor"/>
  397 + </label>
  398 + <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入昵称 " minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="q7i-9n-2oP">
  399 + <rect key="frame" x="89" y="18.5" width="278" height="19"/>
  400 + <fontDescription key="fontDescription" type="system" pointSize="15"/>
  401 + <textInputTraits key="textInputTraits" returnKeyType="done"/>
  402 + <connections>
  403 + <outlet property="delegate" destination="tCx-JF-YJm" id="kUP-Zt-NU9"/>
  404 + </connections>
  405 + </textField>
  406 + </subviews>
  407 + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
  408 + <constraints>
  409 + <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="56" id="Ctl-Pt-CPh"/>
  410 + <constraint firstItem="o5G-fF-wVL" firstAttribute="leading" secondItem="1Cp-hz-9O4" secondAttribute="leading" id="RLm-KI-JX6"/>
  411 + <constraint firstAttribute="height" constant="56" id="UfT-BQ-siu"/>
  412 + <constraint firstItem="O8o-oN-LAH" firstAttribute="leading" secondItem="1Cp-hz-9O4" secondAttribute="leading" constant="8" id="XGD-rw-eCb"/>
  413 + <constraint firstAttribute="trailing" secondItem="q7i-9n-2oP" secondAttribute="trailing" constant="8" id="YdO-o5-5VF"/>
  414 + <constraint firstAttribute="bottom" secondItem="o5G-fF-wVL" secondAttribute="bottom" id="f6j-pG-Rae"/>
  415 + <constraint firstItem="q7i-9n-2oP" firstAttribute="centerY" secondItem="1Cp-hz-9O4" secondAttribute="centerY" id="fKp-1x-vbL"/>
  416 + <constraint firstItem="q7i-9n-2oP" firstAttribute="leading" secondItem="O8o-oN-LAH" secondAttribute="trailing" constant="8" id="gEm-U9-rh0"/>
  417 + <constraint firstItem="O8o-oN-LAH" firstAttribute="centerY" secondItem="1Cp-hz-9O4" secondAttribute="centerY" id="t0o-1a-As6"/>
  418 + <constraint firstAttribute="trailing" secondItem="o5G-fF-wVL" secondAttribute="trailing" id="wvf-Cp-571"/>
  419 + </constraints>
  420 + </view>
  421 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="keu-Ke-SrA">
  422 + <rect key="frame" x="0.0" y="56" width="375" height="56"/>
  423 + <subviews>
  424 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Hwy-QV-ob8">
  425 + <rect key="frame" x="0.0" y="55" width="375" height="1"/>
  426 + <color key="backgroundColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
  427 + <constraints>
  428 + <constraint firstAttribute="height" constant="1" id="1bP-ob-qdI"/>
  429 + </constraints>
  430 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  431 + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
  432 + <nil key="highlightedColor"/>
  433 + </label>
  434 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="密码" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xBV-ds-Ub9">
  435 + <rect key="frame" x="8" y="19" width="73" height="18"/>
  436 + <constraints>
  437 + <constraint firstAttribute="width" constant="73" id="SAa-QZ-uJF"/>
  438 + </constraints>
  439 + <fontDescription key="fontDescription" type="system" pointSize="15"/>
  440 + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
  441 + <nil key="highlightedColor"/>
  442 + </label>
  443 + <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入密码" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="i3R-4H-gzp">
  444 + <rect key="frame" x="89" y="18.5" width="278" height="19"/>
  445 + <fontDescription key="fontDescription" type="system" pointSize="15"/>
  446 + <textInputTraits key="textInputTraits" keyboardType="alphabet" returnKeyType="done"/>
  447 + <connections>
  448 + <outlet property="delegate" destination="tCx-JF-YJm" id="Awg-pn-DAx"/>
  449 + </connections>
  450 + </textField>
  451 + </subviews>
  452 + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
  453 + <constraints>
  454 + <constraint firstAttribute="bottom" secondItem="Hwy-QV-ob8" secondAttribute="bottom" id="Cf7-PL-DRi"/>
  455 + <constraint firstItem="xBV-ds-Ub9" firstAttribute="leading" secondItem="keu-Ke-SrA" secondAttribute="leading" constant="8" id="F8L-Q3-KCF"/>
  456 + <constraint firstAttribute="trailing" secondItem="i3R-4H-gzp" secondAttribute="trailing" constant="8" id="XnD-Fb-exn"/>
  457 + <constraint firstAttribute="trailing" secondItem="Hwy-QV-ob8" secondAttribute="trailing" id="cUW-Va-u0h"/>
  458 + <constraint firstItem="i3R-4H-gzp" firstAttribute="leading" secondItem="xBV-ds-Ub9" secondAttribute="trailing" constant="8" id="cZ8-V2-oKV"/>
  459 + <constraint firstAttribute="height" constant="56" id="it2-lJ-vPD"/>
  460 + <constraint firstItem="i3R-4H-gzp" firstAttribute="centerY" secondItem="keu-Ke-SrA" secondAttribute="centerY" id="j86-kg-M0P"/>
  461 + <constraint firstItem="xBV-ds-Ub9" firstAttribute="centerY" secondItem="keu-Ke-SrA" secondAttribute="centerY" id="lQ9-Xe-gvX"/>
  462 + <constraint firstItem="Hwy-QV-ob8" firstAttribute="leading" secondItem="keu-Ke-SrA" secondAttribute="leading" id="ws3-Zb-SqH"/>
  463 + </constraints>
  464 + </view>
  465 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="cnM-5P-fhN">
  466 + <rect key="frame" x="0.0" y="112" width="375" height="56"/>
  467 + <subviews>
  468 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7YJ-fu-e63">
  469 + <rect key="frame" x="0.0" y="55" width="375" height="1"/>
  470 + <color key="backgroundColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
  471 + <constraints>
  472 + <constraint firstAttribute="height" constant="1" id="Ypb-br-LFg"/>
  473 + </constraints>
  474 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  475 + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
  476 + <nil key="highlightedColor"/>
  477 + </label>
  478 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="确认密码" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xtu-Lb-h46">
  479 + <rect key="frame" x="8" y="19" width="73" height="18"/>
  480 + <constraints>
  481 + <constraint firstAttribute="width" constant="73" id="A5Z-hk-VeN"/>
  482 + </constraints>
  483 + <fontDescription key="fontDescription" type="system" pointSize="15"/>
  484 + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
  485 + <nil key="highlightedColor"/>
  486 + </label>
  487 + <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请确认密码" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="4Ko-iM-kKY">
  488 + <rect key="frame" x="89" y="18.5" width="278" height="19"/>
  489 + <fontDescription key="fontDescription" type="system" pointSize="15"/>
  490 + <textInputTraits key="textInputTraits" keyboardType="alphabet" returnKeyType="done"/>
  491 + <connections>
  492 + <outlet property="delegate" destination="tCx-JF-YJm" id="kVV-m8-92v"/>
  493 + </connections>
  494 + </textField>
  495 + </subviews>
  496 + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
  497 + <constraints>
  498 + <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="56" id="48F-9G-Fge"/>
  499 + <constraint firstAttribute="trailing" secondItem="4Ko-iM-kKY" secondAttribute="trailing" constant="8" id="4fh-zG-9vl"/>
  500 + <constraint firstAttribute="bottom" secondItem="7YJ-fu-e63" secondAttribute="bottom" id="9wD-aU-bMP"/>
  501 + <constraint firstAttribute="trailing" secondItem="7YJ-fu-e63" secondAttribute="trailing" id="EjA-4T-fxE"/>
  502 + <constraint firstItem="xtu-Lb-h46" firstAttribute="centerY" secondItem="cnM-5P-fhN" secondAttribute="centerY" id="HSA-Ou-onT"/>
  503 + <constraint firstItem="4Ko-iM-kKY" firstAttribute="leading" secondItem="xtu-Lb-h46" secondAttribute="trailing" constant="8" id="aYk-72-GQD"/>
  504 + <constraint firstItem="xtu-Lb-h46" firstAttribute="leading" secondItem="cnM-5P-fhN" secondAttribute="leading" constant="8" id="kbK-3X-65q"/>
  505 + <constraint firstItem="7YJ-fu-e63" firstAttribute="leading" secondItem="cnM-5P-fhN" secondAttribute="leading" id="rhc-YS-Jug"/>
  506 + <constraint firstAttribute="height" constant="56" id="ucM-EP-0Bc"/>
  507 + <constraint firstItem="4Ko-iM-kKY" firstAttribute="centerY" secondItem="cnM-5P-fhN" secondAttribute="centerY" id="wja-1l-Xos"/>
  508 + </constraints>
  509 + </view>
  510 + </subviews>
  511 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  512 + <constraints>
  513 + <constraint firstItem="keu-Ke-SrA" firstAttribute="top" secondItem="1Cp-hz-9O4" secondAttribute="bottom" id="Pee-iB-XUj"/>
  514 + <constraint firstItem="cnM-5P-fhN" firstAttribute="leading" secondItem="xNc-I3-UL6" secondAttribute="leading" id="R9s-jK-AYa"/>
  515 + <constraint firstAttribute="trailing" secondItem="1Cp-hz-9O4" secondAttribute="trailing" id="Rib-CM-97d"/>
  516 + <constraint firstAttribute="height" constant="168" id="SWN-6C-I6R"/>
  517 + <constraint firstAttribute="trailing" secondItem="cnM-5P-fhN" secondAttribute="trailing" id="U6d-yM-lM8"/>
  518 + <constraint firstItem="1Cp-hz-9O4" firstAttribute="top" secondItem="xNc-I3-UL6" secondAttribute="top" id="elW-dc-FcY"/>
  519 + <constraint firstItem="keu-Ke-SrA" firstAttribute="leading" secondItem="xNc-I3-UL6" secondAttribute="leading" id="gcJ-t2-OJH"/>
  520 + <constraint firstItem="cnM-5P-fhN" firstAttribute="top" secondItem="keu-Ke-SrA" secondAttribute="bottom" id="hnn-cd-Hsj"/>
  521 + <constraint firstAttribute="bottom" secondItem="cnM-5P-fhN" secondAttribute="bottom" id="k46-eB-0tn"/>
  522 + <constraint firstAttribute="trailing" secondItem="keu-Ke-SrA" secondAttribute="trailing" id="lAV-sR-cpV"/>
  523 + <constraint firstItem="1Cp-hz-9O4" firstAttribute="leading" secondItem="xNc-I3-UL6" secondAttribute="leading" id="o9e-5H-Do7"/>
  524 + </constraints>
  525 + </view>
  526 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="rSF-LZ-Bnl">
  527 + <rect key="frame" x="0.0" y="232" width="375" height="112"/>
  528 + <subviews>
  529 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="vkP-pb-ydp">
  530 + <rect key="frame" x="0.0" y="0.0" width="375" height="56"/>
  531 + <subviews>
  532 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="MEf-rE-fBh">
  533 + <rect key="frame" x="0.0" y="55" width="375" height="1"/>
  534 + <color key="backgroundColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
  535 + <constraints>
  536 + <constraint firstAttribute="height" constant="1" id="cle-RJ-6tm"/>
  537 + </constraints>
  538 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  539 + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
  540 + <nil key="highlightedColor"/>
  541 + </label>
  542 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="+86" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ae8-Wz-CYH">
  543 + <rect key="frame" x="8" y="19" width="73" height="18"/>
  544 + <constraints>
  545 + <constraint firstAttribute="width" constant="73" id="gFs-fM-1Vg"/>
  546 + </constraints>
  547 + <fontDescription key="fontDescription" type="system" pointSize="15"/>
  548 + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
  549 + <nil key="highlightedColor"/>
  550 + </label>
  551 + <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入手机号码 " minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="nVJ-81-bXY">
  552 + <rect key="frame" x="89" y="19" width="177" height="19"/>
  553 + <fontDescription key="fontDescription" type="system" pointSize="15"/>
  554 + <textInputTraits key="textInputTraits" keyboardType="numberPad" returnKeyType="done"/>
  555 + <connections>
  556 + <outlet property="delegate" destination="tCx-JF-YJm" id="xWv-of-0Wb"/>
  557 + </connections>
  558 + </textField>
  559 + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="hwv-0n-dsf">
  560 + <rect key="frame" x="274" y="13" width="93" height="30"/>
  561 + <color key="backgroundColor" red="0.10980392160000001" green="0.63529411759999999" blue="1" alpha="1" colorSpace="calibratedRGB"/>
  562 + <constraints>
  563 + <constraint firstAttribute="width" constant="93" id="tn3-0t-fnt"/>
  564 + </constraints>
  565 + <fontDescription key="fontDescription" type="system" pointSize="15"/>
  566 + <state key="normal" title=" 发送验证码 ">
  567 + <color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
  568 + </state>
  569 + <userDefinedRuntimeAttributes>
  570 + <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
  571 + <integer key="value" value="15"/>
  572 + </userDefinedRuntimeAttribute>
  573 + <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
  574 + </userDefinedRuntimeAttributes>
  575 + <connections>
  576 + <action selector="sendVerificationCodeClickAction:" destination="tCx-JF-YJm" eventType="touchUpInside" id="Agj-2K-dbp"/>
  577 + </connections>
  578 + </button>
  579 + </subviews>
  580 + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
  581 + <constraints>
  582 + <constraint firstItem="MEf-rE-fBh" firstAttribute="leading" secondItem="vkP-pb-ydp" secondAttribute="leading" id="2A5-sj-MgA"/>
  583 + <constraint firstItem="ae8-Wz-CYH" firstAttribute="centerY" secondItem="vkP-pb-ydp" secondAttribute="centerY" id="Dfi-Pp-DOa"/>
  584 + <constraint firstItem="nVJ-81-bXY" firstAttribute="centerY" secondItem="vkP-pb-ydp" secondAttribute="centerY" id="Q9B-BF-wWO"/>
  585 + <constraint firstAttribute="height" constant="56" id="d5e-TR-xj8"/>
  586 + <constraint firstItem="ae8-Wz-CYH" firstAttribute="leading" secondItem="vkP-pb-ydp" secondAttribute="leading" constant="8" id="fAZ-jT-eye"/>
  587 + <constraint firstAttribute="trailing" secondItem="hwv-0n-dsf" secondAttribute="trailing" constant="8" id="jCe-9b-HiL"/>
  588 + <constraint firstItem="hwv-0n-dsf" firstAttribute="centerY" secondItem="vkP-pb-ydp" secondAttribute="centerY" id="mgL-oA-0oG"/>
  589 + <constraint firstAttribute="trailing" secondItem="MEf-rE-fBh" secondAttribute="trailing" id="nEG-6h-NXY"/>
  590 + <constraint firstItem="hwv-0n-dsf" firstAttribute="leading" secondItem="nVJ-81-bXY" secondAttribute="trailing" constant="8" id="u7R-Pm-UM9"/>
  591 + <constraint firstAttribute="bottom" secondItem="MEf-rE-fBh" secondAttribute="bottom" id="y9Q-1X-3wy"/>
  592 + <constraint firstItem="nVJ-81-bXY" firstAttribute="leading" secondItem="ae8-Wz-CYH" secondAttribute="trailing" constant="8" id="zxS-jB-eC8"/>
  593 + </constraints>
  594 + </view>
  595 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="IlU-p3-aLY">
  596 + <rect key="frame" x="0.0" y="56" width="375" height="56"/>
  597 + <subviews>
  598 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="SOB-G4-Kln">
  599 + <rect key="frame" x="0.0" y="55" width="375" height="1"/>
  600 + <color key="backgroundColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
  601 + <constraints>
  602 + <constraint firstAttribute="height" constant="1" id="3yq-4f-vDW"/>
  603 + </constraints>
  604 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  605 + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
  606 + <nil key="highlightedColor"/>
  607 + </label>
  608 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="验证码" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="KmI-sz-jsA">
  609 + <rect key="frame" x="8" y="19" width="73" height="18"/>
  610 + <constraints>
  611 + <constraint firstAttribute="width" constant="73" id="ngh-2s-quJ"/>
  612 + </constraints>
  613 + <fontDescription key="fontDescription" type="system" pointSize="15"/>
  614 + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
  615 + <nil key="highlightedColor"/>
  616 + </label>
  617 + <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入验证码" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="GHW-G9-uIT">
  618 + <rect key="frame" x="89" y="18.5" width="278" height="19"/>
  619 + <fontDescription key="fontDescription" type="system" pointSize="15"/>
  620 + <textInputTraits key="textInputTraits" keyboardType="numberPad" returnKeyType="done"/>
  621 + <connections>
  622 + <outlet property="delegate" destination="tCx-JF-YJm" id="deX-i0-lZv"/>
  623 + </connections>
  624 + </textField>
  625 + </subviews>
  626 + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
  627 + <constraints>
  628 + <constraint firstItem="SOB-G4-Kln" firstAttribute="leading" secondItem="IlU-p3-aLY" secondAttribute="leading" id="Bpm-Op-035"/>
  629 + <constraint firstAttribute="bottom" secondItem="SOB-G4-Kln" secondAttribute="bottom" id="KjW-FI-dyR"/>
  630 + <constraint firstItem="GHW-G9-uIT" firstAttribute="leading" secondItem="KmI-sz-jsA" secondAttribute="trailing" constant="8" id="NWt-4e-GXU"/>
  631 + <constraint firstAttribute="height" constant="56" id="QZA-UG-aso"/>
  632 + <constraint firstItem="GHW-G9-uIT" firstAttribute="centerY" secondItem="IlU-p3-aLY" secondAttribute="centerY" id="SGD-Xp-h5t"/>
  633 + <constraint firstAttribute="trailing" secondItem="SOB-G4-Kln" secondAttribute="trailing" id="ZSY-bN-JsM"/>
  634 + <constraint firstItem="KmI-sz-jsA" firstAttribute="centerY" secondItem="IlU-p3-aLY" secondAttribute="centerY" id="dtC-at-TCi"/>
  635 + <constraint firstItem="KmI-sz-jsA" firstAttribute="leading" secondItem="IlU-p3-aLY" secondAttribute="leading" constant="8" id="e2w-KQ-6sS"/>
  636 + <constraint firstAttribute="trailing" secondItem="GHW-G9-uIT" secondAttribute="trailing" constant="8" id="y7F-Ik-Roe"/>
  637 + </constraints>
  638 + </view>
  639 + </subviews>
  640 + <color key="backgroundColor" red="1" green="0.42445692709999999" blue="0.35047448450000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
  641 + <constraints>
  642 + <constraint firstAttribute="trailing" secondItem="IlU-p3-aLY" secondAttribute="trailing" id="4ga-Jf-7Ee"/>
  643 + <constraint firstAttribute="height" constant="112" id="7NK-ZN-nyz"/>
  644 + <constraint firstItem="vkP-pb-ydp" firstAttribute="leading" secondItem="rSF-LZ-Bnl" secondAttribute="leading" id="84d-gX-XI3"/>
  645 + <constraint firstItem="IlU-p3-aLY" firstAttribute="top" secondItem="vkP-pb-ydp" secondAttribute="bottom" id="AEt-bb-mHP"/>
  646 + <constraint firstItem="IlU-p3-aLY" firstAttribute="leading" secondItem="rSF-LZ-Bnl" secondAttribute="leading" id="OBc-tM-vGz"/>
  647 + <constraint firstItem="vkP-pb-ydp" firstAttribute="top" secondItem="rSF-LZ-Bnl" secondAttribute="top" id="Ppf-3Y-BG7"/>
  648 + <constraint firstAttribute="trailing" secondItem="vkP-pb-ydp" secondAttribute="trailing" id="Ygd-yH-f2B"/>
  649 + <constraint firstAttribute="bottom" secondItem="IlU-p3-aLY" secondAttribute="bottom" id="cjh-Sk-yPh"/>
  650 + </constraints>
  651 + </view>
  652 + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="R1Y-16-Th7">
  653 + <rect key="frame" x="62.5" y="444" width="250" height="40"/>
  654 + <color key="backgroundColor" red="0.10980392160000001" green="0.63529411759999999" blue="1" alpha="1" colorSpace="calibratedRGB"/>
  655 + <constraints>
  656 + <constraint firstAttribute="height" constant="40" id="Kvn-w3-Juc"/>
  657 + </constraints>
  658 + <fontDescription key="fontDescription" type="system" pointSize="15"/>
  659 + <state key="normal" title="注册">
  660 + <color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
  661 + </state>
  662 + <userDefinedRuntimeAttributes>
  663 + <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
  664 + <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
  665 + <integer key="value" value="5"/>
  666 + </userDefinedRuntimeAttribute>
  667 + </userDefinedRuntimeAttributes>
  668 + <connections>
  669 + <action selector="registerBtnAction:" destination="tCx-JF-YJm" eventType="touchUpInside" id="pSt-yE-eTL"/>
  670 + </connections>
  671 + </button>
  672 + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="DJH-vy-tj1">
  673 + <rect key="frame" x="325" y="359" width="35" height="30"/>
  674 + <fontDescription key="fontDescription" type="system" pointSize="15"/>
  675 + <state key="normal" title="登 录">
  676 + <color key="titleColor" red="0.10980392160000001" green="0.63529411759999999" blue="1" alpha="1" colorSpace="calibratedRGB"/>
  677 + </state>
  678 + <connections>
  679 + <action selector="loginBtnClickAction:" destination="tCx-JF-YJm" eventType="touchUpInside" id="KlD-u3-W3P"/>
  680 + </connections>
  681 + </button>
  682 + </subviews>
  683 + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
  684 + <gestureRecognizers/>
  685 + <constraints>
  686 + <constraint firstItem="R1Y-16-Th7" firstAttribute="top" secondItem="rSF-LZ-Bnl" secondAttribute="bottom" constant="100" id="2qf-Db-EkQ"/>
  687 + <constraint firstItem="403-Gp-RaZ" firstAttribute="top" secondItem="o4V-sv-MMh" secondAttribute="bottom" id="3fC-Wg-KMc"/>
  688 + <constraint firstItem="xNc-I3-UL6" firstAttribute="top" secondItem="o4V-sv-MMh" secondAttribute="bottom" id="4fl-gQ-WZe"/>
  689 + <constraint firstAttribute="trailing" secondItem="rSF-LZ-Bnl" secondAttribute="trailing" id="9jK-fu-KKs"/>
  690 + <constraint firstItem="rSF-LZ-Bnl" firstAttribute="leading" secondItem="i7O-Dj-x5S" secondAttribute="leading" id="OoN-NJ-ZEk"/>
  691 + <constraint firstAttribute="trailing" secondItem="DJH-vy-tj1" secondAttribute="trailing" constant="15" id="ZYR-Wd-fZz"/>
  692 + <constraint firstAttribute="trailing" secondItem="xNc-I3-UL6" secondAttribute="trailing" id="eo3-7l-3Ju"/>
  693 + <constraint firstAttribute="trailing" secondItem="403-Gp-RaZ" secondAttribute="trailing" id="fOh-GD-xiW"/>
  694 + <constraint firstItem="R1Y-16-Th7" firstAttribute="centerX" secondItem="i7O-Dj-x5S" secondAttribute="centerX" id="kcC-PE-Lwx"/>
  695 + <constraint firstItem="DJH-vy-tj1" firstAttribute="top" secondItem="rSF-LZ-Bnl" secondAttribute="bottom" constant="15" id="lBh-92-VTX"/>
  696 + <constraint firstItem="R1Y-16-Th7" firstAttribute="width" secondItem="i7O-Dj-x5S" secondAttribute="width" multiplier="2:3" id="pCE-Ek-rOS"/>
  697 + <constraint firstItem="403-Gp-RaZ" firstAttribute="leading" secondItem="i7O-Dj-x5S" secondAttribute="leading" id="stz-Fg-4Iv"/>
  698 + <constraint firstItem="rSF-LZ-Bnl" firstAttribute="top" secondItem="xNc-I3-UL6" secondAttribute="bottom" id="wPx-ce-6he"/>
  699 + <constraint firstItem="xNc-I3-UL6" firstAttribute="leading" secondItem="i7O-Dj-x5S" secondAttribute="leading" id="x7N-Bs-2t1"/>
  700 + </constraints>
  701 + <connections>
  702 + <outletCollection property="gestureRecognizers" destination="ZEf-mm-u9e" appends="YES" id="Gmm-Kb-eQb"/>
  703 + </connections>
  704 + </view>
  705 + <navigationItem key="navigationItem" title="注册" id="VWP-v7-Qoc">
  706 + <barButtonItem key="rightBarButtonItem" title="取消" id="Okk-g0-Rwk">
  707 + <connections>
  708 + <action selector="cancleAction:" destination="tCx-JF-YJm" id="ypG-ks-rG6"/>
  709 + </connections>
  710 + </barButtonItem>
  711 + </navigationItem>
  712 + <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
  713 + <size key="freeformSize" width="375" height="667"/>
  714 + <connections>
  715 + <outlet property="confirmPasswordTextField" destination="4Ko-iM-kKY" id="Mwh-Ik-lD3"/>
  716 + <outlet property="inputVerificationCode" destination="GHW-G9-uIT" id="W2X-QF-3qb"/>
  717 + <outlet property="nickNameLabel" destination="gj6-hl-Apj" id="chL-uV-xBk"/>
  718 + <outlet property="nikeNameTextFiled" destination="q7i-9n-2oP" id="DME-KX-Y6Y"/>
  719 + <outlet property="passwordTextField" destination="i3R-4H-gzp" id="qTl-bd-eRR"/>
  720 + <outlet property="phoneNumber" destination="nVJ-81-bXY" id="24J-2q-PGO"/>
  721 + <outlet property="registerBtn" destination="R1Y-16-Th7" id="ccz-JJ-Zfd"/>
  722 + <outlet property="sendPhotoImage" destination="1fC-6m-eDG" id="xoB-Hr-23D"/>
  723 + <outlet property="sendVerificationCode" destination="hwv-0n-dsf" id="5zD-Jx-K5j"/>
  724 + </connections>
  725 + </viewController>
  726 + <placeholder placeholderIdentifier="IBFirstResponder" id="Fzg-cR-i34" userLabel="First Responder" sceneMemberID="firstResponder"/>
  727 + <tapGestureRecognizer id="hfJ-NM-sst">
  728 + <connections>
  729 + <action selector="nickNameSetTapAction:" destination="tCx-JF-YJm" id="OeS-RA-5JC"/>
  730 + </connections>
  731 + </tapGestureRecognizer>
  732 + <tapGestureRecognizer id="aUf-CI-Y7V">
  733 + <connections>
  734 + <action selector="sendPhotoImageTapAction:" destination="tCx-JF-YJm" id="eAT-uh-KLY"/>
  735 + </connections>
  736 + </tapGestureRecognizer>
  737 + <tapGestureRecognizer id="ZEf-mm-u9e">
  738 + <connections>
  739 + <action selector="touchAction:" destination="tCx-JF-YJm" id="1ww-Nt-fgk"/>
  740 + </connections>
  741 + </tapGestureRecognizer>
  742 + </objects>
  743 + <point key="canvasLocation" x="-1447.2" y="1532.3838080959522"/>
  744 + </scene>
  745 + <!--注册-->
  746 + <scene sceneID="fjB-PO-uzD">
  747 + <objects>
  748 + <navigationController storyboardIdentifier="RegisterViewControllerNV" title="注册" automaticallyAdjustsScrollViewInsets="NO" id="smK-XQ-zjA" sceneMemberID="viewController">
  749 + <toolbarItems/>
  750 + <navigationBar key="navigationBar" contentMode="scaleToFill" id="rky-2y-rJV">
  751 + <rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
  752 + <autoresizingMask key="autoresizingMask"/>
  753 + </navigationBar>
  754 + <nil name="viewControllers"/>
  755 + <connections>
  756 + <segue destination="tCx-JF-YJm" kind="relationship" relationship="rootViewController" id="74u-7e-5ID"/>
  757 + </connections>
  758 + </navigationController>
  759 + <placeholder placeholderIdentifier="IBFirstResponder" id="7iS-XR-Acb" userLabel="First Responder" sceneMemberID="firstResponder"/>
  760 + </objects>
  761 + <point key="canvasLocation" x="-2162.4000000000001" y="1533.2833583208396"/>
  762 + </scene>
  763 + </scenes>
  764 + <resources>
  765 + <image name="icon" width="512" height="512"/>
  766 + <image name="login_bottom2" width="318" height="124"/>
  767 + <image name="userId.png" width="36" height="56"/>
  768 + <image name="userPassword.png" width="31" height="41"/>
  769 + <image name="上传头像.png" width="70" height="70"/>
  770 + <image name="编辑.png" width="35" height="31"/>
  771 + </resources>
  772 +</document>
... ...
YouerLiveVideo/YouerLiveVideo/controllers/User/UserCenter/LoginViewController.swift
... ... @@ -126,7 +126,7 @@ class LoginViewController: UIViewController,UITextFieldDelegate {
126 126 }
127 127 //点击注册按钮
128 128 @IBAction func registerBtnClickAction(_ sender: AnyObject) {
129   - let vc = UIStoryboard(name: "User", bundle: nil).instantiateViewController(withIdentifier: "RegisterViewControllerNV")
  129 + let vc = UIStoryboard(name: "Login", bundle: nil).instantiateViewController(withIdentifier: "RegisterViewControllerNV")
130 130 self.present(vc, animated: true, completion: nil)
131 131 }
132 132 //键盘监听
... ...
YouerLiveVideo/YouerLiveVideo/controllers/User/UserCenter/User.storyboard
... ... @@ -1,772 +0,0 @@
1   -<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2   -<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11762" systemVersion="15G1217" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
3   - <device id="retina4_7" orientation="portrait">
4   - <adaptation id="fullscreen"/>
5   - </device>
6   - <dependencies>
7   - <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11757"/>
8   - <capability name="Aspect ratio constraints" minToolsVersion="5.1"/>
9   - <capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
10   - <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
11   - </dependencies>
12   - <scenes>
13   - <!--Login View Controller-->
14   - <scene sceneID="orQ-wB-ipa">
15   - <objects>
16   - <viewController storyboardIdentifier="LoginViewControllerVC" id="fvc-9c-Gca" customClass="LoginViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController">
17   - <layoutGuides>
18   - <viewControllerLayoutGuide type="top" id="M3F-7t-f1g"/>
19   - <viewControllerLayoutGuide type="bottom" id="agc-xf-u2B"/>
20   - </layoutGuides>
21   - <view key="view" contentMode="scaleToFill" id="rVC-Df-GKu">
22   - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
23   - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
24   - <subviews>
25   - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="rfv-aY-7Su">
26   - <rect key="frame" x="0.0" y="0.0" width="375" height="186"/>
27   - <subviews>
28   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="教育视频云" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hWE-Vs-d0u">
29   - <rect key="frame" x="150" y="0.0" width="225" height="186"/>
30   - <fontDescription key="fontDescription" type="system" pointSize="22"/>
31   - <color key="textColor" red="0.10980392156862745" green="0.63529411764705879" blue="1" alpha="1" colorSpace="calibratedRGB"/>
32   - <nil key="highlightedColor"/>
33   - </label>
34   - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="2J4-Xk-hLV">
35   - <rect key="frame" x="62" y="53" width="80" height="80"/>
36   - <constraints>
37   - <constraint firstAttribute="height" constant="80" id="gMc-Hx-iZf"/>
38   - <constraint firstAttribute="width" constant="80" id="kIC-aJ-75p"/>
39   - </constraints>
40   - </imageView>
41   - </subviews>
42   - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
43   - <constraints>
44   - <constraint firstItem="2J4-Xk-hLV" firstAttribute="centerY" secondItem="rfv-aY-7Su" secondAttribute="centerY" id="CXG-zh-yXU"/>
45   - <constraint firstAttribute="height" constant="186" id="MDO-eR-LT5"/>
46   - <constraint firstItem="hWE-Vs-d0u" firstAttribute="top" secondItem="rfv-aY-7Su" secondAttribute="top" id="MIW-gU-FEh"/>
47   - <constraint firstAttribute="trailing" secondItem="hWE-Vs-d0u" secondAttribute="trailing" id="RiE-Cg-vB6"/>
48   - <constraint firstItem="hWE-Vs-d0u" firstAttribute="width" secondItem="rfv-aY-7Su" secondAttribute="width" multiplier="3:5" id="f3q-An-JLu"/>
49   - <constraint firstItem="hWE-Vs-d0u" firstAttribute="leading" secondItem="2J4-Xk-hLV" secondAttribute="trailing" constant="8" id="h74-K9-uXy"/>
50   - <constraint firstAttribute="bottom" secondItem="hWE-Vs-d0u" secondAttribute="bottom" id="zcB-F0-ox7"/>
51   - </constraints>
52   - </view>
53   - <view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="tqb-X5-ujR" customClass="UIControl">
54   - <rect key="frame" x="0.0" y="186" width="375" height="220"/>
55   - <subviews>
56   - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="eXd-TY-qlW">
57   - <rect key="frame" x="0.0" y="0.0" width="375" height="112"/>
58   - <subviews>
59   - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="EAC-sg-BLE">
60   - <rect key="frame" x="0.0" y="0.0" width="375" height="56"/>
61   - <subviews>
62   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NJW-yg-XQM">
63   - <rect key="frame" x="8" y="55" width="359" height="1"/>
64   - <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
65   - <constraints>
66   - <constraint firstAttribute="height" constant="1" id="GtD-JL-A0z"/>
67   - </constraints>
68   - <fontDescription key="fontDescription" type="system" pointSize="17"/>
69   - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
70   - <nil key="highlightedColor"/>
71   - </label>
72   - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="userId.png" translatesAutoresizingMaskIntoConstraints="NO" id="1xZ-bM-AMz">
73   - <rect key="frame" x="8" y="12.5" width="20" height="31"/>
74   - <constraints>
75   - <constraint firstAttribute="width" constant="20" id="3hd-Sx-hPC"/>
76   - <constraint firstAttribute="width" secondItem="1xZ-bM-AMz" secondAttribute="height" multiplier="9:14" id="DCg-L0-4Lx"/>
77   - </constraints>
78   - </imageView>
79   - <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入账号" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="IzH-dB-I9H">
80   - <rect key="frame" x="36" y="18.5" width="339" height="19"/>
81   - <fontDescription key="fontDescription" type="system" pointSize="13"/>
82   - <textInputTraits key="textInputTraits" keyboardType="numberPad"/>
83   - <connections>
84   - <outlet property="delegate" destination="fvc-9c-Gca" id="l7n-F4-FsF"/>
85   - </connections>
86   - </textField>
87   - </subviews>
88   - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
89   - <constraints>
90   - <constraint firstAttribute="trailing" secondItem="IzH-dB-I9H" secondAttribute="trailing" id="DIX-3U-BQG"/>
91   - <constraint firstAttribute="height" constant="56" id="Ff7-2n-071"/>
92   - <constraint firstItem="IzH-dB-I9H" firstAttribute="leading" secondItem="1xZ-bM-AMz" secondAttribute="trailing" constant="8" id="Mi3-ud-m0O"/>
93   - <constraint firstItem="IzH-dB-I9H" firstAttribute="centerY" secondItem="EAC-sg-BLE" secondAttribute="centerY" id="Ud1-tF-ivz"/>
94   - <constraint firstItem="1xZ-bM-AMz" firstAttribute="leading" secondItem="EAC-sg-BLE" secondAttribute="leading" constant="8" id="Z77-MJ-BF0"/>
95   - <constraint firstAttribute="bottom" secondItem="NJW-yg-XQM" secondAttribute="bottom" id="i3N-yW-fre"/>
96   - <constraint firstAttribute="trailing" secondItem="NJW-yg-XQM" secondAttribute="trailing" constant="8" id="ued-ca-1l3"/>
97   - <constraint firstItem="1xZ-bM-AMz" firstAttribute="centerY" secondItem="EAC-sg-BLE" secondAttribute="centerY" id="xd6-hf-JPu"/>
98   - <constraint firstItem="NJW-yg-XQM" firstAttribute="leading" secondItem="EAC-sg-BLE" secondAttribute="leading" constant="8" id="xlc-R5-T0J"/>
99   - </constraints>
100   - </view>
101   - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xba-Rv-jIe">
102   - <rect key="frame" x="0.0" y="56" width="375" height="56"/>
103   - <subviews>
104   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BcZ-u5-RFA">
105   - <rect key="frame" x="0.0" y="55" width="375" height="1"/>
106   - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
107   - <constraints>
108   - <constraint firstAttribute="height" constant="1" id="aAz-El-TeO"/>
109   - </constraints>
110   - <fontDescription key="fontDescription" type="system" pointSize="17"/>
111   - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
112   - <nil key="highlightedColor"/>
113   - </label>
114   - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="userPassword.png" translatesAutoresizingMaskIntoConstraints="NO" id="oON-zY-4HS">
115   - <rect key="frame" x="8" y="15" width="20" height="26"/>
116   - <constraints>
117   - <constraint firstAttribute="width" secondItem="oON-zY-4HS" secondAttribute="height" multiplier="31:41" id="hSc-3U-3kl"/>
118   - <constraint firstAttribute="width" constant="20" id="vb3-Wd-N14"/>
119   - </constraints>
120   - </imageView>
121   - <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入密码" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="nVn-EA-yWM">
122   - <rect key="frame" x="36" y="18.5" width="339" height="19"/>
123   - <fontDescription key="fontDescription" type="system" pointSize="13"/>
124   - <textInputTraits key="textInputTraits" secureTextEntry="YES"/>
125   - <connections>
126   - <outlet property="delegate" destination="fvc-9c-Gca" id="tMS-9N-o09"/>
127   - </connections>
128   - </textField>
129   - </subviews>
130   - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
131   - <constraints>
132   - <constraint firstItem="oON-zY-4HS" firstAttribute="leading" secondItem="xba-Rv-jIe" secondAttribute="leading" constant="8" id="6sV-zB-qIs"/>
133   - <constraint firstItem="nVn-EA-yWM" firstAttribute="centerY" secondItem="xba-Rv-jIe" secondAttribute="centerY" id="HaD-wa-ZFb"/>
134   - <constraint firstAttribute="trailing" secondItem="BcZ-u5-RFA" secondAttribute="trailing" id="KDU-ei-Izn"/>
135   - <constraint firstItem="nVn-EA-yWM" firstAttribute="leading" secondItem="oON-zY-4HS" secondAttribute="trailing" constant="8" id="LHP-bs-Kee"/>
136   - <constraint firstAttribute="bottom" secondItem="BcZ-u5-RFA" secondAttribute="bottom" id="N41-uo-obj"/>
137   - <constraint firstItem="oON-zY-4HS" firstAttribute="centerY" secondItem="xba-Rv-jIe" secondAttribute="centerY" id="Sf8-w6-WiM"/>
138   - <constraint firstAttribute="trailing" secondItem="nVn-EA-yWM" secondAttribute="trailing" id="UTj-My-xsB"/>
139   - <constraint firstItem="BcZ-u5-RFA" firstAttribute="leading" secondItem="xba-Rv-jIe" secondAttribute="leading" id="gei-H3-PPW"/>
140   - </constraints>
141   - </view>
142   - </subviews>
143   - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
144   - <constraints>
145   - <constraint firstAttribute="trailing" secondItem="xba-Rv-jIe" secondAttribute="trailing" id="0A8-Lv-KWd"/>
146   - <constraint firstAttribute="height" constant="112" id="0mn-L0-Qpr"/>
147   - <constraint firstItem="EAC-sg-BLE" firstAttribute="top" secondItem="eXd-TY-qlW" secondAttribute="top" id="Bsa-ry-Tmn"/>
148   - <constraint firstItem="xba-Rv-jIe" firstAttribute="top" secondItem="EAC-sg-BLE" secondAttribute="bottom" id="OKE-Ch-lJc"/>
149   - <constraint firstAttribute="bottom" secondItem="xba-Rv-jIe" secondAttribute="bottom" id="aCK-P5-ecJ"/>
150   - <constraint firstItem="xba-Rv-jIe" firstAttribute="leading" secondItem="eXd-TY-qlW" secondAttribute="leading" id="aap-4K-zSS"/>
151   - <constraint firstItem="EAC-sg-BLE" firstAttribute="leading" secondItem="eXd-TY-qlW" secondAttribute="leading" id="e0b-LG-hBZ"/>
152   - <constraint firstAttribute="trailing" secondItem="EAC-sg-BLE" secondAttribute="trailing" id="uOA-y7-ZUY"/>
153   - </constraints>
154   - </view>
155   - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Qs2-9k-jbh">
156   - <rect key="frame" x="16" y="134" width="343" height="40"/>
157   - <color key="backgroundColor" red="0.10980392156862745" green="0.63529411764705879" blue="1" alpha="1" colorSpace="calibratedRGB"/>
158   - <constraints>
159   - <constraint firstAttribute="height" constant="40" id="gQn-hn-Wn2"/>
160   - </constraints>
161   - <fontDescription key="fontDescription" type="system" pointSize="15"/>
162   - <state key="normal" title="登录">
163   - <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
164   - </state>
165   - <userDefinedRuntimeAttributes>
166   - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
167   - <integer key="value" value="5"/>
168   - </userDefinedRuntimeAttribute>
169   - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
170   - </userDefinedRuntimeAttributes>
171   - <connections>
172   - <action selector="loginBtnClickAction:" destination="fvc-9c-Gca" eventType="touchUpInside" id="INl-Rf-lsr"/>
173   - </connections>
174   - </button>
175   - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pzO-1N-Vrz">
176   - <rect key="frame" x="16" y="182" width="343" height="30"/>
177   - <subviews>
178   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="设置密码或找回密码" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="v6n-Br-sBy">
179   - <rect key="frame" x="0.0" y="0.0" width="119.5" height="30"/>
180   - <fontDescription key="fontDescription" type="system" pointSize="13"/>
181   - <nil key="highlightedColor"/>
182   - </label>
183   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="注册账号" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7fx-1i-VwW">
184   - <rect key="frame" x="289.5" y="0.0" width="53.5" height="30"/>
185   - <fontDescription key="fontDescription" type="system" pointSize="13"/>
186   - <nil key="highlightedColor"/>
187   - </label>
188   - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ps0-yz-uMV">
189   - <rect key="frame" x="0.0" y="0.0" width="343" height="30"/>
190   - <fontDescription key="fontDescription" type="system" pointSize="13"/>
191   - <state key="normal">
192   - <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
193   - </state>
194   - <connections>
195   - <action selector="registerBtnClickAction:" destination="fvc-9c-Gca" eventType="touchUpInside" id="joQ-gk-ZzE"/>
196   - </connections>
197   - </button>
198   - </subviews>
199   - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
200   - <constraints>
201   - <constraint firstItem="ps0-yz-uMV" firstAttribute="top" secondItem="pzO-1N-Vrz" secondAttribute="top" id="7G1-mO-jQj"/>
202   - <constraint firstAttribute="trailing" secondItem="7fx-1i-VwW" secondAttribute="trailing" id="8ot-xx-BFo"/>
203   - <constraint firstAttribute="bottom" secondItem="7fx-1i-VwW" secondAttribute="bottom" id="Byb-9b-kOd"/>
204   - <constraint firstAttribute="height" constant="30" id="TT4-WL-hYa"/>
205   - <constraint firstItem="7fx-1i-VwW" firstAttribute="top" secondItem="pzO-1N-Vrz" secondAttribute="top" id="VzP-hc-s7a"/>
206   - <constraint firstAttribute="bottom" secondItem="ps0-yz-uMV" secondAttribute="bottom" id="d8H-p3-iy8"/>
207   - <constraint firstAttribute="trailing" secondItem="ps0-yz-uMV" secondAttribute="trailing" id="eo1-LL-5jy"/>
208   - <constraint firstAttribute="bottom" secondItem="v6n-Br-sBy" secondAttribute="bottom" id="gbJ-jU-WFB"/>
209   - <constraint firstItem="v6n-Br-sBy" firstAttribute="top" secondItem="pzO-1N-Vrz" secondAttribute="top" id="hj5-hs-ep4"/>
210   - <constraint firstItem="ps0-yz-uMV" firstAttribute="leading" secondItem="pzO-1N-Vrz" secondAttribute="leading" id="uJt-wq-oTh"/>
211   - <constraint firstItem="v6n-Br-sBy" firstAttribute="leading" secondItem="pzO-1N-Vrz" secondAttribute="leading" id="xdM-JA-UcQ"/>
212   - </constraints>
213   - </view>
214   - </subviews>
215   - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
216   - <constraints>
217   - <constraint firstItem="eXd-TY-qlW" firstAttribute="width" secondItem="tqb-X5-ujR" secondAttribute="width" id="28b-2f-9yl"/>
218   - <constraint firstAttribute="bottom" secondItem="pzO-1N-Vrz" secondAttribute="bottom" constant="8" id="AcS-52-YRY"/>
219   - <constraint firstItem="Qs2-9k-jbh" firstAttribute="leading" secondItem="tqb-X5-ujR" secondAttribute="leading" constant="16" id="EHx-MA-nvQ"/>
220   - <constraint firstAttribute="height" constant="220" id="JHj-W0-zAJ"/>
221   - <constraint firstAttribute="trailing" secondItem="pzO-1N-Vrz" secondAttribute="trailing" constant="16" id="Qnk-VL-hpi"/>
222   - <constraint firstAttribute="trailing" secondItem="Qs2-9k-jbh" secondAttribute="trailing" constant="16" id="SnW-DX-g3F"/>
223   - <constraint firstItem="eXd-TY-qlW" firstAttribute="centerX" secondItem="tqb-X5-ujR" secondAttribute="centerX" id="Yap-fj-Sza"/>
224   - <constraint firstItem="pzO-1N-Vrz" firstAttribute="top" secondItem="Qs2-9k-jbh" secondAttribute="bottom" constant="8" id="YqV-mN-jUi"/>
225   - <constraint firstItem="pzO-1N-Vrz" firstAttribute="leading" secondItem="tqb-X5-ujR" secondAttribute="leading" constant="16" id="fWE-W3-H4P"/>
226   - <constraint firstItem="Qs2-9k-jbh" firstAttribute="centerX" secondItem="tqb-X5-ujR" secondAttribute="centerX" id="icb-A7-CtC"/>
227   - <constraint firstItem="pzO-1N-Vrz" firstAttribute="centerX" secondItem="tqb-X5-ujR" secondAttribute="centerX" id="o6l-Fj-Cb6"/>
228   - <constraint firstItem="eXd-TY-qlW" firstAttribute="top" secondItem="tqb-X5-ujR" secondAttribute="top" id="uPt-SF-Tbq"/>
229   - </constraints>
230   - </view>
231   - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="login_bottom2" translatesAutoresizingMaskIntoConstraints="NO" id="w9T-jY-F3e">
232   - <rect key="frame" x="0.0" y="520" width="375" height="147"/>
233   - <constraints>
234   - <constraint firstAttribute="width" secondItem="w9T-jY-F3e" secondAttribute="height" multiplier="636:249" id="HLo-XG-7PS"/>
235   - </constraints>
236   - </imageView>
237   - </subviews>
238   - <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
239   - <gestureRecognizers/>
240   - <constraints>
241   - <constraint firstAttribute="trailing" secondItem="rfv-aY-7Su" secondAttribute="trailing" id="2JQ-xt-IcS"/>
242   - <constraint firstItem="rfv-aY-7Su" firstAttribute="leading" secondItem="rVC-Df-GKu" secondAttribute="leading" id="CWh-Rw-Pq1"/>
243   - <constraint firstItem="tqb-X5-ujR" firstAttribute="top" secondItem="rfv-aY-7Su" secondAttribute="bottom" id="DID-eg-sFe"/>
244   - <constraint firstAttribute="trailing" secondItem="tqb-X5-ujR" secondAttribute="trailing" id="F9s-LV-2UW"/>
245   - <constraint firstItem="agc-xf-u2B" firstAttribute="top" secondItem="w9T-jY-F3e" secondAttribute="bottom" id="MmO-RE-jQn"/>
246   - <constraint firstItem="tqb-X5-ujR" firstAttribute="top" secondItem="M3F-7t-f1g" secondAttribute="bottom" constant="166" id="Oea-d4-0BB"/>
247   - <constraint firstItem="w9T-jY-F3e" firstAttribute="leading" secondItem="rVC-Df-GKu" secondAttribute="leading" id="mVH-Af-iXP"/>
248   - <constraint firstAttribute="trailing" secondItem="w9T-jY-F3e" secondAttribute="trailing" id="ofZ-WX-PK2"/>
249   - <constraint firstItem="tqb-X5-ujR" firstAttribute="leading" secondItem="rVC-Df-GKu" secondAttribute="leading" id="zlD-w4-YPr"/>
250   - </constraints>
251   - <connections>
252   - <outletCollection property="gestureRecognizers" destination="X5v-TO-Lu5" appends="YES" id="QuA-4X-qlp"/>
253   - </connections>
254   - </view>
255   - <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
256   - <size key="freeformSize" width="375" height="667"/>
257   - <connections>
258   - <outlet property="changeViewTop" destination="Oea-d4-0BB" id="FSX-wE-ENn"/>
259   - <outlet property="passwordTextField" destination="nVn-EA-yWM" id="k8J-rx-Oub"/>
260   - <outlet property="phoneNumberTextField" destination="IzH-dB-I9H" id="7Kd-jZ-pC2"/>
261   - </connections>
262   - </viewController>
263   - <placeholder placeholderIdentifier="IBFirstResponder" id="4gl-mL-off" userLabel="First Responder" sceneMemberID="firstResponder"/>
264   - <tapGestureRecognizer id="X5v-TO-Lu5">
265   - <connections>
266   - <action selector="touchAction:" destination="fvc-9c-Gca" id="oP2-EM-bgW"/>
267   - </connections>
268   - </tapGestureRecognizer>
269   - </objects>
270   - <point key="canvasLocation" x="-528.79999999999995" y="1534.1829085457273"/>
271   - </scene>
272   - <!--注册-->
273   - <scene sceneID="81Y-IJ-Kye">
274   - <objects>
275   - <viewController storyboardIdentifier="RegisterViewControllerVC" id="tCx-JF-YJm" customClass="RegisterViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController">
276   - <layoutGuides>
277   - <viewControllerLayoutGuide type="top" id="o4V-sv-MMh"/>
278   - <viewControllerLayoutGuide type="bottom" id="T9H-hV-piI"/>
279   - </layoutGuides>
280   - <view key="view" contentMode="scaleToFill" id="i7O-Dj-x5S" customClass="UIControl">
281   - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
282   - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
283   - <subviews>
284   - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="403-Gp-RaZ" customClass="UIControl">
285   - <rect key="frame" x="0.0" y="64" width="375" height="168"/>
286   - <subviews>
287   - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="8h8-sS-iJ1">
288   - <rect key="frame" x="138" y="15" width="99" height="99"/>
289   - <subviews>
290   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="上传头像" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="MjO-1h-doT">
291   - <rect key="frame" x="15" y="73" width="69.5" height="20.5"/>
292   - <fontDescription key="fontDescription" type="system" pointSize="17"/>
293   - <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
294   - <nil key="highlightedColor"/>
295   - </label>
296   - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="上传头像.png" translatesAutoresizingMaskIntoConstraints="NO" id="1fC-6m-eDG">
297   - <rect key="frame" x="24.5" y="15" width="50" height="50"/>
298   - <constraints>
299   - <constraint firstAttribute="width" secondItem="1fC-6m-eDG" secondAttribute="height" multiplier="1:1" id="nya-81-raI"/>
300   - <constraint firstAttribute="height" constant="50" id="uJA-jF-kBe"/>
301   - </constraints>
302   - </imageView>
303   - </subviews>
304   - <color key="backgroundColor" red="0.1058823529" green="0.82745098039999998" blue="0.74509803919999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
305   - <gestureRecognizers/>
306   - <constraints>
307   - <constraint firstAttribute="width" secondItem="8h8-sS-iJ1" secondAttribute="height" multiplier="1:1" id="1dO-fX-vcH"/>
308   - <constraint firstItem="1fC-6m-eDG" firstAttribute="top" secondItem="8h8-sS-iJ1" secondAttribute="top" constant="15" id="AZr-hi-5Ga"/>
309   - <constraint firstAttribute="height" constant="99" id="EKP-qi-zdc"/>
310   - <constraint firstAttribute="bottom" secondItem="1fC-6m-eDG" secondAttribute="bottom" constant="8" id="HCk-K2-bD9"/>
311   - <constraint firstItem="MjO-1h-doT" firstAttribute="top" secondItem="1fC-6m-eDG" secondAttribute="bottom" constant="8" id="gDm-wv-uVd"/>
312   - <constraint firstItem="MjO-1h-doT" firstAttribute="centerX" secondItem="8h8-sS-iJ1" secondAttribute="centerX" id="lEb-LK-Ayk"/>
313   - <constraint firstItem="1fC-6m-eDG" firstAttribute="centerX" secondItem="8h8-sS-iJ1" secondAttribute="centerX" id="nF9-Di-ODB"/>
314   - <constraint firstAttribute="bottom" secondItem="MjO-1h-doT" secondAttribute="bottom" constant="16" id="sgC-7Y-LpN"/>
315   - </constraints>
316   - <variation key="default">
317   - <mask key="constraints">
318   - <exclude reference="HCk-K2-bD9"/>
319   - <exclude reference="sgC-7Y-LpN"/>
320   - </mask>
321   - </variation>
322   - <connections>
323   - <outletCollection property="gestureRecognizers" destination="aUf-CI-Y7V" appends="YES" id="6fC-6y-84F"/>
324   - </connections>
325   - </view>
326   - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="HCl-PT-sCJ">
327   - <rect key="frame" x="130.5" y="118" width="114.5" height="30"/>
328   - <subviews>
329   - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="编辑.png" translatesAutoresizingMaskIntoConstraints="NO" id="YJG-jG-Ix8">
330   - <rect key="frame" x="85.5" y="4.5" width="21" height="21"/>
331   - <constraints>
332   - <constraint firstAttribute="width" secondItem="YJG-jG-Ix8" secondAttribute="height" multiplier="1:1" id="nDw-SN-tx9"/>
333   - <constraint firstAttribute="height" constant="21" id="qhY-Et-icJ"/>
334   - </constraints>
335   - </imageView>
336   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="设置昵称" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gj6-hl-Apj">
337   - <rect key="frame" x="8" y="5" width="69.5" height="20.5"/>
338   - <fontDescription key="fontDescription" type="system" pointSize="17"/>
339   - <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
340   - <nil key="highlightedColor"/>
341   - </label>
342   - </subviews>
343   - <color key="backgroundColor" red="0.1058823529" green="0.82745098039999998" blue="0.74509803919999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
344   - <gestureRecognizers/>
345   - <constraints>
346   - <constraint firstItem="YJG-jG-Ix8" firstAttribute="centerY" secondItem="HCl-PT-sCJ" secondAttribute="centerY" id="3WR-sv-c0Q"/>
347   - <constraint firstItem="gj6-hl-Apj" firstAttribute="centerY" secondItem="HCl-PT-sCJ" secondAttribute="centerY" id="Dwp-Af-mLC"/>
348   - <constraint firstItem="YJG-jG-Ix8" firstAttribute="leading" secondItem="gj6-hl-Apj" secondAttribute="trailing" constant="8" id="Yb9-mh-0fe"/>
349   - <constraint firstItem="gj6-hl-Apj" firstAttribute="leading" secondItem="HCl-PT-sCJ" secondAttribute="leading" constant="8" id="kI8-65-C8Y"/>
350   - <constraint firstAttribute="height" constant="30" id="laK-t9-f5W"/>
351   - <constraint firstAttribute="trailing" secondItem="YJG-jG-Ix8" secondAttribute="trailing" constant="8" id="peS-OS-VwR"/>
352   - </constraints>
353   - <connections>
354   - <outletCollection property="gestureRecognizers" destination="hfJ-NM-sst" appends="YES" id="AW1-A1-TlG"/>
355   - </connections>
356   - </view>
357   - </subviews>
358   - <color key="backgroundColor" red="0.1058823529" green="0.82745098039999998" blue="0.74509803919999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
359   - <constraints>
360   - <constraint firstItem="8h8-sS-iJ1" firstAttribute="top" secondItem="403-Gp-RaZ" secondAttribute="top" constant="15" id="2WG-wR-ZQY"/>
361   - <constraint firstItem="HCl-PT-sCJ" firstAttribute="centerX" secondItem="403-Gp-RaZ" secondAttribute="centerX" id="Ctu-87-5Xl"/>
362   - <constraint firstItem="HCl-PT-sCJ" firstAttribute="top" secondItem="8h8-sS-iJ1" secondAttribute="bottom" constant="4" id="GK6-Qh-dBO"/>
363   - <constraint firstItem="HCl-PT-sCJ" firstAttribute="top" secondItem="8h8-sS-iJ1" secondAttribute="bottom" constant="8" id="QPI-Mk-b8n"/>
364   - <constraint firstAttribute="height" constant="168" id="yi6-JV-ObE"/>
365   - <constraint firstItem="8h8-sS-iJ1" firstAttribute="centerX" secondItem="403-Gp-RaZ" secondAttribute="centerX" id="yrY-zt-nHi"/>
366   - </constraints>
367   - <variation key="default">
368   - <mask key="constraints">
369   - <exclude reference="QPI-Mk-b8n"/>
370   - </mask>
371   - </variation>
372   - </view>
373   - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xNc-I3-UL6">
374   - <rect key="frame" x="0.0" y="64" width="375" height="168"/>
375   - <subviews>
376   - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1Cp-hz-9O4">
377   - <rect key="frame" x="0.0" y="0.0" width="375" height="56"/>
378   - <subviews>
379   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="o5G-fF-wVL">
380   - <rect key="frame" x="0.0" y="55" width="375" height="1"/>
381   - <color key="backgroundColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
382   - <constraints>
383   - <constraint firstAttribute="height" constant="1" id="lXH-lx-MSn"/>
384   - </constraints>
385   - <fontDescription key="fontDescription" type="system" pointSize="17"/>
386   - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
387   - <nil key="highlightedColor"/>
388   - </label>
389   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="昵称" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="O8o-oN-LAH">
390   - <rect key="frame" x="8" y="19" width="73" height="18"/>
391   - <constraints>
392   - <constraint firstAttribute="width" constant="73" id="bAz-Uv-bTd"/>
393   - </constraints>
394   - <fontDescription key="fontDescription" type="system" pointSize="15"/>
395   - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
396   - <nil key="highlightedColor"/>
397   - </label>
398   - <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入昵称 " minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="q7i-9n-2oP">
399   - <rect key="frame" x="89" y="18.5" width="278" height="19"/>
400   - <fontDescription key="fontDescription" type="system" pointSize="15"/>
401   - <textInputTraits key="textInputTraits" returnKeyType="done"/>
402   - <connections>
403   - <outlet property="delegate" destination="tCx-JF-YJm" id="kUP-Zt-NU9"/>
404   - </connections>
405   - </textField>
406   - </subviews>
407   - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
408   - <constraints>
409   - <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="56" id="Ctl-Pt-CPh"/>
410   - <constraint firstItem="o5G-fF-wVL" firstAttribute="leading" secondItem="1Cp-hz-9O4" secondAttribute="leading" id="RLm-KI-JX6"/>
411   - <constraint firstAttribute="height" constant="56" id="UfT-BQ-siu"/>
412   - <constraint firstItem="O8o-oN-LAH" firstAttribute="leading" secondItem="1Cp-hz-9O4" secondAttribute="leading" constant="8" id="XGD-rw-eCb"/>
413   - <constraint firstAttribute="trailing" secondItem="q7i-9n-2oP" secondAttribute="trailing" constant="8" id="YdO-o5-5VF"/>
414   - <constraint firstAttribute="bottom" secondItem="o5G-fF-wVL" secondAttribute="bottom" id="f6j-pG-Rae"/>
415   - <constraint firstItem="q7i-9n-2oP" firstAttribute="centerY" secondItem="1Cp-hz-9O4" secondAttribute="centerY" id="fKp-1x-vbL"/>
416   - <constraint firstItem="q7i-9n-2oP" firstAttribute="leading" secondItem="O8o-oN-LAH" secondAttribute="trailing" constant="8" id="gEm-U9-rh0"/>
417   - <constraint firstItem="O8o-oN-LAH" firstAttribute="centerY" secondItem="1Cp-hz-9O4" secondAttribute="centerY" id="t0o-1a-As6"/>
418   - <constraint firstAttribute="trailing" secondItem="o5G-fF-wVL" secondAttribute="trailing" id="wvf-Cp-571"/>
419   - </constraints>
420   - </view>
421   - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="keu-Ke-SrA">
422   - <rect key="frame" x="0.0" y="56" width="375" height="56"/>
423   - <subviews>
424   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Hwy-QV-ob8">
425   - <rect key="frame" x="0.0" y="55" width="375" height="1"/>
426   - <color key="backgroundColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
427   - <constraints>
428   - <constraint firstAttribute="height" constant="1" id="1bP-ob-qdI"/>
429   - </constraints>
430   - <fontDescription key="fontDescription" type="system" pointSize="17"/>
431   - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
432   - <nil key="highlightedColor"/>
433   - </label>
434   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="密码" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xBV-ds-Ub9">
435   - <rect key="frame" x="8" y="19" width="73" height="18"/>
436   - <constraints>
437   - <constraint firstAttribute="width" constant="73" id="SAa-QZ-uJF"/>
438   - </constraints>
439   - <fontDescription key="fontDescription" type="system" pointSize="15"/>
440   - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
441   - <nil key="highlightedColor"/>
442   - </label>
443   - <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入密码" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="i3R-4H-gzp">
444   - <rect key="frame" x="89" y="18.5" width="278" height="19"/>
445   - <fontDescription key="fontDescription" type="system" pointSize="15"/>
446   - <textInputTraits key="textInputTraits" keyboardType="alphabet" returnKeyType="done"/>
447   - <connections>
448   - <outlet property="delegate" destination="tCx-JF-YJm" id="Awg-pn-DAx"/>
449   - </connections>
450   - </textField>
451   - </subviews>
452   - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
453   - <constraints>
454   - <constraint firstAttribute="bottom" secondItem="Hwy-QV-ob8" secondAttribute="bottom" id="Cf7-PL-DRi"/>
455   - <constraint firstItem="xBV-ds-Ub9" firstAttribute="leading" secondItem="keu-Ke-SrA" secondAttribute="leading" constant="8" id="F8L-Q3-KCF"/>
456   - <constraint firstAttribute="trailing" secondItem="i3R-4H-gzp" secondAttribute="trailing" constant="8" id="XnD-Fb-exn"/>
457   - <constraint firstAttribute="trailing" secondItem="Hwy-QV-ob8" secondAttribute="trailing" id="cUW-Va-u0h"/>
458   - <constraint firstItem="i3R-4H-gzp" firstAttribute="leading" secondItem="xBV-ds-Ub9" secondAttribute="trailing" constant="8" id="cZ8-V2-oKV"/>
459   - <constraint firstAttribute="height" constant="56" id="it2-lJ-vPD"/>
460   - <constraint firstItem="i3R-4H-gzp" firstAttribute="centerY" secondItem="keu-Ke-SrA" secondAttribute="centerY" id="j86-kg-M0P"/>
461   - <constraint firstItem="xBV-ds-Ub9" firstAttribute="centerY" secondItem="keu-Ke-SrA" secondAttribute="centerY" id="lQ9-Xe-gvX"/>
462   - <constraint firstItem="Hwy-QV-ob8" firstAttribute="leading" secondItem="keu-Ke-SrA" secondAttribute="leading" id="ws3-Zb-SqH"/>
463   - </constraints>
464   - </view>
465   - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="cnM-5P-fhN">
466   - <rect key="frame" x="0.0" y="112" width="375" height="56"/>
467   - <subviews>
468   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7YJ-fu-e63">
469   - <rect key="frame" x="0.0" y="55" width="375" height="1"/>
470   - <color key="backgroundColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
471   - <constraints>
472   - <constraint firstAttribute="height" constant="1" id="Ypb-br-LFg"/>
473   - </constraints>
474   - <fontDescription key="fontDescription" type="system" pointSize="17"/>
475   - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
476   - <nil key="highlightedColor"/>
477   - </label>
478   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="确认密码" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xtu-Lb-h46">
479   - <rect key="frame" x="8" y="19" width="73" height="18"/>
480   - <constraints>
481   - <constraint firstAttribute="width" constant="73" id="A5Z-hk-VeN"/>
482   - </constraints>
483   - <fontDescription key="fontDescription" type="system" pointSize="15"/>
484   - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
485   - <nil key="highlightedColor"/>
486   - </label>
487   - <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请确认密码" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="4Ko-iM-kKY">
488   - <rect key="frame" x="89" y="18.5" width="278" height="19"/>
489   - <fontDescription key="fontDescription" type="system" pointSize="15"/>
490   - <textInputTraits key="textInputTraits" keyboardType="alphabet" returnKeyType="done"/>
491   - <connections>
492   - <outlet property="delegate" destination="tCx-JF-YJm" id="kVV-m8-92v"/>
493   - </connections>
494   - </textField>
495   - </subviews>
496   - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
497   - <constraints>
498   - <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="56" id="48F-9G-Fge"/>
499   - <constraint firstAttribute="trailing" secondItem="4Ko-iM-kKY" secondAttribute="trailing" constant="8" id="4fh-zG-9vl"/>
500   - <constraint firstAttribute="bottom" secondItem="7YJ-fu-e63" secondAttribute="bottom" id="9wD-aU-bMP"/>
501   - <constraint firstAttribute="trailing" secondItem="7YJ-fu-e63" secondAttribute="trailing" id="EjA-4T-fxE"/>
502   - <constraint firstItem="xtu-Lb-h46" firstAttribute="centerY" secondItem="cnM-5P-fhN" secondAttribute="centerY" id="HSA-Ou-onT"/>
503   - <constraint firstItem="4Ko-iM-kKY" firstAttribute="leading" secondItem="xtu-Lb-h46" secondAttribute="trailing" constant="8" id="aYk-72-GQD"/>
504   - <constraint firstItem="xtu-Lb-h46" firstAttribute="leading" secondItem="cnM-5P-fhN" secondAttribute="leading" constant="8" id="kbK-3X-65q"/>
505   - <constraint firstItem="7YJ-fu-e63" firstAttribute="leading" secondItem="cnM-5P-fhN" secondAttribute="leading" id="rhc-YS-Jug"/>
506   - <constraint firstAttribute="height" constant="56" id="ucM-EP-0Bc"/>
507   - <constraint firstItem="4Ko-iM-kKY" firstAttribute="centerY" secondItem="cnM-5P-fhN" secondAttribute="centerY" id="wja-1l-Xos"/>
508   - </constraints>
509   - </view>
510   - </subviews>
511   - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
512   - <constraints>
513   - <constraint firstItem="keu-Ke-SrA" firstAttribute="top" secondItem="1Cp-hz-9O4" secondAttribute="bottom" id="Pee-iB-XUj"/>
514   - <constraint firstItem="cnM-5P-fhN" firstAttribute="leading" secondItem="xNc-I3-UL6" secondAttribute="leading" id="R9s-jK-AYa"/>
515   - <constraint firstAttribute="trailing" secondItem="1Cp-hz-9O4" secondAttribute="trailing" id="Rib-CM-97d"/>
516   - <constraint firstAttribute="height" constant="168" id="SWN-6C-I6R"/>
517   - <constraint firstAttribute="trailing" secondItem="cnM-5P-fhN" secondAttribute="trailing" id="U6d-yM-lM8"/>
518   - <constraint firstItem="1Cp-hz-9O4" firstAttribute="top" secondItem="xNc-I3-UL6" secondAttribute="top" id="elW-dc-FcY"/>
519   - <constraint firstItem="keu-Ke-SrA" firstAttribute="leading" secondItem="xNc-I3-UL6" secondAttribute="leading" id="gcJ-t2-OJH"/>
520   - <constraint firstItem="cnM-5P-fhN" firstAttribute="top" secondItem="keu-Ke-SrA" secondAttribute="bottom" id="hnn-cd-Hsj"/>
521   - <constraint firstAttribute="bottom" secondItem="cnM-5P-fhN" secondAttribute="bottom" id="k46-eB-0tn"/>
522   - <constraint firstAttribute="trailing" secondItem="keu-Ke-SrA" secondAttribute="trailing" id="lAV-sR-cpV"/>
523   - <constraint firstItem="1Cp-hz-9O4" firstAttribute="leading" secondItem="xNc-I3-UL6" secondAttribute="leading" id="o9e-5H-Do7"/>
524   - </constraints>
525   - </view>
526   - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="rSF-LZ-Bnl">
527   - <rect key="frame" x="0.0" y="232" width="375" height="112"/>
528   - <subviews>
529   - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="vkP-pb-ydp">
530   - <rect key="frame" x="0.0" y="0.0" width="375" height="56"/>
531   - <subviews>
532   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="MEf-rE-fBh">
533   - <rect key="frame" x="0.0" y="55" width="375" height="1"/>
534   - <color key="backgroundColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
535   - <constraints>
536   - <constraint firstAttribute="height" constant="1" id="cle-RJ-6tm"/>
537   - </constraints>
538   - <fontDescription key="fontDescription" type="system" pointSize="17"/>
539   - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
540   - <nil key="highlightedColor"/>
541   - </label>
542   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="+86" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ae8-Wz-CYH">
543   - <rect key="frame" x="8" y="19" width="73" height="18"/>
544   - <constraints>
545   - <constraint firstAttribute="width" constant="73" id="gFs-fM-1Vg"/>
546   - </constraints>
547   - <fontDescription key="fontDescription" type="system" pointSize="15"/>
548   - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
549   - <nil key="highlightedColor"/>
550   - </label>
551   - <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入手机号码 " minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="nVJ-81-bXY">
552   - <rect key="frame" x="89" y="19" width="177" height="19"/>
553   - <fontDescription key="fontDescription" type="system" pointSize="15"/>
554   - <textInputTraits key="textInputTraits" keyboardType="numberPad" returnKeyType="done"/>
555   - <connections>
556   - <outlet property="delegate" destination="tCx-JF-YJm" id="xWv-of-0Wb"/>
557   - </connections>
558   - </textField>
559   - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="hwv-0n-dsf">
560   - <rect key="frame" x="274" y="13" width="93" height="30"/>
561   - <color key="backgroundColor" red="0.10980392160000001" green="0.63529411759999999" blue="1" alpha="1" colorSpace="calibratedRGB"/>
562   - <constraints>
563   - <constraint firstAttribute="width" constant="93" id="tn3-0t-fnt"/>
564   - </constraints>
565   - <fontDescription key="fontDescription" type="system" pointSize="15"/>
566   - <state key="normal" title=" 发送验证码 ">
567   - <color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
568   - </state>
569   - <userDefinedRuntimeAttributes>
570   - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
571   - <integer key="value" value="15"/>
572   - </userDefinedRuntimeAttribute>
573   - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
574   - </userDefinedRuntimeAttributes>
575   - <connections>
576   - <action selector="sendVerificationCodeClickAction:" destination="tCx-JF-YJm" eventType="touchUpInside" id="Agj-2K-dbp"/>
577   - </connections>
578   - </button>
579   - </subviews>
580   - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
581   - <constraints>
582   - <constraint firstItem="MEf-rE-fBh" firstAttribute="leading" secondItem="vkP-pb-ydp" secondAttribute="leading" id="2A5-sj-MgA"/>
583   - <constraint firstItem="ae8-Wz-CYH" firstAttribute="centerY" secondItem="vkP-pb-ydp" secondAttribute="centerY" id="Dfi-Pp-DOa"/>
584   - <constraint firstItem="nVJ-81-bXY" firstAttribute="centerY" secondItem="vkP-pb-ydp" secondAttribute="centerY" id="Q9B-BF-wWO"/>
585   - <constraint firstAttribute="height" constant="56" id="d5e-TR-xj8"/>
586   - <constraint firstItem="ae8-Wz-CYH" firstAttribute="leading" secondItem="vkP-pb-ydp" secondAttribute="leading" constant="8" id="fAZ-jT-eye"/>
587   - <constraint firstAttribute="trailing" secondItem="hwv-0n-dsf" secondAttribute="trailing" constant="8" id="jCe-9b-HiL"/>
588   - <constraint firstItem="hwv-0n-dsf" firstAttribute="centerY" secondItem="vkP-pb-ydp" secondAttribute="centerY" id="mgL-oA-0oG"/>
589   - <constraint firstAttribute="trailing" secondItem="MEf-rE-fBh" secondAttribute="trailing" id="nEG-6h-NXY"/>
590   - <constraint firstItem="hwv-0n-dsf" firstAttribute="leading" secondItem="nVJ-81-bXY" secondAttribute="trailing" constant="8" id="u7R-Pm-UM9"/>
591   - <constraint firstAttribute="bottom" secondItem="MEf-rE-fBh" secondAttribute="bottom" id="y9Q-1X-3wy"/>
592   - <constraint firstItem="nVJ-81-bXY" firstAttribute="leading" secondItem="ae8-Wz-CYH" secondAttribute="trailing" constant="8" id="zxS-jB-eC8"/>
593   - </constraints>
594   - </view>
595   - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="IlU-p3-aLY">
596   - <rect key="frame" x="0.0" y="56" width="375" height="56"/>
597   - <subviews>
598   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="SOB-G4-Kln">
599   - <rect key="frame" x="0.0" y="55" width="375" height="1"/>
600   - <color key="backgroundColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
601   - <constraints>
602   - <constraint firstAttribute="height" constant="1" id="3yq-4f-vDW"/>
603   - </constraints>
604   - <fontDescription key="fontDescription" type="system" pointSize="17"/>
605   - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
606   - <nil key="highlightedColor"/>
607   - </label>
608   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="验证码" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="KmI-sz-jsA">
609   - <rect key="frame" x="8" y="19" width="73" height="18"/>
610   - <constraints>
611   - <constraint firstAttribute="width" constant="73" id="ngh-2s-quJ"/>
612   - </constraints>
613   - <fontDescription key="fontDescription" type="system" pointSize="15"/>
614   - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
615   - <nil key="highlightedColor"/>
616   - </label>
617   - <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入验证码" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="GHW-G9-uIT">
618   - <rect key="frame" x="89" y="18.5" width="278" height="19"/>
619   - <fontDescription key="fontDescription" type="system" pointSize="15"/>
620   - <textInputTraits key="textInputTraits" keyboardType="numberPad" returnKeyType="done"/>
621   - <connections>
622   - <outlet property="delegate" destination="tCx-JF-YJm" id="deX-i0-lZv"/>
623   - </connections>
624   - </textField>
625   - </subviews>
626   - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
627   - <constraints>
628   - <constraint firstItem="SOB-G4-Kln" firstAttribute="leading" secondItem="IlU-p3-aLY" secondAttribute="leading" id="Bpm-Op-035"/>
629   - <constraint firstAttribute="bottom" secondItem="SOB-G4-Kln" secondAttribute="bottom" id="KjW-FI-dyR"/>
630   - <constraint firstItem="GHW-G9-uIT" firstAttribute="leading" secondItem="KmI-sz-jsA" secondAttribute="trailing" constant="8" id="NWt-4e-GXU"/>
631   - <constraint firstAttribute="height" constant="56" id="QZA-UG-aso"/>
632   - <constraint firstItem="GHW-G9-uIT" firstAttribute="centerY" secondItem="IlU-p3-aLY" secondAttribute="centerY" id="SGD-Xp-h5t"/>
633   - <constraint firstAttribute="trailing" secondItem="SOB-G4-Kln" secondAttribute="trailing" id="ZSY-bN-JsM"/>
634   - <constraint firstItem="KmI-sz-jsA" firstAttribute="centerY" secondItem="IlU-p3-aLY" secondAttribute="centerY" id="dtC-at-TCi"/>
635   - <constraint firstItem="KmI-sz-jsA" firstAttribute="leading" secondItem="IlU-p3-aLY" secondAttribute="leading" constant="8" id="e2w-KQ-6sS"/>
636   - <constraint firstAttribute="trailing" secondItem="GHW-G9-uIT" secondAttribute="trailing" constant="8" id="y7F-Ik-Roe"/>
637   - </constraints>
638   - </view>
639   - </subviews>
640   - <color key="backgroundColor" red="1" green="0.42445692709999999" blue="0.35047448450000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
641   - <constraints>
642   - <constraint firstAttribute="trailing" secondItem="IlU-p3-aLY" secondAttribute="trailing" id="4ga-Jf-7Ee"/>
643   - <constraint firstAttribute="height" constant="112" id="7NK-ZN-nyz"/>
644   - <constraint firstItem="vkP-pb-ydp" firstAttribute="leading" secondItem="rSF-LZ-Bnl" secondAttribute="leading" id="84d-gX-XI3"/>
645   - <constraint firstItem="IlU-p3-aLY" firstAttribute="top" secondItem="vkP-pb-ydp" secondAttribute="bottom" id="AEt-bb-mHP"/>
646   - <constraint firstItem="IlU-p3-aLY" firstAttribute="leading" secondItem="rSF-LZ-Bnl" secondAttribute="leading" id="OBc-tM-vGz"/>
647   - <constraint firstItem="vkP-pb-ydp" firstAttribute="top" secondItem="rSF-LZ-Bnl" secondAttribute="top" id="Ppf-3Y-BG7"/>
648   - <constraint firstAttribute="trailing" secondItem="vkP-pb-ydp" secondAttribute="trailing" id="Ygd-yH-f2B"/>
649   - <constraint firstAttribute="bottom" secondItem="IlU-p3-aLY" secondAttribute="bottom" id="cjh-Sk-yPh"/>
650   - </constraints>
651   - </view>
652   - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="R1Y-16-Th7">
653   - <rect key="frame" x="62.5" y="444" width="250" height="40"/>
654   - <color key="backgroundColor" red="0.10980392160000001" green="0.63529411759999999" blue="1" alpha="1" colorSpace="calibratedRGB"/>
655   - <constraints>
656   - <constraint firstAttribute="height" constant="40" id="Kvn-w3-Juc"/>
657   - </constraints>
658   - <fontDescription key="fontDescription" type="system" pointSize="15"/>
659   - <state key="normal" title="注册">
660   - <color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
661   - </state>
662   - <userDefinedRuntimeAttributes>
663   - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
664   - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
665   - <integer key="value" value="5"/>
666   - </userDefinedRuntimeAttribute>
667   - </userDefinedRuntimeAttributes>
668   - <connections>
669   - <action selector="registerBtnAction:" destination="tCx-JF-YJm" eventType="touchUpInside" id="pSt-yE-eTL"/>
670   - </connections>
671   - </button>
672   - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="DJH-vy-tj1">
673   - <rect key="frame" x="325" y="359" width="35" height="30"/>
674   - <fontDescription key="fontDescription" type="system" pointSize="15"/>
675   - <state key="normal" title="登 录">
676   - <color key="titleColor" red="0.10980392160000001" green="0.63529411759999999" blue="1" alpha="1" colorSpace="calibratedRGB"/>
677   - </state>
678   - <connections>
679   - <action selector="loginBtnClickAction:" destination="tCx-JF-YJm" eventType="touchUpInside" id="KlD-u3-W3P"/>
680   - </connections>
681   - </button>
682   - </subviews>
683   - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
684   - <gestureRecognizers/>
685   - <constraints>
686   - <constraint firstItem="R1Y-16-Th7" firstAttribute="top" secondItem="rSF-LZ-Bnl" secondAttribute="bottom" constant="100" id="2qf-Db-EkQ"/>
687   - <constraint firstItem="403-Gp-RaZ" firstAttribute="top" secondItem="o4V-sv-MMh" secondAttribute="bottom" id="3fC-Wg-KMc"/>
688   - <constraint firstItem="xNc-I3-UL6" firstAttribute="top" secondItem="o4V-sv-MMh" secondAttribute="bottom" id="4fl-gQ-WZe"/>
689   - <constraint firstAttribute="trailing" secondItem="rSF-LZ-Bnl" secondAttribute="trailing" id="9jK-fu-KKs"/>
690   - <constraint firstItem="rSF-LZ-Bnl" firstAttribute="leading" secondItem="i7O-Dj-x5S" secondAttribute="leading" id="OoN-NJ-ZEk"/>
691   - <constraint firstAttribute="trailing" secondItem="DJH-vy-tj1" secondAttribute="trailing" constant="15" id="ZYR-Wd-fZz"/>
692   - <constraint firstAttribute="trailing" secondItem="xNc-I3-UL6" secondAttribute="trailing" id="eo3-7l-3Ju"/>
693   - <constraint firstAttribute="trailing" secondItem="403-Gp-RaZ" secondAttribute="trailing" id="fOh-GD-xiW"/>
694   - <constraint firstItem="R1Y-16-Th7" firstAttribute="centerX" secondItem="i7O-Dj-x5S" secondAttribute="centerX" id="kcC-PE-Lwx"/>
695   - <constraint firstItem="DJH-vy-tj1" firstAttribute="top" secondItem="rSF-LZ-Bnl" secondAttribute="bottom" constant="15" id="lBh-92-VTX"/>
696   - <constraint firstItem="R1Y-16-Th7" firstAttribute="width" secondItem="i7O-Dj-x5S" secondAttribute="width" multiplier="2:3" id="pCE-Ek-rOS"/>
697   - <constraint firstItem="403-Gp-RaZ" firstAttribute="leading" secondItem="i7O-Dj-x5S" secondAttribute="leading" id="stz-Fg-4Iv"/>
698   - <constraint firstItem="rSF-LZ-Bnl" firstAttribute="top" secondItem="xNc-I3-UL6" secondAttribute="bottom" id="wPx-ce-6he"/>
699   - <constraint firstItem="xNc-I3-UL6" firstAttribute="leading" secondItem="i7O-Dj-x5S" secondAttribute="leading" id="x7N-Bs-2t1"/>
700   - </constraints>
701   - <connections>
702   - <outletCollection property="gestureRecognizers" destination="ZEf-mm-u9e" appends="YES" id="Gmm-Kb-eQb"/>
703   - </connections>
704   - </view>
705   - <navigationItem key="navigationItem" title="注册" id="VWP-v7-Qoc">
706   - <barButtonItem key="rightBarButtonItem" title="取消" id="Okk-g0-Rwk">
707   - <connections>
708   - <action selector="cancleAction:" destination="tCx-JF-YJm" id="ypG-ks-rG6"/>
709   - </connections>
710   - </barButtonItem>
711   - </navigationItem>
712   - <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
713   - <size key="freeformSize" width="375" height="667"/>
714   - <connections>
715   - <outlet property="confirmPasswordTextField" destination="4Ko-iM-kKY" id="Mwh-Ik-lD3"/>
716   - <outlet property="inputVerificationCode" destination="GHW-G9-uIT" id="W2X-QF-3qb"/>
717   - <outlet property="nickNameLabel" destination="gj6-hl-Apj" id="chL-uV-xBk"/>
718   - <outlet property="nikeNameTextFiled" destination="q7i-9n-2oP" id="DME-KX-Y6Y"/>
719   - <outlet property="passwordTextField" destination="i3R-4H-gzp" id="qTl-bd-eRR"/>
720   - <outlet property="phoneNumber" destination="nVJ-81-bXY" id="24J-2q-PGO"/>
721   - <outlet property="registerBtn" destination="R1Y-16-Th7" id="ccz-JJ-Zfd"/>
722   - <outlet property="sendPhotoImage" destination="1fC-6m-eDG" id="xoB-Hr-23D"/>
723   - <outlet property="sendVerificationCode" destination="hwv-0n-dsf" id="5zD-Jx-K5j"/>
724   - </connections>
725   - </viewController>
726   - <placeholder placeholderIdentifier="IBFirstResponder" id="Fzg-cR-i34" userLabel="First Responder" sceneMemberID="firstResponder"/>
727   - <tapGestureRecognizer id="hfJ-NM-sst">
728   - <connections>
729   - <action selector="nickNameSetTapAction:" destination="tCx-JF-YJm" id="OeS-RA-5JC"/>
730   - </connections>
731   - </tapGestureRecognizer>
732   - <tapGestureRecognizer id="aUf-CI-Y7V">
733   - <connections>
734   - <action selector="sendPhotoImageTapAction:" destination="tCx-JF-YJm" id="eAT-uh-KLY"/>
735   - </connections>
736   - </tapGestureRecognizer>
737   - <tapGestureRecognizer id="ZEf-mm-u9e">
738   - <connections>
739   - <action selector="touchAction:" destination="tCx-JF-YJm" id="1ww-Nt-fgk"/>
740   - </connections>
741   - </tapGestureRecognizer>
742   - </objects>
743   - <point key="canvasLocation" x="-1447.2" y="1532.3838080959522"/>
744   - </scene>
745   - <!--注册-->
746   - <scene sceneID="fjB-PO-uzD">
747   - <objects>
748   - <navigationController storyboardIdentifier="RegisterViewControllerNV" title="注册" automaticallyAdjustsScrollViewInsets="NO" id="smK-XQ-zjA" sceneMemberID="viewController">
749   - <toolbarItems/>
750   - <navigationBar key="navigationBar" contentMode="scaleToFill" id="rky-2y-rJV">
751   - <rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
752   - <autoresizingMask key="autoresizingMask"/>
753   - </navigationBar>
754   - <nil name="viewControllers"/>
755   - <connections>
756   - <segue destination="tCx-JF-YJm" kind="relationship" relationship="rootViewController" id="74u-7e-5ID"/>
757   - </connections>
758   - </navigationController>
759   - <placeholder placeholderIdentifier="IBFirstResponder" id="7iS-XR-Acb" userLabel="First Responder" sceneMemberID="firstResponder"/>
760   - </objects>
761   - <point key="canvasLocation" x="-2162.4000000000001" y="1533.2833583208396"/>
762   - </scene>
763   - </scenes>
764   - <resources>
765   - <image name="icon" width="512" height="512"/>
766   - <image name="login_bottom2" width="318" height="124"/>
767   - <image name="userId.png" width="36" height="56"/>
768   - <image name="userPassword.png" width="31" height="41"/>
769   - <image name="上传头像.png" width="70" height="70"/>
770   - <image name="编辑.png" width="35" height="31"/>
771   - </resources>
772   -</document>
YouerLiveVideo/YouerLiveVideo/controllers/User/UserEditViewController.swift
... ... @@ -179,9 +179,8 @@ extension UserEditViewController:UITableViewDelegate,UITableViewDataSource{
179 179 let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! UserEditCell
180 180 cell.titleName.text = titleArr[indexPath.row-1]
181 181 cell.name.text = contentArr[indexPath.row-1]
182   - if indexPath.row == 0{
  182 + if indexPath.row == 1{
183 183 cell.changeBtn.isHidden = false
184   - cell.changeBtn.tag = indexPath.row+100
185 184 }
186 185 return cell
187 186 }
... ...
YouerLiveVideo/YouerLiveVideo/controllers/User/UserViewController.swift
... ... @@ -25,6 +25,7 @@ class UserViewController: UIViewController {
25 25 self.navigationItem.rightBarButtonItem = UIBarButtonItem(image: #imageLiteral(resourceName: "icon_setting"), style: .plain, target: self, action: #selector(UserViewController.editBtnClick))
26 26 self.automaticallyAdjustsScrollViewInsets = false
27 27 setUserInfor()
  28 + NotificationCenter.default.addObserver(self, selector: #selector(UserViewController.setUserInfor), name: NSNotification.Name(rawValue: "refreshFirstVC"), object: nil)
28 29 // Do any additional setup after loading the view.
29 30 }
30 31  
... ...