Я знаю, что вопрос такого типа уже задан, но я отлаживал его в деталях, и я пришел к этому выводу, что когда я отключил этот флагUIImagePickerController пользовательская кнопка FlashMode не работает на IOS 10 (быстро)
self.picker.showsCameraControls = false
затем пользовательская кнопка вспышки не реагирует, но если я буду менять флаг
self.picker.showsCameraControls = true
тогда моя кнопка пользовательских вспышек в ответе КИ, я проверить все делегат и флаги, но я не являюсь в состоянии указать ошибку, либо она находится в моем коде, либо она находится в версии IOS 10, если ее i n мой код, а затем показывая управление камерой, почему моя пользовательская кнопка вспышки изменяет состояние вспышки и работает нормально. вот мой код для лучшего понимания:
func configureImagePicker(){
self.picker.delegate = self
self.picker.allowsEditing = false
if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.Camera)
{
self.picker.sourceType = UIImagePickerControllerSourceType.Camera
self.picker.mediaTypes = [kUTTypeImage as String]
}
}
func showImagePicker(){
if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.Camera){
self.picker.sourceType = UIImagePickerControllerSourceType.Camera
self.picker.showsCameraControls = false
self.picker.delegateController = self
self.picker.delegate = self
self.picker.mediaTypes = [kUTTypeImage as String]
self.picker.allowsEditing = false
if let cameraOverlay = self.picker.cameraOverlayView {
self.createCamerOverlay(cameraOverlay.frame)
self.picker.cameraOverlayView = self.overlayView
self.presentViewController(self.picker, animated: false, completion: {
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(Double(0.5)*Double(NSEC_PER_SEC))), dispatch_get_main_queue(), {
if self.picker.cameraDevice == UIImagePickerControllerCameraDevice.Rear && UIImagePickerController.isFlashAvailableForCameraDevice(UIImagePickerControllerCameraDevice.Rear)
{
if Float.init(UIDevice.currentDevice().systemVersion) < 11.0
{
switch(Global.shared.currenFlashOption)
{
case .FlashOff:
self.picker.cameraFlashMode = .Off
let flashImage = UIImage(named: "btn-flash-off")
self.flashButton.setImage(flashImage, forState: UIControlState.Normal)
self.flashButton.setImage(flashImage, forState: UIControlState.Highlighted)
case .FlashAuto:
self.picker.cameraFlashMode = .Auto
let flashImage = UIImage(named: "btn-flash")
self.flashButton.setImage(flashImage, forState: UIControlState.Normal)
self.flashButton.setImage(flashImage, forState: UIControlState.Highlighted)
case .FlashOn:
self.picker.cameraFlashMode = .On
let flashImage = UIImage(named: "btn-flash-on")
self.flashButton.setImage(flashImage, forState: UIControlState.Normal)
self.flashButton.setImage(flashImage, forState: UIControlState.Highlighted)
}
}
else
{
self.picker.cameraFlashMode = UIImagePickerControllerCameraFlashMode.On
}
}
});
});
} else {
print("Camera overlay frame not found. So did not present the controller.")
}
}
else{
let alert = UIAlertView(title: "Error", message: "Camera Not Available", delegate: nil, cancelButtonTitle: "Cancel")
alert.show()
}
}
Короче моя кнопка пользовательских flashmode не работает на cameraoverlayview. Если у вас нет решения этой проблемы, пожалуйста, предложите любой взлом. благодаря
Это работает !!! но почемуyyyyyyyyyyyyyyyy ?? – Zaraki
Zaraki - это ошибка в версии iOS, я надеюсь, что они обязательно придумают это в следующих обновлениях, я тоже сообщил об этом в Apple, и я не понимаю, почему он не работает, но его взломать для запуска делегата. , – Steve