コードを実行し、以下のコードでカメラを起動すると、カスタムの overlayView とデフォルトのカメラ ボタンが表示されます。唯一の問題は、UIImagePicker がかつてあった場所に空白のブラック ボックスが表示されることです。デフォルトの UIImagePicker コントロールとボタンを使用してカメラを作成し、デフォルトの imagePickerController の上に独自の IBOutlet UILabel を追加して、ラベルがすべてのデフォルトのカメラ コントロールとともに表示されるようにしています。私はこれを達成するのにひどい時間を過ごしています。乾杯!
- (void)viewDidLoad
{
[super viewDidLoad];
if (self.image == nil && [self.videoFilePath length] == 0) {
self.imagePicker = [[UIImagePickerController alloc] init];
self.imagePicker.delegate = self;
self.imagePicker.allowsEditing = NO;
self.imagePicker.videoMaximumDuration = 10;
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
self.imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
}
self.imagePicker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:self.imagePicker.sourceType];
[[NSBundle mainBundle] loadNibNamed:@"OverlayView" owner:self options:nil];
self.overlayView.frame = self.imagePicker.cameraOverlayView.frame;
self.imagePicker.cameraOverlayView = self.overlayView;
self.overlayView = nil;
}
[self presentViewController:self.imagePicker animated:YES completion:nil];
}