私はObjective Cを初めて使用し、ここに投稿するのは初めての質問なので、これはおそらく世界で最も簡単に答えられる質問ですが、私はこれを理解できませんでした.
カメラを使用する iOS アプリを作成しようとしています。カメラを表示して写真を撮るために UIImagePickerController クラスを使用していますが、cameraOverlayView プロパティを使用して、カメラ プレビュー フレームをオーバーレイする一連の UIButton インスタンスを含むカスタム UIView を作成しました。次のコードを使用して、 a メソッドを使用してカメラを画面に表示しています。
- (BOOL) startCameraControllerFromViewController: (UIImagePickerController*) imagePickerController
usingDelegate: (id <UIImagePickerControllerDelegate,
UINavigationControllerDelegate>) imagePickerControllerDelegate {
if (([UIImagePickerController isSourceTypeAvailable:
UIImagePickerControllerSourceTypeCamera] == NO)
|| (imagePickerController == nil)
|| (imagePickerControllerDelegate == nil))
return NO;
imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePickerController.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeImage, nil];
imagePickerController.allowsEditing = NO;
imagePickerController.showsCameraControls = NO;
imagePickerController.wantsFullScreenLayout = YES;
imagePickerController.delegate = imagePickerControllerDelegate;
self.cameraOverlayViewController = [[CameraOverlayViewController alloc] initWithImagePickerControllerDelegate:imagePickerController nibName:@"CameraOverlayView" bundle:nil];
self.cameraOverlayViewController.view.frame = CGRectMake(0, 0, imagePickerController.view.frame.size.width, imagePickerController.view.frame.size.height);
imagePickerController.cameraOverlayView = self.cameraOverlayViewController.view;
[self presentViewController:imagePickerController animated:self.showCameraAnimation completion:^(void) {
[self.view bringSubviewToFront:self.cameraOverlayViewController.view];
}];
return YES;
}
カメラ プレビュー ウィンドウの上部にあるボタンを押すと、対応する IBAction がトリガーされますが、下にあるカメラ ビューもタップされて再フォーカスされます。そのため、ボタンを押すたびに、写真を撮る前に手動でカメラ プレビューの焦点を合わせ直す必要があります。ご覧のとおり、bringSubViewToFront: を使用しようとしましたが、うまくいかないようです。
cameraOverlayView のボタンをタップしたときにカメラがフォーカスされないようにするにはどうすればよいですか?
助けてくれてありがとう!