Метод извлечения изображения UIImagePickerController

#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: ДА];