Commit 7b40e2617ead9d5723269c0ba3faab27bf60d994

Authored by 左丞
1 parent 5e82f595
Exists in newLive

no message

YouerLiveVideo/YouerLiveVideo.xcodeproj/project.pbxproj
@@ -180,7 +180,7 @@ @@ -180,7 +180,7 @@
180 BFBB83E31ECC445D008B404B /* User.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = BFBB83D91ECC445D008B404B /* User.storyboard */; }; 180 BFBB83E31ECC445D008B404B /* User.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = BFBB83D91ECC445D008B404B /* User.storyboard */; };
181 BFBB83E61ECC445D008B404B /* LoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83DD1ECC445D008B404B /* LoginViewController.swift */; }; 181 BFBB83E61ECC445D008B404B /* LoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83DD1ECC445D008B404B /* LoginViewController.swift */; };
182 BFBB83E91ECC445D008B404B /* RegisterViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83E01ECC445D008B404B /* RegisterViewController.swift */; }; 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 BFBB83EB1ECC445D008B404B /* UserViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83E21ECC445D008B404B /* UserViewController.swift */; }; 184 BFBB83EB1ECC445D008B404B /* UserViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83E21ECC445D008B404B /* UserViewController.swift */; };
185 BFC076781E3445F3008BAC79 /* DownLoad.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFC076771E3445F3008BAC79 /* DownLoad.swift */; }; 185 BFC076781E3445F3008BAC79 /* DownLoad.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFC076771E3445F3008BAC79 /* DownLoad.swift */; };
186 BFDA8F331DDE88ED00F0C4E4 /* XSTLiveManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFDA8F321DDE88ED00F0C4E4 /* XSTLiveManager.swift */; }; 186 BFDA8F331DDE88ED00F0C4E4 /* XSTLiveManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFDA8F321DDE88ED00F0C4E4 /* XSTLiveManager.swift */; };
@@ -533,7 +533,7 @@ @@ -533,7 +533,7 @@
533 BFBB83D91ECC445D008B404B /* User.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = User.storyboard; sourceTree = "<group>"; }; 533 BFBB83D91ECC445D008B404B /* User.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = User.storyboard; sourceTree = "<group>"; };
534 BFBB83DD1ECC445D008B404B /* LoginViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginViewController.swift; sourceTree = "<group>"; }; 534 BFBB83DD1ECC445D008B404B /* LoginViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginViewController.swift; sourceTree = "<group>"; };
535 BFBB83E01ECC445D008B404B /* RegisterViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RegisterViewController.swift; sourceTree = "<group>"; }; 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 BFBB83E21ECC445D008B404B /* UserViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserViewController.swift; sourceTree = "<group>"; }; 537 BFBB83E21ECC445D008B404B /* UserViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserViewController.swift; sourceTree = "<group>"; };
538 BFC076771E3445F3008BAC79 /* DownLoad.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DownLoad.swift; sourceTree = "<group>"; }; 538 BFC076771E3445F3008BAC79 /* DownLoad.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DownLoad.swift; sourceTree = "<group>"; };
539 BFDA8F321DDE88ED00F0C4E4 /* XSTLiveManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XSTLiveManager.swift; sourceTree = "<group>"; }; 539 BFDA8F321DDE88ED00F0C4E4 /* XSTLiveManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XSTLiveManager.swift; sourceTree = "<group>"; };
@@ -1225,7 +1225,7 @@ @@ -1225,7 +1225,7 @@
1225 children = ( 1225 children = (
1226 BFBB83DD1ECC445D008B404B /* LoginViewController.swift */, 1226 BFBB83DD1ECC445D008B404B /* LoginViewController.swift */,
1227 BFBB83E01ECC445D008B404B /* RegisterViewController.swift */, 1227 BFBB83E01ECC445D008B404B /* RegisterViewController.swift */,
1228 - BFBB83E11ECC445D008B404B /* User.storyboard */, 1228 + BFBB83E11ECC445D008B404B /* Login.storyboard */,
1229 ); 1229 );
1230 path = UserCenter; 1230 path = UserCenter;
1231 sourceTree = "<group>"; 1231 sourceTree = "<group>";
@@ -1460,7 +1460,7 @@ @@ -1460,7 +1460,7 @@
1460 BF25DFE51DDAA36A003EC0C1 /* Info-tvOS.plist in Resources */, 1460 BF25DFE51DDAA36A003EC0C1 /* Info-tvOS.plist in Resources */,
1461 BF6977881E2DC264006FA934 /* 我的关注.png in Resources */, 1461 BF6977881E2DC264006FA934 /* 我的关注.png in Resources */,
1462 599B2CD51DE52F7E00B4F7FD /* TencentOpenApi_IOS_Bundle.bundle in Resources */, 1462 599B2CD51DE52F7E00B4F7FD /* TencentOpenApi_IOS_Bundle.bundle in Resources */,
1463 - BFBB83EA1ECC445D008B404B /* User.storyboard in Resources */, 1463 + BFBB83EA1ECC445D008B404B /* Login.storyboard in Resources */,
1464 597185B51ECA990C00D7F478 /* Resource.storyboard in Resources */, 1464 597185B51ECA990C00D7F478 /* Resource.storyboard in Resources */,
1465 BF25DFE61DDAA36A003EC0C1 /* Info.plist in Resources */, 1465 BF25DFE61DDAA36A003EC0C1 /* Info.plist in Resources */,
1466 BFF5F4771DD5AA5C00D33B89 /* 上传头像.png in Resources */, 1466 BFF5F4771DD5AA5C00D33B89 /* 上传头像.png in Resources */,
YouerLiveVideo/YouerLiveVideo/controllers/LeadViewController.swift
@@ -26,7 +26,7 @@ class LeadViewController: UIViewController { @@ -26,7 +26,7 @@ class LeadViewController: UIViewController {
26 } 26 }
27 func showLogin() { 27 func showLogin() {
28 removeAll() 28 removeAll()
29 - let vc=Story.instantiateViewControllerWithIdentifier("LoginViewControllerVC", storyName: "User") as! LoginViewController 29 + let vc=Story.instantiateViewControllerWithIdentifier("LoginViewControllerVC", storyName: "Login") as! LoginViewController
30 displayContentController(content: vc) 30 displayContentController(content: vc)
31 } 31 }
32 override func didReceiveMemoryWarning() { 32 override func didReceiveMemoryWarning() {
YouerLiveVideo/YouerLiveVideo/controllers/TVStation/ExcellentTVViewController.swift
@@ -10,18 +10,12 @@ import UIKit @@ -10,18 +10,12 @@ import UIKit
10 import AVKit 10 import AVKit
11 class ExcellentTVViewController: UIViewController { 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 var isForbidScrollDelegate:Bool = true 15 var isForbidScrollDelegate:Bool = true
17 var startOffsetX:CGFloat = 0 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 var TVStationClasses:[TVSubjectInfor] = [] 17 var TVStationClasses:[TVSubjectInfor] = []
23 - var titleSelectBtn:Int = 0  
24 - var classSelectBtn:Int = 0 18 + var allDataSet:[TVStationSubject] = []
25 override func viewDidLoad() { 19 override func viewDidLoad() {
26 super.viewDidLoad() 20 super.viewDidLoad()
27 self.automaticallyAdjustsScrollViewInsets = false 21 self.automaticallyAdjustsScrollViewInsets = false
@@ -30,7 +24,6 @@ class ExcellentTVViewController: UIViewController { @@ -30,7 +24,6 @@ class ExcellentTVViewController: UIViewController {
30 for item in json.contentData().arrayValue{ 24 for item in json.contentData().arrayValue{
31 self.TVStationClasses.append(TVSubjectInfor(json: item)) 25 self.TVStationClasses.append(TVSubjectInfor(json: item))
32 } 26 }
33 - self.creatTVStationClassScrollView()  
34 self.collectionView.reloadData() 27 self.collectionView.reloadData()
35 }, failHandler: { (error) in 28 }, failHandler: { (error) in
36 29
@@ -44,6 +37,159 @@ class ExcellentTVViewController: UIViewController { @@ -44,6 +37,159 @@ class ExcellentTVViewController: UIViewController {
44 // Dispose of any resources that can be recreated. 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 func creatTVStationClassScrollView(){ 193 func creatTVStationClassScrollView(){
48 TVStationScrollView = UIScrollView(frame: CGRect(origin: CGPointZero, size: TVStationClass.frame.size)) 194 TVStationScrollView = UIScrollView(frame: CGRect(origin: CGPointZero, size: TVStationClass.frame.size))
49 TVStationScrollView.showsHorizontalScrollIndicator = false 195 TVStationScrollView.showsHorizontalScrollIndicator = false
@@ -52,7 +198,7 @@ class ExcellentTVViewController: UIViewController { @@ -52,7 +198,7 @@ class ExcellentTVViewController: UIViewController {
52 var x:CGFloat = 0 198 var x:CGFloat = 0
53 for (index,item) in TVStationClasses.enumerated() { 199 for (index,item) in TVStationClasses.enumerated() {
54 let TVStationClassScrollView = UIScrollView(frame: CGRect(origin: CGPointZero, size: AllTitleView.frame.size)) 200 let TVStationClassScrollView = UIScrollView(frame: CGRect(origin: CGPointZero, size: AllTitleView.frame.size))
55 - 201 +
56 let btn = UIButton(frame: CGRect(x: 0, y: 0, width: 100, height: TVStationClass.frame.size.height)) 202 let btn = UIButton(frame: CGRect(x: 0, y: 0, width: 100, height: TVStationClass.frame.size.height))
57 btn.backgroundColor = UIColor.white 203 btn.backgroundColor = UIColor.white
58 btn.setTitleColor(UIColor.black, for: .normal) 204 btn.setTitleColor(UIColor.black, for: .normal)
@@ -64,15 +210,14 @@ class ExcellentTVViewController: UIViewController { @@ -64,15 +210,14 @@ class ExcellentTVViewController: UIViewController {
64 }else{ 210 }else{
65 x = 0 211 x = 0
66 TVStationClassScrollView.isHidden = false 212 TVStationClassScrollView.isHidden = false
67 - btn.backgroundColor = UIColor.blue 213 + btn.backgroundColor = UIColorFromRGB(0x17B3FF)
68 btn.setTitleColor(UIColor.white, for: .normal) 214 btn.setTitleColor(UIColor.white, for: .normal)
69 -  
70 } 215 }
71 btn.frame.origin.x = x 216 btn.frame.origin.x = x
72 btn.frame.size = CGSize(width: btn.frame.size.width+20, height: TVStationClass.frame.size.height) 217 btn.frame.size = CGSize(width: btn.frame.size.width+20, height: TVStationClass.frame.size.height)
73 btn.tag = 200+index 218 btn.tag = 200+index
74 TVStationScrollView.contentSize = CGSize(width: btn.frame.maxX, height: 0) 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 TVStationScrollView.addSubview(btn) 221 TVStationScrollView.addSubview(btn)
77 222
78 TVStationClassScrollView.showsHorizontalScrollIndicator = false 223 TVStationClassScrollView.showsHorizontalScrollIndicator = false
@@ -89,14 +234,15 @@ class ExcellentTVViewController: UIViewController { @@ -89,14 +234,15 @@ class ExcellentTVViewController: UIViewController {
89 x = TVStationClassScrollView.viewWithTag(1000+index*100+ind-1)!.frame.maxX 234 x = TVStationClassScrollView.viewWithTag(1000+index*100+ind-1)!.frame.maxX
90 }else{ 235 }else{
91 x = 0 236 x = 0
92 - button.backgroundColor = UIColor.blue 237 +
  238 + button.backgroundColor = UIColorFromRGB(0x17B3FF)
93 button.setTitleColor(UIColor.white, for: .normal) 239 button.setTitleColor(UIColor.white, for: .normal)
94 } 240 }
95 button.frame.origin.x = x 241 button.frame.origin.x = x
96 button.frame.size = CGSize(width: button.frame.size.width+20, height: TVStationClass.frame.size.height) 242 button.frame.size = CGSize(width: button.frame.size.width+20, height: TVStationClass.frame.size.height)
97 button.tag = 1000+index*100+ind 243 button.tag = 1000+index*100+ind
98 TVStationClassScrollView.contentSize = CGSize(width: button.frame.maxX, height: 0) 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 TVStationClassScrollView.addSubview(button) 246 TVStationClassScrollView.addSubview(button)
101 } 247 }
102 TVStationClass.addSubview(TVStationClassScrollView) 248 TVStationClass.addSubview(TVStationClassScrollView)
@@ -107,173 +253,60 @@ class ExcellentTVViewController: UIViewController { @@ -107,173 +253,60 @@ class ExcellentTVViewController: UIViewController {
107 func TVStationBtnClick(btn:UIButton){ 253 func TVStationBtnClick(btn:UIButton){
108 titleSelectBtn = btn.tag%10 254 titleSelectBtn = btn.tag%10
109 classSelectBtn = 0 255 classSelectBtn = 0
  256 + getData()
110 for i in 0..<TVStationClasses.count{ 257 for i in 0..<TVStationClasses.count{
111 let item = AllTitleView.viewWithTag(200+i) as! UIButton 258 let item = AllTitleView.viewWithTag(200+i) as! UIButton
112 item.backgroundColor = UIColor.white 259 item.backgroundColor = UIColor.white
113 item.setTitleColor(UIColor.black, for: .normal) 260 item.setTitleColor(UIColor.black, for: .normal)
114 TVStationClass.viewWithTag(2000+i)?.isHidden = true 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 btn.setTitleColor(UIColor.white, for: .normal) 275 btn.setTitleColor(UIColor.white, for: .normal)
117 - btn.backgroundColor = UIColor.blue 276 + btn.backgroundColor = UIColorFromRGB(0x17B3FF)
118 TVStationClass.viewWithTag(2000+btn.tag%10)?.isHidden = false 277 TVStationClass.viewWithTag(2000+btn.tag%10)?.isHidden = false
119 - collectionView.reloadData()  
120 } 278 }
121 -  
122 func TVStationClassBtnClick(btn:UIButton){ 279 func TVStationClassBtnClick(btn:UIButton){
123 classSelectBtn = btn.tag%10 280 classSelectBtn = btn.tag%10
124 let index = btn.tag%1000/100 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 for i in 0..<TVStationClasses[index].ch.count{ 283 for i in 0..<TVStationClasses[index].ch.count{
128 let item = TVStationClass.viewWithTag(2000+titleSelectBtn)!.viewWithTag(1000+100*index+i) as! UIButton 284 let item = TVStationClass.viewWithTag(2000+titleSelectBtn)!.viewWithTag(1000+100*index+i) as! UIButton
129 item.backgroundColor = UIColor.white 285 item.backgroundColor = UIColor.white
130 item.setTitleColor(UIColor.black, for: .normal) 286 item.setTitleColor(UIColor.black, for: .normal)
131 } 287 }
132 btn.setTitleColor(UIColor.white, for: .normal) 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 AppDelegate.instance().httpServer.postExcellentProgram(parameters: ["f_TelevisionId":TVStationClasses[titleSelectBtn].ch[classSelectBtn].id as AnyObject,"pageIndex":1 as AnyObject]) { (str, error) in 297 AppDelegate.instance().httpServer.postExcellentProgram(parameters: ["f_TelevisionId":TVStationClasses[titleSelectBtn].ch[classSelectBtn].id as AnyObject,"pageIndex":1 as AnyObject]) { (str, error) in
212 httpJsonResule(jsonString: str, error: error, successHandler: { (json) in 298 httpJsonResule(jsonString: str, error: error, successHandler: { (json) in
213 for item in json.contentData()["resultData"].arrayValue{ 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 }, failHandler: { (error) in 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 class ExcellentTVInforViewCell: UICollectionViewCell{ 311 class ExcellentTVInforViewCell: UICollectionViewCell{
279 312
YouerLiveVideo/YouerLiveVideo/controllers/TVStation/MoreTVStationViewController.swift
@@ -118,7 +118,6 @@ extension MoreTVStationViewController:UICollectionViewDelegate,UICollectionViewD @@ -118,7 +118,6 @@ extension MoreTVStationViewController:UICollectionViewDelegate,UICollectionViewD
118 vc.excellentTVStationProgram = excellentTVStationProgram[indexPath.row] 118 vc.excellentTVStationProgram = excellentTVStationProgram[indexPath.row]
119 self.navigationController?.pushViewController(vc, animated: true) 119 self.navigationController?.pushViewController(vc, animated: true)
120 } 120 }
121 -  
122 } 121 }
123 func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 122 func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
124 let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! MoreTVStationViewCollectionCell 123 let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! MoreTVStationViewCollectionCell
YouerLiveVideo/YouerLiveVideo/controllers/TVStation/TVStation.storyboard
@@ -97,204 +97,140 @@ @@ -97,204 +97,140 @@
97 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> 97 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
98 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> 98 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
99 <subviews> 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 <rect key="frame" x="0.0" y="20" width="375" height="647"/> 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 <constraints> 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 </constraints> 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 </subviews> 223 </subviews>
283 <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> 224 <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
284 <constraints> 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 </constraints> 230 </constraints>
290 </view> 231 </view>
291 <connections> 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 </connections> 234 </connections>
299 </viewController> 235 </viewController>
300 <placeholder placeholderIdentifier="IBFirstResponder" id="KWc-cP-YUd" userLabel="First Responder" sceneMemberID="firstResponder"/> 236 <placeholder placeholderIdentifier="IBFirstResponder" id="KWc-cP-YUd" userLabel="First Responder" sceneMemberID="firstResponder"/>
@@ -544,7 +480,7 @@ @@ -544,7 +480,7 @@
544 <color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> 480 <color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
545 <nil key="highlightedColor"/> 481 <nil key="highlightedColor"/>
546 </label> 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 <rect key="frame" x="263" y="266" width="96" height="33"/> 484 <rect key="frame" x="263" y="266" width="96" height="33"/>
549 <color key="backgroundColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="calibratedRGB"/> 485 <color key="backgroundColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="calibratedRGB"/>
550 <fontDescription key="fontDescription" type="system" pointSize="17"/> 486 <fontDescription key="fontDescription" type="system" pointSize="17"/>
@@ -655,7 +591,7 @@ @@ -655,7 +591,7 @@
655 <subviews> 591 <subviews>
656 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="1ZJ-ao-hBx"> 592 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="1ZJ-ao-hBx">
657 <rect key="frame" x="0.0" y="0.0" width="160" height="120"/> 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 </imageView> 595 </imageView>
660 <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"> 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 <rect key="frame" x="59" y="139" width="42" height="21"/> 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,17 +10,24 @@ import UIKit
10 10
11 class TVStationInforViewController: UIViewController { 11 class TVStationInforViewController: UIViewController {
12 var excellentTVStationProgram:TVStationSubject! 12 var excellentTVStationProgram:TVStationSubject!
13 - 13 + var TVStationProgram:TVStationInfor!
14 @IBOutlet weak var tvImage: UIImageView! 14 @IBOutlet weak var tvImage: UIImageView!
15 @IBOutlet weak var creatTime: UILabel! 15 @IBOutlet weak var creatTime: UILabel!
16 @IBOutlet weak var tvName: UILabel! 16 @IBOutlet weak var tvName: UILabel!
17 @IBOutlet weak var discreption: UITextView! 17 @IBOutlet weak var discreption: UITextView!
18 override func viewDidLoad() { 18 override func viewDidLoad() {
19 super.viewDidLoad() 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 // Do any additional setup after loading the view. 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,7 +81,10 @@ class TVStationViewController: UIViewController {
81 case 1: 81 case 1:
82 vc.xxcellentSchool = xxcellentSchool 82 vc.xxcellentSchool = xxcellentSchool
83 case 2: 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 default: 88 default:
86 break 89 break
87 } 90 }
@@ -147,10 +150,19 @@ extension TVStationViewController:UITableViewDelegate,UITableViewDataSource{ @@ -147,10 +150,19 @@ extension TVStationViewController:UITableViewDelegate,UITableViewDataSource{
147 extension TVStationViewController:UICollectionViewDelegate,UICollectionViewDelegateFlowLayout,UICollectionViewDataSource{ 150 extension TVStationViewController:UICollectionViewDelegate,UICollectionViewDelegateFlowLayout,UICollectionViewDataSource{
148 151
149 func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { 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 func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 167 func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
156 let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! TVStationViewControllerCollectionCell 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,6 +31,10 @@ class AppSettingViewController: UIViewController {
31 self.tabBarController?.hidesBottomBarWhenPushed = false 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 // MARK: - Navigation 40 // MARK: - Navigation
YouerLiveVideo/YouerLiveVideo/controllers/User/User.storyboard
@@ -220,6 +220,9 @@ @@ -220,6 +220,9 @@
220 <state key="normal" title="退出当前账号"> 220 <state key="normal" title="退出当前账号">
221 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 221 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
222 </state> 222 </state>
  223 + <connections>
  224 + <action selector="quitBtnClick:" destination="DOf-c9-nNw" eventType="touchUpInside" id="ySW-ZV-EoN"/>
  225 + </connections>
223 </button> 226 </button>
224 </subviews> 227 </subviews>
225 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 228 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
YouerLiveVideo/YouerLiveVideo/controllers/User/UserCenter/Login.storyboard 0 → 100644
@@ -0,0 +1,772 @@ @@ -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,7 +126,7 @@ class LoginViewController: UIViewController,UITextFieldDelegate {
126 } 126 }
127 //点击注册按钮 127 //点击注册按钮
128 @IBAction func registerBtnClickAction(_ sender: AnyObject) { 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 self.present(vc, animated: true, completion: nil) 130 self.present(vc, animated: true, completion: nil)
131 } 131 }
132 //键盘监听 132 //键盘监听
YouerLiveVideo/YouerLiveVideo/controllers/User/UserCenter/User.storyboard
@@ -1,772 +0,0 @@ @@ -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,9 +179,8 @@ extension UserEditViewController:UITableViewDelegate,UITableViewDataSource{
179 let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! UserEditCell 179 let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! UserEditCell
180 cell.titleName.text = titleArr[indexPath.row-1] 180 cell.titleName.text = titleArr[indexPath.row-1]
181 cell.name.text = contentArr[indexPath.row-1] 181 cell.name.text = contentArr[indexPath.row-1]
182 - if indexPath.row == 0{ 182 + if indexPath.row == 1{
183 cell.changeBtn.isHidden = false 183 cell.changeBtn.isHidden = false
184 - cell.changeBtn.tag = indexPath.row+100  
185 } 184 }
186 return cell 185 return cell
187 } 186 }
YouerLiveVideo/YouerLiveVideo/controllers/User/UserViewController.swift
@@ -25,6 +25,7 @@ class UserViewController: UIViewController { @@ -25,6 +25,7 @@ class UserViewController: UIViewController {
25 self.navigationItem.rightBarButtonItem = UIBarButtonItem(image: #imageLiteral(resourceName: "icon_setting"), style: .plain, target: self, action: #selector(UserViewController.editBtnClick)) 25 self.navigationItem.rightBarButtonItem = UIBarButtonItem(image: #imageLiteral(resourceName: "icon_setting"), style: .plain, target: self, action: #selector(UserViewController.editBtnClick))
26 self.automaticallyAdjustsScrollViewInsets = false 26 self.automaticallyAdjustsScrollViewInsets = false
27 setUserInfor() 27 setUserInfor()
  28 + NotificationCenter.default.addObserver(self, selector: #selector(UserViewController.setUserInfor), name: NSNotification.Name(rawValue: "refreshFirstVC"), object: nil)
28 // Do any additional setup after loading the view. 29 // Do any additional setup after loading the view.
29 } 30 }
30 31