Ios 如何以编程方式触发;“完成”;UIImagePickerController(摄像头)中的功能?
我目前正在应用程序中使用UIImagePickerController,以利用本机iOS摄像头功能 然而,我想: 1) 以某种方式以编程方式触发“Done”按钮后面的方法,这样我的用户就不必 2) 跳过相机的图像预览,而不会丢失UIImagePickerController提供的任何现有UI功能(如切换闪光灯、曝光等) 使用案例:我使用低能蓝牙快门按钮设备拍照,而不用手指按下屏幕上的“捕获”按钮。我还想允许用户按下蓝牙按钮以按下“完成”按钮,或完全放弃“完成”步骤并立即返回didFinishPickingMediaWithInfo 这可能吗?这是我的UIImagePickerController的实现Ios 如何以编程方式触发;“完成”;UIImagePickerController(摄像头)中的功能?,ios,Ios,我目前正在应用程序中使用UIImagePickerController,以利用本机iOS摄像头功能 然而,我想: 1) 以某种方式以编程方式触发“Done”按钮后面的方法,这样我的用户就不必 2) 跳过相机的图像预览,而不会丢失UIImagePickerController提供的任何现有UI功能(如切换闪光灯、曝光等) 使用案例:我使用低能蓝牙快门按钮设备拍照,而不用手指按下屏幕上的“捕获”按钮。我还想允许用户按下蓝牙按钮以按下“完成”按钮,或完全放弃“完成”步骤并立即返回didFinishPi
@IBAction func presentCameraController() {
DispatchQueue.global(qos: .userInitiated).async {
CameraAuthorization.GetAuthorizationStatus(completion: { granted in
if granted {
DispatchQueue.main.async {
if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.camera) {
let picker = UIImagePickerController();
picker.delegate = self
picker.sourceType = .camera
if let decider = UserDefaults.standard.value(forKey: "cameraFlashEnabled") as? Bool {
if (decider) {
picker.cameraFlashMode = .on
} else {
picker.cameraFlashMode = .off
}
} else {
picker.cameraFlashMode = .on
}
self.present(picker, animated: true, completion: nil)
}
}
} else {
DispatchQueue.main.async {
let encouragement = CameraAuthorization.EncourageAccess()
self.present(encouragement, animated: true, completion: nil)
}
}
})
}
internal func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
let image = info[UIImagePickerControllerOriginalImage] as? UIImage
dismiss(animated: true, completion: {
self.selectedImage = image
self.performSegue(withIdentifier: "segueToPhotoEditor", sender: nil)
})
}
将
showsCameraControls
设置为false
,并且(如果您希望用户有东西可以点击以便拍照)提供您自己的拍照界面。要拍摄照片,请致电(获取此)takePicture
这项投票被否决的原因是什么?我如何改进这个问题?