gpt4 book ai didi

ios - 如何将 didFinishPickingMedia 与多个 UIImages 一起使用

转载 作者:行者123 更新时间:2023-11-29 02:40:57 24 4
gpt4 key购买 nike

我有一个包含四个 UIButton 的 View 。当调用每个按钮时,它会弹出照片库供用户选择要设置为按钮图像的图像(将其视为设置个人资料图像)。这是我用来执行此操作的代码。

func imagePickerController(picker: UIImagePickerController!, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]!) {        
let image = info[UIImagePickerControllerOriginalImage] as UIImage
pickedImage = image
p1ImageButton.setImage(pickedImage, forState: UIControlState.Normal)
self.dismissViewControllerAnimated(true, completion: nil)
}

@IBAction func p1PhotoTapped(sender: AnyObject) {
if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.PhotoLibrary){
var p1IP = UIImagePickerController()
p1IP.delegate = self
p1IP.sourceType = UIImagePickerControllerSourceType.PhotoLibrary;
p1IP.allowsEditing = false
self.presentViewController(p1IP, animated: true, completion: nil)
}
}

这对第一张图片来说效果很好。但是,因为我使用的是 IPC 委托(delegate) didFinishingPickingMediaWith,所以我不确定如何设置其他 3 个按钮图像。如果我点击其他三个按钮(分配了它们自己的操作),它只会继续调用同一个委托(delegate),然后继续将图像设置为第一个按钮。

有没有办法拥有多个委托(delegate)方法?或者也许让委托(delegate)方法检查某个 ImagePickerController?关于如何让其他三个按钮正确设置其图像的任何帮助都将非常有用。谢谢!

最佳答案

您不能有多个委托(delegate)方法,这是 block 机制相对于委托(delegate)机制的优势之一。

几个想法:

首先,在 UIViewController 上保留一个实例变量,告诉您要设置哪个图像,然后根据该变量进行切换:

enum ButtonToSet {
case Button1, Button2, Button3, Button4
}
var buttonToSet:ButtonToSet?

@IBAction func p1PhotoTapped(sender:AnyObject) {
buttonToSet = .Button1
...
}

func imagePickerController(picker: UIImagePickerController!, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]!) {

...

let image = info[UIImagePickerControllerOriginalImage] as UIImage
pickedImage = image

if let buttonToSet = buttonToSet {
switch buttonToSet {
case .Button1:
p1ImageButton.setImage(pickedImage, forState: UIControlState.Normal)
...
}
}

self.dismissViewControllerAnimated(true, completion: nil)
}

或者,创建一个 UIButton 子类,ProfileImageButton 通过弹出选择器本身来处理它自己的操作,然后委托(delegate)方法已经与正确的按钮相关联。

关于ios - 如何将 didFinishPickingMedia 与多个 UIImages 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25812320/

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