Commit 55ec444b274402ec146a32a88a12f404a40d8555

Authored by 葛建军
1 parent e7237aba
Exists in parentassistant

家长助手安卓和iOS端统一修改。

Showing 19 changed files with 305 additions and 105 deletions   Show diff stats
.gitignore 0 → 100644
... ... @@ -0,0 +1,7 @@
  1 +*.xccheckout
  2 +*.xcuserstate
  3 +*.xcbkptlist
  4 +ParentAssistant.xcscheme
  5 +xcschememanagement.plist
  6 +*.xcuserdata
  7 +*/xcuserdatad/*
0 8 \ No newline at end of file
... ...
ParentAssistant/ParentAssistant/Classes/controllers/Information/InformationViewController.swift
... ... @@ -113,7 +113,7 @@ class InformationViewController: UIViewController,UISearchBarDelegate {
113 113 let leftbtn = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 40))
114 114 leftLabel = UILabel(frame: CGRect(x: 0, y: 10, width: 60, height: 20))
115 115 leftLabel.text = AccountManager.shared.address
116   - leftLabel.textColor = UIColor.black
  116 + leftLabel.textColor = UIColor.white
117 117 leftLabel.sizeToFit()
118 118 let image = UIImageView(frame: CGRect(x: leftLabel.frame.maxX+4, y: 15, width: 16, height: 9))
119 119 image.image = #imageLiteral(resourceName: "evaluation_icon_pushDown")
... ... @@ -182,7 +182,7 @@ class InformationViewController: UIViewController,UISearchBarDelegate {
182 182 //点击资讯进入详情
183 183 func pushToInfoView(index:Int){
184 184 let vcs = Story.instantiateViewControllerWithIdentifier("JSViewController", storyName: "JS") as! JSViewController
185   - vcs.webURL = "http://60.190.202.57:8101/InformationDetail.aspx?id=75&areaname=%E4%BD%99%E6%9D%AD%E5%8C%BA"//(HTTPServer.HOSTWAP+"/InformationDetail.aspx?id="+"\(data.channelContent[index].id)"+"&areaname="+AccountManager.shared.address)//.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
  185 + vcs.webURL = (HTTPServer.HOSTWAP+"/InformationDetail.aspx?id="+"\(data.channelContent[index].id)"+"&areaname="+AccountManager.shared.address)//.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
186 186  
187 187 self.navigationController?.present(vcs.wrapWithNavigationController(), animated: true, completion: nil)
188 188 }
... ... @@ -349,7 +349,7 @@ extension ChannelSelectView:UICollectionViewDataSource,UICollectionViewDelegateF
349 349  
350 350 func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
351 351 let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "channelcell", for: indexPath) as! ChannelSelectViewCollectionViewCell
352   - cell.image.sd_setImage(with: URL(string: (HTTPServer.HOSTImage+SubchannelList[indexPath.row].channelImage).addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!), placeholderImage: UIImage(named: "navigationBar_backgrounImage"))
  352 + cell.image.sd_setImage(with: URL(string: (HTTPServer.HOSTImage+SubchannelList[indexPath.row].channelImage).addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!), placeholderImage: UIImage(named: "evaluation_icon_highSchoolEnter"))
353 353 cell.channelName.text = SubchannelList[indexPath.row].channelName
354 354 return cell
355 355 }
... ...
ParentAssistant/ParentAssistant/Classes/controllers/Information/view/ChannelCollectionViewCell.xib
... ... @@ -41,25 +41,25 @@
41 41 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="评论:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Lvp-kr-OuU">
42 42 <rect key="frame" x="8" y="72" width="24" height="12"/>
43 43 <fontDescription key="fontDescription" type="system" pointSize="10"/>
44   - <color key="textColor" white="0.33333333329999998" alpha="1" colorSpace="calibratedWhite"/>
  44 + <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
45 45 <nil key="highlightedColor"/>
46 46 </label>
47 47 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="30" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3KK-be-Vix">
48 48 <rect key="frame" x="40" y="72" width="13" height="12"/>
49 49 <fontDescription key="fontDescription" type="system" pointSize="10"/>
50   - <color key="textColor" white="0.33333333329999998" alpha="1" colorSpace="calibratedWhite"/>
  50 + <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
51 51 <nil key="highlightedColor"/>
52 52 </label>
53   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="分享:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="wMQ-5O-LNi">
  53 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="转发:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="wMQ-5O-LNi">
54 54 <rect key="frame" x="182" y="72" width="24" height="12"/>
55 55 <fontDescription key="fontDescription" type="system" pointSize="10"/>
56   - <color key="textColor" white="0.33333333329999998" alpha="1" colorSpace="calibratedWhite"/>
  56 + <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
57 57 <nil key="highlightedColor"/>
58 58 </label>
59 59 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="15" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Dfn-o9-z6k">
60 60 <rect key="frame" x="214" y="72" width="11.5" height="12"/>
61 61 <fontDescription key="fontDescription" type="system" pointSize="10"/>
62   - <color key="textColor" white="0.33333333329999998" alpha="1" colorSpace="calibratedWhite"/>
  62 + <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
63 63 <nil key="highlightedColor"/>
64 64 </label>
65 65 </subviews>
... ...
ParentAssistant/ParentAssistant/Classes/controllers/Information/view/ChannelSelectViewCollectionViewCell.xib
... ... @@ -20,7 +20,7 @@
20 20 <rect key="frame" x="0.0" y="0.0" width="89" height="92"/>
21 21 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
22 22 <subviews>
23   - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Eco-Nm-1SK">
  23 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="evaluation_icon_highSchoolEnter" translatesAutoresizingMaskIntoConstraints="NO" id="Eco-Nm-1SK">
24 24 <rect key="frame" x="18.5" y="8" width="52" height="52"/>
25 25 <constraints>
26 26 <constraint firstAttribute="width" secondItem="Eco-Nm-1SK" secondAttribute="height" multiplier="1:1" id="8K9-ZW-Cxu"/>
... ... @@ -28,7 +28,7 @@
28 28 <userDefinedRuntimeAttributes>
29 29 <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
30 30 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
31   - <integer key="value" value="26"/>
  31 + <integer key="value" value="0"/>
32 32 </userDefinedRuntimeAttribute>
33 33 </userDefinedRuntimeAttributes>
34 34 </imageView>
... ... @@ -38,7 +38,7 @@
38 38 <constraint firstAttribute="height" constant="16" id="Zvs-7M-0pT"/>
39 39 </constraints>
40 40 <fontDescription key="fontDescription" type="system" pointSize="13"/>
41   - <nil key="textColor"/>
  41 + <color key="textColor" red="0.27450980390000002" green="0.50980392159999999" blue="0.90196078430000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
42 42 <nil key="highlightedColor"/>
43 43 </label>
44 44 </subviews>
... ... @@ -59,4 +59,7 @@
59 59 <point key="canvasLocation" x="48" y="63"/>
60 60 </collectionViewCell>
61 61 </objects>
  62 + <resources>
  63 + <image name="evaluation_icon_highSchoolEnter" width="44" height="44"/>
  64 + </resources>
62 65 </document>
... ...
ParentAssistant/ParentAssistant/Classes/controllers/evaluation/EvaluationViewController.swift
... ... @@ -28,7 +28,7 @@ class EvaluationViewController: UIViewController,CLLocationManagerDelegate,Selec
28 28 var leftLabel:UILabel!
29 29 override func viewDidLoad() {
30 30 super.viewDidLoad()
31   - self.navigationItem.title = "测评"
  31 + self.navigationItem.title = "慧测慧练"
32 32 addLeftBarBtn()
33 33 locationAction()
34 34 addBottomBtn()
... ... @@ -120,7 +120,7 @@ class EvaluationViewController: UIViewController,CLLocationManagerDelegate,Selec
120 120 let leftbtn = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 40))
121 121 leftLabel = UILabel(frame: CGRect(x: 0, y: 10, width: 60, height: 20))
122 122 leftLabel.text = AccountManager.shared.address
123   - leftLabel.textColor = UIColor.black
  123 + leftLabel.textColor = UIColor.white
124 124 leftLabel.sizeToFit()
125 125 let image = UIImageView(frame: CGRect(x: leftLabel.frame.maxX+4, y: 15, width: 16, height: 9))
126 126 image.image = #imageLiteral(resourceName: "evaluation_icon_pushDown")
... ... @@ -260,7 +260,7 @@ extension EvaluationViewController:UICollectionViewDataSource,UICollectionViewDe
260 260  
261 261 func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
262 262 let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "channelcell", for: indexPath) as! ChannelSelectViewCollectionViewCell
263   - cell.image.sd_setImage(with: URL(string: (HTTPServer.HOSTImage+toolArr[indexPath.row].toolImage).addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!), placeholderImage: #imageLiteral(resourceName: "defphoto"))
  263 + cell.image.sd_setImage(with: URL(string: (HTTPServer.HOSTImage+toolArr[indexPath.row].toolImage).addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!), placeholderImage: UIImage(named: "evaluation_icon_highSchoolEnter"))
264 264 cell.channelName.text = toolArr[indexPath.row].toolName
265 265 return cell
266 266 }
... ...
ParentAssistant/ParentAssistant/Classes/controllers/my/Controller/GetBackPasswordViewController.swift
... ... @@ -33,7 +33,7 @@ class GetBackPasswordViewController: UIViewController,UITextFieldDelegate {
33 33 getCodeBtn.layer.borderColor = UIColor.lightGray.cgColor
34 34 topView.constant = (getScreenHeight()-325)/3
35 35 passwordHiddenBtn.setImage(UIImage(named: "my_password_look"), for: UIControlState.selected)
36   - NotificationCenter.default.addObserver(self, selector: #selector(RegisterViewController.keyboardWIllChange(_:)), name: NSNotification.Name.UIKeyboardWillChangeFrame, object: nil)
  36 + NotificationCenter.default.addObserver(self, selector: #selector(GetBackPasswordViewController.keyboardWIllChange(_:)), name: NSNotification.Name.UIKeyboardWillChangeFrame, object: nil)
37 37 }
38 38 // MARK: - 根据键盘调整高度
39 39 @objc func keyboardWIllChange(_ noti: Notification){
... ... @@ -122,9 +122,63 @@ class GetBackPasswordViewController: UIViewController,UITextFieldDelegate {
122 122 httpJsonResule(jsonString: str, error: error, successHandler: { (json) -> Void in
123 123 let alertVC = UIAlertController(title: "提示", message: "密码修改成功", preferredStyle: UIAlertControllerStyle.alert)
124 124 let showBtn = UIAlertAction(title: "确认", style: UIAlertActionStyle.default) { (action) in
125   - self.dismiss(animated: true) {
126   - //登录
127   - }
  125 + self.navigationController?.popToRootViewController(animated: true)
  126 + //登录
  127 + SVProgressHUD.show(withStatus: "登录中...")
  128 + HTTPServer.shared.login(completionHandler: { (str, error) in
  129 + SVProgressHUD.dismiss()
  130 + let json=JSON.fromString(str)
  131 + if let ret=json{
  132 + let er=ret["error"].string
  133 + if let errorStr=er{
  134 + let Strings=errorStr.components(separatedBy: ":")
  135 + if Strings.count >= 2 {
  136 + switch Strings[1] {
  137 + //用户关联多个身份,请使用学事号登录:100
  138 + case "101"://用户认证身份不存在:101
  139 + appDelegate.window!.makeToast("用户认证身份不存在,请进行账号激活。")
  140 + break
  141 + //用户帐号或密码错误:102
  142 + case "103":// 用户不存在:103
  143 + appDelegate.window!.makeToast("该号码不存在,请联系客服400-826-2468")
  144 + break
  145 + default:
  146 + appDelegate.window!.makeToast(errorStr)
  147 + break
  148 + }
  149 + }else{
  150 + appDelegate.window!.makeToast(errorStr)
  151 + }
  152 + }else if ret["access_token"].stringValue != ""{
  153 + AccountManager.shared.setTokenInfo(tokenInfo: ret)
  154 + AccountManager.shared.saveToken(tokenInfo: ret)
  155 + AccountManager.shared.refreshUserInfo(self.phoneTextField.text!, completionHandler: { (finish) in
  156 + if finish{
  157 + let ID=AccountManager.shared.rawUserInfo!.contentData()["userid"].stringValue
  158 + YXMessageManager.share.loginWithYX(account: ID, token: ID.md5()) { (success) in
  159 + SVProgressHUD.dismiss()
  160 + if !success {
  161 + AccountManager.shared.logOut()
  162 + appDelegate.window!.makeToast("聊天服务登录失败,请连接网络重试")
  163 + }else{
  164 + //云信登录成功
  165 + self.dismiss(animated: true, completion: nil)
  166 + }
  167 + }
  168 + }else{
  169 + appDelegate.window!.makeToast("身份获取失败")
  170 + SVProgressHUD.dismiss()
  171 + }
  172 + })
  173 + }else{
  174 + SVProgressHUD.dismiss()
  175 + appDelegate.window!.makeToast("登录失败,请稍后重试")
  176 + }
  177 + }else{
  178 + SVProgressHUD.dismiss()
  179 + appDelegate.window!.makeToast("登录失败")
  180 + }
  181 + }, phone: self.phoneTextField.text!, password: self.passwordTextField.text!)
128 182 }
129 183 alertVC.addAction(showBtn)
130 184 self.present(alertVC, animated: true, completion: nil)
... ...
ParentAssistant/ParentAssistant/Classes/controllers/my/Controller/LoginViewController.swift
... ... @@ -14,24 +14,22 @@ class LoginViewController: UIViewController,UITextFieldDelegate {
14 14 @IBOutlet var phoneTextField: UITextField!//电话号码
15 15 @IBOutlet var passwordTextField: UITextField!//密码
16 16 @IBOutlet var passwordHiddenBtn: UIButton!//查看密码按钮
17   - var phoneNumber:String = ""
18 17 override func viewDidLoad() {
19 18 super.viewDidLoad()
20 19 layoutSubViews()
21 20 }
22 21 override func viewWillAppear(_ animated: Bool) {
23 22 super.viewWillAppear(animated)
24   - self.navigationController?.navigationBar.isHidden = true
  23 + self.navigationController?.navigationBar.isHidden = false
25 24 }
26 25 // MARK: - 设置控件属性
27 26 func layoutSubViews(){
28   - self.navigationController?.navigationBar.isHidden = true
  27 + self.navigationController?.navigationBar.isHidden = false
  28 + self.navigationItem.title = "登录"
29 29 topView.constant = (getScreenHeight()-325)/3
30 30 passwordHiddenBtn.setImage(UIImage(named: "my_password_look"), for: UIControlState.selected)
31   - NotificationCenter.default.addObserver(self, selector: #selector(RegisterViewController.keyboardWIllChange(_:)), name: NSNotification.Name.UIKeyboardWillChangeFrame, object: nil)
32   - if phoneNumber != "" {
33   - phoneTextField.text = phoneNumber
34   - }
  31 + NotificationCenter.default.addObserver(self, selector: #selector(LoginViewController.keyboardWIllChange(_:)), name: NSNotification.Name.UIKeyboardWillChangeFrame, object: nil)
  32 + NotificationCenter.default.addObserver(self, selector: #selector(LoginViewController.getPhoneNumber(_:)), name: NSNotification.Name(rawValue: MyPhoneNumberNotification.getPhoneNumber), object: nil)
35 33 }
36 34 // MARK: - 根据键盘调整高度
37 35 @objc func keyboardWIllChange(_ noti: Notification){
... ... @@ -40,9 +38,13 @@ class LoginViewController: UIViewController,UITextFieldDelegate {
40 38 if endFrame?.origin.y == getScreenHeight() {
41 39 topView.constant = (getScreenHeight()-325)/3
42 40 }else{
43   - topView.constant = (endFrame?.origin.y)!-325
  41 + topView.constant = (endFrame?.origin.y)!-375
44 42 }
45 43 }
  44 + @objc func getPhoneNumber(_ noti: Notification){
  45 + let userInfo:NSDictionary=noti.userInfo! as NSDictionary
  46 + phoneTextField.text = userInfo["phoneNumber"] as? String
  47 + }
46 48  
47 49 // MARK: - 密码显示与否
48 50 @IBAction func passwordHiddenAction(_ sender: UIButton) {
... ... @@ -121,14 +123,15 @@ class LoginViewController: UIViewController,UITextFieldDelegate {
121 123 appDelegate.window!.makeToast("聊天服务登录失败,请连接网络重试")
122 124 }else{
123 125 //云信登录成功
124   - self.dismiss(animated: true, completion: nil)
  126 + self.navigationController?.popToRootViewController(animated: true)
125 127 }
126 128 }
127 129 }
128 130  
129 131 // MARK: - 注册页面跳转
130 132 @IBAction func registerAction(_ sender: UIButton) {
131   - self.navigationController?.popViewController(animated: true)
  133 + let vc = Story.instantiateViewControllerWithIdentifier("RegisterViewController", storyName: "My") as! RegisterViewController
  134 + self.navigationController?.pushViewController(vc, animated: true)
132 135 }
133 136 // MARK: - 找回密码
134 137 @IBAction func getPasswordAction(_ sender: UIButton) {
... ...
ParentAssistant/ParentAssistant/Classes/controllers/my/Controller/My.storyboard
... ... @@ -23,7 +23,7 @@
23 23 <view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="a5f-wj-3dN">
24 24 <rect key="frame" x="0.0" y="181" width="375" height="325"/>
25 25 <subviews>
26   - <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_image" translatesAutoresizingMaskIntoConstraints="NO" id="gLu-cN-6Yp">
  26 + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="defphoto" translatesAutoresizingMaskIntoConstraints="NO" id="gLu-cN-6Yp">
27 27 <rect key="frame" x="157.5" y="0.0" width="60" height="60"/>
28 28 <constraints>
29 29 <constraint firstAttribute="width" constant="60" id="AhV-UG-PjF"/>
... ... @@ -32,7 +32,7 @@
32 32 <userDefinedRuntimeAttributes>
33 33 <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
34 34 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
35   - <integer key="value" value="5"/>
  35 + <integer key="value" value="30"/>
36 36 </userDefinedRuntimeAttribute>
37 37 </userDefinedRuntimeAttributes>
38 38 </imageView>
... ... @@ -181,7 +181,7 @@
181 181 <constraint firstAttribute="height" constant="40" id="y2X-Wd-k77"/>
182 182 </constraints>
183 183 <state key="normal" title="注册">
184   - <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  184 + <color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
185 185 </state>
186 186 <userDefinedRuntimeAttributes>
187 187 <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
... ... @@ -196,14 +196,14 @@
196 196 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3No-8C-Khf">
197 197 <rect key="frame" x="8" y="306" width="359" height="19"/>
198 198 <subviews>
199   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="已注册,直接登录" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="TUw-vF-sIc">
200   - <rect key="frame" x="0.0" y="0.0" width="205" height="19"/>
  199 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="已注册,直接登录" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="TUw-vF-sIc">
  200 + <rect key="frame" x="0.0" y="0.0" width="114.5" height="19"/>
201 201 <fontDescription key="fontDescription" type="system" pointSize="14"/>
202 202 <color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
203 203 <nil key="highlightedColor"/>
204 204 </label>
205   - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="YZ4-eP-Zus">
206   - <rect key="frame" x="205" y="0.0" width="154" height="19"/>
  205 + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="YZ4-eP-Zus">
  206 + <rect key="frame" x="123" y="0.0" width="236" height="19"/>
207 207 <fontDescription key="fontDescription" type="system" pointSize="14"/>
208 208 <state key="normal" title="登录"/>
209 209 <connections>
... ... @@ -213,14 +213,13 @@
213 213 </subviews>
214 214 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
215 215 <constraints>
216   - <constraint firstItem="TUw-vF-sIc" firstAttribute="width" secondItem="3No-8C-Khf" secondAttribute="width" multiplier="4:7" id="0S3-e9-Pm6"/>
217 216 <constraint firstAttribute="height" constant="19" id="6xe-Im-rue"/>
218 217 <constraint firstAttribute="bottom" secondItem="YZ4-eP-Zus" secondAttribute="bottom" id="9fU-TJ-3nM"/>
219 218 <constraint firstItem="TUw-vF-sIc" firstAttribute="leading" secondItem="3No-8C-Khf" secondAttribute="leading" id="Pxw-ua-3ch"/>
220 219 <constraint firstItem="TUw-vF-sIc" firstAttribute="top" secondItem="3No-8C-Khf" secondAttribute="top" id="Q23-ca-Ct3"/>
221 220 <constraint firstAttribute="trailing" secondItem="YZ4-eP-Zus" secondAttribute="trailing" id="StK-wf-UFf"/>
222   - <constraint firstItem="YZ4-eP-Zus" firstAttribute="leading" secondItem="TUw-vF-sIc" secondAttribute="trailing" id="Stg-cL-NuI"/>
223 221 <constraint firstItem="YZ4-eP-Zus" firstAttribute="top" secondItem="3No-8C-Khf" secondAttribute="top" id="csH-Mm-TFr"/>
  222 + <constraint firstItem="YZ4-eP-Zus" firstAttribute="leading" secondItem="TUw-vF-sIc" secondAttribute="trailing" constant="8" id="dUi-pP-48X"/>
224 223 <constraint firstAttribute="bottom" secondItem="TUw-vF-sIc" secondAttribute="bottom" id="etM-WV-v9B"/>
225 224 </constraints>
226 225 </view>
... ... @@ -264,7 +263,7 @@
264 263 </viewController>
265 264 <placeholder placeholderIdentifier="IBFirstResponder" id="ebc-9u-7ih" userLabel="First Responder" sceneMemberID="firstResponder"/>
266 265 </objects>
267   - <point key="canvasLocation" x="-1308" y="-70"/>
  266 + <point key="canvasLocation" x="-1308" y="-70.614692653673174"/>
268 267 </scene>
269 268 <!--修改密码-->
270 269 <scene sceneID="3yG-jT-RDd">
... ... @@ -277,7 +276,7 @@
277 276 <view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9Ce-ZJ-VAH">
278 277 <rect key="frame" x="0.0" y="224" width="375" height="325"/>
279 278 <subviews>
280   - <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_image" translatesAutoresizingMaskIntoConstraints="NO" id="Jy5-it-uFI">
  279 + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="defphoto" translatesAutoresizingMaskIntoConstraints="NO" id="Jy5-it-uFI">
281 280 <rect key="frame" x="157.5" y="0.0" width="60" height="60"/>
282 281 <constraints>
283 282 <constraint firstAttribute="width" secondItem="Jy5-it-uFI" secondAttribute="height" multiplier="1:1" id="3m6-TK-U6H"/>
... ... @@ -286,7 +285,7 @@
286 285 <userDefinedRuntimeAttributes>
287 286 <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
288 287 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
289   - <integer key="value" value="5"/>
  288 + <integer key="value" value="30"/>
290 289 </userDefinedRuntimeAttribute>
291 290 </userDefinedRuntimeAttributes>
292 291 </imageView>
... ... @@ -552,7 +551,7 @@
552 551 <view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="iNa-Xg-qR8">
553 552 <rect key="frame" x="0.0" y="148" width="375" height="325"/>
554 553 <subviews>
555   - <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_image" translatesAutoresizingMaskIntoConstraints="NO" id="MuP-eU-u8t">
  554 + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="defphoto" translatesAutoresizingMaskIntoConstraints="NO" id="MuP-eU-u8t">
556 555 <rect key="frame" x="157.5" y="0.0" width="60" height="60"/>
557 556 <constraints>
558 557 <constraint firstAttribute="width" secondItem="MuP-eU-u8t" secondAttribute="height" multiplier="1:1" id="2dS-lO-wew"/>
... ... @@ -561,7 +560,7 @@
561 560 <userDefinedRuntimeAttributes>
562 561 <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
563 562 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
564   - <integer key="value" value="5"/>
  563 + <integer key="value" value="30"/>
565 564 </userDefinedRuntimeAttribute>
566 565 </userDefinedRuntimeAttributes>
567 566 </imageView>
... ... @@ -678,17 +677,14 @@
678 677 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="X9h-K7-0bg">
679 678 <rect key="frame" x="8" y="268" width="359" height="19"/>
680 679 <subviews>
681   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="还没有账号,快速" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fRW-Sg-QbI">
682   - <rect key="frame" x="0.0" y="0.0" width="185.5" height="19"/>
  680 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="还没有账号,快速" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fRW-Sg-QbI">
  681 + <rect key="frame" x="0.0" y="0.0" width="114.5" height="19"/>
683 682 <fontDescription key="fontDescription" type="system" pointSize="14"/>
684 683 <color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
685 684 <nil key="highlightedColor"/>
686 685 </label>
687   - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fzA-Ya-qRu">
688   - <rect key="frame" x="185" y="0.0" width="30" height="19"/>
689   - <constraints>
690   - <constraint firstAttribute="width" constant="30" id="FTv-oS-l1N"/>
691   - </constraints>
  686 + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fzA-Ya-qRu">
  687 + <rect key="frame" x="114" y="0.0" width="101" height="19"/>
692 688 <fontDescription key="fontDescription" type="system" pointSize="14"/>
693 689 <state key="normal" title="注册"/>
694 690 <connections>
... ... @@ -698,7 +694,7 @@
698 694 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Bh4-Vg-DUl">
699 695 <rect key="frame" x="215.5" y="0.0" width="143.5" height="19"/>
700 696 <fontDescription key="fontDescription" type="system" pointSize="14"/>
701   - <state key="normal" title="找回密码"/>
  697 + <state key="normal" title="忘记密码"/>
702 698 <connections>
703 699 <action selector="getPasswordAction:" destination="UG5-bJ-YrY" eventType="touchUpInside" id="EJR-6a-h6E"/>
704 700 <action selector="loginAction:" destination="Uds-ft-2AX" eventType="touchUpInside" id="WkS-hX-ran"/>
... ... @@ -1608,7 +1604,6 @@
1608 1604 </scenes>
1609 1605 <resources>
1610 1606 <image name="defphoto" width="128" height="128"/>
1611   - <image name="icon_image" width="512" height="512"/>
1612 1607 <image name="my_currentInf_gendernoselected" width="16" height="16"/>
1613 1608 <image name="my_headerView_backgroundimageView" width="375" height="139"/>
1614 1609 <image name="my_order_message" width="52" height="36"/>
... ...
ParentAssistant/ParentAssistant/Classes/controllers/my/Controller/MyViewController.swift
... ... @@ -27,7 +27,6 @@ class MyViewController: UIViewController {
27 27 }
28 28 // MARK: - 设置控件属性
29 29 func layoutSubViews(){
30   - self.navigationController?.navigationBar.barStyle = UIBarStyle.default// UIColorFromRGB(0xC5DAFF)
31 30 let backImage = UIImage(named: "navigationBar_backgrounImage")
32 31 self.navigationController?.navigationBar.setBackgroundImage(backImage, for: UIBarMetrics.default)
33 32 // MARK: - 是否是iPhoneX顶部刘海
... ... @@ -72,7 +71,7 @@ class MyViewController: UIViewController {
72 71 let info = AccountManager.shared
73 72 personNameLabel.text = info.name()
74 73 personNumberLabel.text = info.phone()
75   - personIconImageView.sd_setImage(with: URL(string: AccountManager.shared.photo().addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!), placeholderImage: UIImage(named: "defphoto"))
  74 + personIconImageView.sd_setImage(with: URL(string: AccountManager.shared.photo().addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!), placeholderImage: UIImage(named: "my_defphoto"))
76 75 }else{
77 76 logoutBtn.isHidden = true
78 77 personNameLabel.isHidden = true
... ... @@ -80,14 +79,14 @@ class MyViewController: UIViewController {
80 79 loginBtn.isHidden = false
81 80 currentInfoBtn.isHidden = true
82 81 headerBackGroundImageView.image = UIImage(named: "navigationBar_backgrounImage")
83   - personIconImageView.image = UIImage(named: "defphoto")
  82 + personIconImageView.image = UIImage(named: "my_defphoto")
84 83 }
85 84 currentInfoTableView.reloadData()
86 85 }
87 86 // MARK: - 登录按钮点击方法
88 87 @IBAction func showLoginAction(_ sender: UIButton) {
89   - let vc = Story.instantiateViewControllerWithIdentifier("RegisterViewController", storyName: "My") as! RegisterViewController
90   - self.present(vc.wrapWithNavigationController(), animated: true, completion: nil)
  88 + let vc = Story.instantiateViewControllerWithIdentifier("LoginViewController", storyName: "My") as! LoginViewController
  89 + self.navigationController?.pushViewController(vc, animated: true)
91 90 }
92 91  
93 92 // MARK: - 个人信息按钮点击方法
... ... @@ -175,10 +174,13 @@ extension MyViewController: UITableViewDelegate,UITableViewDataSource{
175 174  
176 175 func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
177 176 switch indexPath.row {
178   - case 0,3,5,6,7:
  177 + case 5,6,7:
179 178 return 44
180   - case 1,2:
181   - if !AccountManager.shared.isOnline() || (AccountManager.shared.isOnline() && AccountManager.shared.name()=="葛建军") {//隐藏支付相关功能
  179 + case 0,1,2,3:
  180 + if !AccountManager.shared.isOnline() {
  181 + return 0
  182 + }
  183 + if AccountManager.shared.isOnline() && AccountManager.shared.name()=="葛建军" && (indexPath.row == 1 || indexPath.row == 2){//隐藏支付相关功能
182 184 return 0
183 185 }else{
184 186 return 44
... ...
ParentAssistant/ParentAssistant/Classes/controllers/my/Controller/RegisterViewController.swift
... ... @@ -26,7 +26,8 @@ class RegisterViewController: UIViewController,UITextFieldDelegate {
26 26 }
27 27 // MARK: - 设置控件属性
28 28 func layoutSubViews(){
29   - self.navigationController?.navigationBar.isHidden = true
  29 + self.navigationController?.navigationBar.isHidden = false
  30 + self.navigationItem.title = "注册"
30 31 getCodeBtn.layer.borderWidth = 1.0
31 32 getCodeBtn.layer.borderColor = UIColor.lightGray.cgColor
32 33 topView.constant = (getScreenHeight()-325)/3
... ... @@ -40,7 +41,7 @@ class RegisterViewController: UIViewController,UITextFieldDelegate {
40 41 if endFrame?.origin.y == getScreenHeight() {
41 42 topView.constant = (getScreenHeight()-325)/3
42 43 }else{
43   - topView.constant = (endFrame?.origin.y)!-325
  44 + topView.constant = (endFrame?.origin.y)!-375
44 45 }
45 46 }
46 47 // MARK: - 获取验证码
... ... @@ -107,14 +108,67 @@ class RegisterViewController: UIViewController,UITextFieldDelegate {
107 108 //登录并返回页面
108 109 let alertVC = UIAlertController(title: "提示", message: "您已注册成功", preferredStyle: UIAlertControllerStyle.alert)
109 110 let backBtn = UIAlertAction(title: "返回", style: UIAlertActionStyle.default) { (action) in
110   - let vc = Story.instantiateViewControllerWithIdentifier("LoginViewController", storyName: "My") as! LoginViewController
111   - vc.phoneNumber = self.phoneTextField.text!
112   - self.navigationController?.pushViewController(vc, animated: true)
  111 + NotificationCenter.default.post(name: Notification.Name(rawValue: MyPhoneNumberNotification.getPhoneNumber), object: nil, userInfo: ["phoneNumber":self.phoneTextField.text!])
  112 + self.navigationController?.popViewController(animated: true)
113 113 }
114 114 let showBtn = UIAlertAction(title: "进入首页", style: UIAlertActionStyle.default) { (action) in
115   - self.dismiss(animated: true) {
116   - //登录
117   - }
  115 + self.navigationController?.popToRootViewController(animated: true)
  116 + //登录
  117 + SVProgressHUD.show(withStatus: "登录中...")
  118 + HTTPServer.shared.login(completionHandler: { (str, error) in
  119 + SVProgressHUD.dismiss()
  120 + let json=JSON.fromString(str)
  121 + if let ret=json{
  122 + let er=ret["error"].string
  123 + if let errorStr=er{
  124 + let Strings=errorStr.components(separatedBy: ":")
  125 + if Strings.count >= 2 {
  126 + switch Strings[1] {
  127 + //用户关联多个身份,请使用学事号登录:100
  128 + case "101"://用户认证身份不存在:101
  129 + appDelegate.window!.makeToast("用户认证身份不存在,请进行账号激活。")
  130 + break
  131 + //用户帐号或密码错误:102
  132 + case "103":// 用户不存在:103
  133 + appDelegate.window!.makeToast("该号码不存在,请联系客服400-826-2468")
  134 + break
  135 + default:
  136 + appDelegate.window!.makeToast(errorStr)
  137 + break
  138 + }
  139 + }else{
  140 + appDelegate.window!.makeToast(errorStr)
  141 + }
  142 + }else if ret["access_token"].stringValue != ""{
  143 + AccountManager.shared.setTokenInfo(tokenInfo: ret)
  144 + AccountManager.shared.saveToken(tokenInfo: ret)
  145 + AccountManager.shared.refreshUserInfo(self.phoneTextField.text!, completionHandler: { (finish) in
  146 + if finish{
  147 + let ID=AccountManager.shared.rawUserInfo!.contentData()["userid"].stringValue
  148 + YXMessageManager.share.loginWithYX(account: ID, token: ID.md5()) { (success) in
  149 + SVProgressHUD.dismiss()
  150 + if !success {
  151 + AccountManager.shared.logOut()
  152 + appDelegate.window!.makeToast("聊天服务登录失败,请连接网络重试")
  153 + }else{
  154 + //云信登录成功
  155 + self.dismiss(animated: true, completion: nil)
  156 + }
  157 + }
  158 + }else{
  159 + appDelegate.window!.makeToast("身份获取失败")
  160 + SVProgressHUD.dismiss()
  161 + }
  162 + })
  163 + }else{
  164 + SVProgressHUD.dismiss()
  165 + appDelegate.window!.makeToast("登录失败,请稍后重试")
  166 + }
  167 + }else{
  168 + SVProgressHUD.dismiss()
  169 + appDelegate.window!.makeToast("登录失败")
  170 + }
  171 + }, phone: self.phoneTextField.text!, password: self.passwordTextField.text!)
118 172 }
119 173 alertVC.addAction(backBtn)
120 174 alertVC.addAction(showBtn)
... ... @@ -135,8 +189,7 @@ class RegisterViewController: UIViewController,UITextFieldDelegate {
135 189 // MARK: - 登录页面跳转
136 190  
137 191 @IBAction func loginAction(_ sender: UIButton) {
138   - let vc = Story.instantiateViewControllerWithIdentifier("LoginViewController", storyName: "My") as! LoginViewController
139   - self.navigationController?.pushViewController(vc, animated: true)
  192 + self.navigationController?.popViewController(animated: true)
140 193 }
141 194  
142 195  
... ...
ParentAssistant/ParentAssistant/Classes/controllers/my/Model/MyViewControllerModel.swift
... ... @@ -20,3 +20,6 @@ public enum MyType: Int {
20 20 case null
21 21 case unknown
22 22 }
  23 +class MyPhoneNumberNotification: NSObject {
  24 + static let getPhoneNumber = "ReceivePhoneNumber"
  25 +}
... ...
ParentAssistant/ParentAssistant/Classes/controllers/report/View/ReportHeaderView.xib
... ... @@ -20,7 +20,7 @@
20 20 <rect key="frame" x="20" y="7" width="46" height="30"/>
21 21 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
22 22 <state key="normal" title="马伯骞">
23   - <color key="titleColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
  23 + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
24 24 </state>
25 25 <connections>
26 26 <action selector="changeStudentAction:" destination="4WE-cx-977" eventType="touchUpInside" id="Dua-XZ-hMB"/>
... ... @@ -30,7 +30,7 @@
30 30 <rect key="frame" x="434" y="7" width="31" height="30"/>
31 31 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
32 32 <state key="normal" title="筛选">
33   - <color key="titleColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
  33 + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
34 34 </state>
35 35 <connections>
36 36 <action selector="changeTypeAction:" destination="4WE-cx-977" eventType="touchUpInside" id="XFz-ca-od2"/>
... ... @@ -40,7 +40,7 @@
40 40 <rect key="frame" x="191" y="7" width="102" height="30"/>
41 41 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
42 42 <state key="normal" title="12月29日">
43   - <color key="titleColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
  43 + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
44 44 </state>
45 45 <connections>
46 46 <action selector="changeDateAction:" destination="4WE-cx-977" eventType="touchUpInside" id="pCF-3R-0zv"/>
... ...
ParentAssistant/ParentAssistant/Classes/util/utils.swift
... ... @@ -571,10 +571,10 @@ extension UIViewController{
571 571 func configTheme(){
572 572 self.navigationItem.title=self.navigationController?.title
573 573 self.navigationController?.navigationBar.barTintColor=Theme.topBarColor()
574   - self.navigationController?.navigationBar.tintColor=UIColor.black
  574 + self.navigationController?.navigationBar.tintColor=UIColor.white
575 575 self.navigationController?.navigationBar.isTranslucent=false
576 576 let textAttributes = NSMutableDictionary(capacity:1)
577   - textAttributes.setObject(UIColor.black, forKey: NSAttributedStringKey.foregroundColor as NSCopying)
  577 + textAttributes.setObject(UIColor.white, forKey: NSAttributedStringKey.foregroundColor as NSCopying)
578 578 self.navigationController?.navigationBar.titleTextAttributes=textAttributes as! [AnyHashable: Any] as? [NSAttributedStringKey : Any]
579 579 }
580 580 ///套上UINavigationController
... ...
ParentAssistant/ParentAssistant/Supporting Files/Assets.xcassets/evaluation/evaluation_icon_pushDown.imageset/Contents.json
... ... @@ -6,7 +6,7 @@
6 6 },
7 7 {
8 8 "idiom" : "universal",
9   - "filename" : "下拉.png",
  9 + "filename" : "down.png",
10 10 "scale" : "2x"
11 11 },
12 12 {
... ...
ParentAssistant/ParentAssistant/Supporting Files/Assets.xcassets/evaluation/evaluation_icon_pushDown.imageset/down.png 0 → 100644

3.88 KB

ParentAssistant/ParentAssistant/Supporting Files/Assets.xcassets/evaluation/evaluation_icon_pushDown.imageset/下拉.png

603 Bytes

ParentAssistant/ParentAssistant/Supporting Files/Assets.xcassets/my/my_defphoto.imageset/Contents.json 0 → 100644
... ... @@ -0,0 +1,21 @@
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "未登录.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "scale" : "3x"
  15 + }
  16 + ],
  17 + "info" : {
  18 + "version" : 1,
  19 + "author" : "xcode"
  20 + }
  21 +}
0 22 \ No newline at end of file
... ...
ParentAssistant/ParentAssistant/Supporting Files/Assets.xcassets/my/my_defphoto.imageset/未登录.png 0 → 100644

3.95 KB

ParentAssistant/ParentAssistant/Supporting Files/Base.lproj/Main.storyboard
... ... @@ -50,7 +50,7 @@
50 50 </collectionView>
51 51 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="hb2-3p-n32">
52 52 <rect key="frame" x="0.0" y="100" width="359" height="1"/>
53   - <color key="backgroundColor" white="0.66666666669999997" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
  53 + <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
54 54 <constraints>
55 55 <constraint firstAttribute="height" constant="1" id="ocV-Mf-9Bd"/>
56 56 </constraints>
... ... @@ -64,10 +64,11 @@
64 64 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="CKI-XD-Eo7">
65 65 <rect key="frame" x="14.5" y="49.5" width="150" height="150"/>
66 66 <subviews>
67   - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="evaluation_icon_training" translatesAutoresizingMaskIntoConstraints="NO" id="jM3-pe-HNZ">
68   - <rect key="frame" x="22.5" y="8" width="105" height="105"/>
  67 + <imageView userInteractionEnabled="NO" contentMode="center" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="evaluation_icon_training" translatesAutoresizingMaskIntoConstraints="NO" id="jM3-pe-HNZ">
  68 + <rect key="frame" x="50" y="50" width="50" height="50"/>
69 69 <constraints>
70 70 <constraint firstAttribute="width" secondItem="jM3-pe-HNZ" secondAttribute="height" multiplier="1:1" id="9C5-F1-Q52"/>
  71 + <constraint firstAttribute="width" constant="50" id="OAh-S9-pJU"/>
71 72 </constraints>
72 73 </imageView>
73 74 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="专项训练" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="lMI-9m-Zal">
... ... @@ -79,15 +80,24 @@
79 80 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
80 81 <nil key="highlightedColor"/>
81 82 </label>
  83 + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="DjB-iQ-LaT">
  84 + <rect key="frame" x="0.0" y="0.0" width="150" height="150"/>
  85 + <connections>
  86 + <action selector="specialTrainingAction:" destination="BYZ-38-t0r" eventType="touchUpInside" id="0Nl-aa-Vuk"/>
  87 + </connections>
  88 + </button>
82 89 </subviews>
83 90 <color key="backgroundColor" red="0.39705835388445299" green="1" blue="0.97920779819417048" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
84 91 <constraints>
85   - <constraint firstItem="jM3-pe-HNZ" firstAttribute="top" secondItem="CKI-XD-Eo7" secondAttribute="top" constant="8" id="22U-Js-vpV"/>
86   - <constraint firstItem="lMI-9m-Zal" firstAttribute="top" secondItem="jM3-pe-HNZ" secondAttribute="bottom" constant="8" id="3Kt-US-NJz"/>
  92 + <constraint firstItem="lMI-9m-Zal" firstAttribute="top" secondItem="jM3-pe-HNZ" secondAttribute="bottom" constant="21" id="2yg-E5-PY1"/>
  93 + <constraint firstItem="DjB-iQ-LaT" firstAttribute="leading" secondItem="CKI-XD-Eo7" secondAttribute="leading" id="4dA-Mq-Ul4"/>
  94 + <constraint firstItem="DjB-iQ-LaT" firstAttribute="top" secondItem="CKI-XD-Eo7" secondAttribute="top" id="D8R-bj-gd0"/>
  95 + <constraint firstItem="jM3-pe-HNZ" firstAttribute="centerY" secondItem="CKI-XD-Eo7" secondAttribute="centerY" id="HP1-hk-di8"/>
  96 + <constraint firstAttribute="trailing" secondItem="DjB-iQ-LaT" secondAttribute="trailing" id="OIA-L4-g1n"/>
87 97 <constraint firstAttribute="width" constant="150" id="RGQ-Uh-sQh"/>
88   - <constraint firstAttribute="bottom" secondItem="lMI-9m-Zal" secondAttribute="bottom" constant="8" id="YuU-rd-fZY"/>
89 98 <constraint firstItem="jM3-pe-HNZ" firstAttribute="centerX" secondItem="CKI-XD-Eo7" secondAttribute="centerX" id="fPw-Rq-f06"/>
90 99 <constraint firstItem="lMI-9m-Zal" firstAttribute="centerX" secondItem="CKI-XD-Eo7" secondAttribute="centerX" id="mOJ-4Z-xW1"/>
  100 + <constraint firstAttribute="bottom" secondItem="DjB-iQ-LaT" secondAttribute="bottom" id="pta-jf-lKE"/>
91 101 <constraint firstAttribute="width" secondItem="CKI-XD-Eo7" secondAttribute="height" multiplier="1:1" id="qLV-s3-y6S"/>
92 102 </constraints>
93 103 <userDefinedRuntimeAttributes>
... ... @@ -121,21 +131,31 @@
121 131 <nil key="highlightedColor"/>
122 132 </label>
123 133 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="evaluation_icon_learningManagement" translatesAutoresizingMaskIntoConstraints="NO" id="9ln-nr-VzA">
124   - <rect key="frame" x="23" y="8" width="105" height="105"/>
  134 + <rect key="frame" x="50.5" y="50" width="50" height="50"/>
125 135 <constraints>
  136 + <constraint firstAttribute="width" constant="50" id="4wp-cr-ltM"/>
126 137 <constraint firstAttribute="width" secondItem="9ln-nr-VzA" secondAttribute="height" multiplier="1:1" id="DWe-xZ-kC3"/>
127 138 </constraints>
128 139 </imageView>
  140 + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ROd-Hw-Km6">
  141 + <rect key="frame" x="0.0" y="0.0" width="150" height="150"/>
  142 + <connections>
  143 + <action selector="detectionOfLearningAction:" destination="BYZ-38-t0r" eventType="touchUpInside" id="09k-le-jbg"/>
  144 + </connections>
  145 + </button>
129 146 </subviews>
130 147 <color key="backgroundColor" red="0.61174042456188515" green="0.82746609543490623" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
131 148 <constraints>
132   - <constraint firstItem="9ln-nr-VzA" firstAttribute="top" secondItem="1z3-Uc-my7" secondAttribute="top" constant="8" id="5c5-L6-tOy"/>
133   - <constraint firstItem="2RT-ZA-65V" firstAttribute="top" secondItem="9ln-nr-VzA" secondAttribute="bottom" constant="8" id="ILS-qi-Pqa"/>
134 149 <constraint firstItem="9ln-nr-VzA" firstAttribute="centerX" secondItem="1z3-Uc-my7" secondAttribute="centerX" id="KfB-Qi-0ZA"/>
  150 + <constraint firstItem="ROd-Hw-Km6" firstAttribute="leading" secondItem="1z3-Uc-my7" secondAttribute="leading" id="TCz-AY-Zqd"/>
  151 + <constraint firstItem="9ln-nr-VzA" firstAttribute="centerY" secondItem="1z3-Uc-my7" secondAttribute="centerY" id="Tfz-CR-wHW"/>
  152 + <constraint firstItem="2RT-ZA-65V" firstAttribute="top" secondItem="9ln-nr-VzA" secondAttribute="bottom" constant="21" id="Vq7-Vh-JcW"/>
  153 + <constraint firstAttribute="bottom" secondItem="ROd-Hw-Km6" secondAttribute="bottom" id="l1w-4Q-Zlk"/>
135 154 <constraint firstAttribute="width" constant="150" id="mdM-Dj-z5q"/>
136 155 <constraint firstItem="2RT-ZA-65V" firstAttribute="centerX" secondItem="1z3-Uc-my7" secondAttribute="centerX" id="nTc-V9-qbv"/>
137 156 <constraint firstAttribute="width" secondItem="1z3-Uc-my7" secondAttribute="height" multiplier="1:1" id="otI-Su-s6E"/>
138   - <constraint firstAttribute="bottom" secondItem="2RT-ZA-65V" secondAttribute="bottom" constant="8" id="s3B-42-Qq8"/>
  157 + <constraint firstItem="ROd-Hw-Km6" firstAttribute="top" secondItem="1z3-Uc-my7" secondAttribute="top" id="pUj-0O-VnA"/>
  158 + <constraint firstAttribute="trailing" secondItem="ROd-Hw-Km6" secondAttribute="trailing" id="r9s-8F-tDy"/>
139 159 </constraints>
140 160 <userDefinedRuntimeAttributes>
141 161 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
... ... @@ -245,9 +265,6 @@
245 265 <state key="normal" title="点击参与">
246 266 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
247 267 </state>
248   - <connections>
249   - <action selector="attendScurse:" destination="BYZ-38-t0r" eventType="touchUpInside" id="UZf-Ia-uTH"/>
250   - </connections>
251 268 </button>
252 269 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="热门课程" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="LRo-YD-6S6">
253 270 <rect key="frame" x="8" y="113" width="61.5" height="18"/>
... ... @@ -255,17 +272,27 @@
255 272 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
256 273 <nil key="highlightedColor"/>
257 274 </label>
  275 + <button opaque="NO" tag="3000" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Xml-PN-wWh">
  276 + <rect key="frame" x="0.0" y="0.0" width="175" height="175.5"/>
  277 + <connections>
  278 + <action selector="attendScurse:" destination="BYZ-38-t0r" eventType="touchUpInside" id="adV-6D-vPI"/>
  279 + </connections>
  280 + </button>
258 281 </subviews>
259 282 <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
260 283 <constraints>
261 284 <constraint firstItem="O7r-js-8BI" firstAttribute="leading" secondItem="kkx-lN-sfK" secondAttribute="leading" constant="8" id="3aG-x3-4Cw"/>
  285 + <constraint firstItem="Xml-PN-wWh" firstAttribute="top" secondItem="kkx-lN-sfK" secondAttribute="top" id="5nJ-Lx-YaO"/>
262 286 <constraint firstItem="O7r-js-8BI" firstAttribute="top" secondItem="LRo-YD-6S6" secondAttribute="bottom" constant="8" id="6hq-9D-QOl"/>
263 287 <constraint firstAttribute="width" secondItem="kkx-lN-sfK" secondAttribute="height" multiplier="1:1" id="HW0-lf-ojc"/>
264 288 <constraint firstItem="Jql-zY-Zqo" firstAttribute="leading" secondItem="kkx-lN-sfK" secondAttribute="leading" id="Jyr-dl-P9R"/>
265 289 <constraint firstAttribute="trailing" secondItem="Jql-zY-Zqo" secondAttribute="trailing" id="MEc-va-pgf"/>
  290 + <constraint firstItem="Xml-PN-wWh" firstAttribute="leading" secondItem="kkx-lN-sfK" secondAttribute="leading" id="X1z-gM-jWu"/>
266 291 <constraint firstItem="Jql-zY-Zqo" firstAttribute="top" secondItem="kkx-lN-sfK" secondAttribute="top" id="Zi5-eI-CED"/>
267 292 <constraint firstAttribute="bottom" secondItem="O7r-js-8BI" secondAttribute="bottom" constant="8" id="bct-mp-bxS"/>
  293 + <constraint firstAttribute="trailing" secondItem="Xml-PN-wWh" secondAttribute="trailing" id="cjK-ee-Ad8"/>
268 294 <constraint firstAttribute="bottom" secondItem="Jql-zY-Zqo" secondAttribute="bottom" id="fw3-Sp-Utr"/>
  295 + <constraint firstAttribute="bottom" secondItem="Xml-PN-wWh" secondAttribute="bottom" id="le8-kv-kr5"/>
269 296 <constraint firstItem="LRo-YD-6S6" firstAttribute="leading" secondItem="kkx-lN-sfK" secondAttribute="leading" constant="8" id="o1Q-hw-OgL"/>
270 297 </constraints>
271 298 <userDefinedRuntimeAttributes>
... ... @@ -290,9 +317,6 @@
290 317 <state key="normal" title="点击参与">
291 318 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
292 319 </state>
293   - <connections>
294   - <action selector="attendScurse:" destination="BYZ-38-t0r" eventType="touchUpInside" id="gtw-he-M6X"/>
295   - </connections>
296 320 </button>
297 321 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="热门课程" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="HzZ-gc-k6q">
298 322 <rect key="frame" x="8" y="21" width="61.5" height="18"/>
... ... @@ -300,17 +324,27 @@
300 324 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
301 325 <nil key="highlightedColor"/>
302 326 </label>
  327 + <button opaque="NO" tag="3002" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="zvf-dA-6kr">
  328 + <rect key="frame" x="0.0" y="0.0" width="175" height="83.5"/>
  329 + <connections>
  330 + <action selector="attendScurse:" destination="BYZ-38-t0r" eventType="touchUpInside" id="A9J-Jx-AQ0"/>
  331 + </connections>
  332 + </button>
303 333 </subviews>
304 334 <color key="backgroundColor" white="0.66666666669999997" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
305 335 <constraints>
  336 + <constraint firstItem="zvf-dA-6kr" firstAttribute="leading" secondItem="6YE-Yx-A8r" secondAttribute="leading" id="8NH-AH-kf2"/>
306 337 <constraint firstItem="qMv-R9-Qa3" firstAttribute="top" secondItem="6YE-Yx-A8r" secondAttribute="top" id="Dxq-Iz-iMF"/>
307 338 <constraint firstAttribute="bottom" secondItem="Uk9-TJ-dgw" secondAttribute="bottom" constant="8" id="HH3-Em-feP"/>
308 339 <constraint firstItem="HzZ-gc-k6q" firstAttribute="leading" secondItem="6YE-Yx-A8r" secondAttribute="leading" constant="8" id="M3h-3z-fNn"/>
  340 + <constraint firstAttribute="bottom" secondItem="zvf-dA-6kr" secondAttribute="bottom" id="OSu-2B-h8K"/>
309 341 <constraint firstAttribute="bottom" secondItem="qMv-R9-Qa3" secondAttribute="bottom" id="PPZ-aE-DTb"/>
310 342 <constraint firstItem="Uk9-TJ-dgw" firstAttribute="leading" secondItem="6YE-Yx-A8r" secondAttribute="leading" constant="8" id="QJX-22-tpU"/>
311 343 <constraint firstItem="Uk9-TJ-dgw" firstAttribute="top" secondItem="HzZ-gc-k6q" secondAttribute="bottom" constant="8" id="QUt-cW-eX3"/>
312 344 <constraint firstItem="qMv-R9-Qa3" firstAttribute="leading" secondItem="6YE-Yx-A8r" secondAttribute="leading" id="VjX-HK-2qc"/>
  345 + <constraint firstAttribute="trailing" secondItem="zvf-dA-6kr" secondAttribute="trailing" id="ZnF-a0-mry"/>
313 346 <constraint firstAttribute="trailing" secondItem="qMv-R9-Qa3" secondAttribute="trailing" id="drR-7g-3VH"/>
  347 + <constraint firstItem="zvf-dA-6kr" firstAttribute="top" secondItem="6YE-Yx-A8r" secondAttribute="top" id="i0b-gT-YFK"/>
314 348 </constraints>
315 349 <userDefinedRuntimeAttributes>
316 350 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
... ... @@ -334,9 +368,6 @@
334 368 <state key="normal" title="点击参与">
335 369 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
336 370 </state>
337   - <connections>
338   - <action selector="attendScurse:" destination="BYZ-38-t0r" eventType="touchUpInside" id="MBq-mi-A8z"/>
339   - </connections>
340 371 </button>
341 372 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="热门课程" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="IlG-SR-47u">
342 373 <rect key="frame" x="8" y="22" width="61.5" height="18"/>
... ... @@ -344,6 +375,12 @@
344 375 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
345 376 <nil key="highlightedColor"/>
346 377 </label>
  378 + <button opaque="NO" tag="3001" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="YIw-qU-3V5">
  379 + <rect key="frame" x="-0.5" y="0.0" width="176" height="83.5"/>
  380 + <connections>
  381 + <action selector="attendScurse:" destination="BYZ-38-t0r" eventType="touchUpInside" id="7cN-If-1H1"/>
  382 + </connections>
  383 + </button>
347 384 </subviews>
348 385 <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
349 386 <constraints>
... ... @@ -353,7 +390,11 @@
353 390 <constraint firstItem="IlG-SR-47u" firstAttribute="leading" secondItem="nTE-Oc-4PW" secondAttribute="leading" constant="8" id="PHY-SB-wic"/>
354 391 <constraint firstAttribute="trailing" secondItem="P7A-gb-DMF" secondAttribute="trailing" id="RXm-NJ-H9Z"/>
355 392 <constraint firstAttribute="bottom" secondItem="P7A-gb-DMF" secondAttribute="bottom" id="UDc-4Y-4Df"/>
  393 + <constraint firstAttribute="trailing" secondItem="YIw-qU-3V5" secondAttribute="trailing" id="WjU-kd-7cK"/>
  394 + <constraint firstAttribute="bottom" secondItem="YIw-qU-3V5" secondAttribute="bottom" id="dlT-rW-fLJ"/>
  395 + <constraint firstItem="YIw-qU-3V5" firstAttribute="leading" secondItem="nTE-Oc-4PW" secondAttribute="leading" id="g3m-Eg-Sph"/>
356 396 <constraint firstItem="l93-Wh-xSB" firstAttribute="top" secondItem="IlG-SR-47u" secondAttribute="bottom" constant="8" id="ofC-a7-KtM"/>
  397 + <constraint firstItem="YIw-qU-3V5" firstAttribute="top" secondItem="nTE-Oc-4PW" secondAttribute="top" id="vEb-rf-vQs"/>
357 398 <constraint firstItem="P7A-gb-DMF" firstAttribute="top" secondItem="nTE-Oc-4PW" secondAttribute="top" id="yZn-vR-IZN"/>
358 399 </constraints>
359 400 <userDefinedRuntimeAttributes>
... ... @@ -414,23 +455,33 @@
414 455 </constraints>
415 456 <viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
416 457 </view>
417   - <navigationItem key="navigationItem" title="测评" id="1Lk-x4-9OW"/>
  458 + <navigationItem key="navigationItem" title="测评" id="1Lk-x4-9OW">
  459 + <barButtonItem key="rightBarButtonItem" systemItem="camera" id="e8u-Kr-J32">
  460 + <color key="tintColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  461 + <connections>
  462 + <action selector="selectCamareAction:" destination="BYZ-38-t0r" id="ePR-Ms-0ze"/>
  463 + </connections>
  464 + </barButtonItem>
  465 + </navigationItem>
418 466 <connections>
419 467 <outlet property="collectionView" destination="FnF-em-s4P" id="5l4-ct-nXK"/>
420 468 <outlet property="contentHeight" destination="BmN-ke-PtF" id="ecB-Td-MI3"/>
421 469 <outlet property="height" destination="5vQ-vS-Ne0" id="ZR5-kQ-ing"/>
422   - <outletCollection property="attendCourse" destination="O7r-js-8BI" collectionClass="NSMutableArray" id="UGC-Dc-LPn"/>
423   - <outletCollection property="attendCourse" destination="l93-Wh-xSB" collectionClass="NSMutableArray" id="3iO-bh-taP"/>
424   - <outletCollection property="attendCourse" destination="Uk9-TJ-dgw" collectionClass="NSMutableArray" id="Ivq-87-Txu"/>
425   - <outletCollection property="courseImage" destination="Jql-zY-Zqo" collectionClass="NSMutableArray" id="yaz-YZ-hex"/>
426   - <outletCollection property="courseImage" destination="P7A-gb-DMF" collectionClass="NSMutableArray" id="FKF-z0-4tL"/>
427   - <outletCollection property="courseImage" destination="qMv-R9-Qa3" collectionClass="NSMutableArray" id="3R6-7o-dG2"/>
428 470 <outletCollection property="activityImage" destination="9ln-nr-VzA" collectionClass="NSMutableArray" id="IGS-Cv-m1D"/>
429 471 <outletCollection property="activityName" destination="2RT-ZA-65V" collectionClass="NSMutableArray" id="cRJ-xB-lVl"/>
430 472 <outletCollection property="activityEntrance" destination="1z3-Uc-my7" collectionClass="NSMutableArray" id="CsC-me-5U1"/>
431 473 <outletCollection property="activityImage" destination="jM3-pe-HNZ" collectionClass="NSMutableArray" id="pyE-2j-xA6"/>
432 474 <outletCollection property="activityName" destination="lMI-9m-Zal" collectionClass="NSMutableArray" id="Qyw-lY-6Tz"/>
433 475 <outletCollection property="activityEntrance" destination="CKI-XD-Eo7" collectionClass="NSMutableArray" id="UkU-ac-oj9"/>
  476 + <outletCollection property="courseImage" destination="Jql-zY-Zqo" collectionClass="NSMutableArray" id="cPm-xr-S7M"/>
  477 + <outletCollection property="courseImage" destination="P7A-gb-DMF" collectionClass="NSMutableArray" id="Wl2-Cg-QJH"/>
  478 + <outletCollection property="courseImage" destination="qMv-R9-Qa3" collectionClass="NSMutableArray" id="jhY-aE-Mf4"/>
  479 + <outletCollection property="attendCourse" destination="O7r-js-8BI" collectionClass="NSMutableArray" id="mzx-RT-t4D"/>
  480 + <outletCollection property="attendCourse" destination="l93-Wh-xSB" collectionClass="NSMutableArray" id="lBl-gA-e4U"/>
  481 + <outletCollection property="attendCourse" destination="Uk9-TJ-dgw" collectionClass="NSMutableArray" id="ZIQ-2G-3gb"/>
  482 + <outletCollection property="courseLabel" destination="LRo-YD-6S6" collectionClass="NSMutableArray" id="usG-zW-SgY"/>
  483 + <outletCollection property="courseLabel" destination="IlG-SR-47u" collectionClass="NSMutableArray" id="hO0-8Y-LCn"/>
  484 + <outletCollection property="courseLabel" destination="HzZ-gc-k6q" collectionClass="NSMutableArray" id="cuT-aO-hXY"/>
434 485 </connections>
435 486 </viewController>
436 487 <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
... ... @@ -1629,7 +1680,7 @@
1629 1680 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="6b5-x5-1h9">
1630 1681 <rect key="frame" x="0.0" y="64" width="375" height="128"/>
1631 1682 <subviews>
1632   - <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="my_headerView_backgroundimageView" translatesAutoresizingMaskIntoConstraints="NO" id="VfB-06-9W9">
  1683 + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="my_defphoto" translatesAutoresizingMaskIntoConstraints="NO" id="VfB-06-9W9">
1633 1684 <rect key="frame" x="8" y="34" width="60" height="60"/>
1634 1685 <constraints>
1635 1686 <constraint firstAttribute="width" constant="60" id="OfT-bN-uA8"/>
... ... @@ -2050,7 +2101,7 @@
2050 2101 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NYX-xp-uf1">
2051 2102 <rect key="frame" x="8" y="21" width="42" height="21"/>
2052 2103 <fontDescription key="fontDescription" type="system" pointSize="17"/>
2053   - <color key="textColor" red="0.27503338459999999" green="0.50970917940000005" blue="0.90092128520000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
  2104 + <color key="textColor" red="0.27450980392156865" green="0.50980392156862742" blue="0.90196078431372551" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
2054 2105 <nil key="highlightedColor"/>
2055 2106 </label>
2056 2107 </subviews>
... ... @@ -2087,15 +2138,18 @@
2087 2138 </objects>
2088 2139 <point key="canvasLocation" x="1599" y="-272"/>
2089 2140 </scene>
2090   - <!--测评-->
  2141 + <!--慧测慧练-->
2091 2142 <scene sceneID="uiJ-2h-Wbz">
2092 2143 <objects>
2093 2144 <navigationController automaticallyAdjustsScrollViewInsets="NO" id="fWd-Qg-F7w" customClass="MainViewController" customModule="ParentAssistant" customModuleProvider="target" sceneMemberID="viewController">
2094   - <tabBarItem key="tabBarItem" title="测评" image="evaluation_bar_icon" selectedImage="evaluation_bar_icon_select" id="wbm-sK-I2A"/>
  2145 + <tabBarItem key="tabBarItem" title="慧测慧练" image="evaluation_bar_icon" selectedImage="evaluation_bar_icon_select" id="wbm-sK-I2A"/>
2095 2146 <toolbarItems/>
2096 2147 <navigationBar key="navigationBar" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" id="5av-Vy-e7z">
2097 2148 <rect key="frame" x="0.0" y="20" width="375" height="44"/>
2098 2149 <autoresizingMask key="autoresizingMask"/>
  2150 + <textAttributes key="titleTextAttributes">
  2151 + <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  2152 + </textAttributes>
2099 2153 </navigationBar>
2100 2154 <nil name="viewControllers"/>
2101 2155 <connections>
... ... @@ -2153,6 +2207,10 @@
2153 2207 <navigationBar key="navigationBar" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" id="faE-a1-9KB">
2154 2208 <rect key="frame" x="0.0" y="20" width="375" height="44"/>
2155 2209 <autoresizingMask key="autoresizingMask"/>
  2210 + <textAttributes key="titleTextAttributes">
  2211 + <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  2212 + <color key="textShadowColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  2213 + </textAttributes>
2156 2214 </navigationBar>
2157 2215 <nil name="viewControllers"/>
2158 2216 <connections>
... ... @@ -2174,6 +2232,7 @@
2174 2232 <image name="evaluation_icon_training" width="47" height="47"/>
2175 2233 <image name="my_bar_icon" width="19" height="22"/>
2176 2234 <image name="my_bar_icon_select" width="19" height="22"/>
  2235 + <image name="my_defphoto" width="61" height="61"/>
2177 2236 <image name="my_headerView_backgroundimageView" width="375" height="139"/>
2178 2237 <image name="my_icon_currentInfo" width="9" height="16"/>
2179 2238 <image name="my_icon_orderMessage" width="14" height="19"/>
... ...