gpt4 book ai didi

ios - 我想使用两个按钮选择图像,并希望在 swift 中的两个不同 ImageView 上显示这些图像。我该怎么做?

转载 作者:行者123 更新时间:2023-11-30 11:31:43 25 4
gpt4 key购买 nike

我想使用两个按钮选择图像,并希望在 swift 中的两个不同 ImageView 上显示这些图像

 func pickimage(){
if UIImagePickerController.isSourceTypeAvailable(.photoLibrary){

let controller = UIImagePickerController()
controller.delegate = self
controller.sourceType = .photoLibrary
controller.allowsEditing = false
present(controller, animated: true, completion: nil)
}

}

图像选择器代理

extension AdnewDOC : UIImagePickerControllerDelegate,UINavigationControllerDelegate {

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


func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {


let image = info[UIImagePickerControllerOriginalImage] as! UIImage
frontview.image = image
frontview.contentMode = .scaleAspectFill

dismiss(animated: true, completion: nil)


}


}

最佳答案

您可以使用objective-c关联类型 objc_setAssociatedObjectobjc_getAssociatedObject像这样:

我已经更新了您的方法,请从按钮操作方法传递您的 ImageView 对象(您想要显示图像的 ImageView )。就像按钮的演示操作方法:

import ObjectiveC

var myKey = "myObjectKey"


@IBAction func firstButtonAction(_ sender: Any) {
pickimage(imageView: firstImageView)
}

@IBAction func secondButtonAction(_ sender: Any) {
pickimage(imageView: secondImageView)
}


func pickimage(imageView: UIImageView){
if UIImagePickerController.isSourceTypeAvailable(.photoLibrary){
let controller = UIImagePickerController()
objc_setAssociatedObject(controller, &myKey, imageView, objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC)
controller.delegate = self
controller.sourceType = .photoLibrary
controller.allowsEditing = false
present(controller, animated: true, completion: nil)
}
}

并在委托(delegate)方法中获取图像对象,如下所示:

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

let imageView = objc_getAssociatedObject(picker, &myKey) as! UIImageView

let image = info[UIImagePickerControllerOriginalImage] as! UIImage
imageView.image = image
imageView.contentMode = .scaleAspectFill
dismiss(animated: true, completion: nil)
}

For more understanding how to work objc_setAssociatedObject and objc_getAssociatedObject please check below links:

http://blog.corywiles.com/objective-c-runtime-with-swfit

http://en.swifter.tips/associated-object/

关于ios - 我想使用两个按钮选择图像,并希望在 swift 中的两个不同 ImageView 上显示这些图像。我该怎么做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50188433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com