Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 一个UIImagePickerController,用于单个VC中的多个UIImageView_Ios_Swift_Xcode_Image_Uiimagepickercontroller - Fatal编程技术网

Ios 一个UIImagePickerController,用于单个VC中的多个UIImageView

Ios 一个UIImagePickerController,用于单个VC中的多个UIImageView,ios,swift,xcode,image,uiimagepickercontroller,Ios,Swift,Xcode,Image,Uiimagepickercontroller,我使用一个UIImagePickerController在同一个viewController中拾取4个图像 我不知道该怎么问这个问题,但如果你看下面的图片,你可能会明白我的意思你可以制作一个enum来存储可能的选择器类型(配置文件或ID图片) “不会同时拾取所有图像,我指的是在拾取完第一张图像后,单击另一张图像并拾取另一张图像,然后按第二张图像以拾取另一张图像的正常方式”--这意味着什么?拾取一张图像,然后按第二张图像,我只是说,为了让问题更容易演示,您想展示一个用于拾取个人资料照片的UIIma

我使用一个UIImagePickerController在同一个viewController中拾取4个图像
我不知道该怎么问这个问题,但如果你看下面的图片,你可能会明白我的意思你可以制作一个
enum
来存储可能的选择器类型(配置文件或ID图片)


“不会同时拾取所有图像,我指的是在拾取完第一张图像后,单击另一张图像并拾取另一张图像,然后按第二张图像以拾取另一张图像的正常方式”--这意味着什么?拾取一张图像,然后按第二张图像,我只是说,为了让问题更容易演示,您想展示一个用于拾取个人资料照片的
UIImagePickerController
,然后展示另一个用于拾取身份证照片?(2个单独的选择器)是的,但是如果我必须为每个会令人沮丧的图像编写另一个uiimagePickercontroller,您可以尝试使用Closure扩展几个UIKit类的框架,如果您知道如何检查所有uiimageView(driverPImg,passImg)
nil
我所有的uiimageView都包含拾取的图像您想检查
driverPImg
passImg
是否包含图像吗?正如您所说,如果driverPImg!=nil{}和
如果通过!=nil{}
比较'UIImageView'类型的非可选值和'nil'总是返回true
所以我尝试了
如果driverPImg.image!=无(&passImg.image)无(&C)carImg.image!=nil{sendApplyBtn.backgroundColor=UIColor.delevareColor}
即使他只是检查了第一个项目,他也会立即执行代码,因此如果
driverPImg.image!=无
my按钮将在不签入其余条件的情况下更改颜色
enum PictureSelectionType {
    case profilePicture
    case idPicture
}
class DriverAplication: UIViewController {
    var pictureSelectionType = PictureSelectionType.profilePicture

    /// inside ViewDidLoad... 
    let profileImgTapGestur = UITapGestureRecognizer(target: self, action: #selector(DriverAplication.selectProfileImage))
    driverPImg.addGestureRecognizer(profileImgTapGestur)
        
    let passImgTapGestur = UITapGestureRecognizer(target: self, action: #selector(DriverAplication.selectIDImage))
    passImg.addGestureRecognizer(passImgTapGestur)

   
    @objc func selectProfileImage() {
        /// remember what the picker should return
        pictureSelectionType = .profilePicture
    
        let generator = UIImpactFeedbackGenerator(style: .light)
        generator.impactOccurred()

        let pickerController = UIImagePickerController()
        pickerController.delegate = self
        pickerController.allowsEditing = true
        present(pickerController, animated: true, completion: nil)
            
    }
    @objc func selectIDImage() {
        /// remember what the picker should return
        pictureSelectionType = .idPicture
    
        let generator = UIImpactFeedbackGenerator(style: .light)
        generator.impactOccurred()

        let pickerController = UIImagePickerController()
        pickerController.delegate = self
        pickerController.allowsEditing = true
        present(pickerController, animated: true, completion: nil)
    }
}

extension DriverAplication: UINavigationControllerDelegate, UIImagePickerControllerDelegate {
    
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
            
        var returnedImage: UIImage?
        if let editedImg = info[.editedImage] as? UIImage {
            returnedImage = editedImg
        } else if let originalImg = info[.originalImage] as? UIImage {
            returnedImage = originalImg    
        }
        
        if let image = returnedImage { /// unwrap the image
 
            /// read what the selection type is
            if pictureSelectionType == .profilePicture {
                driverPImg.image = image
            } else { /// for ID picture
                passImg.image = image
            }
        }

        dismiss(animated: true, completion: nil)
    }
        
    func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
        self.dismiss(animated: true, completion: nil)
    }
}