如何在Swift中使用三个按钮选择三个图像



在我的屏幕上我需要添加三个图像为此我有三个独立的按钮

code:这里EasyImagePicker是我的自定义图像拾取器。但是在下面的代码中如果我从imagepicker中选择任意一张图像那么它会添加所有三张图像

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为三个图像选择三个不同的图像。请引导我

原因是这里没有东西可以区分哪个按钮被点击,因此结果集为所有imageviews

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
}
}

}
}

添加选择器引用到func didSelect(image: UIImage?视频:URL?,文件名:String?)

这样函数didSelect(picker: EaseImagePicker, image: UIImage?视频:URL?,文件名:String?)

From picker用self的引用调用它didSelect(picker: self, image: selecteimage, 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
}
}
}