我创建了一个自定义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中添加了更多按钮,但是您明白了。

最佳答案

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

10-08 06:45