| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- //
- // JCRegisterInfoViewController.swift
- // JChat
- //
- // Created by deng on 2017/5/12.
- // Copyright © 2017年 HXHG. All rights reserved.
- //
- import UIKit
- import JMessage
- class JCRegisterInfoViewController: UIViewController {
-
- var username: String!
- var password: String!
-
- //MARK: - life cycle
- override func viewDidLoad() {
- super.viewDidLoad()
- _init()
- }
-
- override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- UIApplication.shared.setStatusBarStyle(.lightContent, animated: false)
- self.navigationController?.setNavigationBarHidden(false, animated: false)
- }
-
- private lazy var nicknameTextField: UITextField = {
- var textField = UITextField()
- textField.addTarget(self, action: #selector(textFieldDidChanged(_ :)), for: .editingChanged)
- textField.clearButtonMode = .whileEditing
- textField.placeholder = "请输入昵称"
- textField.font = UIFont.systemFont(ofSize: 16)
- textField.frame = CGRect(x: 38 + 40 + 15, y: 64 + 40 + 80 + 40, width: self.view.width - 76 - 38, height: 40)
- return textField
- }()
-
- fileprivate lazy var avatorView: UIImageView = {
- var avatorView = UIImageView()
- avatorView.isUserInteractionEnabled = true
- avatorView.frame = CGRect(x: self.view.centerX - 40, y: 64 + 40, width: 80, height: 80)
- avatorView.image = UIImage.loadImage("com_icon_upload")
- let tapGR = UITapGestureRecognizer(target: self, action: #selector(_tapHandler))
- avatorView.addGestureRecognizer(tapGR)
- return avatorView
- }()
-
- private lazy var registerButton: UIButton = {
- var button = UIButton()
- button.backgroundColor = UIColor(netHex: 0x2DD0CF)
- // button.frame = CGRect(x: 38, y: 64 + 40 + 80 + 40 + 40 + 38, width: self.view.width - 76, height: 40)
- let y = 64 + 40 + 80 + 40 + 40 + 38
- button.frame = CGRect(x: 38, y: y, width: Int(self.view.width - 76), height: 40)
- button.setTitle("完成", for: .normal)
- button.layer.cornerRadius = 3.0
- button.layer.masksToBounds = true
- button.addTarget(self, action: #selector(_userRegister), for: .touchUpInside)
- return button
- }()
-
- fileprivate lazy var tipsLabel: UILabel = {
- let tipsLabel = UILabel()
- tipsLabel.frame = CGRect(x: 38, y: 64 + 40 + 80 + 40 + 11 , width: 40, height: 18)
- tipsLabel.text = "昵称"
- tipsLabel.font = UIFont.systemFont(ofSize: 16)
- tipsLabel.textColor = UIColor(netHex: 0x999999)
- return tipsLabel
- }()
-
- fileprivate lazy var usernameLine: UILabel = {
- var line = UILabel()
- line.backgroundColor = UIColor(netHex: 0xD2D2D2)
- line.alpha = 0.4
- line.frame = CGRect(x: 38, y: self.nicknameTextField.y + 40, width: self.view.width - 76, height: 2)
- return line
- }()
-
- fileprivate lazy var imagePicker: UIImagePickerController = {
- var picker = UIImagePickerController()
- picker.sourceType = .camera
- picker.cameraCaptureMode = .photo
- picker.delegate = self
- return picker
- }()
-
- fileprivate var image: UIImage?
-
- //MARK: - private func
- private func _init() {
- self.title = "补充信息"
- view.backgroundColor = .white
- navigationController?.setNavigationBarHidden(false, animated: false)
- navigationController?.interactivePopGestureRecognizer?.isEnabled = true
-
- nicknameTextField.addTarget(self, action: #selector(textFieldDidChanged(_ :)), for: .editingChanged)
-
- view.addSubview(avatorView)
- view.addSubview(nicknameTextField)
- view.addSubview(registerButton)
- view.addSubview(tipsLabel)
- view.addSubview(usernameLine)
-
- let tap = UITapGestureRecognizer(target: self, action: #selector(_tapView))
- view.addGestureRecognizer(tap)
- }
-
- func textFieldDidChanged(_ textField: UITextField) {
- if textField.markedTextRange == nil {
- let text = textField.text!
- if text.count > 30 {
- let range = (text.startIndex ..< text.index(text.startIndex, offsetBy: 30))
-
- let subText = text.substring(with: range)
- textField.text = subText
- }
- }
- }
-
- func _tapView() {
- view.endEditing(true)
- }
-
- func _tapHandler() {
- view.endEditing(true)
- let actionSheet = UIActionSheet(title: nil, delegate: self, cancelButtonTitle: "取消", destructiveButtonTitle: nil, otherButtonTitles: " 从相册中选择", "拍照")
- actionSheet.tag = 1001
- actionSheet.show(in: self.view)
- }
- //MARK: - click event
- func _userRegister() {
- MBProgressHUD_JChat.showMessage(message: "保存中", toView: self.view)
- userLogin(withUsername: self.username, password: self.password)
- }
-
- private func userLogin(withUsername: String, password: String) {
- JMSGUser.login(withUsername: self.username, password: self.password) { (result, error) in
- MBProgressHUD_JChat.hide(forView: self.view, animated: true)
- if error == nil {
- self.setupNickname()
- self.uploadImage()
- UserDefaults.standard.set(self.username, forKey: kLastUserName)
- UserDefaults.standard.set(self.username, forKey: kCurrentUserName)
- let appDelegate = UIApplication.shared.delegate
- let window = appDelegate?.window!
- window?.rootViewController = JCMainTabBarController()
- } else {
- MBProgressHUD_JChat.show(text: "登录失败", view: self.view)
- }
- }
- }
-
- private func setupNickname() {
- JMSGUser.updateMyInfo(withParameter: self.nicknameTextField.text!, userFieldType: .fieldsNickname) { (resultObject, error) -> Void in
- if error == nil {
- NotificationCenter.default.post(name: Notification.Name(rawValue: kUpdateUserInfo), object: nil)
- } else {
- print("error:\(String(describing: error?.localizedDescription))")
- }
- }
- }
-
- private func uploadImage() {
- if let image = image {
- let imageData = image.jpegData(compressionQuality: 0.8)
- JMSGUser.updateMyInfo(withParameter: imageData!, userFieldType: .fieldsAvatar, completionHandler: { (result, error) in
- if error == nil {
- let avatorData = NSKeyedArchiver.archivedData(withRootObject: imageData!)
- UserDefaults.standard.set(avatorData, forKey: kLastUserAvator)
- NotificationCenter.default.post(name: Notification.Name(rawValue: kUpdateUserInfo), object: nil)
- }
- })
- } else {
- UserDefaults.standard.removeObject(forKey: kLastUserAvator)
- }
- }
-
- }
- extension JCRegisterInfoViewController: UIActionSheetDelegate {
- func actionSheet(_ actionSheet: UIActionSheet, clickedButtonAt buttonIndex: Int) {
- switch buttonIndex {
- case 1:
- // 从相册中选择
- let picker = UIImagePickerController()
- picker.delegate = self
- picker.sourceType = .photoLibrary
- let temp_mediaType = UIImagePickerController.availableMediaTypes(for: picker.sourceType)
- picker.mediaTypes = temp_mediaType!
- picker.modalTransitionStyle = .coverVertical
- self.present(picker, animated: true, completion: nil)
-
- case 2:
- // 拍照
- present(imagePicker, animated: true, completion: nil)
- default:
- break
- }
- }
- }
- extension JCRegisterInfoViewController: UINavigationControllerDelegate, UIImagePickerControllerDelegate {
-
- // MARK: - UIImagePickerControllerDelegate
- func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
- picker.dismiss(animated: true, completion: nil)
- }
-
- func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
-
- var image = info[UIImagePickerController.InfoKey.originalImage] as! UIImage?
- image = image?.fixOrientation()
- self.image = image
- avatorView.image = image
- picker.dismiss(animated: true, completion: nil)
- }
- }
|