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)
Спасибо Пабло!