#iphone #ios4 #uiimagepickercontroller
#iPhone #ios4 #uiimagepickercontroller
Вопрос:
Цель: делать снимки в беззвучном режиме во время работы другого графического интерфейса.
ОС: IOS 4.3
Я выполняю тест, я хочу сделать одно изображение в автоматическом режиме при выполнении viewDidLoad: мне не нужен никакой графический интерфейс камеры, что бы то ни было… дайте мне знать, что вы думаете..
Наблюдая за UIImagePickerController, я вижу, что могу назначить несколько свойств и выполнить метод takePicture .. суть в том, что при попытке выполнить его ничего не произошло, я увидел несколько кб .. это говорит о том, что вам нужно подождать .. поэтому я поставил sleep (10), но это не помогло.
Возможно, у меня где-то отсутствует делегат, хотя я читаю, что делегирование не обязательно.. Какие мысли?
Вот код:
Файл заголовка:
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
@interface VisionViewController : UIViewController
{
UIImagePickerController *controller;
}
-(void)settingControllerAndTakingPicture;
@end
и файл реализации
// Реализуйте viewDidLoad для выполнения дополнительной настройки после загрузки представления, обычно с кончика. — (void)viewDidLoad { [super viewDidLoad];
//Taking an Image
[self settingControllerAndTakingPicture ];
}
-(void)settingControllerAndTakingPicture
{
controller = [[UIImagePickerController alloc] init];
//Setting the control source type as the Camera device.
controller.sourceType = UIImagePickerControllerSourceTypeCamera;
//Camera display is off, the player will not see it during games.
controller.showsCameraControls = NO;
//Picking only the front camera.
controller.cameraDevice = UIImagePickerControllerCameraDeviceFront;
//Turning the camera flash off.
controller.cameraFlashMode = UIImagePickerControllerCameraFlashModeOn;
//Setting the controller view as self view
controller.view = self.view;
//Taking a picture
[controller takePicture];
}
Опять же, я интересен только в беззвучном режиме.
Ответ №1:
Вы не добавили UIImagePickerController в свою иерархию представлений, он не будет создан, пока вы этого не сделаете. Вам нужен presentModalViewController или аналогичный.
Также я не думаю, что изменение controller.view будет работать так, как вы надеетесь, я думаю, вам, возможно, придется использовать:
controller.showsCameraControls = NO;
controller.cameraOverlayView = self.view;
но это всего лишь предположение.
Комментарии:
1. //Установка контроллера OverlayView в качестве самостоятельного просмотра ImageController.cameraOverlayView = self.view; // Отображение ImageController как модального дочернего элемента. При анимации используется вертикальный переход листа. [self presentModalViewController: анимированный ImageController: ДА];