| | |
| | | import UIKit |
| | | import QMUIKit |
| | | import JQTools |
| | | import TZImagePickerController |
| | | |
| | | class UserProfileVC: BaseVC { |
| | | |
| | | @IBOutlet weak var image_user: UIImageView! |
| | | @IBOutlet weak var tf_gender: QMUITextField! |
| | | @IBOutlet weak var tf_birthday: QMUITextField! |
| | | |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | |
| | | private var clipSize = CGSize(width: JQ_ScreenW, height: JQ_ScreenW) //裁剪大小 |
| | | private var clipFrame:CGRect{ |
| | | get{ |
| | | if clipSize.width == 0 || clipSize.height == 0 { |
| | | assert(false,"未设置裁剪框大小") |
| | | } |
| | | |
| | | var clipFrame = CGRect.zero |
| | | clipFrame.size = clipSize |
| | | clipFrame.origin = CGPoint(x: (JQ_ScreenW - clipSize.width)/2.0, y: (JQ_ScreenH - clipSize.width)/2.0) |
| | | return clipFrame |
| | | } |
| | | } |
| | | |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | title = "个人资料" |
| | | } |
| | | |
| | | } |
| | | |
| | | override func setUI() { |
| | | super.setUI() |
| | | view.backgroundColor = UIColor(hexString:"#fafafa") |
| | |
| | | } |
| | | |
| | | @objc func selectUserProfile(){ |
| | | JQ_ImagePickerTool.getSharedInstance().singleImage({ [unowned self] image in |
| | | self.image_user.image = image |
| | | }, clipSize: CGSize(width: JQ_ScreenW, height: JQ_ScreenW)) |
| | | CommonAlertSheetView.show(items: ["拍照","从相册选择"]) {[unowned self] index in |
| | | if index == 0{ |
| | | |
| | | guard UIImagePickerController.isSourceTypeAvailable(.camera) else{ |
| | | alertError(msg: "当前设备相机不可用");return |
| | | } |
| | | |
| | | let p = UIImagePickerController() |
| | | p.delegate = self |
| | | p.modalPresentationStyle = .fullScreen |
| | | p.allowsEditing = true |
| | | p.sourceType = .camera |
| | | p.cameraDevice = .front |
| | | self.present(p, animated: true) |
| | | }else{ |
| | | let p = TZImagePickerController(maxImagesCount: 1, columnNumber: 3, delegate: self) |
| | | p!.modalPresentationStyle = .fullScreen |
| | | p!.allowTakeVideo = false |
| | | p!.allowTakePicture = false |
| | | p!.sortAscendingByModificationDate = true |
| | | p!.scaleAspectFillCrop = true |
| | | p!.allowPickingVideo = false |
| | | p!.maxImagesCount = 1 |
| | | p!.allowCrop = true |
| | | p!.cropRect = self.clipFrame |
| | | self.present(p!, animated: true, completion: nil) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool { |
| | | |
| | | if textField == tf_gender{ |
| | | let items = ["男","女"] |
| | | let items = ["男","女","保密"] |
| | | CommonAlertSheetView.show(items: items) {[weak self] index in |
| | | guard let weakSelf = self else { return } |
| | | guard textField.text != items[index] else {return} |
| | | textField.text = items[index] |
| | | var gender:GenderType! |
| | | |
| | | if index == 0{ |
| | | gender = .man |
| | | }else{ |
| | |
| | | |
| | | if textField == tf_birthday{ |
| | | view.endEditing(true) |
| | | CommonDatePickerView.show(before: 60, after: 0, type: .YMD) { year, month, day,_,_ in |
| | | textField.text = String(format: "%ld-%02ld-%02ld", year!,month!,day!) |
| | | BitrhdayPickerView.show(title: "", type: .YMD) { date in |
| | | |
| | | } |
| | | // CommonDatePickerView.show(before: 60, after: 0, type: .YMD) { year, month, day,_,_ in |
| | | // textField.text = String(format: "%ld-%02ld-%02ld", year!,month!,day!) |
| | | // } |
| | | return false |
| | | } |
| | | |
| | | return false |
| | | } |
| | | } |
| | | |
| | | extension UserProfileVC:TZImagePickerControllerDelegate{ |
| | | public func imagePickerController(_ picker: TZImagePickerController!, didFinishPickingPhotos photos: [UIImage]!, sourceAssets assets: [Any]!, isSelectOriginalPhoto: Bool) { |
| | | picker.selectedAssets = NSMutableArray(array: assets) |
| | | } |
| | | |
| | | public func imagePickerController(_ picker: TZImagePickerController!, didFinishPickingAndEditingVideo coverImage: UIImage!, outputPath: String!, error errorMsg: String!) { |
| | | |
| | | } |
| | | } |
| | | |
| | | extension UserProfileVC:UIImagePickerControllerDelegate & UINavigationControllerDelegate{ |
| | | //成功选取 |
| | | public func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) { |
| | | |
| | | var image:UIImage? |
| | | image = (info[UIImagePickerController.InfoKey.originalImage] as! UIImage) |
| | | let corpperVC = VPImageCropperViewController(image: image!, cropFrame: clipFrame, limitScaleRatio: Int(image!.scale)) |
| | | corpperVC.modalPresentationStyle = .fullScreen |
| | | DispatchQueue.main.asyncAfter(deadline: .now()+1.0) { |
| | | JQ_currentViewController().present(corpperVC, animated: true, completion: nil) |
| | | } |
| | | |
| | | unowned let weakSelf = self |
| | | corpperVC.imageCropperHandler { (vc, image) in |
| | | |
| | | } cancelClouse: { |
| | | corpperVC.dismiss(animated: true) { |
| | | |
| | | } |
| | | } |
| | | |
| | | |
| | | picker.dismiss(animated: true) { |
| | | |
| | | } |
| | | } |
| | | } |