gpt4 book ai didi

ios - UIImagePickerController didFinishPickingImage 在完成时调用自定义函数

转载 作者:搜寻专家 更新时间:2023-11-01 06:07:05 25 4
gpt4 key购买 nike

我正在开发一个带有 MapView 的应用程序,我有一个显示在 MapView 顶部的自定义按钮。当用户单击该按钮时,我想启动相机,然后用户拍照并选择“使用照片”。除了下一部分,我已经完成了所有这些工作。一旦用户选择“使用照片”,我希望将捕获的图像传递给另一个函数。然后 View 被释放并返回到 map 。我在想这可以使用完成处理程序来完成吗?但我不太清楚这是否是最好的方法,如果是的话,如何将 UIImage 类型的图像传递给要处理的函数。谁能帮忙?

我现在有类似以下内容:

@IBAction func mapButton(sender: AnyObject) {
let image = UIImagePickerController()
//image.delegate = self
image.sourceType = UIImagePickerControllerSourceType.Camera
image.allowsEditing = false
self.presentViewController(image, animated: true, completion: nil)
}

func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) {
self.dismissViewControllerAnimated(true, completion: customFunction(image))
}

func customFunction(image: UIImage) {
print("Do Something with Image")
}

最佳答案

通过取消注释 //image.delegate = self 行来设置图像选择器委托(delegate)(为了清楚起见,您可能希望将选择器重命名为 imagePicker 或 imagePickerController 以明确这是一个选择器,而不是选择的图像)。

此外,didFinishPickingImage 已弃用,因此最好使用 didFinishPickingMediaWithInfo

在完成处理程序上调用函数:

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {        
if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage{
dismissViewControllerAnimated(true, completion: { self.customFunction(pickedImage)} )
}else{
dismissViewControllerAnimated(true, completion: nil)
}
}

或者,您可以只调用该函数,然后他们关闭选择器:

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {        
if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage{
customFunction(pickedImage)
}
dismissViewControllerAnimated(true, completion: nil)

}

关于ios - UIImagePickerController didFinishPickingImage 在完成时调用自定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34814278/

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