【问题标题】:Camera Shutter shows up in front of custom UIView?相机快门出现在自定义 UIView 前面?
【发布时间】:2011-06-29 16:59:38
【问题描述】:

我创建了一个自定义 UIView 来显示我的自定义按钮和工具栏。当我第一次要求它显示时,栏位于快门顶部(这很好)。但是在加载相机后,快门会出现在它的前面,然后打开。

如果您查看本机 camera.app,它不会这样做。工具栏一直呆在那里。这是我的代码:

// .h

UIImagePickerController *theCamera;
@property (nonatomic, retain) UIImagePickerController *theCamera;


// .m

theCamera = [[UIImagePickerController alloc] init];
theCamera.delegate = self;
theCamera.sourceType = UIImagePickerControllerSourceTypeCamera;
theCamera.showsCameraControls = NO;
theCamera.toolbar.alpha = 0;
theCamera.navigationBarHidden = YES;
theCamera.toolbarHidden = YES;
theCamera.wantsFullScreenLayout = YES;
theCamera.cameraViewTransform = CGAffineTransformMakeScale(1.25, 1.25);

UIImageView *tabBarBack = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"tab_bar_back.png"]];
tabBarBack.frame = CGRectMake(0, 422, 320, 58);
[customView addSubview:tabBarBack];

theCamera.cameraOverlayView = customView;
[self presentModalViewController:theCamera animated:YES];

显然我在customView 中添加了更多按钮,但你明白了这个概念。

【问题讨论】:

    标签: objective-c ios camera uiimagepickercontroller


    【解决方案1】:

    订阅:

    AVCaptureSessionDidStartRunningNotification
    

    这是虹膜打开动画开始的时候。如果你在这段时间内添加一个cameraOverlayView,它会被虹膜正确覆盖。它与 PL… 私人通知同时发布。这是一种记录在案的方法,不会冒应用被拒绝的风险。

    【讨论】:

      【解决方案2】:

      AFAIK 没有直接的方法可以做到这一点。如果您使用 cameraOverlay,您将获得整个屏幕的快门。
      如何有一些替代方法(使用视图层次结构)可以帮助您将预览屏幕设置为父视图。 我不确定这种方法是否符合应用商店指南。
      请查看Hide/Show iPhone Camera Iris/Shutter animation 以更好地了解如何实现这一目标。

      【讨论】:

        【解决方案3】:

        在 iOS 6+ 上,如果您已将控制器添加为 UIImagePickerController 的委托,则此代码应确保快门保持在您的 cameraOverlayView 后面:

        - (void) navigationController:(UINavigationController*) navigationController willShowViewController:(UIViewController*) viewController animated:(BOOL) animated {
            self.imagePickerController.cameraOverlayView = ...; // your camera overlay view
        }
        

        不过,我还没有在 iOS 6 之前的 iOS 版本上进行过测试。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-10-07
          • 1970-01-01
          • 2018-04-12
          • 2015-06-27
          • 1970-01-01
          • 1970-01-01
          • 2016-04-04
          相关资源
          最近更新 更多