From e39c2d33d168827bf34e0a8fe9e8a308a08e1815 Mon Sep 17 00:00:00 2001 From: Cao yang <caoyang@CaodeMacBook-Pro.local> Date: Wed, 25 Apr 2018 10:53:41 +0800 Subject: [PATCH] 降低耦合度,整理代码 --- ParentAssistant/ParentAssistant.xcodeproj/project.pbxproj | 2 +- ParentAssistant/ParentAssistant.xcworkspace/xcuserdata/caoyang.xcuserdatad/UserInterfaceState.xcuserstate | Bin 379076 -> 0 bytes ParentAssistant/ParentAssistant/Classes/controllers/Grow/GrowViewController.swift | 33 ++++++++------------------------- ParentAssistant/ParentAssistant/Classes/controllers/Grow/Program/ProgramCardViewController.swift | 27 ++++++++++++++++++++++----- ParentAssistant/ParentAssistant/Classes/controllers/Grow/Program/ProgramCheckViewController.swift | 23 +++++++++++++++++------ ParentAssistant/ParentAssistant/Classes/controllers/Grow/Program/ProgramViewController.swift | 4 ---- ParentAssistant/ParentAssistant/Classes/controllers/my/Controller/MessageViewController.swift | 1 + ParentAssistant/ParentAssistant/Classes/controllers/my/userCenter/BaseCityChooseSchoolViewController.swift | 255 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ParentAssistant/ParentAssistant/Classes/controllers/my/userCenter/BindingViewController.swift | 344 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ParentAssistant/ParentAssistant/Classes/controllers/my/userCenter/BindlingSuccessViewController.swift | 133 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ParentAssistant/ParentAssistant/Classes/controllers/my/userCenter/InvitationCodeVerificationViewController.swift | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ParentAssistant/ParentAssistant/Classes/controllers/my/userCenter/UserCenter.storyboard | 606 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ParentAssistant/ParentAssistant/Classes/controllers/userCenter/BaseCityChooseSchoolViewController.swift | 255 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ParentAssistant/ParentAssistant/Classes/controllers/userCenter/BindingViewController.swift | 344 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ParentAssistant/ParentAssistant/Classes/controllers/userCenter/BindlingSuccessViewController.swift | 133 ------------------------------------------------------------------------------------------------------------------------------------- ParentAssistant/ParentAssistant/Classes/controllers/userCenter/InvitationCodeVerificationViewController.swift | 58 ---------------------------------------------------------- ParentAssistant/ParentAssistant/Classes/controllers/userCenter/UserCenter.storyboard | 606 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ParentAssistant/ParentAssistant/Classes/util/AccountManager.swift | 20 ++++++++++---------- ParentAssistant/ParentAssistant/Classes/util/HTTPServer.swift | 4 ++-- ParentAssistant/ParentAssistant/Classes/util/view/AlertShowView.swift | 5 ++--- 20 files changed, 1459 insertions(+), 1452 deletions(-) create mode 100644 ParentAssistant/ParentAssistant/Classes/controllers/my/userCenter/BaseCityChooseSchoolViewController.swift create mode 100644 ParentAssistant/ParentAssistant/Classes/controllers/my/userCenter/BindingViewController.swift create mode 100644 ParentAssistant/ParentAssistant/Classes/controllers/my/userCenter/BindlingSuccessViewController.swift create mode 100644 ParentAssistant/ParentAssistant/Classes/controllers/my/userCenter/InvitationCodeVerificationViewController.swift create mode 100644 ParentAssistant/ParentAssistant/Classes/controllers/my/userCenter/UserCenter.storyboard delete mode 100644 ParentAssistant/ParentAssistant/Classes/controllers/userCenter/BaseCityChooseSchoolViewController.swift delete mode 100644 ParentAssistant/ParentAssistant/Classes/controllers/userCenter/BindingViewController.swift delete mode 100644 ParentAssistant/ParentAssistant/Classes/controllers/userCenter/BindlingSuccessViewController.swift delete mode 100644 ParentAssistant/ParentAssistant/Classes/controllers/userCenter/InvitationCodeVerificationViewController.swift delete mode 100644 ParentAssistant/ParentAssistant/Classes/controllers/userCenter/UserCenter.storyboard diff --git a/ParentAssistant/ParentAssistant.xcodeproj/project.pbxproj b/ParentAssistant/ParentAssistant.xcodeproj/project.pbxproj index 67f7dd9..b07f378 100644 --- a/ParentAssistant/ParentAssistant.xcodeproj/project.pbxproj +++ b/ParentAssistant/ParentAssistant.xcodeproj/project.pbxproj @@ -452,7 +452,6 @@ 599364E0204E62E700C8B371 /* Information */, 599364E6204E62E700C8B371 /* Grow */, 599364E2204E62E700C8B371 /* my */, - 599364FD204E941900C8B371 /* userCenter */, ); path = controllers; sourceTree = "<group>"; @@ -481,6 +480,7 @@ isa = PBXGroup; children = ( BF621CAB205660E90040D2C1 /* My.storyboard */, + 599364FD204E941900C8B371 /* userCenter */, BFCED886205280B700055373 /* Controller */, BFCED889205280C900055373 /* Model */, 599364E4204E62E700C8B371 /* View */, diff --git a/ParentAssistant/ParentAssistant.xcworkspace/xcuserdata/caoyang.xcuserdatad/UserInterfaceState.xcuserstate b/ParentAssistant/ParentAssistant.xcworkspace/xcuserdata/caoyang.xcuserdatad/UserInterfaceState.xcuserstate index 4b01b4c..d334cf8 100644 Binary files a/ParentAssistant/ParentAssistant.xcworkspace/xcuserdata/caoyang.xcuserdatad/UserInterfaceState.xcuserstate and b/ParentAssistant/ParentAssistant.xcworkspace/xcuserdata/caoyang.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/ParentAssistant/ParentAssistant/Classes/controllers/Grow/GrowViewController.swift b/ParentAssistant/ParentAssistant/Classes/controllers/Grow/GrowViewController.swift index 6715fb5..42be8a4 100644 --- a/ParentAssistant/ParentAssistant/Classes/controllers/Grow/GrowViewController.swift +++ b/ParentAssistant/ParentAssistant/Classes/controllers/Grow/GrowViewController.swift @@ -99,6 +99,7 @@ class GrowViewController: UIViewController,UIScrollViewDelegate { } //设置scrollview滑动范围 contentScrollView.contentSize = CGSize.init(width: width*CGFloat(titleArr.count), height: 0) + contentScrollView.setContentOffset(CGPoint.init(x: 0, y: 0), animated: true) } override func viewWillAppear(_ animated: Bool) { @@ -119,6 +120,10 @@ class GrowViewController: UIViewController,UIScrollViewDelegate { title = "未绑定" }else{ title = array[0].studentName + let index = UserDefaults.standard.value(forKey: "SELECT_CHILDREN") as? Int + if index == nil { + UserDefaults.standard.set(0, forKey: "SELECT_CHILDREN") + } } }else{ title = "未登录" @@ -178,12 +183,9 @@ class GrowViewController: UIViewController,UIScrollViewDelegate { let view = AlertShowView.init(frame: CGRect.init(x: 10, y: Int((navigationBarHeight!+statusBarHeight)+5), width: Int(screenHeight*0.2), height: 50*arr.count)) view.setUpDataResource(arr:arr) view.showView() - view.AlertBlock = { object in - if object is StudentClassInfoModel { - let model = object as! StudentClassInfoModel - self.titleLeftLab.text = model.studentName - self.childDataModel = model - } + view.AlertBlock = { index in + //MARK:缓存孩子索引 + UserDefaults.standard.set(index, forKey: "SELECT_CHILDREN") } }else{ let alertView = UIAlertController.init(title: "提示", message: "您尚未绑定孩子信息,是否前往绑定?", preferredStyle: UIAlertControllerStyle.alert) @@ -212,20 +214,11 @@ class GrowViewController: UIViewController,UIScrollViewDelegate { //MARK: - 设置控制器子视图 private func setChildViewContent(){ - print("scrollView width === \(contentScrollView.bounds.size.width)") - if AccountManager.shared.isOnline() { - let array = AccountManager.shared.getChildClassInfo() - if !array.isEmpty{ - let model = array[0] - childDataModel = model - } - } //添加子控制器 for i in 0..<titleArr.count { if i == 0 { let vc = ProgramViewController() self.addChildViewController(vc) - vc.studentModel = childDataModel contentScrollView.addSubview(vc.view) } if i == 1 { @@ -234,16 +227,6 @@ class GrowViewController: UIViewController,UIScrollViewDelegate { contentScrollView.addSubview(vc.view) } } - -// //设置第一个控制器数据 -// let childVC = self.childViewControllers.first -// self.contentScrollView.addSubview((childVC?.view)!) -// childVC?.view.snp.makeConstraints({ (maker) in -// maker.width.height.equalTo(self.contentScrollView) -// maker.center.equalTo(self.contentScrollView) -// }) - - } //MARK: - 设置标题 func setUpTitle(){ diff --git a/ParentAssistant/ParentAssistant/Classes/controllers/Grow/Program/ProgramCardViewController.swift b/ParentAssistant/ParentAssistant/Classes/controllers/Grow/Program/ProgramCardViewController.swift index 6202b2d..77d27ad 100644 --- a/ParentAssistant/ParentAssistant/Classes/controllers/Grow/Program/ProgramCardViewController.swift +++ b/ParentAssistant/ParentAssistant/Classes/controllers/Grow/Program/ProgramCardViewController.swift @@ -12,7 +12,15 @@ class ProgramCardViewController: UIViewController,UITextFieldDelegate { var cardInputTextField = UITextField() //孩子数据 - var studentData = StudentClassInfoModel() + lazy var studentData = {()-> StudentClassInfoModel in + var model = StudentClassInfoModel() + let index = UserDefaults.standard.value(forKey: "SELECT_CHILDREN") as! Int + let array = AccountManager.shared.getChildClassInfo() + if array.count > 0 && index<array.count{ + model = array[index] + } + return model + }() lazy var cardView = { ()-> UIView in @@ -33,12 +41,21 @@ class ProgramCardViewController: UIViewController,UITextFieldDelegate { @objc func applyAction(){ DebugLog( "补卡提交") - let studentID = self.studentData.studentId - let params = ["studentid":studentID,"onecard":self.cardInputTextField.text!] as [String : AnyObject] - HTTPServer.shared.postStudentMendCard(parameters: params as [String : AnyObject]) { (backData, error) in + SVProgressHUD.show() + let studentID = Int(self.studentData.studentId) + let params = ["studentid":studentID!,"onecard":self.cardInputTextField.text!] as [String : AnyObject] + HTTPServer.shared.getStudentMendCard(parameters: params as [String : AnyObject]) { (backData, error) in print(backData!) + SVProgressHUD.dismiss() if error == nil && JSON.fromString(backData)!["status"].intValue == 1 { - + let isSuccess = JSON.fromString(backData)!["data"].boolValue + if isSuccess{ + self.view.makeToast("补卡成功!", duration: 2, position: self.view.center) + }else{ + self.view.makeToast("补卡失败!", duration: 2, position: self.view.center) + } + }else{ + appDelegate.window?.makeToast("\(backData!)") } } } diff --git a/ParentAssistant/ParentAssistant/Classes/controllers/Grow/Program/ProgramCheckViewController.swift b/ParentAssistant/ParentAssistant/Classes/controllers/Grow/Program/ProgramCheckViewController.swift index 78e65ba..06d261d 100644 --- a/ParentAssistant/ParentAssistant/Classes/controllers/Grow/Program/ProgramCheckViewController.swift +++ b/ParentAssistant/ParentAssistant/Classes/controllers/Grow/Program/ProgramCheckViewController.swift @@ -29,8 +29,17 @@ class ProgramCheckViewController: UIViewController,UITableViewDelegate,UITableVi }() //考勤数据 var viewData = Array<StudentCardModel>() - //孩子数据模型 - var studentModel = StudentClassInfoModel() + + //孩子数据 + lazy var studentModel = {()-> StudentClassInfoModel in + var model = StudentClassInfoModel() + let index = UserDefaults.standard.value(forKey: "SELECT_CHILDREN") as! Int + let array = AccountManager.shared.getChildClassInfo() + if array.count > 0 && index<array.count{ + model = array[index] + } + return model + }() //时间选择器 var addAlertView = PickSelectView() //选择的时间 @@ -51,7 +60,9 @@ class ProgramCheckViewController: UIViewController,UITableViewDelegate,UITableVi /// 获取数据 private func downLoadDataFromNet(time:String){ SVProgressHUD.show() - let params = ["studentid":studentModel.studentId,"schoolid":studentModel.schollId,"starttime":time] as [String : Any] + let studentID = Int(self.studentModel.studentId)! + let schoolID = Int(self.studentModel.schoolId)! + let params = ["studentid":studentID,"schoolid":schoolID,"starttime":time] as [String : AnyObject] HTTPServer.shared.getStudentCheckList(parameters: params as [String : AnyObject]) { (backData, error) in SVProgressHUD.dismiss() if error == nil && JSON.fromString(backData)!["status"].intValue == 1 { @@ -89,7 +100,7 @@ class ProgramCheckViewController: UIViewController,UITableViewDelegate,UITableVi let cell = tableView.dequeueReusableCell(withIdentifier: "GrowCheckUpTableViewCell", for: indexPath) as! GrowCheckUpTableViewCell cell.checkCount.text = "\(self.viewData.count)" cell.timeSelectBtn.setTitle(timeSelectString, for: UIControlState.normal) - cell.checkName.text = studentModel.studentName + cell.checkName.text = self.studentModel.studentName cell.backBlock = { self.selectTimeAction() } @@ -97,7 +108,7 @@ class ProgramCheckViewController: UIViewController,UITableViewDelegate,UITableVi }else{ let cell = tableView.dequeueReusableCell(withIdentifier: "GrowCheckDownTableViewCell", for: indexPath) as! GrowCheckDownTableViewCell let model = self.viewData[indexPath.row-1] - cell.studentParents.text = "尊敬的\(studentModel.studentName)家长" + cell.studentParents.text = "尊敬的\(self.studentModel.studentName)家长" cell.setCellData(model: model) return cell } @@ -112,7 +123,7 @@ class ProgramCheckViewController: UIViewController,UITableViewDelegate,UITableVi self.downLoadDataFromNet(time: str) } } - + override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. diff --git a/ParentAssistant/ParentAssistant/Classes/controllers/Grow/Program/ProgramViewController.swift b/ParentAssistant/ParentAssistant/Classes/controllers/Grow/Program/ProgramViewController.swift index 2e034a2..1a5bde4 100644 --- a/ParentAssistant/ParentAssistant/Classes/controllers/Grow/Program/ProgramViewController.swift +++ b/ParentAssistant/ParentAssistant/Classes/controllers/Grow/Program/ProgramViewController.swift @@ -50,8 +50,6 @@ class ProgramViewController: UIViewController,UITableViewDelegate,UITableViewDat //Data var tableData = Array<String>() - //孩子数据 - var studentModel = StudentClassInfoModel() var titleImage = Array<String>() @@ -122,12 +120,10 @@ class ProgramViewController: UIViewController,UITableViewDelegate,UITableViewDat case 0: let vc = ProgramCheckViewController() vc.title = "考勤" - vc.studentModel = studentModel self.navigationController?.pushViewController(vc, animated: true) case 1: let vc = ProgramCardViewController() vc.title = "补卡" - vc.studentData = studentModel self.navigationController?.pushViewController(vc, animated: true) case 2: let vc = ProgramVacateViewController() diff --git a/ParentAssistant/ParentAssistant/Classes/controllers/my/Controller/MessageViewController.swift b/ParentAssistant/ParentAssistant/Classes/controllers/my/Controller/MessageViewController.swift index 541c717..ebd5e39 100644 --- a/ParentAssistant/ParentAssistant/Classes/controllers/my/Controller/MessageViewController.swift +++ b/ParentAssistant/ParentAssistant/Classes/controllers/my/Controller/MessageViewController.swift @@ -36,6 +36,7 @@ class MessageViewController: UIViewController { } // MARK: - 收到新通知时 @objc func receivedNewNotificationAction(){ + setupWithModel() } diff --git a/ParentAssistant/ParentAssistant/Classes/controllers/my/userCenter/BaseCityChooseSchoolViewController.swift b/ParentAssistant/ParentAssistant/Classes/controllers/my/userCenter/BaseCityChooseSchoolViewController.swift new file mode 100644 index 0000000..1235508 --- /dev/null +++ b/ParentAssistant/ParentAssistant/Classes/controllers/my/userCenter/BaseCityChooseSchoolViewController.swift @@ -0,0 +1,255 @@ +// +// BaseCityChooseSchoolViewController.swift +// ParentAssistant +// +// Created by 左丞 on 2018/3/9. +// Copyright © 2018年 HANGZHOUTEAM. All rights reserved. +// + +import UIKit +class BaseCityChooseSchoolViewController: UIViewController,UISearchBarDelegate { + + @IBOutlet weak var tableView: UITableView! + let firstLetterArr:[String] = ["#","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"] + var keys:[String] = [] + var schoolDic:[String:[School]] = [:] + var schoolArray:[School] = [] + @IBOutlet weak var citySelectbtn: UILabel! + + override func viewDidLoad() { + super.viewDidLoad() + + citySelectbtn.text = localAddress + getData() + // Do any additional setup after loading the view. + } + + //根据关键字获取学校 + func getData(_ keyword:String=""){ + var dic:[String:AnyObject] = ["areaName":localAddress as AnyObject,"keyword":keyword as AnyObject] + if keyword == ""{ + dic.removeValue(forKey: "keyword") + } + HTTPServer.shared.getAreaSchool(parameters: dic) { (str, error) in + let json=JSON.fromString(str) + if let ret=json{ + let er=ret["error"].string + if let errorStr=er{ + appDelegate.window!.makeToast(errorStr) + }else{ + self.schoolArray.removeAll() + for item in ret.contentData().arrayValue { + self.schoolArray.append(School(j: item)) + } + self.sortData(self.schoolArray) + } + }else{ + + } + } + } + + //对给定的学校分组 + func sortData(_ array:[School]){ + schoolDic = [:] + for letter in firstLetterArr { + var arr:[School] = [] + for school in array{ + if String(format: "%c",pinyinFirstLetter((school.name as NSString).character(at: 0))).uppercased() == letter{ + arr.append(school) + } + } + if arr.count > 0{ + schoolDic.updateValue(arr, forKey: letter) + } + } + keys = Array(schoolDic.keys) + keys.sort { (key1, key2) -> Bool in + return key1 < key2 + } + tableView.reloadData() + } + + override func didReceiveMemoryWarning() { + super.didReceiveMemoryWarning() + // Dispose of any resources that can be recreated. + } + + //h获取已经选中的学校 + func getSelectSchool() -> School? { + for (_,item) in schoolDic{ + for school in item{ + if school.isSelect{ + return school + } + } + } + return nil + } + + //下一步 + @IBAction func nextStep(_ sender: UIButton) { + let school = getSelectSchool() + if school == nil{ + appDelegate.window!.makeToast("请先选择学校") + return + } + if !AccountManager.shared.isOnline(){ + appDelegate.window!.makeToast("请先登录") + return + } + + if school!.isNew == 1{ + let vc = Story.instantiateViewControllerWithIdentifier("BindingViewControllerVC", storyName: "UserCenter") as! BindingViewController + vc.from = .select + vc.school = school! + self.navigationController?.pushViewController(vc, animated: true) + }else{ + if AccountManager.shared.isNew() == 1{ + let vc = Story.instantiateViewControllerWithIdentifier("BindingViewControllerVC", storyName: "UserCenter") as! BindingViewController + vc.from = .unReserved + vc.school = school! + self.navigationController?.pushViewController(vc, animated: true) + return + } + let vc = Story.instantiateViewControllerWithIdentifier("InvitationCodeVerificationViewControllerVC", storyName: "UserCenter") as! InvitationCodeVerificationViewController + vc.school = school! + self.navigationController?.pushViewController(vc, animated: true) + + } + } + + func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) { + searchBar.showsCancelButton = true + } + + func searchBarCancelButtonClicked(_ searchBar: UISearchBar) { + searchData(searchBar) + } + + func searchBarSearchButtonClicked(_ searchBar: UISearchBar) { + searchData(searchBar) + } + + //搜索学校 + func searchData(_ searchBar: UISearchBar){ + getData(searchBar.text!) + searchBar.resignFirstResponder() + searchBar.showsCancelButton = false + + } + + //左上角城市选择按钮点击事件 + @IBAction func citySelectBtnClick(_ sender: UITapGestureRecognizer) { + sender.view?.isUserInteractionEnabled = false + LZCityPickerController.showPicker(in: self + , select: { (address, province, city, area, isSelect) in + if isSelect{ + sender.view?.isUserInteractionEnabled = true + self.selectCity(city: area!) + } + }) { + sender.view?.isUserInteractionEnabled = true + + } + } + + func selectCity(city: String) { + localAddress = city + + citySelectbtn.text = city + self.getData() + } + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + citySelectbtn.text = localAddress + } + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destinationViewController. + // Pass the selected object to the new view controller. + } + */ + + //根据indexPath找到相对应的model + func getSchoolByIndexpath(indexPath:IndexPath)->School{ + return schoolDic[keys[indexPath.section]]![indexPath.row] + + } + + //所有数据全部取消选中 + func changeSchoolSelectState(){ + for (_,value) in schoolDic { + for item in value{ + item.isSelect = false + } + } + } +} + +extension BaseCityChooseSchoolViewController:UITableViewDelegate,UITableViewDataSource{ + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! SelectSchoolList + let item = getSchoolByIndexpath(indexPath: indexPath) + cell.schoolName.text = item.name + if item.isSelect{ + cell.isSelect.isHidden = false + }else{ + cell.isSelect.isHidden = true + } + return cell + } + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + + return schoolDic[keys[section]]!.count + } + + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + let item = getSchoolByIndexpath(indexPath: indexPath) + changeSchoolSelectState() + item.isSelect = !item.isSelect + tableView.reloadData() + } + + func sectionIndexTitles(for tableView: UITableView) -> [String]? { + return keys + } + + func numberOfSections(in tableView: UITableView) -> Int { + return keys.count + } + + func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { + return keys[section] + } +} + +class SelectSchoolList: UITableViewCell { + + @IBOutlet weak var isSelect: UIImageView! + @IBOutlet weak var schoolName: UILabel! +} + +class School:NSObject{ + var schoolArea:String=""//学校所在地区 , + var schoolId:Int = 0//学校id , + var name:String=""//学校名称 , + var state:Int=0//状态,1正常,0关闭 + var isNew:Int=0////1非合作学校,0合作学校 + var isSelect:Bool = false + init(j:JSON){ + schoolArea = j["school_area"].stringValue + schoolId = j["school_id"].intValue + name = j["school_name"].stringValue + state = j["state"].intValue + } + init(names:String,id:Int) { + name = names + schoolId=id + } +} + diff --git a/ParentAssistant/ParentAssistant/Classes/controllers/my/userCenter/BindingViewController.swift b/ParentAssistant/ParentAssistant/Classes/controllers/my/userCenter/BindingViewController.swift new file mode 100644 index 0000000..a0217e3 --- /dev/null +++ b/ParentAssistant/ParentAssistant/Classes/controllers/my/userCenter/BindingViewController.swift @@ -0,0 +1,344 @@ +// +// BindingViewController.swift +// ParentAssistant +// +// Created by 左丞 on 2018/3/6. +// Copyright © 2018年 HANGZHOUTEAM. All rights reserved. +// + +import UIKit +enum FromVC:Int{ + //信息确认 + case selfVC = 1//从当前类的对象push过来的(非合作学校) + case reserved = 2//合作学校预留 + case unReserved = 3//合作学校非预留 + //选择 + case select = 4 //选择 +} + +enum SelectType:Int{ + case gender=1//性别 + case grade=2//年级 + case classes=3//班级 +} + +class BindingViewController: UIViewController { + + var from:FromVC = .selfVC + @IBOutlet weak var confirmBtn: UIButton!//确定按钮 + @IBOutlet weak var phoneNumberLabel: UILabel!//电话号码显示的label + @IBOutlet weak var firstLineLabel: UILabel!//第一行(绑定手机号码为)所在的label + @IBOutlet weak var nameTextFiled: UITextField! + + @IBOutlet weak var selectTableView: UITableView! + @IBOutlet weak var selectImageHeight: NSLayoutConstraint!//三个image高度是相等的 + @IBOutlet weak var classLabel: UILabel! + @IBOutlet weak var gradeLabel: UILabel! + @IBOutlet weak var genderLabel: UILabel! + var boyName:String="" + var gender:String = "" + var school:School! + var selecttype:SelectType = .gender + var genderArr:[String] = ["男","女"] + var gradeArr:[GradeAndClasses] = [] + var classesArr:[GradeAndClasses]=[] + var selectGrade:GradeAndClasses! + var selectClass:GradeAndClasses! + var account = AccountManager.shared + override func viewDidLoad() { + super.viewDidLoad() + stepUI() + if selectGrade == nil && selectClass == nil{ + getGradeOrClassData(type: 1) + } + setLabelValue() + if from == .reserved || from == .unReserved{ + getData() + } + // Do any additional setup after loading the view. + } + + func getData(){ + HTTPServer.shared.getParentInfo(["mobile":account.phone() as AnyObject,"school_id":school.schoolId as AnyObject]) { (str, error) in + let json=JSON.fromString(str) + if let ret=json{ + let er=ret["error"].string + if let errorStr=er{ + appDelegate.window!.makeToast(errorStr) + }else{ + self.account.rawUserInfo = json + self.setValueForLabel() + } + }else{ + + } + } + } + + func setValueForLabel(){ + if account.studentClass().count == 0{ + appDelegate.window!.makeToast("该账号下已经没有需要绑定的孩子") + return + } + let student = account.studentClass()[0] + nameTextFiled.text = student["studentName"].stringValue + classLabel.text = student["className"].stringValue + gradeLabel.text = student["gradename"].stringValue + genderLabel.text = student["sex"].intValue == 1 ? "男" : "女" + } + + func stepUI(){ + setViewLayer(view: classLabel) + setViewLayer(view: gradeLabel) + setViewLayer(view: genderLabel) + setViewRadius(view: confirmBtn) + if from == .selfVC{ + phoneNumberLabel.isHidden = false + phoneNumberLabel.text = account.phone() + firstLineLabel.isHidden = false + } + if from != .select{ + selectImageHeight.constant = 0 + nameTextFiled.isUserInteractionEnabled = false + } + } + + @IBAction func cancleSelectTableView(_ sender: UIControl) { + selectTableView.isHidden = true + } + func getGradeOrClassData(type:Int,gradeid:Int=0){//1,年级,2班级 + HTTPServer.shared.getClassOrGrade(["state":type as AnyObject,"schoolid":school.schoolId as AnyObject,"gradeid":gradeid as AnyObject]) { (str, error) in + let json=JSON.fromString(str) + if let ret=json{ + let er=ret["error"].string + if let errorStr=er{ + appDelegate.window!.makeToast(errorStr) + }else{ + for item in ret.contentData().arrayValue{ + if type == 1{ + self.gradeArr.append(GradeAndClasses(j: item)) + }else{ + self.classesArr.append(GradeAndClasses(j: item)) + } + } + } + }else{ + + } + } + } + + func setLabelValue(){ + nameTextFiled.text = boyName + classLabel.text = selectClass != nil ? selectClass.className : "" + gradeLabel.text = selectGrade != nil ? selectGrade.gradeName : "" + genderLabel.text = gender + } + + override func didReceiveMemoryWarning() { + super.didReceiveMemoryWarning() + // Dispose of any resources that can be recreated. + } + + //绑定孩子信息 + func bindlingChildren(){ + var dic:[String:AnyObject] = [:] + switch from { + case .selfVC: + dic = ["parentId": account.parentId() as AnyObject, + "cooperateFlag": "false" as AnyObject, + "schoolId": school.schoolId as AnyObject, + "classId": selectClass.classId as AnyObject, + "studentName": boyName as AnyObject, + "sex": (gender == "男" ? 1 : 2) as AnyObject] + case .reserved: + dic = ["cooperateFlag": "true" as AnyObject, + "mobileFlag": "true" as AnyObject, + "studentId": account.studentClass()[0]["studentId"].stringValue as AnyObject] + default: + dic = ["cooperateFlag": "true" as AnyObject, + "classId": account.studentClass()[0]["classId"].intValue as AnyObject, + "mobileFlag": "false" as AnyObject, + "studentId": account.studentClass()[0]["studentId"].stringValue as AnyObject] + } + dic.updateValue(account.parentId() as AnyObject, forKey: "parentId") + HTTPServer.shared.bindlingChildren(parameters: dic) { (str, error) in + if JSON.fromString(str)!["status"] == 1 && error == nil{ + appDelegate.window!.makeToast("绑定成功") + let vc = BindlingSuccessViewController() + self.navigationController?.pushViewController(vc, animated: true) + }else{ + appDelegate.window!.makeToast("绑定失败") + + } + } + } + + //确定按钮 + @IBAction func confirmBtnClcik(_ sender: UIButton) { + if (from == .reserved || from == .unReserved) && account.studentClass().count == 0{ + appDelegate.window!.makeToast("该账号下已经没有需要绑定的孩子") + return + } + if from == .select && (selectClass == nil || boyName == "" || gender == ""){//班级选择完成则年级肯定已经完成 + appDelegate.window!.makeToast("请先填写姓名并选择班级,年级,性别") + return + } + //确认信息的确认按钮 + if from != .select{ + bindlingChildren() + return + } + let vc = Story.instantiateViewControllerWithIdentifier("BindingViewControllerVC", storyName: "UserCenter") as! BindingViewController + vc.boyName = boyName + vc.gender = gender + vc.from = .selfVC + vc.selectClass = selectClass + vc.selectGrade = selectGrade + self.navigationController?.pushViewController(vc, animated: true) + } + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + switch from { + case .select: + self.navigationItem.title = "填写孩子信息" + default: + self.navigationItem.title = "信息核对" + } + } + + @IBAction func selectTapAction(_ sender: UITapGestureRecognizer) { + boyName = nameTextFiled.text ?? "" + if from != .select { + return + } + getSelectTableViewRect(sender) + selectTableView.isHidden = false + switch sender.view!.tag { + case 1000: + selecttype = .gender + selectTableView.frame.size.height = 88 + case 1001: + selecttype = .grade + if gradeArr.count > 3{ + selectTableView.frame.size.height = 132 + }else{ + selectTableView.frame.size.height = 44*CGFloat(gradeArr.count) + } + + case 1002: + if selectGrade == nil{ + selectTableView.isHidden = true + appDelegate.window!.makeToast("请先选择年级") + return + } + selecttype = .classes + if classesArr.count > 3{ + selectTableView.frame.size.height = 132 + }else{ + selectTableView.frame.size.height = 44*CGFloat(classesArr.count) + } + + default: + break + } + selectTableView.reloadData() + } + + func getSelectTableViewRect(_ sender: UITapGestureRecognizer){ + let locaViewFrame = sender.view!.frame + selectTableView.frame.origin = CGPoint(x: locaViewFrame.origin.x+sender.view!.superview!.frame.origin.x, y: locaViewFrame.maxY+sender.view!.superview!.frame.origin.y) + + } + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destinationViewController. + // Pass the selected object to the new view controller. + } + */ + +} + +extension BindingViewController:UITableViewDelegate,UITableViewDataSource{ + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + switch selecttype { + case .gender: + return genderArr.count + case .grade: + return gradeArr.count + default: + return classesArr.count + } + } + + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + switch selecttype { + case .gender: + tableView.isHidden = true + gender = genderArr[indexPath.row] + case .grade: + tableView.isHidden = true + let items = gradeArr[indexPath.row] + for item in gradeArr{ + item.isSelect = false + } + items.isSelect = true + selectGrade = items + getGradeOrClassData(type: 2, gradeid: items.gradeid) + default: + let items = classesArr[indexPath.row] + + tableView.isHidden = true + for item in classesArr{ + item.isSelect = false + } + items.isSelect = true + selectClass = items + } + setLabelValue() + } + + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) + switch selecttype { + case .gender: + cell.textLabel?.text = genderArr[indexPath.row] + case .grade: + cell.textLabel?.text = gradeArr[indexPath.row].gradeName + default: + cell.textLabel?.text = classesArr[indexPath.row].className + } + return cell + } + + func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { + return 44 + } +} + +extension BindingViewController:UITextFieldDelegate{ + func textFieldShouldReturn(_ textField: UITextField) -> Bool { + boyName = textField.text! + textField.resignFirstResponder() + return true + } +} + +class GradeAndClasses: NSObject { + var gradeid:Int=0 + var gradeName:String = "" + var classId:Int=0 + var className:String = "" + var isSelect:Bool = false + init(j:JSON){ + gradeid = j["gradeId"].intValue + gradeName = j["gradeName"].stringValue + classId = j["classId"].intValue + className = j["className"].stringValue + } +} diff --git a/ParentAssistant/ParentAssistant/Classes/controllers/my/userCenter/BindlingSuccessViewController.swift b/ParentAssistant/ParentAssistant/Classes/controllers/my/userCenter/BindlingSuccessViewController.swift new file mode 100644 index 0000000..0a9b22d --- /dev/null +++ b/ParentAssistant/ParentAssistant/Classes/controllers/my/userCenter/BindlingSuccessViewController.swift @@ -0,0 +1,133 @@ +// +// BindlingSuccessViewController.swift +// ParentAssistant +// +// Created by 左丞 on 2018/3/16. +// Copyright © 2018年 HANGZHOUTEAM. All rights reserved. +// + +import UIKit + +class BindlingSuccessViewController: UIViewController ,UIWebViewDelegate,UIScrollViewDelegate{ + var webView:UIWebView! + var header:UIView! + var webBrowserView:UIView! + var urlStr:String="http://60.190.202.57:8101/RecommendOrder.aspx?userid=" + var bindlingType:Int = 1 + override func viewDidLoad() { + super.viewDidLoad() + self.view.backgroundColor = UIColor.white + // Do any additional setup after loading the view. + webView = UIWebView() + webView.frame = CGRect(x: 10, y: 0, width: getScreenWidth()-20, height: getScreenHeight()) + webView.delegate = self; + webView.backgroundColor = UIColor.clear + self.view.addSubview(webView) + + let request = URLRequest(url: URL(string: urlStr)!) + webView.loadRequest(request) + + if bindlingType == 0{ + header = UIView() + header.frame = CGRect(x: 10, y: 0, width: getScreenWidth()-20, height: 80) + header.backgroundColor = UIColor.clear + let backView = UIView() + let image = UIImageView(frame: CGRect(x: 0, y: 0, width: 40, height: 40)) + image.image = #imageLiteral(resourceName: "my_icon_bindlingSuccess") + backView.addSubview(image) + let label = UILabel(frame: CGRect(x: 50, y: 10, width: header.frame.width - 20, height: 20)) + label.text = "绑定成功" + label.numberOfLines = 0 + label.textColor = UIColor.darkGray + label.font = UIFont.systemFont(ofSize: 15) + label.sizeToFit() + backView.addSubview(label) + backView.frame.size = CGSize(width: label.frame.maxX, height: 40) + backView.center.y = header.center.y + backView.center.x = header.center.x-10 + header.addSubview(label) + }else{ + header = UIView() + header.frame = CGRect(x: 10, y: 0, width: getScreenWidth()-20, height: 150) + header.backgroundColor = UIColor.clear + let label = UILabel(frame: CGRect(x: 10, y: 10, width: header.frame.width - 20, height: 100)) + label.text = "生成孩子\"汇作业\"账号为:\(urlStr),\n初始密码为:\(urlStr)(与账号相同),\n孩子可以下载\"汇作业\"app进行使用,\n" + label.numberOfLines = 0 + label.textColor = UIColor.darkGray + label.font = UIFont.systemFont(ofSize: 15) + label.sizeToFit() + header.addSubview(label) + + let backView = UIView() + let label2 = UILabel(frame: CGRect(x: 0, y: 5, width: header.frame.width - 20, height: 20)) + label2.text = "下载地址:" + label2.textColor = UIColor.darkGray + label2.font = UIFont.systemFont(ofSize: 15) + label2.sizeToFit() + backView.addSubview(label2) + let btn = UIButton(frame: CGRect(x: label2.frame.maxX, y: 0, width: 70, height: 30)) + + let str = NSMutableAttributedString(string: "汇作业") + let strRange = NSRange(location: 0, length: str.length) + str.addAttributes([NSAttributedStringKey.underlineStyle: NSNumber(integerLiteral: NSUnderlineStyle.styleSingle.rawValue), + NSAttributedStringKey.foregroundColor: Theme.topBarColor(), + NSAttributedStringKey.font: UIFont.systemFont(ofSize: 15)], + range: strRange) + btn.setAttributedTitle(str, for: .normal) + btn.addTarget(self, action: #selector(BindlingSuccessViewController.pushToAppStore), for: .touchUpInside) + backView.addSubview(btn) + backView.frame.size = CGSize(width: btn.frame.width+label2.frame.width+10, height: 30) + backView.center = CGPoint(x: header.center.x-10, y: label.frame.maxY+10) + header.frame.size.height = backView.frame.maxY + 10 + header.addSubview(backView) + } + + webBrowserView = webView.scrollView.subviews[0] + var rect = self.webBrowserView.frame + rect.origin.y = header.frame.maxY+10 + webBrowserView.frame = rect + + //添加 + webView.scrollView.addSubview(header) + + webView.scrollView.addObserver(self, forKeyPath: "contentSize", options: NSKeyValueObservingOptions.new, context: nil) + + // Do any additional setup after loading the view. + } + + @objc func pushToAppStore(){ + + } + + override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) { + webView.scrollView.removeObserver(self, forKeyPath: "contentSize") + _ = self.view.viewWithTag(100) + let contentSize = webView.scrollView.contentSize + let vi = UIView() + vi.backgroundColor = UIColor.purple + vi.tag = 100 + vi.frame = CGRect(x: 0, y: contentSize.height, width: getScreenWidth()-20, height: 150) + webView.scrollView.addSubview(vi) + webView.scrollView.contentSize = CGSize(width: contentSize.width, height: contentSize.height+150) + + webView.scrollView.addObserver(self, forKeyPath: "contentSize", options: NSKeyValueObservingOptions.new, context: nil) + + } + + override func didReceiveMemoryWarning() { + super.didReceiveMemoryWarning() + // Dispose of any resources that can be recreated. + } + + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destinationViewController. + // Pass the selected object to the new view controller. + } + */ + +} diff --git a/ParentAssistant/ParentAssistant/Classes/controllers/my/userCenter/InvitationCodeVerificationViewController.swift b/ParentAssistant/ParentAssistant/Classes/controllers/my/userCenter/InvitationCodeVerificationViewController.swift new file mode 100644 index 0000000..a5ed54a --- /dev/null +++ b/ParentAssistant/ParentAssistant/Classes/controllers/my/userCenter/InvitationCodeVerificationViewController.swift @@ -0,0 +1,58 @@ +// +// InvitationCodeVerificationViewController.swift +// ParentAssistant +// +// Created by 左丞 on 2018/3/13. +// Copyright © 2018年 HANGZHOUTEAM. All rights reserved. +// + +import UIKit + +class InvitationCodeVerificationViewController: UIViewController ,UITextFieldDelegate{ + + @IBOutlet weak var instructions: UILabel! + @IBOutlet weak var nextBtn: UIButton! + @IBOutlet weak var inputInvitationCode: UITextField! + var school:School! + override func viewDidLoad() { + super.viewDidLoad() + instructions.text = "注:填写需要绑定的孩子的邀请码(非合作学校无邀请码.请更换手机号码的方式验证)\n\n如不知道邀请码请拨打电话: 400-826-2468进行查询" + nextBtn.layer.cornerRadius = 10 + nextBtn.layer.masksToBounds = true + + // Do any additional setup after loading the view. + } + + override func didReceiveMemoryWarning() { + super.didReceiveMemoryWarning() + // Dispose of any resources that can be recreated. + } + + @IBAction func nextBtnClick(_ sender: UIButton) { + if inputInvitationCode.text != ""{ + let vc = Story.instantiateViewControllerWithIdentifier("BindingViewControllerVC", storyName: "UserCenter") as! BindingViewController + vc.from = .reserved + vc.school = school! + self.navigationController?.pushViewController(vc, animated: true) + }else{ + appDelegate.window!.makeToast("请填写邀请码") + return + } + } + + func textFieldShouldReturn(_ textField: UITextField) -> Bool { + textField.resignFirstResponder() + return true + } + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destinationViewController. + // Pass the selected object to the new view controller. + } + */ + +} diff --git a/ParentAssistant/ParentAssistant/Classes/controllers/my/userCenter/UserCenter.storyboard b/ParentAssistant/ParentAssistant/Classes/controllers/my/userCenter/UserCenter.storyboard new file mode 100644 index 0000000..fa3babf --- /dev/null +++ b/ParentAssistant/ParentAssistant/Classes/controllers/my/userCenter/UserCenter.storyboard @@ -0,0 +1,606 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13771" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> + <device id="retina4_7" orientation="portrait"> + <adaptation id="fullscreen"/> + </device> + <dependencies> + <deployment identifier="iOS"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13772"/> + <capability name="Aspect ratio constraints" minToolsVersion="5.1"/> + <capability name="Safe area layout guides" minToolsVersion="9.0"/> + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> + </dependencies> + <scenes> + <!--Binding View Controller--> + <scene sceneID="MIJ-WH-73A"> + <objects> + <viewController storyboardIdentifier="BindingViewControllerVC" id="SC7-Z5-TUk" customClass="BindingViewController" customModule="ParentAssistant" customModuleProvider="target" sceneMemberID="viewController"> + <view key="view" contentMode="scaleToFill" id="wHn-CF-kHg"> + <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <subviews> + <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" scrollEnabled="NO" translatesAutoresizingMaskIntoConstraints="NO" id="P0w-Y3-Nux"> + <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> + <subviews> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="XNG-cS-DCX" customClass="UIControl"> + <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> + <subviews> + <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="绑定手机号码为" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="REL-rO-sBE"> + <rect key="frame" x="126.5" y="20" width="121.5" height="21"/> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> + <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1j1-yS-AS0"> + <rect key="frame" x="187.5" y="61" width="0.0" height="0.0"/> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <color key="textColor" red="0.95294117649999999" green="0.044139709020000001" blue="0.0" alpha="0.90402160229999995" colorSpace="calibratedRGB"/> + <nil key="highlightedColor"/> + </label> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Lry-ZD-jrQ"> + <rect key="frame" x="67.5" y="81" width="240" height="40"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="孩子姓名:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="SzI-3b-VyZ"> + <rect key="frame" x="8" y="9.5" width="75" height="21"/> + <constraints> + <constraint firstAttribute="width" constant="75" id="1Kz-c2-cWk"/> + </constraints> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> + <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="BcE-Vi-QYk"> + <rect key="frame" x="91" y="5" width="141" height="30"/> + <nil key="textColor"/> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <textInputTraits key="textInputTraits"/> + <connections> + <outlet property="delegate" destination="SC7-Z5-TUk" id="OOq-YY-QL7"/> + </connections> + </textField> + </subviews> + <constraints> + <constraint firstItem="BcE-Vi-QYk" firstAttribute="centerY" secondItem="Lry-ZD-jrQ" secondAttribute="centerY" id="UQx-st-B52"/> + <constraint firstItem="BcE-Vi-QYk" firstAttribute="leading" secondItem="SzI-3b-VyZ" secondAttribute="trailing" constant="8" id="giU-FF-BVf"/> + <constraint firstAttribute="width" constant="240" id="nln-YE-aUo"/> + <constraint firstItem="SzI-3b-VyZ" firstAttribute="centerY" secondItem="Lry-ZD-jrQ" secondAttribute="centerY" id="t0S-VJ-l1C"/> + <constraint firstAttribute="trailing" secondItem="BcE-Vi-QYk" secondAttribute="trailing" constant="8" id="yQh-ty-91f"/> + <constraint firstItem="SzI-3b-VyZ" firstAttribute="leading" secondItem="Lry-ZD-jrQ" secondAttribute="leading" constant="8" id="z2C-7R-Ub1"/> + </constraints> + </view> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kxt-bL-oiI"> + <rect key="frame" x="67.5" y="129" width="240" height="40"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="性 别:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gRs-dx-ci7"> + <rect key="frame" x="8" y="10" width="75" height="21"/> + <constraints> + <constraint firstAttribute="width" constant="75" id="eVY-WV-LHm"/> + </constraints> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> + <view tag="1000" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="PFs-Tj-G2K"> + <rect key="frame" x="91" y="5" width="141" height="30"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8EC-X6-bwJ"> + <rect key="frame" x="0.0" y="0.0" width="121" height="30"/> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="evaluation_icon_pushDown" translatesAutoresizingMaskIntoConstraints="NO" id="t7C-GZ-zMI"> + <rect key="frame" x="121" y="9.5" width="20" height="11"/> + <constraints> + <constraint firstAttribute="width" secondItem="t7C-GZ-zMI" secondAttribute="height" multiplier="16:9" id="OER-9Z-gv9"/> + <constraint firstAttribute="width" constant="20" id="UdM-aj-TjH"/> + </constraints> + </imageView> + </subviews> + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> + <gestureRecognizers/> + <constraints> + <constraint firstItem="8EC-X6-bwJ" firstAttribute="leading" secondItem="PFs-Tj-G2K" secondAttribute="leading" id="5GC-Eb-4l2"/> + <constraint firstItem="t7C-GZ-zMI" firstAttribute="leading" secondItem="8EC-X6-bwJ" secondAttribute="trailing" id="EZX-dZ-q37"/> + <constraint firstAttribute="trailing" secondItem="t7C-GZ-zMI" secondAttribute="trailing" id="GFx-iV-h2I"/> + <constraint firstItem="t7C-GZ-zMI" firstAttribute="centerY" secondItem="PFs-Tj-G2K" secondAttribute="centerY" id="Jft-CZ-Ozm"/> + <constraint firstAttribute="height" constant="30" id="Xqc-eU-7Pr"/> + <constraint firstItem="8EC-X6-bwJ" firstAttribute="top" secondItem="PFs-Tj-G2K" secondAttribute="top" id="qyh-NB-CVP"/> + <constraint firstAttribute="bottom" secondItem="8EC-X6-bwJ" secondAttribute="bottom" id="wv5-4S-ql7"/> + </constraints> + <connections> + <outletCollection property="gestureRecognizers" destination="LEy-66-xfv" appends="YES" id="cXM-sF-jrH"/> + </connections> + </view> + </subviews> + <constraints> + <constraint firstItem="gRs-dx-ci7" firstAttribute="leading" secondItem="kxt-bL-oiI" secondAttribute="leading" constant="8" id="1U3-kg-RuV"/> + <constraint firstAttribute="trailing" secondItem="PFs-Tj-G2K" secondAttribute="trailing" constant="8" id="NSH-fs-D3q"/> + <constraint firstItem="PFs-Tj-G2K" firstAttribute="centerY" secondItem="kxt-bL-oiI" secondAttribute="centerY" id="Sgo-zl-RVe"/> + <constraint firstItem="PFs-Tj-G2K" firstAttribute="leading" secondItem="gRs-dx-ci7" secondAttribute="trailing" constant="8" id="jlC-sf-cUB"/> + <constraint firstItem="gRs-dx-ci7" firstAttribute="centerY" secondItem="kxt-bL-oiI" secondAttribute="centerY" id="y97-EE-VAy"/> + </constraints> + </view> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="O93-Li-jET"> + <rect key="frame" x="67.5" y="177" width="240" height="40"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="年 级:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="yBZ-0b-pQ9"> + <rect key="frame" x="8" y="10" width="75" height="21"/> + <constraints> + <constraint firstAttribute="width" constant="75" id="dqs-ha-x8B"/> + </constraints> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> + <view tag="1001" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="GuO-ah-aM3"> + <rect key="frame" x="91" y="5" width="141" height="30"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="k8w-na-ShO"> + <rect key="frame" x="0.0" y="0.0" width="121" height="30"/> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="evaluation_icon_pushDown" translatesAutoresizingMaskIntoConstraints="NO" id="u8y-wv-95T"> + <rect key="frame" x="121" y="9.5" width="20" height="11"/> + <constraints> + <constraint firstAttribute="width" secondItem="u8y-wv-95T" secondAttribute="height" multiplier="16:9" id="PpX-an-Mcx"/> + </constraints> + </imageView> + </subviews> + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> + <gestureRecognizers/> + <constraints> + <constraint firstItem="k8w-na-ShO" firstAttribute="leading" secondItem="GuO-ah-aM3" secondAttribute="leading" id="1YM-Gx-c1v"/> + <constraint firstItem="u8y-wv-95T" firstAttribute="leading" secondItem="k8w-na-ShO" secondAttribute="trailing" id="DZ0-WJ-MkY"/> + <constraint firstAttribute="bottom" secondItem="k8w-na-ShO" secondAttribute="bottom" id="J2d-vN-CP1"/> + <constraint firstItem="k8w-na-ShO" firstAttribute="top" secondItem="GuO-ah-aM3" secondAttribute="top" id="PWZ-ai-sko"/> + <constraint firstItem="u8y-wv-95T" firstAttribute="centerY" secondItem="GuO-ah-aM3" secondAttribute="centerY" id="f4o-vC-bln"/> + <constraint firstAttribute="trailing" secondItem="u8y-wv-95T" secondAttribute="trailing" id="mU3-LE-4dM"/> + <constraint firstAttribute="height" constant="30" id="rIk-SK-yBP"/> + </constraints> + <connections> + <outletCollection property="gestureRecognizers" destination="Kts-0O-pak" appends="YES" id="hUj-y5-jMs"/> + </connections> + </view> + </subviews> + <constraints> + <constraint firstAttribute="trailing" secondItem="GuO-ah-aM3" secondAttribute="trailing" constant="8" id="3ye-AU-Wjq"/> + <constraint firstItem="GuO-ah-aM3" firstAttribute="centerY" secondItem="O93-Li-jET" secondAttribute="centerY" id="S7j-Y1-iv2"/> + <constraint firstItem="yBZ-0b-pQ9" firstAttribute="leading" secondItem="O93-Li-jET" secondAttribute="leading" constant="8" id="b6Z-BO-HDk"/> + <constraint firstItem="yBZ-0b-pQ9" firstAttribute="centerY" secondItem="O93-Li-jET" secondAttribute="centerY" id="qdX-Ir-kHe"/> + <constraint firstItem="GuO-ah-aM3" firstAttribute="leading" secondItem="yBZ-0b-pQ9" secondAttribute="trailing" constant="8" id="vGm-oD-Gs9"/> + </constraints> + </view> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="hR4-GJ-ZLd"> + <rect key="frame" x="67.5" y="225" width="240" height="40"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="班 级:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qFh-7U-p8J"> + <rect key="frame" x="8" y="10" width="75" height="21"/> + <constraints> + <constraint firstAttribute="width" constant="75" id="4gg-6q-S4K"/> + </constraints> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> + <view tag="1002" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="FMa-hb-gaq"> + <rect key="frame" x="91" y="5" width="141" height="30"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3Ff-lb-IAz"> + <rect key="frame" x="0.0" y="0.0" width="121" height="30"/> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="evaluation_icon_pushDown" translatesAutoresizingMaskIntoConstraints="NO" id="sBB-lz-j4M"> + <rect key="frame" x="121" y="9.5" width="20" height="11"/> + <constraints> + <constraint firstAttribute="width" secondItem="sBB-lz-j4M" secondAttribute="height" multiplier="16:9" id="RK6-la-GUy"/> + </constraints> + </imageView> + </subviews> + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> + <gestureRecognizers/> + <constraints> + <constraint firstItem="sBB-lz-j4M" firstAttribute="centerY" secondItem="FMa-hb-gaq" secondAttribute="centerY" id="Nlx-aL-9Cp"/> + <constraint firstAttribute="bottom" secondItem="3Ff-lb-IAz" secondAttribute="bottom" id="PPf-rg-VMj"/> + <constraint firstAttribute="trailing" secondItem="sBB-lz-j4M" secondAttribute="trailing" id="c92-Bb-fPa"/> + <constraint firstAttribute="height" constant="30" id="cD7-29-sC3"/> + <constraint firstItem="3Ff-lb-IAz" firstAttribute="leading" secondItem="FMa-hb-gaq" secondAttribute="leading" id="f9p-Mv-1bg"/> + <constraint firstItem="3Ff-lb-IAz" firstAttribute="top" secondItem="FMa-hb-gaq" secondAttribute="top" id="hgk-HZ-k3t"/> + <constraint firstItem="sBB-lz-j4M" firstAttribute="leading" secondItem="3Ff-lb-IAz" secondAttribute="trailing" id="tWR-Xb-CpO"/> + </constraints> + <connections> + <outletCollection property="gestureRecognizers" destination="3FV-1x-Qsg" appends="YES" id="KTd-T3-ptA"/> + </connections> + </view> + </subviews> + <constraints> + <constraint firstAttribute="height" constant="40" id="6Mp-oZ-kFS"/> + <constraint firstItem="qFh-7U-p8J" firstAttribute="centerY" secondItem="hR4-GJ-ZLd" secondAttribute="centerY" id="6qw-zS-lTj"/> + <constraint firstItem="qFh-7U-p8J" firstAttribute="leading" secondItem="hR4-GJ-ZLd" secondAttribute="leading" constant="8" id="A16-Da-Nml"/> + <constraint firstItem="FMa-hb-gaq" firstAttribute="centerY" secondItem="hR4-GJ-ZLd" secondAttribute="centerY" id="ILl-xZ-ROc"/> + <constraint firstAttribute="trailing" secondItem="FMa-hb-gaq" secondAttribute="trailing" constant="8" id="TC0-Yy-FbX"/> + <constraint firstItem="FMa-hb-gaq" firstAttribute="leading" secondItem="qFh-7U-p8J" secondAttribute="trailing" constant="8" id="ePc-S7-FyD"/> + </constraints> + </view> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="FqV-SD-Mvm"> + <rect key="frame" x="112.5" y="285" width="150" height="33"/> + <color key="backgroundColor" red="0.27503338459999999" green="0.50970917940000005" blue="0.90092128520000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="width" constant="150" id="UyA-XG-HPW"/> + </constraints> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <state key="normal" title="确定"> + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="confirmBtnClcik:" destination="SC7-Z5-TUk" eventType="touchUpInside" id="dYC-uT-Vwc"/> + </connections> + </button> + <tableView hidden="YES" clipsSubviews="YES" contentMode="scaleToFill" fixedFrame="YES" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="fmZ-BK-cei"> + <rect key="frame" x="156" y="335" width="135" height="152"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> + <prototypes> + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" reuseIdentifier="cell" id="ScH-T2-JbL"> + <rect key="frame" x="0.0" y="28" width="135" height="44"/> + <autoresizingMask key="autoresizingMask"/> + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="ScH-T2-JbL" id="Vdf-3J-cd1"> + <rect key="frame" x="0.0" y="0.0" width="135" height="43.5"/> + <autoresizingMask key="autoresizingMask"/> + </tableViewCellContentView> + </tableViewCell> + </prototypes> + <connections> + <outlet property="dataSource" destination="SC7-Z5-TUk" id="Jiq-kB-gCm"/> + <outlet property="delegate" destination="SC7-Z5-TUk" id="0AV-HO-e1k"/> + </connections> + </tableView> + </subviews> + <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> + <constraints> + <constraint firstItem="REL-rO-sBE" firstAttribute="top" secondItem="XNG-cS-DCX" secondAttribute="top" constant="20" id="5ZV-2a-Qo0"/> + <constraint firstItem="1j1-yS-AS0" firstAttribute="top" secondItem="REL-rO-sBE" secondAttribute="bottom" constant="20" id="5gv-QF-b7B"/> + <constraint firstItem="O93-Li-jET" firstAttribute="height" secondItem="Lry-ZD-jrQ" secondAttribute="height" id="BJw-Fi-zqe"/> + <constraint firstItem="Lry-ZD-jrQ" firstAttribute="centerX" secondItem="XNG-cS-DCX" secondAttribute="centerX" id="GdP-6p-9L5"/> + <constraint firstItem="kxt-bL-oiI" firstAttribute="top" secondItem="Lry-ZD-jrQ" secondAttribute="bottom" constant="8" id="HxB-x6-iZq"/> + <constraint firstItem="1j1-yS-AS0" firstAttribute="centerX" secondItem="XNG-cS-DCX" secondAttribute="centerX" id="Jd3-q2-0X8"/> + <constraint firstItem="FqV-SD-Mvm" firstAttribute="top" secondItem="hR4-GJ-ZLd" secondAttribute="bottom" constant="20" id="M0T-AR-guZ"/> + <constraint firstItem="O93-Li-jET" firstAttribute="width" secondItem="Lry-ZD-jrQ" secondAttribute="width" id="M5S-H4-w8q"/> + <constraint firstItem="FqV-SD-Mvm" firstAttribute="centerX" secondItem="XNG-cS-DCX" secondAttribute="centerX" id="OFC-XX-Wzn"/> + <constraint firstItem="hR4-GJ-ZLd" firstAttribute="top" secondItem="O93-Li-jET" secondAttribute="bottom" constant="8" id="Ou1-72-F83"/> + <constraint firstItem="O93-Li-jET" firstAttribute="top" secondItem="kxt-bL-oiI" secondAttribute="bottom" constant="8" id="Sy6-4q-XeH"/> + <constraint firstItem="hR4-GJ-ZLd" firstAttribute="width" secondItem="Lry-ZD-jrQ" secondAttribute="width" id="T4F-hh-BOa"/> + <constraint firstItem="kxt-bL-oiI" firstAttribute="height" secondItem="Lry-ZD-jrQ" secondAttribute="height" id="WJy-dT-EXy"/> + <constraint firstAttribute="height" constant="667" id="aXb-ZO-UyB"/> + <constraint firstItem="t7C-GZ-zMI" firstAttribute="width" secondItem="u8y-wv-95T" secondAttribute="width" id="be8-xa-5G9"/> + <constraint firstItem="sBB-lz-j4M" firstAttribute="width" secondItem="u8y-wv-95T" secondAttribute="width" id="eDv-01-DiQ"/> + <constraint firstItem="Lry-ZD-jrQ" firstAttribute="top" secondItem="1j1-yS-AS0" secondAttribute="bottom" constant="20" id="geU-1c-IfY"/> + <constraint firstItem="kxt-bL-oiI" firstAttribute="centerX" secondItem="XNG-cS-DCX" secondAttribute="centerX" id="jdh-cw-zpa"/> + <constraint firstItem="kxt-bL-oiI" firstAttribute="width" secondItem="Lry-ZD-jrQ" secondAttribute="width" id="mGE-8p-MQY"/> + <constraint firstItem="hR4-GJ-ZLd" firstAttribute="centerX" secondItem="XNG-cS-DCX" secondAttribute="centerX" id="rxP-pl-3Um"/> + <constraint firstItem="O93-Li-jET" firstAttribute="centerX" secondItem="XNG-cS-DCX" secondAttribute="centerX" id="uyt-7c-LZX"/> + <constraint firstItem="hR4-GJ-ZLd" firstAttribute="height" secondItem="Lry-ZD-jrQ" secondAttribute="height" id="wJT-yt-hLC"/> + <constraint firstItem="REL-rO-sBE" firstAttribute="centerX" secondItem="XNG-cS-DCX" secondAttribute="centerX" id="xV9-gg-n1L"/> + </constraints> + <connections> + <action selector="cancleSelectTableView:" destination="SC7-Z5-TUk" eventType="valueChanged" id="U7F-UF-iuZ"/> + </connections> + </view> + </subviews> + <constraints> + <constraint firstAttribute="bottom" secondItem="XNG-cS-DCX" secondAttribute="bottom" id="GpA-U6-Grn"/> + <constraint firstItem="XNG-cS-DCX" firstAttribute="top" secondItem="P0w-Y3-Nux" secondAttribute="top" id="LBb-SE-77O"/> + <constraint firstItem="XNG-cS-DCX" firstAttribute="leading" secondItem="P0w-Y3-Nux" secondAttribute="leading" id="Mkw-GK-7L3"/> + <constraint firstAttribute="trailing" secondItem="XNG-cS-DCX" secondAttribute="trailing" id="Tve-bM-QyB"/> + <constraint firstItem="XNG-cS-DCX" firstAttribute="centerX" secondItem="P0w-Y3-Nux" secondAttribute="centerX" id="tYI-cc-gNF"/> + </constraints> + </scrollView> + </subviews> + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> + <constraints> + <constraint firstItem="P0w-Y3-Nux" firstAttribute="top" secondItem="wHn-CF-kHg" secondAttribute="top" id="2qF-RX-Ngk"/> + <constraint firstItem="P0w-Y3-Nux" firstAttribute="leading" secondItem="prJ-Io-sHC" secondAttribute="leading" id="90x-M3-dT7"/> + <constraint firstItem="P0w-Y3-Nux" firstAttribute="bottom" secondItem="prJ-Io-sHC" secondAttribute="bottom" id="WnC-bM-yOh"/> + <constraint firstItem="P0w-Y3-Nux" firstAttribute="trailing" secondItem="prJ-Io-sHC" secondAttribute="trailing" id="sQx-XF-5At"/> + </constraints> + <viewLayoutGuide key="safeArea" id="prJ-Io-sHC"/> + </view> + <connections> + <outlet property="classLabel" destination="3Ff-lb-IAz" id="3vZ-RG-Kl0"/> + <outlet property="confirmBtn" destination="FqV-SD-Mvm" id="2ks-S7-aw2"/> + <outlet property="firstLineLabel" destination="REL-rO-sBE" id="sHm-br-6ch"/> + <outlet property="genderLabel" destination="8EC-X6-bwJ" id="mGD-Vp-XO4"/> + <outlet property="gradeLabel" destination="k8w-na-ShO" id="0SC-ja-Ycq"/> + <outlet property="nameTextFiled" destination="BcE-Vi-QYk" id="P6F-fb-c0Z"/> + <outlet property="phoneNumberLabel" destination="1j1-yS-AS0" id="ro7-AV-8eQ"/> + <outlet property="selectImageHeight" destination="UdM-aj-TjH" id="FDT-0C-lMv"/> + <outlet property="selectTableView" destination="fmZ-BK-cei" id="WKi-76-ydS"/> + </connections> + </viewController> + <placeholder placeholderIdentifier="IBFirstResponder" id="gtY-da-H8P" userLabel="First Responder" sceneMemberID="firstResponder"/> + <tapGestureRecognizer id="LEy-66-xfv"> + <connections> + <action selector="selectTapAction:" destination="SC7-Z5-TUk" id="Nbe-mO-VOd"/> + </connections> + </tapGestureRecognizer> + <tapGestureRecognizer id="Kts-0O-pak"> + <connections> + <action selector="selectTapAction:" destination="SC7-Z5-TUk" id="8Rk-RM-Grb"/> + </connections> + </tapGestureRecognizer> + <tapGestureRecognizer id="3FV-1x-Qsg"> + <connections> + <action selector="selectTapAction:" destination="SC7-Z5-TUk" id="ETG-1g-7Jk"/> + </connections> + </tapGestureRecognizer> + </objects> + <point key="canvasLocation" x="77.599999999999994" y="118.29085457271366"/> + </scene> + <!--选择孩子学校--> + <scene sceneID="jXC-xr-pan"> + <objects> + <viewController storyboardIdentifier="BaseCityChooseSchoolViewControllerVC" id="A0M-q7-IGT" customClass="BaseCityChooseSchoolViewController" customModule="ParentAssistant" customModuleProvider="target" sceneMemberID="viewController"> + <view key="view" contentMode="scaleToFill" id="Onv-g3-veb"> + <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <subviews> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="fO6-Ah-i0n"> + <rect key="frame" x="0.0" y="64" width="375" height="40"/> + <subviews> + <searchBar contentMode="redraw" translatesAutoresizingMaskIntoConstraints="NO" id="l2p-Iw-hkv"> + <rect key="frame" x="40" y="0.0" width="335" height="40"/> + <textInputTraits key="textInputTraits"/> + <scopeButtonTitles> + <string>Title</string> + <string>Title</string> + </scopeButtonTitles> + <connections> + <outlet property="delegate" destination="A0M-q7-IGT" id="e7y-Ov-FN3"/> + </connections> + </searchBar> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="DOI-gH-jce"> + <rect key="frame" x="0.0" y="0.0" width="40" height="40"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5U5-yq-C0i"> + <rect key="frame" x="8" y="20.5" width="0.0" height="0.0"/> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="evaluation_icon_pushDown" translatesAutoresizingMaskIntoConstraints="NO" id="orB-P1-43H"> + <rect key="frame" x="16" y="15.5" width="16" height="9"/> + <constraints> + <constraint firstAttribute="width" constant="16" id="16l-ae-SRY"/> + <constraint firstAttribute="width" secondItem="orB-P1-43H" secondAttribute="height" multiplier="16:9" id="LTF-6F-1BK"/> + </constraints> + </imageView> + </subviews> + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> + <gestureRecognizers/> + <constraints> + <constraint firstItem="orB-P1-43H" firstAttribute="centerY" secondItem="DOI-gH-jce" secondAttribute="centerY" id="9zk-rO-Bal"/> + <constraint firstAttribute="trailing" secondItem="orB-P1-43H" secondAttribute="trailing" constant="8" id="BzP-Md-pmS"/> + <constraint firstItem="5U5-yq-C0i" firstAttribute="centerY" secondItem="DOI-gH-jce" secondAttribute="centerY" id="XUR-oK-Eac"/> + <constraint firstItem="5U5-yq-C0i" firstAttribute="leading" secondItem="DOI-gH-jce" secondAttribute="leading" constant="8" id="jlC-4X-vmT"/> + <constraint firstItem="orB-P1-43H" firstAttribute="leading" secondItem="5U5-yq-C0i" secondAttribute="trailing" constant="8" id="pIv-Pk-p8P"/> + </constraints> + <connections> + <outletCollection property="gestureRecognizers" destination="bwD-zo-BfW" appends="YES" id="lGg-fA-w9g"/> + </connections> + </view> + </subviews> + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> + <constraints> + <constraint firstItem="DOI-gH-jce" firstAttribute="top" secondItem="fO6-Ah-i0n" secondAttribute="top" id="0Hd-29-n1m"/> + <constraint firstAttribute="bottom" secondItem="DOI-gH-jce" secondAttribute="bottom" id="0io-Qu-M8N"/> + <constraint firstAttribute="bottom" secondItem="l2p-Iw-hkv" secondAttribute="bottom" id="27M-dQ-JQa"/> + <constraint firstItem="DOI-gH-jce" firstAttribute="leading" secondItem="fO6-Ah-i0n" secondAttribute="leading" id="E9W-AB-f3d"/> + <constraint firstItem="l2p-Iw-hkv" firstAttribute="leading" secondItem="DOI-gH-jce" secondAttribute="trailing" id="PBH-yX-Ii2"/> + <constraint firstAttribute="height" constant="40" id="cB5-m3-OT4"/> + <constraint firstAttribute="trailing" secondItem="l2p-Iw-hkv" secondAttribute="trailing" id="mxk-0g-vX5"/> + <constraint firstItem="l2p-Iw-hkv" firstAttribute="top" secondItem="fO6-Ah-i0n" secondAttribute="top" id="q7F-zS-lRk"/> + </constraints> + </view> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="K6J-Tc-LTg"> + <rect key="frame" x="0.0" y="617" width="375" height="50"/> + <subviews> + <button opaque="NO" alpha="0.60000002384185791" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="0O9-fu-b9g"> + <rect key="frame" x="8" y="12" width="359" height="30"/> + <color key="backgroundColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <state key="normal" title="下一步"> + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </state> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> + <integer key="value" value="10"/> + </userDefinedRuntimeAttribute> + <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> + </userDefinedRuntimeAttributes> + <connections> + <action selector="nextStep:" destination="A0M-q7-IGT" eventType="touchUpInside" id="XgW-aA-1mG"/> + </connections> + </button> + </subviews> + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> + <constraints> + <constraint firstAttribute="height" constant="50" id="BQ4-Si-bXm"/> + <constraint firstItem="0O9-fu-b9g" firstAttribute="leading" secondItem="K6J-Tc-LTg" secondAttribute="leading" constant="8" id="ifw-4f-Jpr"/> + <constraint firstAttribute="trailing" secondItem="0O9-fu-b9g" secondAttribute="trailing" constant="8" id="isL-T7-Qmd"/> + <constraint firstAttribute="bottom" secondItem="0O9-fu-b9g" secondAttribute="bottom" constant="8" id="nFg-EW-rQa"/> + </constraints> + </view> + <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="PtW-3t-0kg"> + <rect key="frame" x="0.0" y="104" width="375" height="513"/> + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> + <view key="tableFooterView" contentMode="scaleToFill" id="EaE-p5-h1S"> + <rect key="frame" x="0.0" y="72" width="375" height="1"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + </view> + <prototypes> + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="none" indentationWidth="10" reuseIdentifier="cell" id="aLu-j4-6rM" customClass="SelectSchoolList" customModule="ParentAssistant" customModuleProvider="target"> + <rect key="frame" x="0.0" y="28" width="375" height="44"/> + <autoresizingMask key="autoresizingMask"/> + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="aLu-j4-6rM" id="HwG-k5-D6B"> + <rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/> + <autoresizingMask key="autoresizingMask"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mu7-8F-D7t"> + <rect key="frame" x="20" y="12" width="42" height="21"/> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="my_icon_confirmBtn" translatesAutoresizingMaskIntoConstraints="NO" id="uQB-I2-g76"> + <rect key="frame" x="335" y="11" width="20" height="20"/> + <constraints> + <constraint firstAttribute="height" constant="20" id="O5D-Kd-tnC"/> + <constraint firstAttribute="width" secondItem="uQB-I2-g76" secondAttribute="height" multiplier="1:1" id="cbI-Yt-6bN"/> + </constraints> + </imageView> + </subviews> + <constraints> + <constraint firstItem="mu7-8F-D7t" firstAttribute="leading" secondItem="HwG-k5-D6B" secondAttribute="leading" constant="20" id="Kok-DS-Yde"/> + <constraint firstItem="uQB-I2-g76" firstAttribute="centerY" secondItem="HwG-k5-D6B" secondAttribute="centerY" id="cIw-K0-Exy"/> + <constraint firstAttribute="trailing" secondItem="uQB-I2-g76" secondAttribute="trailing" constant="20" id="dVF-Dh-Rtt"/> + <constraint firstItem="mu7-8F-D7t" firstAttribute="centerY" secondItem="HwG-k5-D6B" secondAttribute="centerY" id="fsT-mg-e1a"/> + </constraints> + </tableViewCellContentView> + <connections> + <outlet property="isSelect" destination="uQB-I2-g76" id="6wY-JR-T26"/> + <outlet property="schoolName" destination="mu7-8F-D7t" id="wkp-Qv-j2n"/> + </connections> + </tableViewCell> + </prototypes> + <connections> + <outlet property="dataSource" destination="A0M-q7-IGT" id="evO-ib-Hst"/> + <outlet property="delegate" destination="A0M-q7-IGT" id="Rbx-Y9-br6"/> + </connections> + </tableView> + </subviews> + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> + <constraints> + <constraint firstItem="fO6-Ah-i0n" firstAttribute="leading" secondItem="UOZ-dT-HdH" secondAttribute="leading" id="1DX-T5-eqS"/> + <constraint firstItem="fO6-Ah-i0n" firstAttribute="top" secondItem="UOZ-dT-HdH" secondAttribute="top" id="5SW-dU-bex"/> + <constraint firstItem="K6J-Tc-LTg" firstAttribute="top" secondItem="PtW-3t-0kg" secondAttribute="bottom" id="DZi-5f-yJP"/> + <constraint firstItem="fO6-Ah-i0n" firstAttribute="trailing" secondItem="UOZ-dT-HdH" secondAttribute="trailing" id="OTH-hT-IuC"/> + <constraint firstItem="PtW-3t-0kg" firstAttribute="trailing" secondItem="UOZ-dT-HdH" secondAttribute="trailing" id="SRU-Mk-axC"/> + <constraint firstItem="PtW-3t-0kg" firstAttribute="top" secondItem="fO6-Ah-i0n" secondAttribute="bottom" id="abD-i3-Y6w"/> + <constraint firstItem="K6J-Tc-LTg" firstAttribute="leading" secondItem="UOZ-dT-HdH" secondAttribute="leading" id="jJc-Sd-TbD"/> + <constraint firstItem="K6J-Tc-LTg" firstAttribute="trailing" secondItem="UOZ-dT-HdH" secondAttribute="trailing" id="jWn-SM-Y1N"/> + <constraint firstItem="K6J-Tc-LTg" firstAttribute="bottom" secondItem="UOZ-dT-HdH" secondAttribute="bottom" id="kZg-15-tgT"/> + <constraint firstItem="PtW-3t-0kg" firstAttribute="leading" secondItem="UOZ-dT-HdH" secondAttribute="leading" id="vLD-zI-Vju"/> + </constraints> + <viewLayoutGuide key="safeArea" id="UOZ-dT-HdH"/> + </view> + <navigationItem key="navigationItem" title="选择孩子学校" id="Zis-r1-2ac"/> + <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/> + <connections> + <outlet property="citySelectbtn" destination="5U5-yq-C0i" id="wfB-6U-FyP"/> + <outlet property="tableView" destination="PtW-3t-0kg" id="VaJ-gB-cEX"/> + </connections> + </viewController> + <placeholder placeholderIdentifier="IBFirstResponder" id="cjH-Fa-jy0" userLabel="First Responder" sceneMemberID="firstResponder"/> + <tapGestureRecognizer id="bwD-zo-BfW"> + <connections> + <action selector="citySelectBtnClick:" destination="A0M-q7-IGT" id="UOI-JJ-Wj0"/> + </connections> + </tapGestureRecognizer> + </objects> + <point key="canvasLocation" x="844" y="117.39130434782609"/> + </scene> + <!--Invitation Code Verification View Controller--> + <scene sceneID="O88-W5-BCB"> + <objects> + <viewController storyboardIdentifier="InvitationCodeVerificationViewControllerVC" id="R3o-G2-oUv" customClass="InvitationCodeVerificationViewController" customModule="ParentAssistant" customModuleProvider="target" sceneMemberID="viewController"> + <view key="view" contentMode="scaleToFill" id="AKW-ZX-X2g"> + <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <subviews> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="exA-el-IFq"> + <rect key="frame" x="0.0" y="108.5" width="375" height="250"/> + <subviews> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="1fW-dv-WoM"> + <rect key="frame" x="112.5" y="77" width="150" height="30"/> + <color key="backgroundColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="height" constant="30" id="5hq-lI-iLz"/> + <constraint firstAttribute="width" constant="150" id="BGF-TZ-RcW"/> + </constraints> + <state key="normal" title="下一步"> + <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> + </state> + <connections> + <action selector="nextBtnClick:" destination="R3o-G2-oUv" eventType="touchUpInside" id="F9Y-Wo-UFn"/> + </connections> + </button> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="注:填写需要绑定的孩子的邀请码(非合作学校无邀请码.请更换手机号码的方式验证) 如不知道邀请码请拨打电话: 400-123456进行查询" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cMY-Ua-Fom"> + <rect key="frame" x="8" y="137" width="359" height="51"/> + <fontDescription key="fontDescription" name=".PingFangSC-Regular" family=".PingFang SC" pointSize="17"/> + <color key="textColor" white="0.66666666669999997" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> + <nil key="highlightedColor"/> + </label> + <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="填写邀请码" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="vQA-t4-Eci"> + <rect key="frame" x="8" y="8" width="360" height="30"/> + <constraints> + <constraint firstAttribute="height" constant="30" id="uUH-o5-0a7"/> + </constraints> + <nil key="textColor"/> + <fontDescription key="fontDescription" type="system" pointSize="14"/> + <textInputTraits key="textInputTraits"/> + <connections> + <outlet property="delegate" destination="R3o-G2-oUv" id="RKR-2s-gS5"/> + </connections> + </textField> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="aPt-HX-Yq3"> + <rect key="frame" x="8" y="46" width="359" height="1"/> + <color key="backgroundColor" white="0.66666666669999997" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> + <constraints> + <constraint firstAttribute="height" constant="1" id="gz9-PX-2oM"/> + </constraints> + </view> + </subviews> + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> + <constraints> + <constraint firstItem="vQA-t4-Eci" firstAttribute="top" secondItem="exA-el-IFq" secondAttribute="top" constant="8" id="5Uu-Sy-vu0"/> + <constraint firstItem="aPt-HX-Yq3" firstAttribute="leading" secondItem="exA-el-IFq" secondAttribute="leading" constant="8" id="7Ln-yD-VaY"/> + <constraint firstItem="vQA-t4-Eci" firstAttribute="leading" secondItem="exA-el-IFq" secondAttribute="leading" constant="8" id="7M5-Vx-2Cz"/> + <constraint firstItem="aPt-HX-Yq3" firstAttribute="top" secondItem="vQA-t4-Eci" secondAttribute="bottom" constant="8" id="976-F3-2gJ"/> + <constraint firstItem="1fW-dv-WoM" firstAttribute="centerX" secondItem="exA-el-IFq" secondAttribute="centerX" id="EMs-fL-FZD"/> + <constraint firstItem="cMY-Ua-Fom" firstAttribute="top" secondItem="1fW-dv-WoM" secondAttribute="bottom" constant="30" id="Riq-Xq-a0K"/> + <constraint firstItem="vQA-t4-Eci" firstAttribute="centerX" secondItem="exA-el-IFq" secondAttribute="centerX" id="db8-a4-dQ5"/> + <constraint firstItem="cMY-Ua-Fom" firstAttribute="leading" secondItem="exA-el-IFq" secondAttribute="leading" constant="8" id="pdC-1A-R0A"/> + <constraint firstItem="1fW-dv-WoM" firstAttribute="top" secondItem="aPt-HX-Yq3" secondAttribute="bottom" constant="30" id="qW5-M9-wDD"/> + <constraint firstAttribute="trailing" secondItem="aPt-HX-Yq3" secondAttribute="trailing" constant="8" id="uG6-EB-i2d"/> + <constraint firstItem="cMY-Ua-Fom" firstAttribute="centerX" secondItem="exA-el-IFq" secondAttribute="centerX" id="uJO-jO-ou4"/> + <constraint firstAttribute="height" constant="250" id="xqy-Zc-vv1"/> + </constraints> + </view> + </subviews> + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> + <constraints> + <constraint firstItem="exA-el-IFq" firstAttribute="leading" secondItem="fXU-yt-T3m" secondAttribute="leading" id="1HS-GB-jkp"/> + <constraint firstItem="exA-el-IFq" firstAttribute="centerX" secondItem="AKW-ZX-X2g" secondAttribute="centerX" id="Auy-9z-eRw"/> + <constraint firstItem="exA-el-IFq" firstAttribute="centerY" secondItem="AKW-ZX-X2g" secondAttribute="centerY" constant="-100" id="XKh-ba-xKc"/> + </constraints> + <viewLayoutGuide key="safeArea" id="fXU-yt-T3m"/> + </view> + <connections> + <outlet property="inputInvitationCode" destination="vQA-t4-Eci" id="OSo-jl-2Ps"/> + <outlet property="instructions" destination="cMY-Ua-Fom" id="Ofn-M3-LGa"/> + <outlet property="nextBtn" destination="1fW-dv-WoM" id="Fne-zE-jM0"/> + </connections> + </viewController> + <placeholder placeholderIdentifier="IBFirstResponder" id="a4n-d8-QFK" userLabel="First Responder" sceneMemberID="firstResponder"/> + </objects> + <point key="canvasLocation" x="1572" y="117.39130434782609"/> + </scene> + </scenes> + <resources> + <image name="evaluation_icon_pushDown" width="16" height="9"/> + <image name="my_icon_confirmBtn" width="21" height="19"/> + </resources> +</document> diff --git a/ParentAssistant/ParentAssistant/Classes/controllers/userCenter/BaseCityChooseSchoolViewController.swift b/ParentAssistant/ParentAssistant/Classes/controllers/userCenter/BaseCityChooseSchoolViewController.swift deleted file mode 100644 index 1235508..0000000 --- a/ParentAssistant/ParentAssistant/Classes/controllers/userCenter/BaseCityChooseSchoolViewController.swift +++ /dev/null @@ -1,255 +0,0 @@ -// -// BaseCityChooseSchoolViewController.swift -// ParentAssistant -// -// Created by 左丞 on 2018/3/9. -// Copyright © 2018年 HANGZHOUTEAM. All rights reserved. -// - -import UIKit -class BaseCityChooseSchoolViewController: UIViewController,UISearchBarDelegate { - - @IBOutlet weak var tableView: UITableView! - let firstLetterArr:[String] = ["#","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"] - var keys:[String] = [] - var schoolDic:[String:[School]] = [:] - var schoolArray:[School] = [] - @IBOutlet weak var citySelectbtn: UILabel! - - override func viewDidLoad() { - super.viewDidLoad() - - citySelectbtn.text = localAddress - getData() - // Do any additional setup after loading the view. - } - - //根据关键字获取学校 - func getData(_ keyword:String=""){ - var dic:[String:AnyObject] = ["areaName":localAddress as AnyObject,"keyword":keyword as AnyObject] - if keyword == ""{ - dic.removeValue(forKey: "keyword") - } - HTTPServer.shared.getAreaSchool(parameters: dic) { (str, error) in - let json=JSON.fromString(str) - if let ret=json{ - let er=ret["error"].string - if let errorStr=er{ - appDelegate.window!.makeToast(errorStr) - }else{ - self.schoolArray.removeAll() - for item in ret.contentData().arrayValue { - self.schoolArray.append(School(j: item)) - } - self.sortData(self.schoolArray) - } - }else{ - - } - } - } - - //对给定的学校分组 - func sortData(_ array:[School]){ - schoolDic = [:] - for letter in firstLetterArr { - var arr:[School] = [] - for school in array{ - if String(format: "%c",pinyinFirstLetter((school.name as NSString).character(at: 0))).uppercased() == letter{ - arr.append(school) - } - } - if arr.count > 0{ - schoolDic.updateValue(arr, forKey: letter) - } - } - keys = Array(schoolDic.keys) - keys.sort { (key1, key2) -> Bool in - return key1 < key2 - } - tableView.reloadData() - } - - override func didReceiveMemoryWarning() { - super.didReceiveMemoryWarning() - // Dispose of any resources that can be recreated. - } - - //h获取已经选中的学校 - func getSelectSchool() -> School? { - for (_,item) in schoolDic{ - for school in item{ - if school.isSelect{ - return school - } - } - } - return nil - } - - //下一步 - @IBAction func nextStep(_ sender: UIButton) { - let school = getSelectSchool() - if school == nil{ - appDelegate.window!.makeToast("请先选择学校") - return - } - if !AccountManager.shared.isOnline(){ - appDelegate.window!.makeToast("请先登录") - return - } - - if school!.isNew == 1{ - let vc = Story.instantiateViewControllerWithIdentifier("BindingViewControllerVC", storyName: "UserCenter") as! BindingViewController - vc.from = .select - vc.school = school! - self.navigationController?.pushViewController(vc, animated: true) - }else{ - if AccountManager.shared.isNew() == 1{ - let vc = Story.instantiateViewControllerWithIdentifier("BindingViewControllerVC", storyName: "UserCenter") as! BindingViewController - vc.from = .unReserved - vc.school = school! - self.navigationController?.pushViewController(vc, animated: true) - return - } - let vc = Story.instantiateViewControllerWithIdentifier("InvitationCodeVerificationViewControllerVC", storyName: "UserCenter") as! InvitationCodeVerificationViewController - vc.school = school! - self.navigationController?.pushViewController(vc, animated: true) - - } - } - - func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) { - searchBar.showsCancelButton = true - } - - func searchBarCancelButtonClicked(_ searchBar: UISearchBar) { - searchData(searchBar) - } - - func searchBarSearchButtonClicked(_ searchBar: UISearchBar) { - searchData(searchBar) - } - - //搜索学校 - func searchData(_ searchBar: UISearchBar){ - getData(searchBar.text!) - searchBar.resignFirstResponder() - searchBar.showsCancelButton = false - - } - - //左上角城市选择按钮点击事件 - @IBAction func citySelectBtnClick(_ sender: UITapGestureRecognizer) { - sender.view?.isUserInteractionEnabled = false - LZCityPickerController.showPicker(in: self - , select: { (address, province, city, area, isSelect) in - if isSelect{ - sender.view?.isUserInteractionEnabled = true - self.selectCity(city: area!) - } - }) { - sender.view?.isUserInteractionEnabled = true - - } - } - - func selectCity(city: String) { - localAddress = city - - citySelectbtn.text = city - self.getData() - } - - override func viewWillAppear(_ animated: Bool) { - super.viewWillAppear(animated) - citySelectbtn.text = localAddress - } - /* - // MARK: - Navigation - - // In a storyboard-based application, you will often want to do a little preparation before navigation - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { - // Get the new view controller using segue.destinationViewController. - // Pass the selected object to the new view controller. - } - */ - - //根据indexPath找到相对应的model - func getSchoolByIndexpath(indexPath:IndexPath)->School{ - return schoolDic[keys[indexPath.section]]![indexPath.row] - - } - - //所有数据全部取消选中 - func changeSchoolSelectState(){ - for (_,value) in schoolDic { - for item in value{ - item.isSelect = false - } - } - } -} - -extension BaseCityChooseSchoolViewController:UITableViewDelegate,UITableViewDataSource{ - func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! SelectSchoolList - let item = getSchoolByIndexpath(indexPath: indexPath) - cell.schoolName.text = item.name - if item.isSelect{ - cell.isSelect.isHidden = false - }else{ - cell.isSelect.isHidden = true - } - return cell - } - func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - - return schoolDic[keys[section]]!.count - } - - func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { - let item = getSchoolByIndexpath(indexPath: indexPath) - changeSchoolSelectState() - item.isSelect = !item.isSelect - tableView.reloadData() - } - - func sectionIndexTitles(for tableView: UITableView) -> [String]? { - return keys - } - - func numberOfSections(in tableView: UITableView) -> Int { - return keys.count - } - - func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { - return keys[section] - } -} - -class SelectSchoolList: UITableViewCell { - - @IBOutlet weak var isSelect: UIImageView! - @IBOutlet weak var schoolName: UILabel! -} - -class School:NSObject{ - var schoolArea:String=""//学校所在地区 , - var schoolId:Int = 0//学校id , - var name:String=""//学校名称 , - var state:Int=0//状态,1正常,0关闭 - var isNew:Int=0////1非合作学校,0合作学校 - var isSelect:Bool = false - init(j:JSON){ - schoolArea = j["school_area"].stringValue - schoolId = j["school_id"].intValue - name = j["school_name"].stringValue - state = j["state"].intValue - } - init(names:String,id:Int) { - name = names - schoolId=id - } -} - diff --git a/ParentAssistant/ParentAssistant/Classes/controllers/userCenter/BindingViewController.swift b/ParentAssistant/ParentAssistant/Classes/controllers/userCenter/BindingViewController.swift deleted file mode 100644 index a0217e3..0000000 --- a/ParentAssistant/ParentAssistant/Classes/controllers/userCenter/BindingViewController.swift +++ /dev/null @@ -1,344 +0,0 @@ -// -// BindingViewController.swift -// ParentAssistant -// -// Created by 左丞 on 2018/3/6. -// Copyright © 2018年 HANGZHOUTEAM. All rights reserved. -// - -import UIKit -enum FromVC:Int{ - //信息确认 - case selfVC = 1//从当前类的对象push过来的(非合作学校) - case reserved = 2//合作学校预留 - case unReserved = 3//合作学校非预留 - //选择 - case select = 4 //选择 -} - -enum SelectType:Int{ - case gender=1//性别 - case grade=2//年级 - case classes=3//班级 -} - -class BindingViewController: UIViewController { - - var from:FromVC = .selfVC - @IBOutlet weak var confirmBtn: UIButton!//确定按钮 - @IBOutlet weak var phoneNumberLabel: UILabel!//电话号码显示的label - @IBOutlet weak var firstLineLabel: UILabel!//第一行(绑定手机号码为)所在的label - @IBOutlet weak var nameTextFiled: UITextField! - - @IBOutlet weak var selectTableView: UITableView! - @IBOutlet weak var selectImageHeight: NSLayoutConstraint!//三个image高度是相等的 - @IBOutlet weak var classLabel: UILabel! - @IBOutlet weak var gradeLabel: UILabel! - @IBOutlet weak var genderLabel: UILabel! - var boyName:String="" - var gender:String = "" - var school:School! - var selecttype:SelectType = .gender - var genderArr:[String] = ["男","女"] - var gradeArr:[GradeAndClasses] = [] - var classesArr:[GradeAndClasses]=[] - var selectGrade:GradeAndClasses! - var selectClass:GradeAndClasses! - var account = AccountManager.shared - override func viewDidLoad() { - super.viewDidLoad() - stepUI() - if selectGrade == nil && selectClass == nil{ - getGradeOrClassData(type: 1) - } - setLabelValue() - if from == .reserved || from == .unReserved{ - getData() - } - // Do any additional setup after loading the view. - } - - func getData(){ - HTTPServer.shared.getParentInfo(["mobile":account.phone() as AnyObject,"school_id":school.schoolId as AnyObject]) { (str, error) in - let json=JSON.fromString(str) - if let ret=json{ - let er=ret["error"].string - if let errorStr=er{ - appDelegate.window!.makeToast(errorStr) - }else{ - self.account.rawUserInfo = json - self.setValueForLabel() - } - }else{ - - } - } - } - - func setValueForLabel(){ - if account.studentClass().count == 0{ - appDelegate.window!.makeToast("该账号下已经没有需要绑定的孩子") - return - } - let student = account.studentClass()[0] - nameTextFiled.text = student["studentName"].stringValue - classLabel.text = student["className"].stringValue - gradeLabel.text = student["gradename"].stringValue - genderLabel.text = student["sex"].intValue == 1 ? "男" : "女" - } - - func stepUI(){ - setViewLayer(view: classLabel) - setViewLayer(view: gradeLabel) - setViewLayer(view: genderLabel) - setViewRadius(view: confirmBtn) - if from == .selfVC{ - phoneNumberLabel.isHidden = false - phoneNumberLabel.text = account.phone() - firstLineLabel.isHidden = false - } - if from != .select{ - selectImageHeight.constant = 0 - nameTextFiled.isUserInteractionEnabled = false - } - } - - @IBAction func cancleSelectTableView(_ sender: UIControl) { - selectTableView.isHidden = true - } - func getGradeOrClassData(type:Int,gradeid:Int=0){//1,年级,2班级 - HTTPServer.shared.getClassOrGrade(["state":type as AnyObject,"schoolid":school.schoolId as AnyObject,"gradeid":gradeid as AnyObject]) { (str, error) in - let json=JSON.fromString(str) - if let ret=json{ - let er=ret["error"].string - if let errorStr=er{ - appDelegate.window!.makeToast(errorStr) - }else{ - for item in ret.contentData().arrayValue{ - if type == 1{ - self.gradeArr.append(GradeAndClasses(j: item)) - }else{ - self.classesArr.append(GradeAndClasses(j: item)) - } - } - } - }else{ - - } - } - } - - func setLabelValue(){ - nameTextFiled.text = boyName - classLabel.text = selectClass != nil ? selectClass.className : "" - gradeLabel.text = selectGrade != nil ? selectGrade.gradeName : "" - genderLabel.text = gender - } - - override func didReceiveMemoryWarning() { - super.didReceiveMemoryWarning() - // Dispose of any resources that can be recreated. - } - - //绑定孩子信息 - func bindlingChildren(){ - var dic:[String:AnyObject] = [:] - switch from { - case .selfVC: - dic = ["parentId": account.parentId() as AnyObject, - "cooperateFlag": "false" as AnyObject, - "schoolId": school.schoolId as AnyObject, - "classId": selectClass.classId as AnyObject, - "studentName": boyName as AnyObject, - "sex": (gender == "男" ? 1 : 2) as AnyObject] - case .reserved: - dic = ["cooperateFlag": "true" as AnyObject, - "mobileFlag": "true" as AnyObject, - "studentId": account.studentClass()[0]["studentId"].stringValue as AnyObject] - default: - dic = ["cooperateFlag": "true" as AnyObject, - "classId": account.studentClass()[0]["classId"].intValue as AnyObject, - "mobileFlag": "false" as AnyObject, - "studentId": account.studentClass()[0]["studentId"].stringValue as AnyObject] - } - dic.updateValue(account.parentId() as AnyObject, forKey: "parentId") - HTTPServer.shared.bindlingChildren(parameters: dic) { (str, error) in - if JSON.fromString(str)!["status"] == 1 && error == nil{ - appDelegate.window!.makeToast("绑定成功") - let vc = BindlingSuccessViewController() - self.navigationController?.pushViewController(vc, animated: true) - }else{ - appDelegate.window!.makeToast("绑定失败") - - } - } - } - - //确定按钮 - @IBAction func confirmBtnClcik(_ sender: UIButton) { - if (from == .reserved || from == .unReserved) && account.studentClass().count == 0{ - appDelegate.window!.makeToast("该账号下已经没有需要绑定的孩子") - return - } - if from == .select && (selectClass == nil || boyName == "" || gender == ""){//班级选择完成则年级肯定已经完成 - appDelegate.window!.makeToast("请先填写姓名并选择班级,年级,性别") - return - } - //确认信息的确认按钮 - if from != .select{ - bindlingChildren() - return - } - let vc = Story.instantiateViewControllerWithIdentifier("BindingViewControllerVC", storyName: "UserCenter") as! BindingViewController - vc.boyName = boyName - vc.gender = gender - vc.from = .selfVC - vc.selectClass = selectClass - vc.selectGrade = selectGrade - self.navigationController?.pushViewController(vc, animated: true) - } - - override func viewWillAppear(_ animated: Bool) { - super.viewWillAppear(animated) - switch from { - case .select: - self.navigationItem.title = "填写孩子信息" - default: - self.navigationItem.title = "信息核对" - } - } - - @IBAction func selectTapAction(_ sender: UITapGestureRecognizer) { - boyName = nameTextFiled.text ?? "" - if from != .select { - return - } - getSelectTableViewRect(sender) - selectTableView.isHidden = false - switch sender.view!.tag { - case 1000: - selecttype = .gender - selectTableView.frame.size.height = 88 - case 1001: - selecttype = .grade - if gradeArr.count > 3{ - selectTableView.frame.size.height = 132 - }else{ - selectTableView.frame.size.height = 44*CGFloat(gradeArr.count) - } - - case 1002: - if selectGrade == nil{ - selectTableView.isHidden = true - appDelegate.window!.makeToast("请先选择年级") - return - } - selecttype = .classes - if classesArr.count > 3{ - selectTableView.frame.size.height = 132 - }else{ - selectTableView.frame.size.height = 44*CGFloat(classesArr.count) - } - - default: - break - } - selectTableView.reloadData() - } - - func getSelectTableViewRect(_ sender: UITapGestureRecognizer){ - let locaViewFrame = sender.view!.frame - selectTableView.frame.origin = CGPoint(x: locaViewFrame.origin.x+sender.view!.superview!.frame.origin.x, y: locaViewFrame.maxY+sender.view!.superview!.frame.origin.y) - - } - - /* - // MARK: - Navigation - - // In a storyboard-based application, you will often want to do a little preparation before navigation - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { - // Get the new view controller using segue.destinationViewController. - // Pass the selected object to the new view controller. - } - */ - -} - -extension BindingViewController:UITableViewDelegate,UITableViewDataSource{ - func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - switch selecttype { - case .gender: - return genderArr.count - case .grade: - return gradeArr.count - default: - return classesArr.count - } - } - - func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { - switch selecttype { - case .gender: - tableView.isHidden = true - gender = genderArr[indexPath.row] - case .grade: - tableView.isHidden = true - let items = gradeArr[indexPath.row] - for item in gradeArr{ - item.isSelect = false - } - items.isSelect = true - selectGrade = items - getGradeOrClassData(type: 2, gradeid: items.gradeid) - default: - let items = classesArr[indexPath.row] - - tableView.isHidden = true - for item in classesArr{ - item.isSelect = false - } - items.isSelect = true - selectClass = items - } - setLabelValue() - } - - func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) - switch selecttype { - case .gender: - cell.textLabel?.text = genderArr[indexPath.row] - case .grade: - cell.textLabel?.text = gradeArr[indexPath.row].gradeName - default: - cell.textLabel?.text = classesArr[indexPath.row].className - } - return cell - } - - func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { - return 44 - } -} - -extension BindingViewController:UITextFieldDelegate{ - func textFieldShouldReturn(_ textField: UITextField) -> Bool { - boyName = textField.text! - textField.resignFirstResponder() - return true - } -} - -class GradeAndClasses: NSObject { - var gradeid:Int=0 - var gradeName:String = "" - var classId:Int=0 - var className:String = "" - var isSelect:Bool = false - init(j:JSON){ - gradeid = j["gradeId"].intValue - gradeName = j["gradeName"].stringValue - classId = j["classId"].intValue - className = j["className"].stringValue - } -} diff --git a/ParentAssistant/ParentAssistant/Classes/controllers/userCenter/BindlingSuccessViewController.swift b/ParentAssistant/ParentAssistant/Classes/controllers/userCenter/BindlingSuccessViewController.swift deleted file mode 100644 index 0a9b22d..0000000 --- a/ParentAssistant/ParentAssistant/Classes/controllers/userCenter/BindlingSuccessViewController.swift +++ /dev/null @@ -1,133 +0,0 @@ -// -// BindlingSuccessViewController.swift -// ParentAssistant -// -// Created by 左丞 on 2018/3/16. -// Copyright © 2018年 HANGZHOUTEAM. All rights reserved. -// - -import UIKit - -class BindlingSuccessViewController: UIViewController ,UIWebViewDelegate,UIScrollViewDelegate{ - var webView:UIWebView! - var header:UIView! - var webBrowserView:UIView! - var urlStr:String="http://60.190.202.57:8101/RecommendOrder.aspx?userid=" - var bindlingType:Int = 1 - override func viewDidLoad() { - super.viewDidLoad() - self.view.backgroundColor = UIColor.white - // Do any additional setup after loading the view. - webView = UIWebView() - webView.frame = CGRect(x: 10, y: 0, width: getScreenWidth()-20, height: getScreenHeight()) - webView.delegate = self; - webView.backgroundColor = UIColor.clear - self.view.addSubview(webView) - - let request = URLRequest(url: URL(string: urlStr)!) - webView.loadRequest(request) - - if bindlingType == 0{ - header = UIView() - header.frame = CGRect(x: 10, y: 0, width: getScreenWidth()-20, height: 80) - header.backgroundColor = UIColor.clear - let backView = UIView() - let image = UIImageView(frame: CGRect(x: 0, y: 0, width: 40, height: 40)) - image.image = #imageLiteral(resourceName: "my_icon_bindlingSuccess") - backView.addSubview(image) - let label = UILabel(frame: CGRect(x: 50, y: 10, width: header.frame.width - 20, height: 20)) - label.text = "绑定成功" - label.numberOfLines = 0 - label.textColor = UIColor.darkGray - label.font = UIFont.systemFont(ofSize: 15) - label.sizeToFit() - backView.addSubview(label) - backView.frame.size = CGSize(width: label.frame.maxX, height: 40) - backView.center.y = header.center.y - backView.center.x = header.center.x-10 - header.addSubview(label) - }else{ - header = UIView() - header.frame = CGRect(x: 10, y: 0, width: getScreenWidth()-20, height: 150) - header.backgroundColor = UIColor.clear - let label = UILabel(frame: CGRect(x: 10, y: 10, width: header.frame.width - 20, height: 100)) - label.text = "生成孩子\"汇作业\"账号为:\(urlStr),\n初始密码为:\(urlStr)(与账号相同),\n孩子可以下载\"汇作业\"app进行使用,\n" - label.numberOfLines = 0 - label.textColor = UIColor.darkGray - label.font = UIFont.systemFont(ofSize: 15) - label.sizeToFit() - header.addSubview(label) - - let backView = UIView() - let label2 = UILabel(frame: CGRect(x: 0, y: 5, width: header.frame.width - 20, height: 20)) - label2.text = "下载地址:" - label2.textColor = UIColor.darkGray - label2.font = UIFont.systemFont(ofSize: 15) - label2.sizeToFit() - backView.addSubview(label2) - let btn = UIButton(frame: CGRect(x: label2.frame.maxX, y: 0, width: 70, height: 30)) - - let str = NSMutableAttributedString(string: "汇作业") - let strRange = NSRange(location: 0, length: str.length) - str.addAttributes([NSAttributedStringKey.underlineStyle: NSNumber(integerLiteral: NSUnderlineStyle.styleSingle.rawValue), - NSAttributedStringKey.foregroundColor: Theme.topBarColor(), - NSAttributedStringKey.font: UIFont.systemFont(ofSize: 15)], - range: strRange) - btn.setAttributedTitle(str, for: .normal) - btn.addTarget(self, action: #selector(BindlingSuccessViewController.pushToAppStore), for: .touchUpInside) - backView.addSubview(btn) - backView.frame.size = CGSize(width: btn.frame.width+label2.frame.width+10, height: 30) - backView.center = CGPoint(x: header.center.x-10, y: label.frame.maxY+10) - header.frame.size.height = backView.frame.maxY + 10 - header.addSubview(backView) - } - - webBrowserView = webView.scrollView.subviews[0] - var rect = self.webBrowserView.frame - rect.origin.y = header.frame.maxY+10 - webBrowserView.frame = rect - - //添加 - webView.scrollView.addSubview(header) - - webView.scrollView.addObserver(self, forKeyPath: "contentSize", options: NSKeyValueObservingOptions.new, context: nil) - - // Do any additional setup after loading the view. - } - - @objc func pushToAppStore(){ - - } - - override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) { - webView.scrollView.removeObserver(self, forKeyPath: "contentSize") - _ = self.view.viewWithTag(100) - let contentSize = webView.scrollView.contentSize - let vi = UIView() - vi.backgroundColor = UIColor.purple - vi.tag = 100 - vi.frame = CGRect(x: 0, y: contentSize.height, width: getScreenWidth()-20, height: 150) - webView.scrollView.addSubview(vi) - webView.scrollView.contentSize = CGSize(width: contentSize.width, height: contentSize.height+150) - - webView.scrollView.addObserver(self, forKeyPath: "contentSize", options: NSKeyValueObservingOptions.new, context: nil) - - } - - override func didReceiveMemoryWarning() { - super.didReceiveMemoryWarning() - // Dispose of any resources that can be recreated. - } - - - /* - // MARK: - Navigation - - // In a storyboard-based application, you will often want to do a little preparation before navigation - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { - // Get the new view controller using segue.destinationViewController. - // Pass the selected object to the new view controller. - } - */ - -} diff --git a/ParentAssistant/ParentAssistant/Classes/controllers/userCenter/InvitationCodeVerificationViewController.swift b/ParentAssistant/ParentAssistant/Classes/controllers/userCenter/InvitationCodeVerificationViewController.swift deleted file mode 100644 index a5ed54a..0000000 --- a/ParentAssistant/ParentAssistant/Classes/controllers/userCenter/InvitationCodeVerificationViewController.swift +++ /dev/null @@ -1,58 +0,0 @@ -// -// InvitationCodeVerificationViewController.swift -// ParentAssistant -// -// Created by 左丞 on 2018/3/13. -// Copyright © 2018年 HANGZHOUTEAM. All rights reserved. -// - -import UIKit - -class InvitationCodeVerificationViewController: UIViewController ,UITextFieldDelegate{ - - @IBOutlet weak var instructions: UILabel! - @IBOutlet weak var nextBtn: UIButton! - @IBOutlet weak var inputInvitationCode: UITextField! - var school:School! - override func viewDidLoad() { - super.viewDidLoad() - instructions.text = "注:填写需要绑定的孩子的邀请码(非合作学校无邀请码.请更换手机号码的方式验证)\n\n如不知道邀请码请拨打电话: 400-826-2468进行查询" - nextBtn.layer.cornerRadius = 10 - nextBtn.layer.masksToBounds = true - - // Do any additional setup after loading the view. - } - - override func didReceiveMemoryWarning() { - super.didReceiveMemoryWarning() - // Dispose of any resources that can be recreated. - } - - @IBAction func nextBtnClick(_ sender: UIButton) { - if inputInvitationCode.text != ""{ - let vc = Story.instantiateViewControllerWithIdentifier("BindingViewControllerVC", storyName: "UserCenter") as! BindingViewController - vc.from = .reserved - vc.school = school! - self.navigationController?.pushViewController(vc, animated: true) - }else{ - appDelegate.window!.makeToast("请填写邀请码") - return - } - } - - func textFieldShouldReturn(_ textField: UITextField) -> Bool { - textField.resignFirstResponder() - return true - } - - /* - // MARK: - Navigation - - // In a storyboard-based application, you will often want to do a little preparation before navigation - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { - // Get the new view controller using segue.destinationViewController. - // Pass the selected object to the new view controller. - } - */ - -} diff --git a/ParentAssistant/ParentAssistant/Classes/controllers/userCenter/UserCenter.storyboard b/ParentAssistant/ParentAssistant/Classes/controllers/userCenter/UserCenter.storyboard deleted file mode 100644 index fa3babf..0000000 --- a/ParentAssistant/ParentAssistant/Classes/controllers/userCenter/UserCenter.storyboard +++ /dev/null @@ -1,606 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13771" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> - <device id="retina4_7" orientation="portrait"> - <adaptation id="fullscreen"/> - </device> - <dependencies> - <deployment identifier="iOS"/> - <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13772"/> - <capability name="Aspect ratio constraints" minToolsVersion="5.1"/> - <capability name="Safe area layout guides" minToolsVersion="9.0"/> - <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> - </dependencies> - <scenes> - <!--Binding View Controller--> - <scene sceneID="MIJ-WH-73A"> - <objects> - <viewController storyboardIdentifier="BindingViewControllerVC" id="SC7-Z5-TUk" customClass="BindingViewController" customModule="ParentAssistant" customModuleProvider="target" sceneMemberID="viewController"> - <view key="view" contentMode="scaleToFill" id="wHn-CF-kHg"> - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> - <subviews> - <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" scrollEnabled="NO" translatesAutoresizingMaskIntoConstraints="NO" id="P0w-Y3-Nux"> - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> - <subviews> - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="XNG-cS-DCX" customClass="UIControl"> - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> - <subviews> - <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="绑定手机号码为" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="REL-rO-sBE"> - <rect key="frame" x="126.5" y="20" width="121.5" height="21"/> - <fontDescription key="fontDescription" type="system" pointSize="17"/> - <nil key="textColor"/> - <nil key="highlightedColor"/> - </label> - <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1j1-yS-AS0"> - <rect key="frame" x="187.5" y="61" width="0.0" height="0.0"/> - <fontDescription key="fontDescription" type="system" pointSize="17"/> - <color key="textColor" red="0.95294117649999999" green="0.044139709020000001" blue="0.0" alpha="0.90402160229999995" colorSpace="calibratedRGB"/> - <nil key="highlightedColor"/> - </label> - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Lry-ZD-jrQ"> - <rect key="frame" x="67.5" y="81" width="240" height="40"/> - <subviews> - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="孩子姓名:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="SzI-3b-VyZ"> - <rect key="frame" x="8" y="9.5" width="75" height="21"/> - <constraints> - <constraint firstAttribute="width" constant="75" id="1Kz-c2-cWk"/> - </constraints> - <fontDescription key="fontDescription" type="system" pointSize="17"/> - <nil key="textColor"/> - <nil key="highlightedColor"/> - </label> - <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="BcE-Vi-QYk"> - <rect key="frame" x="91" y="5" width="141" height="30"/> - <nil key="textColor"/> - <fontDescription key="fontDescription" type="system" pointSize="17"/> - <textInputTraits key="textInputTraits"/> - <connections> - <outlet property="delegate" destination="SC7-Z5-TUk" id="OOq-YY-QL7"/> - </connections> - </textField> - </subviews> - <constraints> - <constraint firstItem="BcE-Vi-QYk" firstAttribute="centerY" secondItem="Lry-ZD-jrQ" secondAttribute="centerY" id="UQx-st-B52"/> - <constraint firstItem="BcE-Vi-QYk" firstAttribute="leading" secondItem="SzI-3b-VyZ" secondAttribute="trailing" constant="8" id="giU-FF-BVf"/> - <constraint firstAttribute="width" constant="240" id="nln-YE-aUo"/> - <constraint firstItem="SzI-3b-VyZ" firstAttribute="centerY" secondItem="Lry-ZD-jrQ" secondAttribute="centerY" id="t0S-VJ-l1C"/> - <constraint firstAttribute="trailing" secondItem="BcE-Vi-QYk" secondAttribute="trailing" constant="8" id="yQh-ty-91f"/> - <constraint firstItem="SzI-3b-VyZ" firstAttribute="leading" secondItem="Lry-ZD-jrQ" secondAttribute="leading" constant="8" id="z2C-7R-Ub1"/> - </constraints> - </view> - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kxt-bL-oiI"> - <rect key="frame" x="67.5" y="129" width="240" height="40"/> - <subviews> - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="性 别:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gRs-dx-ci7"> - <rect key="frame" x="8" y="10" width="75" height="21"/> - <constraints> - <constraint firstAttribute="width" constant="75" id="eVY-WV-LHm"/> - </constraints> - <fontDescription key="fontDescription" type="system" pointSize="17"/> - <nil key="textColor"/> - <nil key="highlightedColor"/> - </label> - <view tag="1000" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="PFs-Tj-G2K"> - <rect key="frame" x="91" y="5" width="141" height="30"/> - <subviews> - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8EC-X6-bwJ"> - <rect key="frame" x="0.0" y="0.0" width="121" height="30"/> - <fontDescription key="fontDescription" type="system" pointSize="17"/> - <nil key="textColor"/> - <nil key="highlightedColor"/> - </label> - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="evaluation_icon_pushDown" translatesAutoresizingMaskIntoConstraints="NO" id="t7C-GZ-zMI"> - <rect key="frame" x="121" y="9.5" width="20" height="11"/> - <constraints> - <constraint firstAttribute="width" secondItem="t7C-GZ-zMI" secondAttribute="height" multiplier="16:9" id="OER-9Z-gv9"/> - <constraint firstAttribute="width" constant="20" id="UdM-aj-TjH"/> - </constraints> - </imageView> - </subviews> - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> - <gestureRecognizers/> - <constraints> - <constraint firstItem="8EC-X6-bwJ" firstAttribute="leading" secondItem="PFs-Tj-G2K" secondAttribute="leading" id="5GC-Eb-4l2"/> - <constraint firstItem="t7C-GZ-zMI" firstAttribute="leading" secondItem="8EC-X6-bwJ" secondAttribute="trailing" id="EZX-dZ-q37"/> - <constraint firstAttribute="trailing" secondItem="t7C-GZ-zMI" secondAttribute="trailing" id="GFx-iV-h2I"/> - <constraint firstItem="t7C-GZ-zMI" firstAttribute="centerY" secondItem="PFs-Tj-G2K" secondAttribute="centerY" id="Jft-CZ-Ozm"/> - <constraint firstAttribute="height" constant="30" id="Xqc-eU-7Pr"/> - <constraint firstItem="8EC-X6-bwJ" firstAttribute="top" secondItem="PFs-Tj-G2K" secondAttribute="top" id="qyh-NB-CVP"/> - <constraint firstAttribute="bottom" secondItem="8EC-X6-bwJ" secondAttribute="bottom" id="wv5-4S-ql7"/> - </constraints> - <connections> - <outletCollection property="gestureRecognizers" destination="LEy-66-xfv" appends="YES" id="cXM-sF-jrH"/> - </connections> - </view> - </subviews> - <constraints> - <constraint firstItem="gRs-dx-ci7" firstAttribute="leading" secondItem="kxt-bL-oiI" secondAttribute="leading" constant="8" id="1U3-kg-RuV"/> - <constraint firstAttribute="trailing" secondItem="PFs-Tj-G2K" secondAttribute="trailing" constant="8" id="NSH-fs-D3q"/> - <constraint firstItem="PFs-Tj-G2K" firstAttribute="centerY" secondItem="kxt-bL-oiI" secondAttribute="centerY" id="Sgo-zl-RVe"/> - <constraint firstItem="PFs-Tj-G2K" firstAttribute="leading" secondItem="gRs-dx-ci7" secondAttribute="trailing" constant="8" id="jlC-sf-cUB"/> - <constraint firstItem="gRs-dx-ci7" firstAttribute="centerY" secondItem="kxt-bL-oiI" secondAttribute="centerY" id="y97-EE-VAy"/> - </constraints> - </view> - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="O93-Li-jET"> - <rect key="frame" x="67.5" y="177" width="240" height="40"/> - <subviews> - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="年 级:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="yBZ-0b-pQ9"> - <rect key="frame" x="8" y="10" width="75" height="21"/> - <constraints> - <constraint firstAttribute="width" constant="75" id="dqs-ha-x8B"/> - </constraints> - <fontDescription key="fontDescription" type="system" pointSize="17"/> - <nil key="textColor"/> - <nil key="highlightedColor"/> - </label> - <view tag="1001" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="GuO-ah-aM3"> - <rect key="frame" x="91" y="5" width="141" height="30"/> - <subviews> - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="k8w-na-ShO"> - <rect key="frame" x="0.0" y="0.0" width="121" height="30"/> - <fontDescription key="fontDescription" type="system" pointSize="17"/> - <nil key="textColor"/> - <nil key="highlightedColor"/> - </label> - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="evaluation_icon_pushDown" translatesAutoresizingMaskIntoConstraints="NO" id="u8y-wv-95T"> - <rect key="frame" x="121" y="9.5" width="20" height="11"/> - <constraints> - <constraint firstAttribute="width" secondItem="u8y-wv-95T" secondAttribute="height" multiplier="16:9" id="PpX-an-Mcx"/> - </constraints> - </imageView> - </subviews> - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> - <gestureRecognizers/> - <constraints> - <constraint firstItem="k8w-na-ShO" firstAttribute="leading" secondItem="GuO-ah-aM3" secondAttribute="leading" id="1YM-Gx-c1v"/> - <constraint firstItem="u8y-wv-95T" firstAttribute="leading" secondItem="k8w-na-ShO" secondAttribute="trailing" id="DZ0-WJ-MkY"/> - <constraint firstAttribute="bottom" secondItem="k8w-na-ShO" secondAttribute="bottom" id="J2d-vN-CP1"/> - <constraint firstItem="k8w-na-ShO" firstAttribute="top" secondItem="GuO-ah-aM3" secondAttribute="top" id="PWZ-ai-sko"/> - <constraint firstItem="u8y-wv-95T" firstAttribute="centerY" secondItem="GuO-ah-aM3" secondAttribute="centerY" id="f4o-vC-bln"/> - <constraint firstAttribute="trailing" secondItem="u8y-wv-95T" secondAttribute="trailing" id="mU3-LE-4dM"/> - <constraint firstAttribute="height" constant="30" id="rIk-SK-yBP"/> - </constraints> - <connections> - <outletCollection property="gestureRecognizers" destination="Kts-0O-pak" appends="YES" id="hUj-y5-jMs"/> - </connections> - </view> - </subviews> - <constraints> - <constraint firstAttribute="trailing" secondItem="GuO-ah-aM3" secondAttribute="trailing" constant="8" id="3ye-AU-Wjq"/> - <constraint firstItem="GuO-ah-aM3" firstAttribute="centerY" secondItem="O93-Li-jET" secondAttribute="centerY" id="S7j-Y1-iv2"/> - <constraint firstItem="yBZ-0b-pQ9" firstAttribute="leading" secondItem="O93-Li-jET" secondAttribute="leading" constant="8" id="b6Z-BO-HDk"/> - <constraint firstItem="yBZ-0b-pQ9" firstAttribute="centerY" secondItem="O93-Li-jET" secondAttribute="centerY" id="qdX-Ir-kHe"/> - <constraint firstItem="GuO-ah-aM3" firstAttribute="leading" secondItem="yBZ-0b-pQ9" secondAttribute="trailing" constant="8" id="vGm-oD-Gs9"/> - </constraints> - </view> - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="hR4-GJ-ZLd"> - <rect key="frame" x="67.5" y="225" width="240" height="40"/> - <subviews> - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="班 级:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qFh-7U-p8J"> - <rect key="frame" x="8" y="10" width="75" height="21"/> - <constraints> - <constraint firstAttribute="width" constant="75" id="4gg-6q-S4K"/> - </constraints> - <fontDescription key="fontDescription" type="system" pointSize="17"/> - <nil key="textColor"/> - <nil key="highlightedColor"/> - </label> - <view tag="1002" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="FMa-hb-gaq"> - <rect key="frame" x="91" y="5" width="141" height="30"/> - <subviews> - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3Ff-lb-IAz"> - <rect key="frame" x="0.0" y="0.0" width="121" height="30"/> - <fontDescription key="fontDescription" type="system" pointSize="17"/> - <nil key="textColor"/> - <nil key="highlightedColor"/> - </label> - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="evaluation_icon_pushDown" translatesAutoresizingMaskIntoConstraints="NO" id="sBB-lz-j4M"> - <rect key="frame" x="121" y="9.5" width="20" height="11"/> - <constraints> - <constraint firstAttribute="width" secondItem="sBB-lz-j4M" secondAttribute="height" multiplier="16:9" id="RK6-la-GUy"/> - </constraints> - </imageView> - </subviews> - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> - <gestureRecognizers/> - <constraints> - <constraint firstItem="sBB-lz-j4M" firstAttribute="centerY" secondItem="FMa-hb-gaq" secondAttribute="centerY" id="Nlx-aL-9Cp"/> - <constraint firstAttribute="bottom" secondItem="3Ff-lb-IAz" secondAttribute="bottom" id="PPf-rg-VMj"/> - <constraint firstAttribute="trailing" secondItem="sBB-lz-j4M" secondAttribute="trailing" id="c92-Bb-fPa"/> - <constraint firstAttribute="height" constant="30" id="cD7-29-sC3"/> - <constraint firstItem="3Ff-lb-IAz" firstAttribute="leading" secondItem="FMa-hb-gaq" secondAttribute="leading" id="f9p-Mv-1bg"/> - <constraint firstItem="3Ff-lb-IAz" firstAttribute="top" secondItem="FMa-hb-gaq" secondAttribute="top" id="hgk-HZ-k3t"/> - <constraint firstItem="sBB-lz-j4M" firstAttribute="leading" secondItem="3Ff-lb-IAz" secondAttribute="trailing" id="tWR-Xb-CpO"/> - </constraints> - <connections> - <outletCollection property="gestureRecognizers" destination="3FV-1x-Qsg" appends="YES" id="KTd-T3-ptA"/> - </connections> - </view> - </subviews> - <constraints> - <constraint firstAttribute="height" constant="40" id="6Mp-oZ-kFS"/> - <constraint firstItem="qFh-7U-p8J" firstAttribute="centerY" secondItem="hR4-GJ-ZLd" secondAttribute="centerY" id="6qw-zS-lTj"/> - <constraint firstItem="qFh-7U-p8J" firstAttribute="leading" secondItem="hR4-GJ-ZLd" secondAttribute="leading" constant="8" id="A16-Da-Nml"/> - <constraint firstItem="FMa-hb-gaq" firstAttribute="centerY" secondItem="hR4-GJ-ZLd" secondAttribute="centerY" id="ILl-xZ-ROc"/> - <constraint firstAttribute="trailing" secondItem="FMa-hb-gaq" secondAttribute="trailing" constant="8" id="TC0-Yy-FbX"/> - <constraint firstItem="FMa-hb-gaq" firstAttribute="leading" secondItem="qFh-7U-p8J" secondAttribute="trailing" constant="8" id="ePc-S7-FyD"/> - </constraints> - </view> - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="FqV-SD-Mvm"> - <rect key="frame" x="112.5" y="285" width="150" height="33"/> - <color key="backgroundColor" red="0.27503338459999999" green="0.50970917940000005" blue="0.90092128520000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> - <constraints> - <constraint firstAttribute="width" constant="150" id="UyA-XG-HPW"/> - </constraints> - <fontDescription key="fontDescription" type="system" pointSize="17"/> - <state key="normal" title="确定"> - <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> - </state> - <connections> - <action selector="confirmBtnClcik:" destination="SC7-Z5-TUk" eventType="touchUpInside" id="dYC-uT-Vwc"/> - </connections> - </button> - <tableView hidden="YES" clipsSubviews="YES" contentMode="scaleToFill" fixedFrame="YES" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="fmZ-BK-cei"> - <rect key="frame" x="156" y="335" width="135" height="152"/> - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> - <prototypes> - <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" reuseIdentifier="cell" id="ScH-T2-JbL"> - <rect key="frame" x="0.0" y="28" width="135" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="ScH-T2-JbL" id="Vdf-3J-cd1"> - <rect key="frame" x="0.0" y="0.0" width="135" height="43.5"/> - <autoresizingMask key="autoresizingMask"/> - </tableViewCellContentView> - </tableViewCell> - </prototypes> - <connections> - <outlet property="dataSource" destination="SC7-Z5-TUk" id="Jiq-kB-gCm"/> - <outlet property="delegate" destination="SC7-Z5-TUk" id="0AV-HO-e1k"/> - </connections> - </tableView> - </subviews> - <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> - <constraints> - <constraint firstItem="REL-rO-sBE" firstAttribute="top" secondItem="XNG-cS-DCX" secondAttribute="top" constant="20" id="5ZV-2a-Qo0"/> - <constraint firstItem="1j1-yS-AS0" firstAttribute="top" secondItem="REL-rO-sBE" secondAttribute="bottom" constant="20" id="5gv-QF-b7B"/> - <constraint firstItem="O93-Li-jET" firstAttribute="height" secondItem="Lry-ZD-jrQ" secondAttribute="height" id="BJw-Fi-zqe"/> - <constraint firstItem="Lry-ZD-jrQ" firstAttribute="centerX" secondItem="XNG-cS-DCX" secondAttribute="centerX" id="GdP-6p-9L5"/> - <constraint firstItem="kxt-bL-oiI" firstAttribute="top" secondItem="Lry-ZD-jrQ" secondAttribute="bottom" constant="8" id="HxB-x6-iZq"/> - <constraint firstItem="1j1-yS-AS0" firstAttribute="centerX" secondItem="XNG-cS-DCX" secondAttribute="centerX" id="Jd3-q2-0X8"/> - <constraint firstItem="FqV-SD-Mvm" firstAttribute="top" secondItem="hR4-GJ-ZLd" secondAttribute="bottom" constant="20" id="M0T-AR-guZ"/> - <constraint firstItem="O93-Li-jET" firstAttribute="width" secondItem="Lry-ZD-jrQ" secondAttribute="width" id="M5S-H4-w8q"/> - <constraint firstItem="FqV-SD-Mvm" firstAttribute="centerX" secondItem="XNG-cS-DCX" secondAttribute="centerX" id="OFC-XX-Wzn"/> - <constraint firstItem="hR4-GJ-ZLd" firstAttribute="top" secondItem="O93-Li-jET" secondAttribute="bottom" constant="8" id="Ou1-72-F83"/> - <constraint firstItem="O93-Li-jET" firstAttribute="top" secondItem="kxt-bL-oiI" secondAttribute="bottom" constant="8" id="Sy6-4q-XeH"/> - <constraint firstItem="hR4-GJ-ZLd" firstAttribute="width" secondItem="Lry-ZD-jrQ" secondAttribute="width" id="T4F-hh-BOa"/> - <constraint firstItem="kxt-bL-oiI" firstAttribute="height" secondItem="Lry-ZD-jrQ" secondAttribute="height" id="WJy-dT-EXy"/> - <constraint firstAttribute="height" constant="667" id="aXb-ZO-UyB"/> - <constraint firstItem="t7C-GZ-zMI" firstAttribute="width" secondItem="u8y-wv-95T" secondAttribute="width" id="be8-xa-5G9"/> - <constraint firstItem="sBB-lz-j4M" firstAttribute="width" secondItem="u8y-wv-95T" secondAttribute="width" id="eDv-01-DiQ"/> - <constraint firstItem="Lry-ZD-jrQ" firstAttribute="top" secondItem="1j1-yS-AS0" secondAttribute="bottom" constant="20" id="geU-1c-IfY"/> - <constraint firstItem="kxt-bL-oiI" firstAttribute="centerX" secondItem="XNG-cS-DCX" secondAttribute="centerX" id="jdh-cw-zpa"/> - <constraint firstItem="kxt-bL-oiI" firstAttribute="width" secondItem="Lry-ZD-jrQ" secondAttribute="width" id="mGE-8p-MQY"/> - <constraint firstItem="hR4-GJ-ZLd" firstAttribute="centerX" secondItem="XNG-cS-DCX" secondAttribute="centerX" id="rxP-pl-3Um"/> - <constraint firstItem="O93-Li-jET" firstAttribute="centerX" secondItem="XNG-cS-DCX" secondAttribute="centerX" id="uyt-7c-LZX"/> - <constraint firstItem="hR4-GJ-ZLd" firstAttribute="height" secondItem="Lry-ZD-jrQ" secondAttribute="height" id="wJT-yt-hLC"/> - <constraint firstItem="REL-rO-sBE" firstAttribute="centerX" secondItem="XNG-cS-DCX" secondAttribute="centerX" id="xV9-gg-n1L"/> - </constraints> - <connections> - <action selector="cancleSelectTableView:" destination="SC7-Z5-TUk" eventType="valueChanged" id="U7F-UF-iuZ"/> - </connections> - </view> - </subviews> - <constraints> - <constraint firstAttribute="bottom" secondItem="XNG-cS-DCX" secondAttribute="bottom" id="GpA-U6-Grn"/> - <constraint firstItem="XNG-cS-DCX" firstAttribute="top" secondItem="P0w-Y3-Nux" secondAttribute="top" id="LBb-SE-77O"/> - <constraint firstItem="XNG-cS-DCX" firstAttribute="leading" secondItem="P0w-Y3-Nux" secondAttribute="leading" id="Mkw-GK-7L3"/> - <constraint firstAttribute="trailing" secondItem="XNG-cS-DCX" secondAttribute="trailing" id="Tve-bM-QyB"/> - <constraint firstItem="XNG-cS-DCX" firstAttribute="centerX" secondItem="P0w-Y3-Nux" secondAttribute="centerX" id="tYI-cc-gNF"/> - </constraints> - </scrollView> - </subviews> - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> - <constraints> - <constraint firstItem="P0w-Y3-Nux" firstAttribute="top" secondItem="wHn-CF-kHg" secondAttribute="top" id="2qF-RX-Ngk"/> - <constraint firstItem="P0w-Y3-Nux" firstAttribute="leading" secondItem="prJ-Io-sHC" secondAttribute="leading" id="90x-M3-dT7"/> - <constraint firstItem="P0w-Y3-Nux" firstAttribute="bottom" secondItem="prJ-Io-sHC" secondAttribute="bottom" id="WnC-bM-yOh"/> - <constraint firstItem="P0w-Y3-Nux" firstAttribute="trailing" secondItem="prJ-Io-sHC" secondAttribute="trailing" id="sQx-XF-5At"/> - </constraints> - <viewLayoutGuide key="safeArea" id="prJ-Io-sHC"/> - </view> - <connections> - <outlet property="classLabel" destination="3Ff-lb-IAz" id="3vZ-RG-Kl0"/> - <outlet property="confirmBtn" destination="FqV-SD-Mvm" id="2ks-S7-aw2"/> - <outlet property="firstLineLabel" destination="REL-rO-sBE" id="sHm-br-6ch"/> - <outlet property="genderLabel" destination="8EC-X6-bwJ" id="mGD-Vp-XO4"/> - <outlet property="gradeLabel" destination="k8w-na-ShO" id="0SC-ja-Ycq"/> - <outlet property="nameTextFiled" destination="BcE-Vi-QYk" id="P6F-fb-c0Z"/> - <outlet property="phoneNumberLabel" destination="1j1-yS-AS0" id="ro7-AV-8eQ"/> - <outlet property="selectImageHeight" destination="UdM-aj-TjH" id="FDT-0C-lMv"/> - <outlet property="selectTableView" destination="fmZ-BK-cei" id="WKi-76-ydS"/> - </connections> - </viewController> - <placeholder placeholderIdentifier="IBFirstResponder" id="gtY-da-H8P" userLabel="First Responder" sceneMemberID="firstResponder"/> - <tapGestureRecognizer id="LEy-66-xfv"> - <connections> - <action selector="selectTapAction:" destination="SC7-Z5-TUk" id="Nbe-mO-VOd"/> - </connections> - </tapGestureRecognizer> - <tapGestureRecognizer id="Kts-0O-pak"> - <connections> - <action selector="selectTapAction:" destination="SC7-Z5-TUk" id="8Rk-RM-Grb"/> - </connections> - </tapGestureRecognizer> - <tapGestureRecognizer id="3FV-1x-Qsg"> - <connections> - <action selector="selectTapAction:" destination="SC7-Z5-TUk" id="ETG-1g-7Jk"/> - </connections> - </tapGestureRecognizer> - </objects> - <point key="canvasLocation" x="77.599999999999994" y="118.29085457271366"/> - </scene> - <!--选择孩子学校--> - <scene sceneID="jXC-xr-pan"> - <objects> - <viewController storyboardIdentifier="BaseCityChooseSchoolViewControllerVC" id="A0M-q7-IGT" customClass="BaseCityChooseSchoolViewController" customModule="ParentAssistant" customModuleProvider="target" sceneMemberID="viewController"> - <view key="view" contentMode="scaleToFill" id="Onv-g3-veb"> - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> - <subviews> - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="fO6-Ah-i0n"> - <rect key="frame" x="0.0" y="64" width="375" height="40"/> - <subviews> - <searchBar contentMode="redraw" translatesAutoresizingMaskIntoConstraints="NO" id="l2p-Iw-hkv"> - <rect key="frame" x="40" y="0.0" width="335" height="40"/> - <textInputTraits key="textInputTraits"/> - <scopeButtonTitles> - <string>Title</string> - <string>Title</string> - </scopeButtonTitles> - <connections> - <outlet property="delegate" destination="A0M-q7-IGT" id="e7y-Ov-FN3"/> - </connections> - </searchBar> - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="DOI-gH-jce"> - <rect key="frame" x="0.0" y="0.0" width="40" height="40"/> - <subviews> - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5U5-yq-C0i"> - <rect key="frame" x="8" y="20.5" width="0.0" height="0.0"/> - <fontDescription key="fontDescription" type="system" pointSize="17"/> - <nil key="textColor"/> - <nil key="highlightedColor"/> - </label> - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="evaluation_icon_pushDown" translatesAutoresizingMaskIntoConstraints="NO" id="orB-P1-43H"> - <rect key="frame" x="16" y="15.5" width="16" height="9"/> - <constraints> - <constraint firstAttribute="width" constant="16" id="16l-ae-SRY"/> - <constraint firstAttribute="width" secondItem="orB-P1-43H" secondAttribute="height" multiplier="16:9" id="LTF-6F-1BK"/> - </constraints> - </imageView> - </subviews> - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> - <gestureRecognizers/> - <constraints> - <constraint firstItem="orB-P1-43H" firstAttribute="centerY" secondItem="DOI-gH-jce" secondAttribute="centerY" id="9zk-rO-Bal"/> - <constraint firstAttribute="trailing" secondItem="orB-P1-43H" secondAttribute="trailing" constant="8" id="BzP-Md-pmS"/> - <constraint firstItem="5U5-yq-C0i" firstAttribute="centerY" secondItem="DOI-gH-jce" secondAttribute="centerY" id="XUR-oK-Eac"/> - <constraint firstItem="5U5-yq-C0i" firstAttribute="leading" secondItem="DOI-gH-jce" secondAttribute="leading" constant="8" id="jlC-4X-vmT"/> - <constraint firstItem="orB-P1-43H" firstAttribute="leading" secondItem="5U5-yq-C0i" secondAttribute="trailing" constant="8" id="pIv-Pk-p8P"/> - </constraints> - <connections> - <outletCollection property="gestureRecognizers" destination="bwD-zo-BfW" appends="YES" id="lGg-fA-w9g"/> - </connections> - </view> - </subviews> - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> - <constraints> - <constraint firstItem="DOI-gH-jce" firstAttribute="top" secondItem="fO6-Ah-i0n" secondAttribute="top" id="0Hd-29-n1m"/> - <constraint firstAttribute="bottom" secondItem="DOI-gH-jce" secondAttribute="bottom" id="0io-Qu-M8N"/> - <constraint firstAttribute="bottom" secondItem="l2p-Iw-hkv" secondAttribute="bottom" id="27M-dQ-JQa"/> - <constraint firstItem="DOI-gH-jce" firstAttribute="leading" secondItem="fO6-Ah-i0n" secondAttribute="leading" id="E9W-AB-f3d"/> - <constraint firstItem="l2p-Iw-hkv" firstAttribute="leading" secondItem="DOI-gH-jce" secondAttribute="trailing" id="PBH-yX-Ii2"/> - <constraint firstAttribute="height" constant="40" id="cB5-m3-OT4"/> - <constraint firstAttribute="trailing" secondItem="l2p-Iw-hkv" secondAttribute="trailing" id="mxk-0g-vX5"/> - <constraint firstItem="l2p-Iw-hkv" firstAttribute="top" secondItem="fO6-Ah-i0n" secondAttribute="top" id="q7F-zS-lRk"/> - </constraints> - </view> - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="K6J-Tc-LTg"> - <rect key="frame" x="0.0" y="617" width="375" height="50"/> - <subviews> - <button opaque="NO" alpha="0.60000002384185791" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="0O9-fu-b9g"> - <rect key="frame" x="8" y="12" width="359" height="30"/> - <color key="backgroundColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> - <state key="normal" title="下一步"> - <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> - </state> - <userDefinedRuntimeAttributes> - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> - <integer key="value" value="10"/> - </userDefinedRuntimeAttribute> - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> - </userDefinedRuntimeAttributes> - <connections> - <action selector="nextStep:" destination="A0M-q7-IGT" eventType="touchUpInside" id="XgW-aA-1mG"/> - </connections> - </button> - </subviews> - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> - <constraints> - <constraint firstAttribute="height" constant="50" id="BQ4-Si-bXm"/> - <constraint firstItem="0O9-fu-b9g" firstAttribute="leading" secondItem="K6J-Tc-LTg" secondAttribute="leading" constant="8" id="ifw-4f-Jpr"/> - <constraint firstAttribute="trailing" secondItem="0O9-fu-b9g" secondAttribute="trailing" constant="8" id="isL-T7-Qmd"/> - <constraint firstAttribute="bottom" secondItem="0O9-fu-b9g" secondAttribute="bottom" constant="8" id="nFg-EW-rQa"/> - </constraints> - </view> - <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="PtW-3t-0kg"> - <rect key="frame" x="0.0" y="104" width="375" height="513"/> - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> - <view key="tableFooterView" contentMode="scaleToFill" id="EaE-p5-h1S"> - <rect key="frame" x="0.0" y="72" width="375" height="1"/> - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> - </view> - <prototypes> - <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="none" indentationWidth="10" reuseIdentifier="cell" id="aLu-j4-6rM" customClass="SelectSchoolList" customModule="ParentAssistant" customModuleProvider="target"> - <rect key="frame" x="0.0" y="28" width="375" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="aLu-j4-6rM" id="HwG-k5-D6B"> - <rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/> - <autoresizingMask key="autoresizingMask"/> - <subviews> - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mu7-8F-D7t"> - <rect key="frame" x="20" y="12" width="42" height="21"/> - <fontDescription key="fontDescription" type="system" pointSize="17"/> - <nil key="textColor"/> - <nil key="highlightedColor"/> - </label> - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="my_icon_confirmBtn" translatesAutoresizingMaskIntoConstraints="NO" id="uQB-I2-g76"> - <rect key="frame" x="335" y="11" width="20" height="20"/> - <constraints> - <constraint firstAttribute="height" constant="20" id="O5D-Kd-tnC"/> - <constraint firstAttribute="width" secondItem="uQB-I2-g76" secondAttribute="height" multiplier="1:1" id="cbI-Yt-6bN"/> - </constraints> - </imageView> - </subviews> - <constraints> - <constraint firstItem="mu7-8F-D7t" firstAttribute="leading" secondItem="HwG-k5-D6B" secondAttribute="leading" constant="20" id="Kok-DS-Yde"/> - <constraint firstItem="uQB-I2-g76" firstAttribute="centerY" secondItem="HwG-k5-D6B" secondAttribute="centerY" id="cIw-K0-Exy"/> - <constraint firstAttribute="trailing" secondItem="uQB-I2-g76" secondAttribute="trailing" constant="20" id="dVF-Dh-Rtt"/> - <constraint firstItem="mu7-8F-D7t" firstAttribute="centerY" secondItem="HwG-k5-D6B" secondAttribute="centerY" id="fsT-mg-e1a"/> - </constraints> - </tableViewCellContentView> - <connections> - <outlet property="isSelect" destination="uQB-I2-g76" id="6wY-JR-T26"/> - <outlet property="schoolName" destination="mu7-8F-D7t" id="wkp-Qv-j2n"/> - </connections> - </tableViewCell> - </prototypes> - <connections> - <outlet property="dataSource" destination="A0M-q7-IGT" id="evO-ib-Hst"/> - <outlet property="delegate" destination="A0M-q7-IGT" id="Rbx-Y9-br6"/> - </connections> - </tableView> - </subviews> - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> - <constraints> - <constraint firstItem="fO6-Ah-i0n" firstAttribute="leading" secondItem="UOZ-dT-HdH" secondAttribute="leading" id="1DX-T5-eqS"/> - <constraint firstItem="fO6-Ah-i0n" firstAttribute="top" secondItem="UOZ-dT-HdH" secondAttribute="top" id="5SW-dU-bex"/> - <constraint firstItem="K6J-Tc-LTg" firstAttribute="top" secondItem="PtW-3t-0kg" secondAttribute="bottom" id="DZi-5f-yJP"/> - <constraint firstItem="fO6-Ah-i0n" firstAttribute="trailing" secondItem="UOZ-dT-HdH" secondAttribute="trailing" id="OTH-hT-IuC"/> - <constraint firstItem="PtW-3t-0kg" firstAttribute="trailing" secondItem="UOZ-dT-HdH" secondAttribute="trailing" id="SRU-Mk-axC"/> - <constraint firstItem="PtW-3t-0kg" firstAttribute="top" secondItem="fO6-Ah-i0n" secondAttribute="bottom" id="abD-i3-Y6w"/> - <constraint firstItem="K6J-Tc-LTg" firstAttribute="leading" secondItem="UOZ-dT-HdH" secondAttribute="leading" id="jJc-Sd-TbD"/> - <constraint firstItem="K6J-Tc-LTg" firstAttribute="trailing" secondItem="UOZ-dT-HdH" secondAttribute="trailing" id="jWn-SM-Y1N"/> - <constraint firstItem="K6J-Tc-LTg" firstAttribute="bottom" secondItem="UOZ-dT-HdH" secondAttribute="bottom" id="kZg-15-tgT"/> - <constraint firstItem="PtW-3t-0kg" firstAttribute="leading" secondItem="UOZ-dT-HdH" secondAttribute="leading" id="vLD-zI-Vju"/> - </constraints> - <viewLayoutGuide key="safeArea" id="UOZ-dT-HdH"/> - </view> - <navigationItem key="navigationItem" title="选择孩子学校" id="Zis-r1-2ac"/> - <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/> - <connections> - <outlet property="citySelectbtn" destination="5U5-yq-C0i" id="wfB-6U-FyP"/> - <outlet property="tableView" destination="PtW-3t-0kg" id="VaJ-gB-cEX"/> - </connections> - </viewController> - <placeholder placeholderIdentifier="IBFirstResponder" id="cjH-Fa-jy0" userLabel="First Responder" sceneMemberID="firstResponder"/> - <tapGestureRecognizer id="bwD-zo-BfW"> - <connections> - <action selector="citySelectBtnClick:" destination="A0M-q7-IGT" id="UOI-JJ-Wj0"/> - </connections> - </tapGestureRecognizer> - </objects> - <point key="canvasLocation" x="844" y="117.39130434782609"/> - </scene> - <!--Invitation Code Verification View Controller--> - <scene sceneID="O88-W5-BCB"> - <objects> - <viewController storyboardIdentifier="InvitationCodeVerificationViewControllerVC" id="R3o-G2-oUv" customClass="InvitationCodeVerificationViewController" customModule="ParentAssistant" customModuleProvider="target" sceneMemberID="viewController"> - <view key="view" contentMode="scaleToFill" id="AKW-ZX-X2g"> - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> - <subviews> - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="exA-el-IFq"> - <rect key="frame" x="0.0" y="108.5" width="375" height="250"/> - <subviews> - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="1fW-dv-WoM"> - <rect key="frame" x="112.5" y="77" width="150" height="30"/> - <color key="backgroundColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> - <constraints> - <constraint firstAttribute="height" constant="30" id="5hq-lI-iLz"/> - <constraint firstAttribute="width" constant="150" id="BGF-TZ-RcW"/> - </constraints> - <state key="normal" title="下一步"> - <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> - </state> - <connections> - <action selector="nextBtnClick:" destination="R3o-G2-oUv" eventType="touchUpInside" id="F9Y-Wo-UFn"/> - </connections> - </button> - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="注:填写需要绑定的孩子的邀请码(非合作学校无邀请码.请更换手机号码的方式验证) 如不知道邀请码请拨打电话: 400-123456进行查询" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cMY-Ua-Fom"> - <rect key="frame" x="8" y="137" width="359" height="51"/> - <fontDescription key="fontDescription" name=".PingFangSC-Regular" family=".PingFang SC" pointSize="17"/> - <color key="textColor" white="0.66666666669999997" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> - <nil key="highlightedColor"/> - </label> - <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="填写邀请码" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="vQA-t4-Eci"> - <rect key="frame" x="8" y="8" width="360" height="30"/> - <constraints> - <constraint firstAttribute="height" constant="30" id="uUH-o5-0a7"/> - </constraints> - <nil key="textColor"/> - <fontDescription key="fontDescription" type="system" pointSize="14"/> - <textInputTraits key="textInputTraits"/> - <connections> - <outlet property="delegate" destination="R3o-G2-oUv" id="RKR-2s-gS5"/> - </connections> - </textField> - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="aPt-HX-Yq3"> - <rect key="frame" x="8" y="46" width="359" height="1"/> - <color key="backgroundColor" white="0.66666666669999997" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> - <constraints> - <constraint firstAttribute="height" constant="1" id="gz9-PX-2oM"/> - </constraints> - </view> - </subviews> - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> - <constraints> - <constraint firstItem="vQA-t4-Eci" firstAttribute="top" secondItem="exA-el-IFq" secondAttribute="top" constant="8" id="5Uu-Sy-vu0"/> - <constraint firstItem="aPt-HX-Yq3" firstAttribute="leading" secondItem="exA-el-IFq" secondAttribute="leading" constant="8" id="7Ln-yD-VaY"/> - <constraint firstItem="vQA-t4-Eci" firstAttribute="leading" secondItem="exA-el-IFq" secondAttribute="leading" constant="8" id="7M5-Vx-2Cz"/> - <constraint firstItem="aPt-HX-Yq3" firstAttribute="top" secondItem="vQA-t4-Eci" secondAttribute="bottom" constant="8" id="976-F3-2gJ"/> - <constraint firstItem="1fW-dv-WoM" firstAttribute="centerX" secondItem="exA-el-IFq" secondAttribute="centerX" id="EMs-fL-FZD"/> - <constraint firstItem="cMY-Ua-Fom" firstAttribute="top" secondItem="1fW-dv-WoM" secondAttribute="bottom" constant="30" id="Riq-Xq-a0K"/> - <constraint firstItem="vQA-t4-Eci" firstAttribute="centerX" secondItem="exA-el-IFq" secondAttribute="centerX" id="db8-a4-dQ5"/> - <constraint firstItem="cMY-Ua-Fom" firstAttribute="leading" secondItem="exA-el-IFq" secondAttribute="leading" constant="8" id="pdC-1A-R0A"/> - <constraint firstItem="1fW-dv-WoM" firstAttribute="top" secondItem="aPt-HX-Yq3" secondAttribute="bottom" constant="30" id="qW5-M9-wDD"/> - <constraint firstAttribute="trailing" secondItem="aPt-HX-Yq3" secondAttribute="trailing" constant="8" id="uG6-EB-i2d"/> - <constraint firstItem="cMY-Ua-Fom" firstAttribute="centerX" secondItem="exA-el-IFq" secondAttribute="centerX" id="uJO-jO-ou4"/> - <constraint firstAttribute="height" constant="250" id="xqy-Zc-vv1"/> - </constraints> - </view> - </subviews> - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> - <constraints> - <constraint firstItem="exA-el-IFq" firstAttribute="leading" secondItem="fXU-yt-T3m" secondAttribute="leading" id="1HS-GB-jkp"/> - <constraint firstItem="exA-el-IFq" firstAttribute="centerX" secondItem="AKW-ZX-X2g" secondAttribute="centerX" id="Auy-9z-eRw"/> - <constraint firstItem="exA-el-IFq" firstAttribute="centerY" secondItem="AKW-ZX-X2g" secondAttribute="centerY" constant="-100" id="XKh-ba-xKc"/> - </constraints> - <viewLayoutGuide key="safeArea" id="fXU-yt-T3m"/> - </view> - <connections> - <outlet property="inputInvitationCode" destination="vQA-t4-Eci" id="OSo-jl-2Ps"/> - <outlet property="instructions" destination="cMY-Ua-Fom" id="Ofn-M3-LGa"/> - <outlet property="nextBtn" destination="1fW-dv-WoM" id="Fne-zE-jM0"/> - </connections> - </viewController> - <placeholder placeholderIdentifier="IBFirstResponder" id="a4n-d8-QFK" userLabel="First Responder" sceneMemberID="firstResponder"/> - </objects> - <point key="canvasLocation" x="1572" y="117.39130434782609"/> - </scene> - </scenes> - <resources> - <image name="evaluation_icon_pushDown" width="16" height="9"/> - <image name="my_icon_confirmBtn" width="21" height="19"/> - </resources> -</document> diff --git a/ParentAssistant/ParentAssistant/Classes/util/AccountManager.swift b/ParentAssistant/ParentAssistant/Classes/util/AccountManager.swift index 100b767..6fba814 100644 --- a/ParentAssistant/ParentAssistant/Classes/util/AccountManager.swift +++ b/ParentAssistant/ParentAssistant/Classes/util/AccountManager.swift @@ -222,13 +222,13 @@ class AccountManager: NSObject { import HandyJSON class UserInfoModel: HandyJSON { - var parentId = Int() + var parentId = String() var name = String() var bindSchoolFlag = Bool() var mobile = String() var image = String() var userid = String() - var sex = Int() + var sex = String() required init(){} } class StudentClassInfoModel: HandyJSON { @@ -236,21 +236,21 @@ class StudentClassInfoModel: HandyJSON { var photo = String() var cityName = String() var cardNumber = String() - var classId = Int() - var grade = Int() + var classId = String() + var grade = String() var studentName = String() var studentCode = String() - var parentId = Int() + var parentId = String() var className = String() var areaName = String() var gradename = String() - var count = Int() - var schollId = Int() + var count = String() + var schoolId = String() var schoolName = String() var studentUserId = String() - var studentId = Int() - var parentMobile = Int() - var sex = Int() + var studentId = String() + var parentMobile = String() + var sex = String() required init(){} } diff --git a/ParentAssistant/ParentAssistant/Classes/util/HTTPServer.swift b/ParentAssistant/ParentAssistant/Classes/util/HTTPServer.swift index 3bdf3b9..9ee4f50 100644 --- a/ParentAssistant/ParentAssistant/Classes/util/HTTPServer.swift +++ b/ParentAssistant/ParentAssistant/Classes/util/HTTPServer.swift @@ -239,8 +239,8 @@ final class HTTPServer{ //MARK: - 成长 //MARK: 应用 ///补卡 - func postStudentMendCard(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ - KHttp.POST(url: URL_POST_MEND_CARD, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) + func getStudentMendCard(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ + KHttp.GET(url: URL_POST_MEND_CARD, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) } ///考勤 func getStudentCheckList(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ diff --git a/ParentAssistant/ParentAssistant/Classes/util/view/AlertShowView.swift b/ParentAssistant/ParentAssistant/Classes/util/view/AlertShowView.swift index 928b1da..ca09630 100644 --- a/ParentAssistant/ParentAssistant/Classes/util/view/AlertShowView.swift +++ b/ParentAssistant/ParentAssistant/Classes/util/view/AlertShowView.swift @@ -10,7 +10,7 @@ import UIKit class AlertShowView: UIView,UITableViewDelegate,UITableViewDataSource { - typealias AlertBackBlock = (AnyObject)->() + typealias AlertBackBlock = (Int)->() lazy var tableView = { ()-> UITableView in @@ -107,8 +107,7 @@ class AlertShowView: UIView,UITableViewDelegate,UITableViewDataSource { return cell! } func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { - let selectData = self.dataArr[indexPath.row] - self.AlertBlock!(selectData) + self.AlertBlock!(indexPath.row) closeView() } required init?(coder aDecoder: NSCoder) { -- libgit2 0.21.0