カスタムオーバーレイを機能させようとしています。プロジェクトに PNG 画像があります。端には境界線があり、中央は透明です。私のコードには、次のものがあります。
self.imagePickerController = [[UIImagePickerController alloc] init];
[self.imagePickerController setSourceType:UIImagePickerControllerSourceTypeCamera];
[self.imagePickerController setDelegate:self];
[self.imagePickerController setCameraDevice:UIImagePickerControllerCameraDeviceRear];
[self.imagePickerController setShowsCameraControls:NO];
UIView *myOverlay = [[UIView alloc] initWithFrame:self.view.bounds];
UIImage *overlayImg = [UIImage imageNamed:@"overlay.png"];
UIImageView *overlayBg = [[UIImageView alloc] initWithImage:overlayImg];
[myOverlay addSubview:overlayBg];
[self.navigationController presentViewController:self.imagePickerController animated:YES completion:nil];
ボタンを押してコントローラーを表示すると、次のようになります。
カメラが画面全体を占有せず、overlay.png 画像を追加しないという間違った方法は何ですか? これはオーバーレイの外観です。白い部分は実際には透明であることを覚えておいてください。
アップデート
コードを更新しました:
self.imagePickerController = [[UIImagePickerController alloc] init];
[self.imagePickerController setSourceType:UIImagePickerControllerSourceTypeCamera];
[self.imagePickerController setDelegate:self];
[self.imagePickerController setCameraDevice:UIImagePickerControllerCameraDeviceRear];
[self.imagePickerController setShowsCameraControls:NO];
UIView *myOverlay = [[UIView alloc] initWithFrame:self.view.bounds];
UIImage *overlayImg = [UIImage imageNamed:@"overlay.png"];
UIImageView *overlayBg = [[UIImageView alloc] initWithImage:overlayImg];
[myOverlay addSubview:overlayBg];
[self.imagePickerController.view addSubview:myOverlay];
[self.navigationController presentViewController:self.imagePickerController animated:YES completion:nil];
現在はこのように見え、改善されていますが、カメラはまだ画面のごく一部しか占めておらず、フレームのサイズも適切ではありません。