4

次のように、非モーダル設定で UIImagePickerController を使用しています。

UIImagePickerController *_imagePickerVC = // init the VC with the main camera as the source
[_mainCameraPreviewContainer addSubview:_imagePickerVC.view];
[_mainCameraPreviewContainer bringSubviewToFront:_imagePickerVC.view];

これは機能し、写真を撮ることはできますが、プレビュー領域をタップしてカメラの焦点をそのポイントに合わせることはできません。次の 2 行のいずれかまたは両方を追加して、これを修正しようとしました。

_imagePickerVC.showsCameraControls = NO;
_imagePickerVC.view.userInteractionEnabled = YES;

しかし運がない。カメラ コントロールを表示すると、フラッシュ モード ボタンとカメラを選択するボタンが表示されますが、これらのボタンもタップできません。私の状況でタップしてフォーカスを機能させることは可能ですか?

4

3 に答える 3

3

私はあなたのコードを繰り返し、タップしてフォーカスし、ボタンが機能します。(iOS 5.1、6.1)。

- (IBAction)buttonTap:(id)sender {
    if (!_imagePickerVC)
    {
        _imagePickerVC = [UIImagePickerController new];
        _imagePickerVC.sourceType = UIImagePickerControllerSourceTypeCamera;
    }

    [self.view addSubview:_imagePickerVC.view];
    [self.view bringSubviewToFront:_imagePickerVC.view];
}

であることを確認してくださいmainCameraPreviewContainer.userInteractionEnabled == YES

于 2013-03-13T18:56:43.847 に答える
1

これを試して、私に知らせてください..

_imagePickerVC.view.userInteractionEnabled = YES;
UIPanGestureRecognizer *pgr = [[UITapGestureRecognizer alloc] 
                               initWithTarget:self action:@selector(handleTap:)];

[_imagePickerVC addGestureRecognizer:pgr];
[pgr release];


-(void)handleTap{
    AVCaptureDevice *device = [[self captureInput] device];

    NSError *error;

     if ([device isFocusModeSupported:AVCaptureFocusModeAutoFocus] &&
         [device isFocusPointOfInterestSupported])
     {
         if ([device lockForConfiguration:&error]) {
             [device setFocusPointOfInterest:point];

        CGPoint point = [touch locationInView:self.cameraView];
    point.x /= self.cameraView.frame.size.width;
    point.y /= self.cameraView.frame.size.height;
    [self focusAtPoint:point];

             [device unlockForConfiguration];
         } else {
             NSLog(@"Error: %@", error);
         }
     }
}
于 2013-03-15T05:28:22.467 に答える
1

http://jcuz.wordpress.com/2010/02/17/pickerfocus/これを試すことができます。

AVfoundation を使用して実装することをお勧めします。より簡単で柔軟です。AVFoundation ios AVFoundation を使用してタップしてフォーカスする

于 2013-03-10T13:59:00.773 に答える