UIImagePickerController, как сделать анимированный переключатель с задней камеры на переднюю?

Я использовал пользовательский оверлей для контроллера UIImagePickerController, и все работает нормально. Я добавил кнопку для переключения между передней и задней камерой через -

 - (IBAction)changeCamera:(id)sender {
if (self.imagePicker.cameraDevice == UIImagePickerControllerCameraDeviceRear) {
    self.imagePicker.cameraDevice = UIImagePickerControllerCameraDeviceFront;
}
else {
    self.imagePicker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
}
}

Проблема в том, что переключатель не анимирован. Я использую приложение apple camera, которое построено поверх UIImagePicker, и этот переключатель происходит анимированным. Как это сделать?

Ответы

Ответ 1

Я пытался сделать это сегодня, и мне удалось заставить его работать со следующим кодом:

[UIView transitionWithView:imagePickerController.view duration:1.0 options:UIViewAnimationOptionAllowAnimatedContent | UIViewAnimationOptionTransitionFlipFromLeft animations:^{
            imagePickerController.cameraDevice = UIImagePickerControllerCameraDeviceRear;
        } completion:NULL];

Я надеюсь, что это поможет любому, кто сталкивается с этим вопросом.

Ответ 2

Здесь код Swift для принятого ответа в случае, если кому-то это нужно:

UIView.transitionWithView(imagePickerController.view!, duration: 1.0, options: [.AllowAnimatedContent, .TransitionFlipFromLeft], animations: {() -> Void in
            imagePickerController.cameraDevice = .Rear
            }, completion: nil)

Спасибо Пабло!