【问题标题】:How to select Three images with three buttons in Swift如何在 Swift 中使用三个按钮选择三个图像
【发布时间】:2021-12-05 08:00:13
【问题描述】:

在我的屏幕上,我需要添加三个图像,因为我有三个单独的按钮

代码:这里 EasyImagePicker 是我的自定义图像选择器。但是如果我从图像选择器中选择任何一个图像,那么它会添加所有三个图像

class EditProfileImagesVC: UIViewController {
    
    private var imagePicker : EasyImagePicker?
    private var imagePicker1 : EasyImagePicker?
    private var imagePicker2 : EasyImagePicker?
    
    
    @IBOutlet weak var profilePicImage: UIImageView!
    @IBOutlet weak var leftProfilePicImg: UIImageView!
    @IBOutlet weak var rightProfilePicImg: UIImageView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        imagePicker = EasyImagePicker(presentationController: self, delegate: self)
        imagePicker1 = EasyImagePicker(presentationController: self, delegate: self)
        imagePicker2 = EasyImagePicker(presentationController: self, delegate: self)
        
    }
    
    @IBAction func profilePicBtn(_ sender: UIButton) {
        imagePicker?.present(from: sender, mediaType: .images, onViewController: self)
    }
    
    @IBAction func leftProfileBtn(_ sender: UIButton) {
        imagePicker1?.present(from: sender, mediaType: .images, onViewController: self)
    }
    
    @IBAction func rightProfileBtn(_ sender: UIButton) {
        imagePicker2?.present(from: sender, mediaType: .images, onViewController: self)
    }
}

extension EditProfileImagesVC : EasyImagePickerDelegate{
    
    func didSelect(image: UIImage?, video: URL?, fileName: String?) {
        if let img = image{
            profilePicImage.image = img
        }
        if let img1 = image{
            leftProfilePicImg.image = img1
        }
        if let img2 = image{
            rightProfilePicImg.image = img2
        }
    }
}

如何使用 imagepicker 为三个图像选择三个不同的图像.. 请指导我

【问题讨论】:

    标签: ios swift uiimage uiimagepickercontroller


    【解决方案1】:

    将选取器引用添加到 func didSelect(image: UIImage?, video: URL?, fileName: String?)

    这样 func didSelect(picker: EaseImagePicker, image: UIImage?, video: URL?, fileName: String?)

    从选择器调用它并引用自我 didSelect(picker: self, image: selectedImage, video: nil, fileName: nil)

    func didSelect(picker: EaseImagePicker, image: UIImage?, video: URL?, fileName: String?) {
    if let img = image{
        switch picker {
            case imagePicker:
                profilePicImage.image = img
            case imagePicker1:
                leftProfilePicImg.image = img
            case imagePicker2:
               rightProfilePicImg.image = img
            default:
                break
        }
    }
    }
    

    【讨论】:

      【解决方案2】:

      原因是这里没有东西可以区分点击了哪个按钮,因此结果设置为所有图像视图

      func didSelect(image: UIImage?, video: URL?, fileName: String?) {
          if let img = image{
              profilePicImage.image = img
          }
          if let img1 = image{
              leftProfilePicImg.image = img1
          }
          if let img2 = image{
              rightProfilePicImg.image = img2
          }
      } 
      

      你需要

      enum ImageChooser {
        case profile,left,right
      }
      class EditProfileImagesVC: UIViewController { 
          private var imagePicker : EasyImagePicker?
          @IBOutlet weak var profilePicImage: UIImageView!
          @IBOutlet weak var leftProfilePicImg: UIImageView!
          @IBOutlet weak var rightProfilePicImg: UIImageView!
          var chooser:ImageChooser = .profile
          override func viewDidLoad() {
              super.viewDidLoad()
      
              imagePicker = EasyImagePicker(presentationController: self, delegate: self)
      
          }
      
          @IBAction func profilePicBtn(_ sender: UIButton) {
              chooser = .profile
              imagePicker?.present(from: sender, mediaType: .images, onViewController: self)
          }
      
          @IBAction func leftProfileBtn(_ sender: UIButton) {
              chooser = .left
              imagePicker1?.present(from: sender, mediaType: .images, onViewController: self)
          }
      
          @IBAction func rightProfileBtn(_ sender: UIButton) {
              chooser = .right
              imagePicker2?.present(from: sender, mediaType: .images, onViewController: self)
          }
      }
      
      
      extension EditProfileImagesVC : EasyImagePickerDelegate{
      
          func didSelect(image: UIImage?, video: URL?, fileName: String?) {
              if let img = image {
                  if chooser == .profile {
                      profilePicImage.image = img
                  }
                  else
                      if chooser == .left {
                          leftProfilePicImg.image = img
                      }
                      else
                          if chooser == .right {
                              rightProfilePicImg.image = img
                          }
              }
                       
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2014-03-07
        • 2015-08-17
        • 2011-08-14
        • 1970-01-01
        • 2020-09-21
        • 1970-01-01
        • 2013-07-11
        • 2022-10-16
        • 2023-03-10
        相关资源
        最近更新 更多