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

0

您需要在myOverlay和之间建立连接imagePickerController,因此尝试添加myOverlay为 的子视图imagePickerController.view

于 2015-06-18T15:52:24.693 回答