iPhone SDK - Как сделать снимок с пользовательским обзором камеры? - PullRequest
3 голосов
/ 18 июля 2010

Я хочу спустить затвор, как только пользовательские вкладки на экране.У меня есть рабочий код для отображения камеры в полноэкранном режиме.Как я могу коснуться затвора одним касанием?

- (IBAction) takePicture
{
    if (!self.imgPicker) {
        self.imgPicker = [[UIImagePickerController alloc] init];
        self.imgPicker.allowsEditing = NO;
        self.imgPicker.delegate = self;
    }

    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
    {
        self.imgPicker.sourceType = UIImagePickerControllerSourceTypeCamera;
        self.imgPicker.showsCameraControls = NO;
        self.imgPicker.wantsFullScreenLayout = YES;

        CGAffineTransform cameraTransform = CGAffineTransformMakeScale(1.132, 1.132);
        self.imgPicker.cameraViewTransform = cameraTransform;

        UIView *headsUpView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 480, 320)];

        [self.imgPicker setCameraOverlayView:headsUpView];
    } else {
        NSLog(@"Camera not available.");
        self.imgPicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;  
    }

    [self presentModalViewController:self.imgPicker animated:YES];
}

1 Ответ

2 голосов
/ 29 июля 2010

Вы должны использовать метод takePicutre и затем обнаруживать любые прикосновения на экране.

http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIImagePickerController_Class/UIImagePickerController/UIImagePickerController.html#//apple_ref/occ/instm/UIImagePickerController/takePicture

Что-то вроде этого

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{
    UITouch *touch = [[event allTouches] anyObject];
    self.imgPicker.takePicture;
}
...