杨锴
2024-08-22 5ca691ec52cb4bb64841b0d85252af762e48c2ca
XQMuse/Root/Me/VC/UserProfileVC.swift
@@ -8,18 +8,33 @@
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")
@@ -32,9 +47,34 @@
            }
            @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)
                                    }
                        }
            }
}
@@ -42,13 +82,12 @@
            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{
@@ -59,12 +98,53 @@
                        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) {
                        }
            }
}