0

カスタムオーバーレイを機能させようとしています。プロジェクトに 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];

現在はこのように見え、改善されていますが、カメラはまだ画面のごく一部しか占めておらず、フレームのサイズも適切ではありません。

ここに画像の説明を入力

4

1 に答える 1