gpt4 book ai didi

uiimagepickercontroller - iOS 11 - 始终打开照片库,即使源类型从 .photoLibrary 更改为 .camera

转载 作者:行者123 更新时间:2023-12-03 01:17:47 27 4
gpt4 key购买 nike

该代码在 iOS 10 及更低版本中完美运行。但是,在iOS 11中取消照片库并打开相机后它总是打开照片库。这仅发生在 iOS 11 中。

代码在 Xcode 9 Beta 4 中编译。

代码如下:

@IBAction func buttonProfilePicPressed(_ sender: UIButton)
{
let alert = UIAlertController(title: "Choose Image", message: nil, preferredStyle: .actionSheet)
alert.addAction(UIAlertAction(title: "Camera", style: .default, handler: { _ in
self.openCamera()
}))

alert.addAction(UIAlertAction(title: "Gallery", style: .default, handler: { _ in
self.openGallary()
}))

alert.addAction(UIAlertAction.init(title: "Cancel", style: .cancel, handler: nil))

self.present(alert, animated: true, completion: nil)
imgPicker.delegate = self
self.present(imgPicker, animated: true, completion: nil)
}

func openCamera()
{
if(UIImagePickerController .isSourceTypeAvailable(UIImagePickerControllerSourceType.camera))
{
imgPicker.sourceType = UIImagePickerControllerSourceType.camera
imgPicker.allowsEditing = true
self.present(imgPicker, animated: true, completion: nil)
}
else
{
let alert = UIAlertController(title: "Warning", message: "You don't have camera", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
self.present(alert, animated: true, completion: nil)
}
}

func openGallary()
{
imgPicker.sourceType = UIImagePickerControllerSourceType.photoLibrary
imgPicker.allowsEditing = true
self.present(imgPicker, animated: true, completion: nil)
}

最佳答案

我发现问题所在了。

MAIN:在呈现 UIImagePickerController 之前,您必须设置 sourceType。 关于这一点,您可以在文档 UIImagePickerController 中阅读。 .

是的,您可以查看 sourceType 的文档,但文档页面上有关 sourceType 的信息对于 iOS 11 来说是错误的或不真实的。

结果:

  1. 首先你必须配置UIImagePickerController
  2. 再次呈现。

在您的情况下,您只需要删除一行:

@IBAction func buttonProfilePicPressed(_ sender: UIButton)
{
...
self.present(imgPicker, animated: true, completion: nil) //REMOVE IT!!!!!111
}

附注检查并在 Xcode 9 GM 上工作

关于uiimagepickercontroller - iOS 11 - 始终打开照片库,即使源类型从 .photoLibrary 更改为 .camera,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46178471/

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