문제

CameroVerLayView 및 TakePicture와 함께 OS 3.1의 UIIMAGEPICKERCONTROLLER 인터페이스를 사용하려고하지만 이것이 어떻게 작동하는지 이해하지 못했기 때문에 원하는 동작을 얻지 못합니다.

내가하고 싶은 것은 카메라를 열고 사용자가 피커와 상호 작용하거나 이미지를 편집하지 않고도 자동으로 사진을 찍는 것입니다. 그래서 나는 uiimagepickercontroller 하위 클래스 (예제와 유사합니다. http://github.com/pmark/helpful-iphone-utilities/tree/master/btl%20utilities/)) 및 모든 컨트롤을 끄십시오.

- (void)displayModalWithController:(UIViewController*)controller animated:(BOOL)animated {
self.sourceType = UIImagePickerControllerSourceTypeCamera;
self.showsCameraControls = NO;
self.navigationBarHidden = YES;
self.toolbarHidden = YES;
    // Setting the overlay view up programmatically.
ipView = [[ImagePickerView alloc] init];
self.cameraOverlayView = ipView;
[controller presentModalViewController:self animated:NO];
}

오버레이 뷰에서, 나는 uiimagepickercontroller의 takepicture 메소드를 발사하도록 강요했다 (나는 그것을 알 수 없기 때문에 이것을 알고있다. 그리고 카메라의 소리가 사진을 찍는 소리를 들었다). 오버레이 뷰는 잘 나타납니다. 그러나 Delegate Method는 호출되지 않으며 ImagePickerControllerDidCancel도 호출되지 않습니다.

그렇다면, 대의원 방법을 호출하거나 takePicture 방법을 재정의하여 사진을 저장하는 방법은 무엇입니까? (여기서 그림 데이터를 캡처하는 방법을 모르고 Google이 실패한 것 같습니다). UIImagePickerController의 내장이 어떻게 작동하는지 이해하지 못했다고 생각할 수는 없지만 문서는 지나치게 도움이되지 않습니다.

예 :

"사용자 정의 오버레이보기를 제공하여 사용자 정의 사진 테이킹 인터페이스를 표시 할 수 있으며 코드에서 사진을 찍을 수 있습니다. 이미지가 제공 한 기본 컨트롤 외에 또는 대신 사용자 정의 오버레이보기가 표시 될 수 있습니다. 피커 인터페이스. "

또는 showcameracontrols :

"이 속성을 NO로 설정하고 고유 한 사용자 정의 컨트롤을 제공하면 이미지 선택기 인터페이스를 기각하기 전에 여러 장의 사진을 찍을 수 있습니다." - 피커 인터페이스를 어떻게 무시합니까?

참고 : 대의원은 IB에서 올바르게 설정되어 있으므로 문제가되지 않습니다.

제공 할 수있는 도움에 감사드립니다!

도움이 되었습니까?

해결책

나는 당신이 전화하기 전에 "충분히 길다"를 기다려야한다는 것을 알았습니다. takePicture, 또는 조용히 실패합니다. 나는 항상 작동하는 "충분히 길다"의 최소 값을 결정하는 방법에 대한 좋은 답이 없지만 타이머를 설정하고 5-10 초를 기다리면 괜찮을 것입니다. "아직 사진을 찍을 준비가되지 않았다, 죄송합니다"오류가 직접 takePicture 또는 대의원을 통해, 그러나 내가 아는 한는 그렇지 않습니다.

다른 팁

내 자신의 질문에 대한 업데이트로 : TakePicture를 너무 일찍 사용하려고했던 것으로 나타났습니다. 동작을 오버레이의 버튼으로 옮기고 해당 버튼에서 테이크 포인트를 보냈을 때 (피커가 모듈로 표시되면) 대의원 방법이 시작되었습니다. 내가 원하는 것을 달성 할 수 있는지 모르겠습니다. 버튼을 자동으로 누르지 않고 이미지를 찍는 것입니다. 그러나 그것이 경우, 그것을 사용하려고 시도한 후 언젠가는 takePicture를 보내서 수행해야 할 것입니다.

-(void) imageMethod : (id) sender {imagePickerController = [[uiimagePickerController alloc] init]; ImagePickerController.sourcetype = uiimagepickercontrollersourcetypephotolibrary;

imagePopover=[[UIPopoverController alloc]initWithContentViewController:imagePickerController];
[imagePopover presentPopoverFromRect:importButton.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionLeft animated:YES];
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top