Commit fafdc5529e57748767a14b5dcd996c378cdbadbb
1 parent
eaf34b66
Exists in
parentassistant
封装searchbar ,优化咨询频道代码,适配UI等
Showing
28 changed files
with
367 additions
and
273 deletions
 
Show diff stats
ParentAssistant/ParentAssistant.xcodeproj/project.pbxproj
| @@ -81,6 +81,8 @@ | @@ -81,6 +81,8 @@ | ||
| 81 | ADC9AB82207C673300348EF1 /* SceneMiddleCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = ADC9AB81207C673300348EF1 /* SceneMiddleCell.xib */; }; | 81 | ADC9AB82207C673300348EF1 /* SceneMiddleCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = ADC9AB81207C673300348EF1 /* SceneMiddleCell.xib */; }; | 
| 82 | ADC9AB84207C673C00348EF1 /* SceneDownCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = ADC9AB83207C673C00348EF1 /* SceneDownCell.xib */; }; | 82 | ADC9AB84207C673C00348EF1 /* SceneDownCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = ADC9AB83207C673C00348EF1 /* SceneDownCell.xib */; }; | 
| 83 | ADC9AB88207C940700348EF1 /* ProgramViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADC9AB87207C940700348EF1 /* ProgramViewController.swift */; }; | 83 | ADC9AB88207C940700348EF1 /* ProgramViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADC9AB87207C940700348EF1 /* ProgramViewController.swift */; }; | 
| 84 | + ADCDA070208AE317004F1852 /* SearchBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADCDA06F208AE317004F1852 /* SearchBarView.swift */; }; | ||
| 85 | + ADCDA072208B2982004F1852 /* InfoModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADCDA071208B2982004F1852 /* InfoModel.swift */; }; | ||
| 84 | ADE33B312062202300BEA6E6 /* Macro.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADE33B302062202300BEA6E6 /* Macro.swift */; }; | 86 | ADE33B312062202300BEA6E6 /* Macro.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADE33B302062202300BEA6E6 /* Macro.swift */; }; | 
| 85 | ADF159612069E00000A9485D /* CalendarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADF159602069E00000A9485D /* CalendarView.swift */; }; | 87 | ADF159612069E00000A9485D /* CalendarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADF159602069E00000A9485D /* CalendarView.swift */; }; | 
| 86 | ADF15E7620883D1B00381EE1 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = ADF15E7520883D1B00381EE1 /* Assets.xcassets */; }; | 88 | ADF15E7620883D1B00381EE1 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = ADF15E7520883D1B00381EE1 /* Assets.xcassets */; }; | 
| @@ -262,6 +264,8 @@ | @@ -262,6 +264,8 @@ | ||
| 262 | ADC9AB81207C673300348EF1 /* SceneMiddleCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SceneMiddleCell.xib; sourceTree = "<group>"; }; | 264 | ADC9AB81207C673300348EF1 /* SceneMiddleCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SceneMiddleCell.xib; sourceTree = "<group>"; }; | 
| 263 | ADC9AB83207C673C00348EF1 /* SceneDownCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SceneDownCell.xib; sourceTree = "<group>"; }; | 265 | ADC9AB83207C673C00348EF1 /* SceneDownCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SceneDownCell.xib; sourceTree = "<group>"; }; | 
| 264 | ADC9AB87207C940700348EF1 /* ProgramViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProgramViewController.swift; sourceTree = "<group>"; }; | 266 | ADC9AB87207C940700348EF1 /* ProgramViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProgramViewController.swift; sourceTree = "<group>"; }; | 
| 267 | + ADCDA06F208AE317004F1852 /* SearchBarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchBarView.swift; sourceTree = "<group>"; }; | ||
| 268 | + ADCDA071208B2982004F1852 /* InfoModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoModel.swift; sourceTree = "<group>"; }; | ||
| 265 | ADE33B302062202300BEA6E6 /* Macro.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Macro.swift; sourceTree = "<group>"; }; | 269 | ADE33B302062202300BEA6E6 /* Macro.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Macro.swift; sourceTree = "<group>"; }; | 
| 266 | ADF159602069E00000A9485D /* CalendarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CalendarView.swift; sourceTree = "<group>"; }; | 270 | ADF159602069E00000A9485D /* CalendarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CalendarView.swift; sourceTree = "<group>"; }; | 
| 267 | ADF15E7520883D1B00381EE1 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; | 271 | ADF15E7520883D1B00381EE1 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; | 
| @@ -467,6 +471,7 @@ | @@ -467,6 +471,7 @@ | ||
| 467 | 599364E0204E62E700C8B371 /* Information */ = { | 471 | 599364E0204E62E700C8B371 /* Information */ = { | 
| 468 | isa = PBXGroup; | 472 | isa = PBXGroup; | 
| 469 | children = ( | 473 | children = ( | 
| 474 | + ADCDA073208B298D004F1852 /* Model */, | ||
| 470 | 599364E1204E62E700C8B371 /* InformationViewController.swift */, | 475 | 599364E1204E62E700C8B371 /* InformationViewController.swift */, | 
| 471 | 599364DD204E62E700C8B371 /* ChannelViewController.swift */, | 476 | 599364DD204E62E700C8B371 /* ChannelViewController.swift */, | 
| 472 | 599364DE204E62E700C8B371 /* Information.storyboard */, | 477 | 599364DE204E62E700C8B371 /* Information.storyboard */, | 
| @@ -642,6 +647,14 @@ | @@ -642,6 +647,14 @@ | ||
| 642 | path = Program; | 647 | path = Program; | 
| 643 | sourceTree = "<group>"; | 648 | sourceTree = "<group>"; | 
| 644 | }; | 649 | }; | 
| 650 | + ADCDA073208B298D004F1852 /* Model */ = { | ||
| 651 | + isa = PBXGroup; | ||
| 652 | + children = ( | ||
| 653 | + ADCDA071208B2982004F1852 /* InfoModel.swift */, | ||
| 654 | + ); | ||
| 655 | + path = Model; | ||
| 656 | + sourceTree = "<group>"; | ||
| 657 | + }; | ||
| 645 | B605235D289EDBCA5C5AF2C5 /* Frameworks */ = { | 658 | B605235D289EDBCA5C5AF2C5 /* Frameworks */ = { | 
| 646 | isa = PBXGroup; | 659 | isa = PBXGroup; | 
| 647 | children = ( | 660 | children = ( | 
| @@ -892,6 +905,7 @@ | @@ -892,6 +905,7 @@ | ||
| 892 | BFF9B7F32057A29D00F39B3E /* TableEmptyView.xib */, | 905 | BFF9B7F32057A29D00F39B3E /* TableEmptyView.xib */, | 
| 893 | AD639F0420897CBC0028BE73 /* AlertShowView.swift */, | 906 | AD639F0420897CBC0028BE73 /* AlertShowView.swift */, | 
| 894 | AD639F082089D8670028BE73 /* PickSelectView.swift */, | 907 | AD639F082089D8670028BE73 /* PickSelectView.swift */, | 
| 908 | + ADCDA06F208AE317004F1852 /* SearchBarView.swift */, | ||
| 895 | ); | 909 | ); | 
| 896 | path = view; | 910 | path = view; | 
| 897 | sourceTree = "<group>"; | 911 | sourceTree = "<group>"; | 
| @@ -1162,7 +1176,9 @@ | @@ -1162,7 +1176,9 @@ | ||
| 1162 | BFEAAAC4205257460072FAAF /* LXCalendarMonthModel.m in Sources */, | 1176 | BFEAAAC4205257460072FAAF /* LXCalendarMonthModel.m in Sources */, | 
| 1163 | BFA7443A207DB6EE00845D30 /* ActivationSchoolCardViewController.swift in Sources */, | 1177 | BFA7443A207DB6EE00845D30 /* ActivationSchoolCardViewController.swift in Sources */, | 
| 1164 | BF38847E205CDE2D00A240EF /* JSViewController.swift in Sources */, | 1178 | BF38847E205CDE2D00A240EF /* JSViewController.swift in Sources */, | 
| 1179 | + ADCDA070208AE317004F1852 /* SearchBarView.swift in Sources */, | ||
| 1165 | ADE33B312062202300BEA6E6 /* Macro.swift in Sources */, | 1180 | ADE33B312062202300BEA6E6 /* Macro.swift in Sources */, | 
| 1181 | + ADCDA072208B2982004F1852 /* InfoModel.swift in Sources */, | ||
| 1166 | ADF159612069E00000A9485D /* CalendarView.swift in Sources */, | 1182 | ADF159612069E00000A9485D /* CalendarView.swift in Sources */, | 
| 1167 | AD122ACA2084498F00C7D0AD /* ProgramVacateAddView.swift in Sources */, | 1183 | AD122ACA2084498F00C7D0AD /* ProgramVacateAddView.swift in Sources */, | 
| 1168 | BF406CD82057B529000A6681 /* MessageTableViewCell.swift in Sources */, | 1184 | BF406CD82057B529000A6681 /* MessageTableViewCell.swift in Sources */, | 
ParentAssistant/ParentAssistant.xcodeproj/xcuserdata/caoyang.xcuserdatad/xcschemes/xcschememanagement.plist
| @@ -10,5 +10,18 @@ | @@ -10,5 +10,18 @@ | ||
| 10 | <integer>11</integer> | 10 | <integer>11</integer> | 
| 11 | </dict> | 11 | </dict> | 
| 12 | </dict> | 12 | </dict> | 
| 13 | + <key>SuppressBuildableAutocreation</key> | ||
| 14 | + <dict> | ||
| 15 | + <key>BF7A4C2F204CD55300460463</key> | ||
| 16 | + <dict> | ||
| 17 | + <key>primary</key> | ||
| 18 | + <true/> | ||
| 19 | + </dict> | ||
| 20 | + <key>BF7A4C46204CD55500460463</key> | ||
| 21 | + <dict> | ||
| 22 | + <key>primary</key> | ||
| 23 | + <true/> | ||
| 24 | + </dict> | ||
| 25 | + </dict> | ||
| 13 | </dict> | 26 | </dict> | 
| 14 | </plist> | 27 | </plist> | 
ParentAssistant/ParentAssistant.xcworkspace/xcuserdata/caoyang.xcuserdatad/UserInterfaceState.xcuserstate
No preview for this file type
ParentAssistant/ParentAssistant.xcworkspace/xcuserdata/caoyang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
| @@ -20,11 +20,11 @@ | @@ -20,11 +20,11 @@ | ||
| 20 | ignoreCount = "0" | 20 | ignoreCount = "0" | 
| 21 | continueAfterRunningActions = "No" | 21 | continueAfterRunningActions = "No" | 
| 22 | filePath = "ParentAssistant/Classes/controllers/Grow/GrowViewController.swift" | 22 | filePath = "ParentAssistant/Classes/controllers/Grow/GrowViewController.swift" | 
| 23 | - timestampString = "545907653.422401" | 23 | + timestampString = "545996291.249851" | 
| 24 | startingColumnNumber = "9223372036854775807" | 24 | startingColumnNumber = "9223372036854775807" | 
| 25 | endingColumnNumber = "9223372036854775807" | 25 | endingColumnNumber = "9223372036854775807" | 
| 26 | - startingLineNumber = "161" | ||
| 27 | - endingLineNumber = "161" | 26 | + startingLineNumber = "162" | 
| 27 | + endingLineNumber = "162" | ||
| 28 | landmarkName = "switchChildrenAction()" | 28 | landmarkName = "switchChildrenAction()" | 
| 29 | landmarkType = "7"> | 29 | landmarkType = "7"> | 
| 30 | </BreakpointContent> | 30 | </BreakpointContent> | 
ParentAssistant/ParentAssistant/AppDelegate.swift
| @@ -16,6 +16,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { | @@ -16,6 +16,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { | ||
| 16 | var conn:Reachability! | 16 | var conn:Reachability! | 
| 17 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { | 17 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { | 
| 18 | setUpYXIM() | 18 | setUpYXIM() | 
| 19 | + | ||
| 19 | //1.设置网络状态监听 | 20 | //1.设置网络状态监听 | 
| 20 | NotificationCenter.default.addObserver(self, selector: #selector(AppDelegate.networkStatusChange), name: NSNotification.Name.reachabilityChanged, object: nil) | 21 | NotificationCenter.default.addObserver(self, selector: #selector(AppDelegate.networkStatusChange), name: NSNotification.Name.reachabilityChanged, object: nil) | 
| 21 | // 2、获得网络Reachability对象 | 22 | // 2、获得网络Reachability对象 | 
| @@ -56,13 +57,20 @@ class AppDelegate: UIResponder, UIApplicationDelegate { | @@ -56,13 +57,20 @@ class AppDelegate: UIResponder, UIApplicationDelegate { | ||
| 56 | func setUpYXIM(){ | 57 | func setUpYXIM(){ | 
| 57 | var appkey = "" | 58 | var appkey = "" | 
| 58 | var cername = "" | 59 | var cername = "" | 
| 59 | - if Debug.isFormal{ | ||
| 60 | - appkey = "a1ff0bc08fa0d6f95b480d131e55584b" | ||
| 61 | - cername = "hxyproductpush" | ||
| 62 | - }else{ | 60 | + #if DEBUG | 
| 63 | appkey = "330158c080acdf4dc1092d6a74576c2c" | 61 | appkey = "330158c080acdf4dc1092d6a74576c2c" | 
| 64 | cername = "parentdevelop" | 62 | cername = "parentdevelop" | 
| 65 | - } | 63 | + #else | 
| 64 | + appkey = "a1ff0bc08fa0d6f95b480d131e55584b" | ||
| 65 | + cername = "hxyproductpush" | ||
| 66 | + #endif | ||
| 67 | +// if Debug.isFormal{ | ||
| 68 | +// appkey = "a1ff0bc08fa0d6f95b480d131e55584b" | ||
| 69 | +// cername = "hxyproductpush" | ||
| 70 | +// }else{ | ||
| 71 | +// appkey = "330158c080acdf4dc1092d6a74576c2c" | ||
| 72 | +// cername = "parentdevelop" | ||
| 73 | +// } | ||
| 66 | let option = NIMSDKOption(appKey: appkey) | 74 | let option = NIMSDKOption(appKey: appkey) | 
| 67 | option.apnsCername = cername | 75 | option.apnsCername = cername | 
| 68 | NIMSDK.shared().register(with: option) | 76 | NIMSDK.shared().register(with: option) | 
| @@ -298,6 +306,5 @@ class AppDelegate: UIResponder, UIApplicationDelegate { | @@ -298,6 +306,5 @@ class AppDelegate: UIResponder, UIApplicationDelegate { | ||
| 298 | } | 306 | } | 
| 299 | } | 307 | } | 
| 300 | } | 308 | } | 
| 301 | - | ||
| 302 | } | 309 | } | 
| 303 | 310 | 
ParentAssistant/ParentAssistant/Classes/controllers/Grow/GrowViewController.swift
| @@ -65,7 +65,6 @@ class GrowViewController: UIViewController,UIScrollViewDelegate { | @@ -65,7 +65,6 @@ class GrowViewController: UIViewController,UIScrollViewDelegate { | ||
| 65 | //设置导航栏标题 | 65 | //设置导航栏标题 | 
| 66 | self.navigationItem.titleView = self.titleView | 66 | self.navigationItem.titleView = self.titleView | 
| 67 | self.navigationItem.titleView?.center.x = screenWidth/2 | 67 | self.navigationItem.titleView?.center.x = screenWidth/2 | 
| 68 | - print(self.navigationItem.titleView!.frame) | ||
| 69 | self.view.addSubview(contentScrollView) | 68 | self.view.addSubview(contentScrollView) | 
| 70 | 69 | ||
| 71 | self.title = "成长" | 70 | self.title = "成长" | 
| @@ -110,16 +109,18 @@ class GrowViewController: UIViewController,UIScrollViewDelegate { | @@ -110,16 +109,18 @@ class GrowViewController: UIViewController,UIScrollViewDelegate { | ||
| 110 | //MARK: 导航栏视图UI | 109 | //MARK: 导航栏视图UI | 
| 111 | func drawHeadView () { | 110 | func drawHeadView () { | 
| 112 | //左按钮 | 111 | //左按钮 | 
| 113 | - let leftView = UIButton.init(frame: CGRect.init(x: 0, y: 0, width: 60, height: 44)) | ||
| 114 | - let titleLab = UILabel.init(frame: CGRect.init(x: 0, y: 0, width: 50, height: 44)) | 112 | + let leftView = UIButton.init(frame: CGRect.init(x: 0, y: 0, width: 70, height: 44)) | 
| 113 | + let titleLab = UILabel.init(frame: CGRect.init(x: 0, y: 0, width: 60, height: 44)) | ||
| 115 | 114 | ||
| 116 | titleLab.font = UIFont.systemFont(ofSize: 15) | 115 | titleLab.font = UIFont.systemFont(ofSize: 15) | 
| 117 | titleLab.textAlignment = .center | 116 | titleLab.textAlignment = .center | 
| 118 | titleLab.textColor = .white | 117 | titleLab.textColor = .white | 
| 118 | + titleLab.numberOfLines = 0 | ||
| 119 | + titleLab.adjustsFontSizeToFitWidth = true | ||
| 119 | self.titleLeftLab = titleLab | 120 | self.titleLeftLab = titleLab | 
| 120 | leftView.addSubview(titleLab) | 121 | leftView.addSubview(titleLab) | 
| 121 | 122 | ||
| 122 | - let imageView = UIImageView.init(frame: CGRect.init(x: 50, y: 11, width: 10, height: 22)) | 123 | + let imageView = UIImageView.init(frame: CGRect.init(x: 60, y: 11, width: 10, height: 22)) | 
| 123 | imageView.image = UIImage.init(named: "report_white_pull") | 124 | imageView.image = UIImage.init(named: "report_white_pull") | 
| 124 | imageView.contentMode = .scaleAspectFit | 125 | imageView.contentMode = .scaleAspectFit | 
| 125 | leftView.addSubview(imageView) | 126 | leftView.addSubview(imageView) | 
ParentAssistant/ParentAssistant/Classes/controllers/Grow/Program/ProgramCardViewController.swift
| @@ -33,7 +33,7 @@ class ProgramCardViewController: UIViewController,UITextFieldDelegate { | @@ -33,7 +33,7 @@ class ProgramCardViewController: UIViewController,UITextFieldDelegate { | ||
| 33 | }() | 33 | }() | 
| 34 | 34 | ||
| 35 | @objc func applyAction(){ | 35 | @objc func applyAction(){ | 
| 36 | - print("补卡申请提交") | 36 | + DebugLog( "补卡提交") | 
| 37 | let params = ["studentid":1,"onecard":"sss"] as [String : Any] | 37 | let params = ["studentid":1,"onecard":"sss"] as [String : Any] | 
| 38 | HTTPServer.shared.postStudentMendCard(parameters: params as [String : AnyObject]) { (backData, error) in | 38 | HTTPServer.shared.postStudentMendCard(parameters: params as [String : AnyObject]) { (backData, error) in | 
| 39 | print(backData!) | 39 | print(backData!) | 
| @@ -66,7 +66,6 @@ class ProgramCardViewController: UIViewController,UITextFieldDelegate { | @@ -66,7 +66,6 @@ class ProgramCardViewController: UIViewController,UITextFieldDelegate { | ||
| 66 | 66 | ||
| 67 | @objc func handleTap(sender:UITapGestureRecognizer){ | 67 | @objc func handleTap(sender:UITapGestureRecognizer){ | 
| 68 | if sender.state == .ended { | 68 | if sender.state == .ended { | 
| 69 | - print("收起键盘") | ||
| 70 | self.cardInputTextField.resignFirstResponder() | 69 | self.cardInputTextField.resignFirstResponder() | 
| 71 | } | 70 | } | 
| 72 | sender.cancelsTouchesInView = false | 71 | sender.cancelsTouchesInView = false | 
ParentAssistant/ParentAssistant/Classes/controllers/Grow/Program/ProgramCheckViewController.swift
| @@ -56,7 +56,7 @@ class ProgramCheckViewController: UIViewController,UITableViewDelegate,UITableVi | @@ -56,7 +56,7 @@ class ProgramCheckViewController: UIViewController,UITableViewDelegate,UITableVi | ||
| 56 | SVProgressHUD.dismiss() | 56 | SVProgressHUD.dismiss() | 
| 57 | if error == nil && JSON.fromString(backData)!["status"].intValue == 1 { | 57 | if error == nil && JSON.fromString(backData)!["status"].intValue == 1 { | 
| 58 | let data = JSON.fromString(backData)!["data"].arrayValue | 58 | let data = JSON.fromString(backData)!["data"].arrayValue | 
| 59 | - print(backData!) | 59 | + DebugLog(backData!) | 
| 60 | for i in 0..<data.count { | 60 | for i in 0..<data.count { | 
| 61 | let dic = data[i].dictionary | 61 | let dic = data[i].dictionary | 
| 62 | if let model = StudentCardModel.deserialize(from: dic){ | 62 | if let model = StudentCardModel.deserialize(from: dic){ | 
| @@ -91,7 +91,6 @@ class ProgramCheckViewController: UIViewController,UITableViewDelegate,UITableVi | @@ -91,7 +91,6 @@ class ProgramCheckViewController: UIViewController,UITableViewDelegate,UITableVi | ||
| 91 | cell.timeSelectBtn.setTitle(timeSelectString, for: UIControlState.normal) | 91 | cell.timeSelectBtn.setTitle(timeSelectString, for: UIControlState.normal) | 
| 92 | cell.checkName.text = studentModel.studentName | 92 | cell.checkName.text = studentModel.studentName | 
| 93 | cell.backBlock = { | 93 | cell.backBlock = { | 
| 94 | - print("选择日期") | ||
| 95 | self.selectTimeAction() | 94 | self.selectTimeAction() | 
| 96 | } | 95 | } | 
| 97 | return cell | 96 | return cell | 
| @@ -109,7 +108,6 @@ class ProgramCheckViewController: UIViewController,UITableViewDelegate,UITableVi | @@ -109,7 +108,6 @@ class ProgramCheckViewController: UIViewController,UITableViewDelegate,UITableVi | ||
| 109 | self.addAlertView.setRowAndTitle(title: [], type: PickSelectView.AlertType.TimeDateType) | 108 | self.addAlertView.setRowAndTitle(title: [], type: PickSelectView.AlertType.TimeDateType) | 
| 110 | self.addAlertView.showView() | 109 | self.addAlertView.showView() | 
| 111 | self.addAlertView.alertTimeBlock = {str in | 110 | self.addAlertView.alertTimeBlock = {str in | 
| 112 | - print("backdata= \(str)") | ||
| 113 | self.timeSelectString = str | 111 | self.timeSelectString = str | 
| 114 | self.downLoadDataFromNet(time: str) | 112 | self.downLoadDataFromNet(time: str) | 
| 115 | } | 113 | } | 
ParentAssistant/ParentAssistant/Classes/controllers/Grow/Program/ProgramVacateViewController.swift
| @@ -23,9 +23,9 @@ class ProgramVacateViewController: UIViewController,UITableViewDelegate,UITableV | @@ -23,9 +23,9 @@ class ProgramVacateViewController: UIViewController,UITableViewDelegate,UITableV | ||
| 23 | }() | 23 | }() | 
| 24 | 24 | ||
| 25 | lazy var bottomBtn = {()-> UIButton in | 25 | lazy var bottomBtn = {()-> UIButton in | 
| 26 | - let btn = UIButton.init(frame: CGRect.init(x: screenWidth/2-100, y: screenHeight-66-50, width: 200, height: 40)) | 26 | + let btn = UIButton.init(frame: CGRect.init(x: 50, y: screenHeight-66-50, width: screenWidth-100, height: 40)) | 
| 27 | btn.setTitle("请假", for: UIControlState.normal) | 27 | btn.setTitle("请假", for: UIControlState.normal) | 
| 28 | - btn.setTitleColor(UIColor.black, for: UIControlState.normal) | 28 | + btn.setTitleColor(UIColor.white, for: UIControlState.normal) | 
| 29 | btn.backgroundColor = Theme.topBarColor() | 29 | btn.backgroundColor = Theme.topBarColor() | 
| 30 | btn.layer.cornerRadius = 5 | 30 | btn.layer.cornerRadius = 5 | 
| 31 | btn.clipsToBounds = true | 31 | btn.clipsToBounds = true | 
| @@ -42,7 +42,7 @@ class ProgramVacateViewController: UIViewController,UITableViewDelegate,UITableV | @@ -42,7 +42,7 @@ class ProgramVacateViewController: UIViewController,UITableViewDelegate,UITableV | ||
| 42 | 42 | ||
| 43 | /// 请假页面 | 43 | /// 请假页面 | 
| 44 | @objc func addVacateAction(){ | 44 | @objc func addVacateAction(){ | 
| 45 | - print("申请请假!") | 45 | + | 
| 46 | let vc = ProgramVacateAddViewController() | 46 | let vc = ProgramVacateAddViewController() | 
| 47 | vc.title = "申请请假" | 47 | vc.title = "申请请假" | 
| 48 | vc.view.backgroundColor = backGroundColor | 48 | vc.view.backgroundColor = backGroundColor | 
| @@ -140,8 +140,6 @@ class ProgramVacateViewController: UIViewController,UITableViewDelegate,UITableV | @@ -140,8 +140,6 @@ class ProgramVacateViewController: UIViewController,UITableViewDelegate,UITableV | ||
| 140 | 140 | ||
| 141 | func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { | 141 | func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { | 
| 142 | if indexPath.section == 1 && indexPath.row != 0 && vacateRecodeArray.count>0 { | 142 | if indexPath.section == 1 && indexPath.row != 0 && vacateRecodeArray.count>0 { | 
| 143 | - | ||
| 144 | - print(indexPath.row) | ||
| 145 | let vc = ProgramVacateDetailViewController() | 143 | let vc = ProgramVacateDetailViewController() | 
| 146 | vc.view.backgroundColor = UIColor.white | 144 | vc.view.backgroundColor = UIColor.white | 
| 147 | vc.title = "请假详情" | 145 | vc.title = "请假详情" | 
ParentAssistant/ParentAssistant/Classes/controllers/Grow/Program/ProgramViewController.swift
| @@ -79,7 +79,6 @@ class ProgramViewController: UIViewController,UITableViewDelegate,UITableViewDat | @@ -79,7 +79,6 @@ class ProgramViewController: UIViewController,UITableViewDelegate,UITableViewDat | ||
| 79 | } | 79 | } | 
| 80 | 80 | ||
| 81 | @objc func gotoChildView () { | 81 | @objc func gotoChildView () { | 
| 82 | - print("去个人中心页面-我的孩子!") | ||
| 83 | let vc = Story.instantiateViewControllerWithIdentifier("MyChildrenViewController", storyName: "My") as! MyChildrenViewController | 82 | let vc = Story.instantiateViewControllerWithIdentifier("MyChildrenViewController", storyName: "My") as! MyChildrenViewController | 
| 84 | self.navigationController?.pushViewController(vc, animated: true) | 83 | self.navigationController?.pushViewController(vc, animated: true) | 
| 85 | } | 84 | } | 
ParentAssistant/ParentAssistant/Classes/controllers/Grow/Report/MoralViewController.swift
| @@ -45,7 +45,8 @@ class MoralViewController: UIViewController,UITableViewDelegate,UITableViewDataS | @@ -45,7 +45,8 @@ class MoralViewController: UIViewController,UITableViewDelegate,UITableViewDataS | ||
| 45 | self.data = JSON.fromString(backData)!["data"].dictionaryValue | 45 | self.data = JSON.fromString(backData)!["data"].dictionaryValue | 
| 46 | 46 | ||
| 47 | if !self.data.isEmpty{ | 47 | if !self.data.isEmpty{ | 
| 48 | - print(self.data) | 48 | + | 
| 49 | + DebugLog( self.data) | ||
| 49 | } | 50 | } | 
| 50 | } | 51 | } | 
| 51 | } | 52 | } | 
ParentAssistant/ParentAssistant/Classes/controllers/Grow/View/ReportView/CalendarView.swift
| @@ -81,7 +81,8 @@ class CalendarView: UIView,UICollectionViewDelegate,UICollectionViewDataSource { | @@ -81,7 +81,8 @@ class CalendarView: UIView,UICollectionViewDelegate,UICollectionViewDataSource { | ||
| 81 | } | 81 | } | 
| 82 | func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { | 82 | func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { | 
| 83 | if indexPath.row >= firstDay-1+7 && indexPath.row < todayDay+7+firstDay-1 { | 83 | if indexPath.row >= firstDay-1+7 && indexPath.row < todayDay+7+firstDay-1 { | 
| 84 | - print("点击了 ...\(indexPath.row+1-7-firstDay+1)号") | 84 | + | 
| 85 | + DebugLog( "点击了 ...\(indexPath.row+1-7-firstDay+1)号") | ||
| 85 | } | 86 | } | 
| 86 | } | 87 | } | 
| 87 | required init?(coder aDecoder: NSCoder) { | 88 | required init?(coder aDecoder: NSCoder) { | 
ParentAssistant/ParentAssistant/Classes/controllers/Grow/View/ReportView/EducationDetailCell.swift
| @@ -18,7 +18,6 @@ class EducationDetailCell: UITableViewCell { | @@ -18,7 +18,6 @@ class EducationDetailCell: UITableViewCell { | ||
| 18 | 18 | ||
| 19 | let rect = CGRect.init(x: 10, y: 60, width: screenWidth-20, height: screenWidth*0.62-60) | 19 | let rect = CGRect.init(x: 10, y: 60, width: screenWidth-20, height: screenWidth*0.62-60) | 
| 20 | customLineChart = LineChartView.init(frame: rect) | 20 | customLineChart = LineChartView.init(frame: rect) | 
| 21 | - print("linechart frame = \(customLineChart.frame)") | ||
| 22 | customLineChart.drawUI(xLableArr: nil) | 21 | customLineChart.drawUI(xLableArr: nil) | 
| 23 | let arr1 = [4,4,2,1,3] | 22 | let arr1 = [4,4,2,1,3] | 
| 24 | let arr2 = [2,1,4,4,5] | 23 | let arr2 = [2,1,4,4,5] | 
ParentAssistant/ParentAssistant/Classes/controllers/Grow/View/ReportView/LineChartView.swift
| @@ -158,8 +158,6 @@ class LineChartView: UIView { | @@ -158,8 +158,6 @@ class LineChartView: UIView { | ||
| 158 | self.addSubview(newLab) | 158 | self.addSubview(newLab) | 
| 159 | yLabArray.append(newLab) | 159 | yLabArray.append(newLab) | 
| 160 | } | 160 | } | 
| 161 | - }else{ | ||
| 162 | - print(yLabArray) | ||
| 163 | } | 161 | } | 
| 164 | btnTouch = index | 162 | btnTouch = index | 
| 165 | 163 | 
ParentAssistant/ParentAssistant/Classes/controllers/Grow/View/ReportView/ReportHeaderView.swift
| @@ -85,7 +85,8 @@ class ReportHeaderView: UIView,UICollectionViewDelegate,UICollectionViewDataSour | @@ -85,7 +85,8 @@ class ReportHeaderView: UIView,UICollectionViewDelegate,UICollectionViewDataSour | ||
| 85 | } | 85 | } | 
| 86 | func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { | 86 | func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { | 
| 87 | if indexPath.row >= firstDay-1 && indexPath.row < todayDate+firstDay-1 { | 87 | if indexPath.row >= firstDay-1 && indexPath.row < todayDate+firstDay-1 { | 
| 88 | - print("点击了 ...\(indexPath.row+1-firstDay+1)号") | 88 | + | 
| 89 | + DebugLog( "点击了 ...\(indexPath.row+1-firstDay+1)号") | ||
| 89 | } | 90 | } | 
| 90 | } | 91 | } | 
| 91 | 92 | 
ParentAssistant/ParentAssistant/Classes/controllers/Information/InformationViewController.swift
| @@ -14,32 +14,81 @@ class InformationViewController: UIViewController,UISearchBarDelegate { | @@ -14,32 +14,81 @@ class InformationViewController: UIViewController,UISearchBarDelegate { | ||
| 14 | var topADs:[ADSModel]=[] | 14 | var topADs:[ADSModel]=[] | 
| 15 | var isFirstviewController:Bool=true | 15 | var isFirstviewController:Bool=true | 
| 16 | var channel:Int=0 | 16 | var channel:Int=0 | 
| 17 | + | ||
| 18 | + //导航栏左侧按钮 | ||
| 19 | + lazy var leftCityView = {()-> UIView in | ||
| 20 | + //左按钮 | ||
| 21 | + let leftView = UIButton.init(frame: CGRect.init(x: 0, y: 0, width: 70, height: 44)) | ||
| 22 | + let titleLab = UILabel.init(frame: CGRect.init(x: 0, y: 0, width: 60, height: 44)) | ||
| 23 | + | ||
| 24 | + titleLab.font = UIFont.systemFont(ofSize: 15) | ||
| 25 | + titleLab.numberOfLines = 0 | ||
| 26 | + titleLab.adjustsFontSizeToFitWidth = true | ||
| 27 | + titleLab.textAlignment = .center | ||
| 28 | + titleLab.textColor = .white | ||
| 29 | + titleLab.text = localAddress | ||
| 30 | + self.leftLabel = titleLab | ||
| 31 | + leftView.addSubview(titleLab) | ||
| 32 | + | ||
| 33 | + let imageView = UIImageView.init(frame: CGRect.init(x: 60, y: 11, width: 10, height: 22)) | ||
| 34 | + imageView.image = UIImage.init(named: "report_white_pull") | ||
| 35 | + imageView.contentMode = .scaleAspectFit | ||
| 36 | + leftView.addSubview(imageView) | ||
| 37 | + | ||
| 38 | + leftView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(EvaluationViewController.getAddreess(tap:)))) | ||
| 39 | + return leftView | ||
| 40 | + }() | ||
| 41 | + | ||
| 17 | override func viewDidLoad() { | 42 | override func viewDidLoad() { | 
| 18 | super.viewDidLoad() | 43 | super.viewDidLoad() | 
| 19 | - | ||
| 20 | - self.configTheme() | ||
| 21 | - | ||
| 22 | - // Do any additional setup after loading the view. | ||
| 23 | - var searchViewFrame = CGRect(x: 0, y: 0, width: getScreenWidth()-100, height: 30) | ||
| 24 | - | 44 | + | 
| 45 | + let item = UIBarButtonItem.init(title: "返回", style: .plain, target: self, action: nil) | ||
| 46 | + self.navigationItem.backBarButtonItem = item | ||
| 47 | + | ||
| 48 | + drawTopUI() | ||
| 49 | + | ||
| 50 | + } | ||
| 51 | + override func viewWillAppear(_ animated: Bool) { | ||
| 52 | + super.viewWillAppear(animated) | ||
| 53 | + | ||
| 25 | if isFirstviewController{ | 54 | if isFirstviewController{ | 
| 26 | - self.navigationItem.title = "" | ||
| 27 | - addLeftBarBtn() | ||
| 28 | - }else{ | ||
| 29 | - searchViewFrame.size.width = getScreenWidth()-60 | 55 | + let leftBtn = UIBarButtonItem.init(customView: self.leftCityView) | 
| 56 | + self.navigationItem.leftBarButtonItem = leftBtn | ||
| 57 | + if localAddress == "未知" { | ||
| 58 | + LocationManger.shared.block = { str in | ||
| 59 | + localAddress = str | ||
| 60 | + self.leftLabel.text = localAddress | ||
| 61 | + self.getDataFromNet() | ||
| 62 | + } | ||
| 63 | + } | ||
| 30 | } | 64 | } | 
| 31 | - let searchView = UISearchBar(frame: searchViewFrame) | ||
| 32 | - let view = UIView(frame: CGRect(x: 0, y: 7, width: searchViewFrame.size.width, height: 30)) | ||
| 33 | - searchView.delegate = self | ||
| 34 | - searchView.placeholder = "请输入搜索内容" | ||
| 35 | - searchView.showsCancelButton = false | ||
| 36 | - view.addSubview(searchView) | ||
| 37 | - self.navigationItem.titleView = view | ||
| 38 | - self.navigationController?.navigationBar.tintColor=UIColor.white | 65 | + self.getDataFromNet() | 
| 39 | } | 66 | } | 
| 40 | - | ||
| 41 | - private func getDataFromNet(){ | 67 | + func drawTopUI(){ | 
| 42 | 68 | ||
| 69 | + self.configTheme() | ||
| 70 | + //搜索框 | ||
| 71 | + let searchView = SearchBarView.init(frame: CGRect.init(x: 0, y: 0, width: screenWidth-100, height: navigationBarHeight!)) | ||
| 72 | + //MARK:搜索框搜索回调 | ||
| 73 | + searchView.block = { str,type in | ||
| 74 | + DebugLog(str) | ||
| 75 | + switch type { | ||
| 76 | + case .SearchType: | ||
| 77 | + self.getList(key: str) | ||
| 78 | + case .CancelType: | ||
| 79 | + self.getDataFromNet() | ||
| 80 | + } | ||
| 81 | + } | ||
| 82 | + self.navigationItem.titleView = searchView | ||
| 83 | + } | ||
| 84 | + override func viewWillDisappear(_ animated: Bool) { | ||
| 85 | + super.viewWillDisappear(animated) | ||
| 86 | + SVProgressHUD.dismiss() | ||
| 87 | + } | ||
| 88 | + //MARK: - 获取该城市下的数据 | ||
| 89 | + private func getDataFromNet(){ | ||
| 90 | + //position 广告位置0-首次广告位1-开屏广告位2-资讯首页3-频道首页4-频道内容5-文章内容页 | ||
| 91 | + SVProgressHUD.show() | ||
| 43 | let group = DispatchGroup() | 92 | let group = DispatchGroup() | 
| 44 | var position:Int = 2 | 93 | var position:Int = 2 | 
| 45 | if !self.isFirstviewController { | 94 | if !self.isFirstviewController { | 
| @@ -72,48 +121,27 @@ class InformationViewController: UIViewController,UISearchBarDelegate { | @@ -72,48 +121,27 @@ class InformationViewController: UIViewController,UISearchBarDelegate { | ||
| 72 | group.leave() | 121 | group.leave() | 
| 73 | }) | 122 | }) | 
| 74 | group.notify(queue: DispatchQueue.main) { | 123 | group.notify(queue: DispatchQueue.main) { | 
| 124 | + SVProgressHUD.dismiss() | ||
| 75 | self.collectView.reloadData() | 125 | self.collectView.reloadData() | 
| 76 | } | 126 | } | 
| 77 | } | 127 | } | 
| 78 | - | ||
| 79 | - | ||
| 80 | - func getData(){ | ||
| 81 | - let topADsQueue = DispatchQueue(label: "topADs") | ||
| 82 | - topADsQueue.async { | ||
| 83 | - //position 广告位置0-首次广告位1-开屏广告位2-资讯首页3-频道首页4-频道内容5-文章内容页 | ||
| 84 | - var position:Int = 2 | ||
| 85 | - if !self.isFirstviewController { | ||
| 86 | - position = 3 | ||
| 87 | - } | ||
| 88 | - HTTPServer.shared.getAds(["position":position as AnyObject,"areaName":localAddress as AnyObject], completionHandler: { (str, error) in//getPercentEncodingString(str: localAddress) | ||
| 89 | - httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
| 90 | - if json["status"] == 1 && error == nil{ | ||
| 91 | - self.topADs.removeAll() | ||
| 92 | - for item in json.contentData().arrayValue{ | ||
| 93 | - self.topADs.append(ADSModel(j: item)) | ||
| 94 | - } | ||
| 95 | - self.collectView.reloadData() | ||
| 96 | - } | ||
| 97 | - }, failHandler: { (error) in | ||
| 98 | - | ||
| 99 | - }) | ||
| 100 | - }) | ||
| 101 | - } | ||
| 102 | - topADsQueue.async { | ||
| 103 | - let dic = self.getListDic() | ||
| 104 | - HTTPServer.shared.getChannelInfo(dic, completionHandler: { (str, error) in | ||
| 105 | - httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
| 106 | - if json["status"] == 1 && error == nil{ | ||
| 107 | - self.data = ChannelDemol(j: json.contentData()) | ||
| 108 | - self.collectView.reloadData() | ||
| 109 | - } | ||
| 110 | - }, failHandler: { (error) in | ||
| 111 | - | ||
| 112 | - }) | ||
| 113 | - }) | 128 | + //MARK: - 地址选择回调 | 
| 129 | + @objc func getAddreess(tap:UITapGestureRecognizer){ | ||
| 130 | + tap.view?.isUserInteractionEnabled = false | ||
| 131 | + LZCityPickerController.showPicker(in: self | ||
| 132 | + , select: { (address, province, city, area, isSelect) in | ||
| 133 | + if isSelect{ | ||
| 134 | + tap.view?.isUserInteractionEnabled = true | ||
| 135 | + self.leftLabel.text = area! | ||
| 136 | + localAddress = area! | ||
| 137 | + self.getDataFromNet() | ||
| 138 | + } | ||
| 139 | + }) { | ||
| 140 | + tap.view?.isUserInteractionEnabled = true | ||
| 114 | } | 141 | } | 
| 115 | } | 142 | } | 
| 116 | 143 | ||
| 144 | + //MARK: - 搜索框搜索咨询 | ||
| 117 | func getList(key:String?) { | 145 | func getList(key:String?) { | 
| 118 | if key == nil{ | 146 | if key == nil{ | 
| 119 | return | 147 | return | 
| @@ -149,81 +177,8 @@ class InformationViewController: UIViewController,UISearchBarDelegate { | @@ -149,81 +177,8 @@ class InformationViewController: UIViewController,UISearchBarDelegate { | ||
| 149 | dic.updateValue(toFirstPage as AnyObject, forKey: "toFirstPage") | 177 | dic.updateValue(toFirstPage as AnyObject, forKey: "toFirstPage") | 
| 150 | return dic | 178 | return dic | 
| 151 | } | 179 | } | 
| 152 | - | ||
| 153 | - //左上交城市选择按钮添加 | ||
| 154 | - func addLeftBarBtn(){ | ||
| 155 | - let leftbtn = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 40)) | ||
| 156 | - leftLabel = UILabel(frame: CGRect(x: 0, y: 10, width: 60, height: 20)) | ||
| 157 | - leftLabel.text = localAddress | ||
| 158 | - leftLabel.textColor = UIColor.white | ||
| 159 | - leftLabel.sizeToFit() | ||
| 160 | - let image = UIImageView(frame: CGRect(x: leftLabel.frame.maxX+4, y: 15, width: 16, height: 9)) | ||
| 161 | - image.image = #imageLiteral(resourceName: "evaluation_icon_pushDown") | ||
| 162 | - leftbtn.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(EvaluationViewController.getAddreess(tap:)))) | ||
| 163 | - leftbtn.addSubview(leftLabel) | ||
| 164 | - leftbtn.addSubview(image) | ||
| 165 | - leftbtn.frame.size = CGSize(width: image.frame.maxX+4, height: 40) | ||
| 166 | - self.navigationItem.leftBarButtonItem = UIBarButtonItem(customView: leftbtn) | ||
| 167 | - } | ||
| 168 | - | ||
| 169 | - //地址选择 | ||
| 170 | - @objc func getAddreess(tap:UITapGestureRecognizer){ | ||
| 171 | - tap.view?.isUserInteractionEnabled = false | ||
| 172 | - LZCityPickerController.showPicker(in: self | ||
| 173 | - , select: { (address, province, city, area, isSelect) in | ||
| 174 | - if isSelect{ | ||
| 175 | - tap.view?.isUserInteractionEnabled = true | ||
| 176 | - self.selectCity(city: area!) | ||
| 177 | - } | ||
| 178 | - }) { | ||
| 179 | - tap.view?.isUserInteractionEnabled = true | ||
| 180 | - } | ||
| 181 | - } | ||
| 182 | 180 | ||
| 183 | - //完成选择城市 | ||
| 184 | - func selectCity(city: String) { | ||
| 185 | - localAddress = city | ||
| 186 | - addLeftBarBtn() | ||
| 187 | -// getData() | ||
| 188 | - getDataFromNet() | ||
| 189 | - | ||
| 190 | - } | ||
| 191 | - | ||
| 192 | - func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) { | ||
| 193 | - searchBar.showsCancelButton = true | ||
| 194 | - } | ||
| 195 | - | ||
| 196 | - func searchBarCancelButtonClicked(_ searchBar: UISearchBar) { | ||
| 197 | - searchData(searchBar) | ||
| 198 | - } | ||
| 199 | - | ||
| 200 | - func searchBarSearchButtonClicked(_ searchBar: UISearchBar) { | ||
| 201 | - searchData(searchBar) | ||
| 202 | - } | ||
| 203 | - | ||
| 204 | - //搜索资讯 | ||
| 205 | - func searchData(_ searchBar: UISearchBar){ | ||
| 206 | - getList(key: searchBar.text) | ||
| 207 | - searchBar.resignFirstResponder() | ||
| 208 | - searchBar.showsCancelButton = false | ||
| 209 | - | ||
| 210 | - } | ||
| 211 | - | ||
| 212 | - override func viewWillDisappear(_ animated: Bool) { | ||
| 213 | - super.viewWillDisappear(animated) | ||
| 214 | - } | ||
| 215 | - | ||
| 216 | - override func viewWillAppear(_ animated: Bool) { | ||
| 217 | - super.viewWillAppear(animated) | ||
| 218 | -// getData() | ||
| 219 | - getDataFromNet() | ||
| 220 | - if isFirstviewController{ | ||
| 221 | - addLeftBarBtn() | ||
| 222 | - }else{ | ||
| 223 | - | ||
| 224 | - } | ||
| 225 | 181 | ||
| 226 | - } | ||
| 227 | override func didReceiveMemoryWarning() { | 182 | override func didReceiveMemoryWarning() { | 
| 228 | super.didReceiveMemoryWarning() | 183 | super.didReceiveMemoryWarning() | 
| 229 | // Dispose of any resources that can be recreated. | 184 | // Dispose of any resources that can be recreated. | 
| @@ -419,83 +374,4 @@ extension ChannelSelectView:UICollectionViewDataSource,UICollectionViewDelegateF | @@ -419,83 +374,4 @@ extension ChannelSelectView:UICollectionViewDataSource,UICollectionViewDelegateF | ||
| 419 | } | 374 | } | 
| 420 | } | 375 | } | 
| 421 | 376 | ||
| 422 | -class ChannelDemol:NSObject{ | ||
| 423 | - var id:Int=0 // 频道ID , | ||
| 424 | - var channelName:String=""// 频道名称 , | ||
| 425 | - var channelImage:String=""// 频道图片 , | ||
| 426 | - var orderById:Int=0 // 频道排序 , | ||
| 427 | - var subchannel:[SubchannelDemol] = []// 二级频道 , | ||
| 428 | - var channelContent:[ChannelContentDemol] = []// 频道信息 | ||
| 429 | - init(j:JSON){ | ||
| 430 | - id = j["id"].intValue | ||
| 431 | - channelName = j["channelName"].stringValue | ||
| 432 | - channelName = j["channelName"].stringValue | ||
| 433 | - orderById = j["orderById"].intValue | ||
| 434 | - for item in j["subchannel"].arrayValue { | ||
| 435 | - subchannel.append(SubchannelDemol(j: item)) | ||
| 436 | - } | ||
| 437 | - for item in j["channelContent"].arrayValue { | ||
| 438 | - channelContent.append(ChannelContentDemol(j: item)) | ||
| 439 | - } | ||
| 440 | - } | ||
| 441 | -} | ||
| 442 | - | ||
| 443 | -class SubchannelDemol: NSObject { | ||
| 444 | - var id:Int=0 // 二级频道ID , | ||
| 445 | - var channelName:String=""// 二级频道名称 , | ||
| 446 | - var channelImage:String=""// 二级频道图片 , | ||
| 447 | - var orderById:Int=0// 二级工具排序, | ||
| 448 | - var url:String=""// 二级工具链接 | ||
| 449 | - init(j:JSON){ | ||
| 450 | - id = j["id"].intValue | ||
| 451 | - channelName = j["channelName"].stringValue | ||
| 452 | - channelImage = j["channelImage"].stringValue | ||
| 453 | - orderById = j["orderById"].intValue | ||
| 454 | - url = j["url"].stringValue | ||
| 455 | - } | ||
| 456 | - | ||
| 457 | -} | ||
| 458 | - | ||
| 459 | -class ChannelContentDemol: NSObject { | ||
| 460 | - var id:Int=0// 资讯ID , | ||
| 461 | - var image:String=""// 资讯标题图片 , | ||
| 462 | - var title:String=""// 资讯标题 , | ||
| 463 | - var url:String=""// 资讯链接 , | ||
| 464 | - var content:String=""// 资讯内容 , | ||
| 465 | - var forwardingNum:Int=0// 资讯转发数 , | ||
| 466 | - var talkNum:Int=0 // 评论数 , | ||
| 467 | - var lookNum:Int = 0 //浏览数 | ||
| 468 | - var orderById:Int=0// 资讯排序 | ||
| 469 | - var isAds:Int=0// 是否为广告 1是广告 | ||
| 470 | - init(j:JSON){ | ||
| 471 | - id = j["id"].intValue | ||
| 472 | - image = j["image"].stringValue | ||
| 473 | - title = j["title"].stringValue | ||
| 474 | - url = j["url"].stringValue | ||
| 475 | - content = j["content"].stringValue | ||
| 476 | - forwardingNum = j["forwardingNum"].intValue | ||
| 477 | - talkNum = j["talkNum"].intValue | ||
| 478 | - lookNum = j["lookNum"].intValue | ||
| 479 | - orderById = j["orderById"].intValue | ||
| 480 | - isAds = j["isAds"].intValue | ||
| 481 | - } | ||
| 482 | - | ||
| 483 | -} | ||
| 484 | - | ||
| 485 | -class ADSModel: NSObject { | ||
| 486 | - var id:Int=0// 广告ID , | ||
| 487 | - var location:Int=0// 广告位 , | ||
| 488 | - var describe:String=""// 广告内容 , | ||
| 489 | - var fileSrc:String=""// 广告内容 , | ||
| 490 | - var url:String=""// 广告跳转链接 , | ||
| 491 | - var orderById:Int=0// 广告排序 | ||
| 492 | - init(j:JSON){ | ||
| 493 | - id = j["id"].intValue | ||
| 494 | - location = j["location"].intValue | ||
| 495 | - describe = j["describe"].stringValue | ||
| 496 | - fileSrc = j["fileSrc"].stringValue | ||
| 497 | - url = j["url"].stringValue | ||
| 498 | - orderById = j["orderById"].intValue | ||
| 499 | - } | ||
| 500 | 377 | ||
| 501 | -} | 
ParentAssistant/ParentAssistant/Classes/controllers/Information/Model/InfoModel.swift
0 → 100644
| @@ -0,0 +1,93 @@ | @@ -0,0 +1,93 @@ | ||
| 1 | +// | ||
| 2 | +// InfoModel.swift | ||
| 3 | +// ParentAssistant | ||
| 4 | +// | ||
| 5 | +// Created by Cao yang on 2018/4/21. | ||
| 6 | +// Copyright © 2018年 HANGZHOUTEAM. All rights reserved. | ||
| 7 | +// | ||
| 8 | + | ||
| 9 | +import UIKit | ||
| 10 | + | ||
| 11 | +class InfoModel: NSObject { | ||
| 12 | + | ||
| 13 | +} | ||
| 14 | +class ChannelDemol:NSObject{ | ||
| 15 | + var id:Int=0 // 频道ID , | ||
| 16 | + var channelName:String=""// 频道名称 , | ||
| 17 | + var channelImage:String=""// 频道图片 , | ||
| 18 | + var orderById:Int=0 // 频道排序 , | ||
| 19 | + var subchannel:[SubchannelDemol] = []// 二级频道 , | ||
| 20 | + var channelContent:[ChannelContentDemol] = []// 频道信息 | ||
| 21 | + init(j:JSON){ | ||
| 22 | + id = j["id"].intValue | ||
| 23 | + channelName = j["channelName"].stringValue | ||
| 24 | + channelName = j["channelName"].stringValue | ||
| 25 | + orderById = j["orderById"].intValue | ||
| 26 | + for item in j["subchannel"].arrayValue { | ||
| 27 | + subchannel.append(SubchannelDemol(j: item)) | ||
| 28 | + } | ||
| 29 | + for item in j["channelContent"].arrayValue { | ||
| 30 | + channelContent.append(ChannelContentDemol(j: item)) | ||
| 31 | + } | ||
| 32 | + } | ||
| 33 | +} | ||
| 34 | + | ||
| 35 | +class SubchannelDemol: NSObject { | ||
| 36 | + var id:Int=0 // 二级频道ID , | ||
| 37 | + var channelName:String=""// 二级频道名称 , | ||
| 38 | + var channelImage:String=""// 二级频道图片 , | ||
| 39 | + var orderById:Int=0// 二级工具排序, | ||
| 40 | + var url:String=""// 二级工具链接 | ||
| 41 | + init(j:JSON){ | ||
| 42 | + id = j["id"].intValue | ||
| 43 | + channelName = j["channelName"].stringValue | ||
| 44 | + channelImage = j["channelImage"].stringValue | ||
| 45 | + orderById = j["orderById"].intValue | ||
| 46 | + url = j["url"].stringValue | ||
| 47 | + } | ||
| 48 | + | ||
| 49 | +} | ||
| 50 | + | ||
| 51 | +class ChannelContentDemol: NSObject { | ||
| 52 | + var id:Int=0// 资讯ID , | ||
| 53 | + var image:String=""// 资讯标题图片 , | ||
| 54 | + var title:String=""// 资讯标题 , | ||
| 55 | + var url:String=""// 资讯链接 , | ||
| 56 | + var content:String=""// 资讯内容 , | ||
| 57 | + var forwardingNum:Int=0// 资讯转发数 , | ||
| 58 | + var talkNum:Int=0 // 评论数 , | ||
| 59 | + var lookNum:Int = 0 //浏览数 | ||
| 60 | + var orderById:Int=0// 资讯排序 | ||
| 61 | + var isAds:Int=0// 是否为广告 1是广告 | ||
| 62 | + init(j:JSON){ | ||
| 63 | + id = j["id"].intValue | ||
| 64 | + image = j["image"].stringValue | ||
| 65 | + title = j["title"].stringValue | ||
| 66 | + url = j["url"].stringValue | ||
| 67 | + content = j["content"].stringValue | ||
| 68 | + forwardingNum = j["forwardingNum"].intValue | ||
| 69 | + talkNum = j["talkNum"].intValue | ||
| 70 | + lookNum = j["lookNum"].intValue | ||
| 71 | + orderById = j["orderById"].intValue | ||
| 72 | + isAds = j["isAds"].intValue | ||
| 73 | + } | ||
| 74 | + | ||
| 75 | +} | ||
| 76 | + | ||
| 77 | +class ADSModel: NSObject { | ||
| 78 | + var id:Int=0// 广告ID , | ||
| 79 | + var location:Int=0// 广告位 , | ||
| 80 | + var describe:String=""// 广告内容 , | ||
| 81 | + var fileSrc:String=""// 广告内容 , | ||
| 82 | + var url:String=""// 广告跳转链接 , | ||
| 83 | + var orderById:Int=0// 广告排序 | ||
| 84 | + init(j:JSON){ | ||
| 85 | + id = j["id"].intValue | ||
| 86 | + location = j["location"].intValue | ||
| 87 | + describe = j["describe"].stringValue | ||
| 88 | + fileSrc = j["fileSrc"].stringValue | ||
| 89 | + url = j["url"].stringValue | ||
| 90 | + orderById = j["orderById"].intValue | ||
| 91 | + } | ||
| 92 | + | ||
| 93 | +} | 
ParentAssistant/ParentAssistant/Classes/controllers/main/JSViewController.swift
| @@ -76,7 +76,8 @@ class JSViewController: UIViewController,WKUIDelegate,WKScriptMessageHandler,UIA | @@ -76,7 +76,8 @@ class JSViewController: UIViewController,WKUIDelegate,WKScriptMessageHandler,UIA | ||
| 76 | self.view.insertSubview(loadingView, aboveSubview: progressView) | 76 | self.view.insertSubview(loadingView, aboveSubview: progressView) | 
| 77 | } | 77 | } | 
| 78 | func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) { | 78 | func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) { | 
| 79 | - Debug.log("方法名:\(message.name),参数:\(message.body)") | 79 | + | 
| 80 | + DebugLog( "方法名:\(message.name),参数:\(message.body)") | ||
| 80 | // 调用方法 | 81 | // 调用方法 | 
| 81 | if message.name == "setMenu" { | 82 | if message.name == "setMenu" { | 
| 82 | ary=[] | 83 | ary=[] | 
| @@ -114,7 +115,7 @@ class JSViewController: UIViewController,WKUIDelegate,WKScriptMessageHandler,UIA | @@ -114,7 +115,7 @@ class JSViewController: UIViewController,WKUIDelegate,WKScriptMessageHandler,UIA | ||
| 114 | if buttonIndex==i { | 115 | if buttonIndex==i { | 
| 115 | self.wkWebView.evaluateJavaScript(jsAry[i-1], completionHandler: { (data, error) in | 116 | self.wkWebView.evaluateJavaScript(jsAry[i-1], completionHandler: { (data, error) in | 
| 116 | if error != nil { | 117 | if error != nil { | 
| 117 | - print("错误:\(String(describing: error?.localizedDescription)))") | 118 | + DebugLog( "错误:\(String(describing: error?.localizedDescription)))") | 
| 118 | } | 119 | } | 
| 119 | }) | 120 | }) | 
| 120 | } | 121 | } | 
| @@ -125,7 +126,7 @@ class JSViewController: UIViewController,WKUIDelegate,WKScriptMessageHandler,UIA | @@ -125,7 +126,7 @@ class JSViewController: UIViewController,WKUIDelegate,WKScriptMessageHandler,UIA | ||
| 125 | if object as! WKWebView == self.wkWebView { | 126 | if object as! WKWebView == self.wkWebView { | 
| 126 | self.progressView.alpha=1.0 | 127 | self.progressView.alpha=1.0 | 
| 127 | self.progressView.setProgress(Float(wkWebView.estimatedProgress), animated: true) | 128 | self.progressView.setProgress(Float(wkWebView.estimatedProgress), animated: true) | 
| 128 | - Debug.log("+++++++++++++++++\(Float(wkWebView.estimatedProgress))") | 129 | + DebugLog( "+++++++++++++++++\(Float(wkWebView.estimatedProgress))") | 
| 129 | if wkWebView.estimatedProgress >= 1.0 { | 130 | if wkWebView.estimatedProgress >= 1.0 { | 
| 130 | UIView.animate(withDuration: 0.3, delay: 0.3, options: UIViewAnimationOptions.curveEaseIn, animations: { | 131 | UIView.animate(withDuration: 0.3, delay: 0.3, options: UIViewAnimationOptions.curveEaseIn, animations: { | 
| 131 | self.progressView.alpha=0.0 | 132 | self.progressView.alpha=0.0 | 
ParentAssistant/ParentAssistant/Classes/controllers/main/TabBarController.swift
| @@ -78,14 +78,14 @@ extension TabBarController: URLSessionDelegate { | @@ -78,14 +78,14 @@ extension TabBarController: URLSessionDelegate { | ||
| 78 | //认证服务器证书 | 78 | //认证服务器证书 | 
| 79 | if challenge.protectionSpace.authenticationMethod | 79 | if challenge.protectionSpace.authenticationMethod | 
| 80 | == (NSURLAuthenticationMethodServerTrust) { | 80 | == (NSURLAuthenticationMethodServerTrust) { | 
| 81 | - print("服务端证书认证!") | 81 | + DebugLog("服务器证书认证!") | 
| 82 | completionHandler(.performDefaultHandling, nil) | 82 | completionHandler(.performDefaultHandling, nil) | 
| 83 | } | 83 | } | 
| 84 | //认证客户端证书 | 84 | //认证客户端证书 | 
| 85 | else if challenge.protectionSpace.authenticationMethod | 85 | else if challenge.protectionSpace.authenticationMethod | 
| 86 | == NSURLAuthenticationMethodClientCertificate | 86 | == NSURLAuthenticationMethodClientCertificate | 
| 87 | { | 87 | { | 
| 88 | - print("客户端证书认证!") | 88 | + DebugLog( "客户端证书认证!") | 
| 89 | //获取客户端证书相关信息 | 89 | //获取客户端证书相关信息 | 
| 90 | let identityAndTrust:IdentityAndTrust = self.extractIdentity(); | 90 | let identityAndTrust:IdentityAndTrust = self.extractIdentity(); | 
| 91 | 91 | ||
| @@ -96,10 +96,9 @@ extension TabBarController: URLSessionDelegate { | @@ -96,10 +96,9 @@ extension TabBarController: URLSessionDelegate { | ||
| 96 | 96 | ||
| 97 | completionHandler(.useCredential, urlCredential); | 97 | completionHandler(.useCredential, urlCredential); | 
| 98 | } | 98 | } | 
| 99 | - | ||
| 100 | - // 其它情况(不接受认证) | 99 | + // 其它情况(不接受认证) | 
| 101 | else { | 100 | else { | 
| 102 | - print("其它情况(不接受认证)") | 101 | + DebugLog( "其他情况,不接受认证") | 
| 103 | completionHandler(.cancelAuthenticationChallenge, nil); | 102 | completionHandler(.cancelAuthenticationChallenge, nil); | 
| 104 | } | 103 | } | 
| 105 | } | 104 | } | 
ParentAssistant/ParentAssistant/Classes/controllers/my/Controller/CurrentInfoViewController.swift
| @@ -91,7 +91,7 @@ class CurrentInfoViewController: UIViewController,UIImagePickerControllerDelegat | @@ -91,7 +91,7 @@ class CurrentInfoViewController: UIViewController,UIImagePickerControllerDelegat | ||
| 91 | } | 91 | } | 
| 92 | func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { | 92 | func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { | 
| 93 | picker.dismiss(animated: true, completion: { () -> Void in | 93 | picker.dismiss(animated: true, completion: { () -> Void in | 
| 94 | - Debug.log("\(info)") | 94 | + DebugLog( "\(info)") | 
| 95 | let image=info[UIImagePickerControllerEditedImage] as! UIImage | 95 | let image=info[UIImagePickerControllerEditedImage] as! UIImage | 
| 96 | let smallimage=scaleImage(image, toSize: CGSize(width: 256, height: 256)) | 96 | let smallimage=scaleImage(image, toSize: CGSize(width: 256, height: 256)) | 
| 97 | let filePath=imageFilePath(String(format:"%f.jpg",Date().timeIntervalSince1970)) | 97 | let filePath=imageFilePath(String(format:"%f.jpg",Date().timeIntervalSince1970)) | 
ParentAssistant/ParentAssistant/Classes/controllers/my/Controller/Login/RegisterViewController.swift
| @@ -60,7 +60,6 @@ class RegisterViewController: UITableViewController,UITextFieldDelegate { | @@ -60,7 +60,6 @@ class RegisterViewController: UITableViewController,UITextFieldDelegate { | ||
| 60 | let userInfo:NSDictionary=noti.userInfo! as NSDictionary | 60 | let userInfo:NSDictionary=noti.userInfo! as NSDictionary | 
| 61 | let endFrame=(userInfo[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue | 61 | let endFrame=(userInfo[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue | 
| 62 | 62 | ||
| 63 | - print(self.rootTableView.frame) | ||
| 64 | let y = navigationBarHeight! + statusBarHeight | 63 | let y = navigationBarHeight! + statusBarHeight | 
| 65 | if endFrame?.origin.y == getScreenHeight() { | 64 | if endFrame?.origin.y == getScreenHeight() { | 
| 66 | UIView.animate(withDuration: 0.5) { | 65 | UIView.animate(withDuration: 0.5) { | 
ParentAssistant/ParentAssistant/Classes/util/LocationManger.swift
| @@ -11,8 +11,15 @@ import CoreLocation | @@ -11,8 +11,15 @@ import CoreLocation | ||
| 11 | 11 | ||
| 12 | class LocationManger: NSObject,CLLocationManagerDelegate { | 12 | class LocationManger: NSObject,CLLocationManagerDelegate { | 
| 13 | 13 | ||
| 14 | + typealias BackCityBlock = (String)->() | ||
| 15 | + | ||
| 14 | static let shared = LocationManger() | 16 | static let shared = LocationManger() | 
| 15 | - required override init() {} | 17 | + required override init() { | 
| 18 | + | ||
| 19 | + } | ||
| 20 | + | ||
| 21 | + var block : BackCityBlock? | ||
| 22 | + | ||
| 16 | 23 | ||
| 17 | var locationManger = CLLocationManager() | 24 | var locationManger = CLLocationManager() | 
| 18 | 25 | ||
| @@ -41,8 +48,13 @@ class LocationManger: NSObject,CLLocationManagerDelegate { | @@ -41,8 +48,13 @@ class LocationManger: NSObject,CLLocationManagerDelegate { | ||
| 41 | if city == nil{ | 48 | if city == nil{ | 
| 42 | city = placeMark!.administrativeArea | 49 | city = placeMark!.administrativeArea | 
| 43 | } | 50 | } | 
| 51 | + if localAddress == "未知" { | ||
| 52 | + if let add = city { | ||
| 53 | + self.block!(add) | ||
| 54 | + } | ||
| 55 | + } | ||
| 44 | localAddress = city! | 56 | localAddress = city! | 
| 45 | - | 57 | + | 
| 46 | }else if error == nil && arr == nil{ | 58 | }else if error == nil && arr == nil{ | 
| 47 | 59 | ||
| 48 | }else if error == nil{ | 60 | }else if error == nil{ | 
ParentAssistant/ParentAssistant/Classes/util/Macro.swift
| @@ -24,16 +24,31 @@ var localAddress = "未知" | @@ -24,16 +24,31 @@ var localAddress = "未知" | ||
| 24 | 24 | ||
| 25 | 25 | ||
| 26 | //MARK: -------------------------- 接口地址 ---------------------------- | 26 | //MARK: -------------------------- 接口地址 ---------------------------- | 
| 27 | + | ||
| 28 | +//var ReleaseHOST:String!="http://campus.myjxt.com"//正式网址 | ||
| 29 | +//var ReleaseHOSTWap:String!="http://parent.myjxt.com" | ||
| 30 | +//var ReleaseHOSTImage:String!="http://manage.myjxt.com" | ||
| 31 | +//var DebugHOST:String!="http://60.190.202.57:1000"//测试网址 | ||
| 32 | +//var DebugHOSTWap:String!="http://60.190.202.57:8101" | ||
| 33 | +//var DebugHOSTImage:String!="http://60.190.202.57:8196" | ||
| 34 | +//var HOST:String! = Debug.isFormal ? ReleaseHOST : DebugHOST | ||
| 35 | +//var HOSTWAP:String! = Debug.isFormal ? ReleaseHOSTWap : DebugHOSTWap | ||
| 36 | +//var HOSTImage:String! = Debug.isFormal ? ReleaseHOSTImage : DebugHOSTImage | ||
| 37 | + | ||
| 27 | let appsecret="sincere:3a530f39f99411b454e667d69693c127" | 38 | let appsecret="sincere:3a530f39f99411b454e667d69693c127" | 
| 28 | -var ReleaseHOST:String!="http://campus.myjxt.com"//正式网址 | ||
| 29 | -var ReleaseHOSTWap:String!="http://parent.myjxt.com" | ||
| 30 | -var ReleaseHOSTImage:String!="http://manage.myjxt.com" | ||
| 31 | -var DebugHOST:String!="http://60.190.202.57:1000"//测试网址 | ||
| 32 | -var DebugHOSTWap:String!="http://60.190.202.57:8101" | ||
| 33 | -var DebugHOSTImage:String!="http://60.190.202.57:8196" | ||
| 34 | -var HOST:String! = Debug.isFormal ? ReleaseHOST : DebugHOST | ||
| 35 | -var HOSTWAP:String! = Debug.isFormal ? ReleaseHOSTWap : DebugHOSTWap | ||
| 36 | -var HOSTImage:String! = Debug.isFormal ? ReleaseHOSTImage : DebugHOSTImage | 39 | + | 
| 40 | +#if DEBUG | ||
| 41 | +//测试网址 | ||
| 42 | +var HOST:String! = "http://60.190.202.57:1000" | ||
| 43 | +var HOSTWAP:String! = "http://60.190.202.57:8101" | ||
| 44 | +var HOSTImage:String! = "http://60.190.202.57:8196" | ||
| 45 | +#else | ||
| 46 | +//正式网址 | ||
| 47 | +var HOST:String! = "http://campus.myjxt.com" | ||
| 48 | +var HOSTWAP:String! = "http://parent.myjxt.com" | ||
| 49 | +var HOSTImage:String! = "http://manage.myjxt.com" | ||
| 50 | +#endif | ||
| 51 | + | ||
| 37 | 52 | ||
| 38 | let URL_UPLOAD_FILE=HOST+"/api/Class/UploadFile" //上传图片 | 53 | let URL_UPLOAD_FILE=HOST+"/api/Class/UploadFile" //上传图片 | 
| 39 | 54 | 
ParentAssistant/ParentAssistant/Classes/util/MessageManager.swift
| @@ -94,7 +94,8 @@ extension NSManagedObject { | @@ -94,7 +94,8 @@ extension NSManagedObject { | ||
| 94 | //保存 | 94 | //保存 | 
| 95 | do { | 95 | do { | 
| 96 | try context.save() | 96 | try context.save() | 
| 97 | - print("保存成功!") | 97 | +// print("保存成功!") | 
| 98 | + DebugLog( "保存成功!") | ||
| 98 | } catch { | 99 | } catch { | 
| 99 | fatalError("不能保存:\(error)") | 100 | fatalError("不能保存:\(error)") | 
| 100 | } | 101 | } | 
ParentAssistant/ParentAssistant/Classes/util/utils.swift
| @@ -11,17 +11,21 @@ import QuickLook | @@ -11,17 +11,21 @@ import QuickLook | ||
| 11 | import Photos | 11 | import Photos | 
| 12 | 12 | ||
| 13 | //MARK: - 服务器和log打印设置 | 13 | //MARK: - 服务器和log打印设置 | 
| 14 | -class Debug{ | ||
| 15 | - static let enable=false//是否打印log | ||
| 16 | - static let isFormal=false//是否是正式服务器 | ||
| 17 | - class func log(_ msg:String){ | ||
| 18 | - if(!Debug.enable){ | ||
| 19 | - return | ||
| 20 | - } | ||
| 21 | - NSLog(msg) | ||
| 22 | - } | 14 | +//class Debug{ | 
| 15 | +// static let enable=false//是否打印log | ||
| 16 | +// static let isFormal=false//是否是正式服务器 | ||
| 17 | +// class func log(_ msg:String){ | ||
| 18 | +// if(!Debug.enable){ | ||
| 19 | +// return | ||
| 20 | +// } | ||
| 21 | +// NSLog(msg) | ||
| 22 | +// } | ||
| 23 | +//} | ||
| 24 | +func DebugLog<M>( _ message:M,file:String = #file,method:String = #function,line: Int = #line){ | ||
| 25 | + #if DEBUG | ||
| 26 | + print("// DEBUG Log = \(method)[\(line)]:\(message)") | ||
| 27 | + #endif | ||
| 23 | } | 28 | } | 
| 24 | - | ||
| 25 | class Story{ | 29 | class Story{ | 
| 26 | static func getStory(_ name:String)->UIStoryboard?{ | 30 | static func getStory(_ name:String)->UIStoryboard?{ | 
| 27 | return UIStoryboard(name: name, bundle: nil); | 31 | return UIStoryboard(name: name, bundle: nil); | 
| @@ -488,7 +492,8 @@ func cleanImageCache(){ | @@ -488,7 +492,8 @@ func cleanImageCache(){ | ||
| 488 | for item in files{ | 492 | for item in files{ | 
| 489 | do { | 493 | do { | 
| 490 | try fm.removeItem(atPath: (imagePath as NSString).appendingPathComponent(item)) | 494 | try fm.removeItem(atPath: (imagePath as NSString).appendingPathComponent(item)) | 
| 491 | - Debug.log("delete***************") | 495 | + | 
| 496 | + DebugLog("delete***********") | ||
| 492 | } catch _ { | 497 | } catch _ { | 
| 493 | } | 498 | } | 
| 494 | } | 499 | } | 
ParentAssistant/ParentAssistant/Classes/util/view/SearchBarView.swift
0 → 100644
| @@ -0,0 +1,63 @@ | @@ -0,0 +1,63 @@ | ||
| 1 | +// | ||
| 2 | +// SearchBarView.swift | ||
| 3 | +// ParentAssistant | ||
| 4 | +// | ||
| 5 | +// Created by Cao yang on 2018/4/21. | ||
| 6 | +// Copyright © 2018年 HANGZHOUTEAM. All rights reserved. | ||
| 7 | +// | ||
| 8 | + | ||
| 9 | +import UIKit | ||
| 10 | + | ||
| 11 | + | ||
| 12 | + | ||
| 13 | +class SearchBarView: UIView,UISearchBarDelegate { | ||
| 14 | + | ||
| 15 | + enum SearchActionType { | ||
| 16 | + case SearchType | ||
| 17 | + case CancelType | ||
| 18 | + } | ||
| 19 | + | ||
| 20 | + typealias SearchBarBlock = (String,SearchActionType)->() | ||
| 21 | + | ||
| 22 | + lazy var searchBar = {()->UISearchBar in | ||
| 23 | + let search = UISearchBar.init(frame: CGRect.init(x: 0, y: 0, width: self.bounds.size.width, height: 36)) | ||
| 24 | + search.delegate = self | ||
| 25 | + search.center = self.center | ||
| 26 | + search.placeholder = "请输入搜索内容" | ||
| 27 | + search.barStyle = .default | ||
| 28 | + search.barTintColor = navigationColor | ||
| 29 | + | ||
| 30 | + return search | ||
| 31 | + }() | ||
| 32 | + | ||
| 33 | + var block : SearchBarBlock? | ||
| 34 | + | ||
| 35 | + override init(frame: CGRect) { | ||
| 36 | + super.init(frame: frame) | ||
| 37 | + if !frame.isEmpty { | ||
| 38 | + self.addSubview(self.searchBar) | ||
| 39 | + } | ||
| 40 | + } | ||
| 41 | + //MARK: - SearchBarDelegate | ||
| 42 | + func searchBarTextDidEndEditing(_ searchBar: UISearchBar) { | ||
| 43 | + searchBar.showsCancelButton = false | ||
| 44 | + } | ||
| 45 | + func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) { | ||
| 46 | + searchBar.showsCancelButton = true | ||
| 47 | + } | ||
| 48 | + func searchBarCancelButtonClicked(_ searchBar: UISearchBar) { | ||
| 49 | + self.block!( "", .CancelType) | ||
| 50 | + searchBar.resignFirstResponder() | ||
| 51 | + } | ||
| 52 | + func searchBarSearchButtonClicked(_ searchBar: UISearchBar) { | ||
| 53 | + | ||
| 54 | + if let str = searchBar.text { | ||
| 55 | + self.block!(str,.SearchType) | ||
| 56 | + } | ||
| 57 | + searchBar.resignFirstResponder() | ||
| 58 | + } | ||
| 59 | + | ||
| 60 | + required init?(coder aDecoder: NSCoder) { | ||
| 61 | + fatalError("init(coder:) has not been implemented") | ||
| 62 | + } | ||
| 63 | +} | 
ParentAssistant/ParentAssistant/Supporting Files/Base.lproj/Main.storyboard
| @@ -502,7 +502,7 @@ | @@ -502,7 +502,7 @@ | ||
| 502 | </viewController> | 502 | </viewController> | 
| 503 | <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/> | 503 | <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/> | 
| 504 | </objects> | 504 | </objects> | 
| 505 | - <point key="canvasLocation" x="1487" y="-1078"/> | 505 | + <point key="canvasLocation" x="1785" y="-1072"/> | 
| 506 | </scene> | 506 | </scene> | 
| 507 | <!--Tab Bar Controller--> | 507 | <!--Tab Bar Controller--> | 
| 508 | <scene sceneID="6yA-8W-l0b"> | 508 | <scene sceneID="6yA-8W-l0b"> | 
ParentAssistant/ParentAssistant/ViewController.swift
| @@ -12,7 +12,6 @@ class ViewController: UIViewController { | @@ -12,7 +12,6 @@ class ViewController: UIViewController { | ||
| 12 | 12 | ||
| 13 | override func viewDidLoad() { | 13 | override func viewDidLoad() { | 
| 14 | super.viewDidLoad() | 14 | super.viewDidLoad() | 
| 15 | - print("123456") | ||
| 16 | self.view.makeToast("test") | 15 | self.view.makeToast("test") | 
| 17 | self.view.makeToast("testParentAssistant", duration: 5, position: CSToastPositionCenter) | 16 | self.view.makeToast("testParentAssistant", duration: 5, position: CSToastPositionCenter) | 
| 18 | // Do any additional setup after loading the view, typically from a nib. | 17 | // Do any additional setup after loading the view, typically from a nib. |