【问题标题】:Swift: Can UIImagePicker open the last taken photo automatically?Swift:UIImagePicker 可以自动打开最后一张拍摄的照片吗?
【发布时间】:2018-07-16 17:32:23
【问题描述】:

我正在创建一个简单的相机应用程序,它会在用户按下相机按钮后将照片保存到一个名为 image 的变量中,然后保存到照片库中。

接下来,应用程序转到另一个视图控制器,该控制器以方形图像视图显示图像。 这一切都有效,但在显示图像之前,用户应该能够选择照片的确切位置,当 UIImagePicker 显示时,他将能够做到这一点。

图像说明了 View 1(相机)和 View 2(显示图像的最终视图控制器)。在用户按下相机按钮并将图像保存到库后,我想调用 UIImagePicker 并自动显示最后一张图像,以便用户可以移动他想要显示的内容在方形图像中的位置看法。比 UIImagePicker 关闭并且图像显示在我的方形图像视图中的 View 2 中。

这可能吗?

查看 1:

这是我目前保存图像并转到下一个视图的方法:

@IBAction func captureImage(_ sender: UIButton) {
    cameraController.captureImage {(image, error) in
        guard let image = image else {
            print(error ?? "Image capture error")
            return
        }

    try? PHPhotoLibrary.shared().performChangesAndWait {
        PHAssetChangeRequest.creationRequestForAsset(from: image)

        print("photo saved")

    }

    // go to next view controller and transfer image to inputImage

    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let vc = storyboard.instantiateViewController(withIdentifier: "Filter") as! FilterViewController
    vc.inputImage = image!
    self.navigationController?.pushViewController(vc, animated: true)

}

显然我可以只在方形图像视图中显示新图像,但由于用户拍摄全屏照片,他想要看到的内容可能不在中心,所以选择确切的位置是强制性的,这就是我想要显示带有最后一张照片的 UIImagePicker(用户应该不能选择其他图像)。

视图 2:

到目前为止,我只是在 viewDidLoad() 中加载视图 2 时加载 UIImagePicker,但显然它要求用户选择图像:

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

    guard let image = info[UIImagePickerControllerEditedImage] as? UIImage else {return}

    imageView.image = image
    inputImage = image

    dismiss(animated: true) {
        // do something here...
    }
}

【问题讨论】:

  • 在这个故事中没有意义的是 UIImagePickerController 的使用。在我看来,您一开始并没有使用 UIImagePickerController 来捕获照片(对吗?),即使您是,在我们到达第二个视图控制器时它已经被解雇了(对吗? ) 那么 UIImagePickerController 甚至在第二个位置做什么?您只需要一系列自定义视图控制器。
  • 我在显示 View 2 时打开 UIImagePickerController,所以它还没有被关闭,但你是对的,我一开始没有使用 Picker 来捕获图像。我在一天的时间里创建了我自己的自定义相机控制器,以便能够显示一个漂亮的全屏 UI。您建议如何让用户编辑/移动图像?我认为 UIImagePicker 是个好主意,因为当用户从他们的库中选择一张照片时,它允许移动/编辑照片。
  • "您建议如何让用户编辑/移动图像?"正如我所说,我建议为此使用您自己的自定义视图控制器。您想强制用户使用特定图像。 UIImagePickerController 与此无关。这是关于让用户挑选一张图片。

标签: ios swift image uiimagepickercontroller


【解决方案1】:

我建议您尝试在视图控制器序列图中的第二个插槽中使用 UIImagePickerController 是完全错误的。您想强制用户使用特定图像。 UIImagePickerController 与此无关。它是关于让用户挑选一张图片(因此得名 Image Picker)。 [或者,它是关于让用户使用相机捕获图像,但你并没有为此使用它。]

所以我建议在图中的第二个位置使用您自己的自定义视图控制器。设计裁剪界面(如果这是您的目标)并不难。

【讨论】:

    猜你喜欢
    • 2011-07-13
    • 2013-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-31
    • 1970-01-01
    相关资源
    最近更新 更多