我正在创建一个应用程序,在其中为相机制作了自定义叠加层。我注意到,当我使用相机的正常默认设置时,会出现一个预览,您可以选择重新拍摄照片或使用它。使用自定义叠加层时,是否有一种简单的方法来显示该屏幕?谢谢!
问问题
9684 次
1 回答
6
是的.....为此,您必须以编程方式创建一个相机叠加视图。
然后写下这段代码...
//set our custom overlay view
imagePickerController.cameraOverlayView = overlayView;
imagePickerController.showsCameraControls = NO;
要在相机屏幕上显示叠加视图,请使用上面的代码。添加覆盖视图无需使用 addSubView 方法。
当您将使用普通相机时,默认情况下取消按钮、使用、Ratake 和相机反转按钮会出现在您的屏幕上。如果您将 showCameraControls 设为“否”。那么这些按钮就不会出现。然后以编程方式,您必须在相机覆盖视图上添加 UIButton 并设置它们的功能。
在这里,我在相机叠加视图上添加了一个按钮。
//add Camera Reverse button to the overlay view.
UIButton *btnCamReverse = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btnCamReverse setBackgroundImage:[UIImage imageNamed:@"image.png"]
forState:UIControlStateNormal];
//set the frame
CGRect btnCamReverseFrame = CGRectMake(400, 250, 50, 50);
btnCamReverse.frame = btnCamReverseFrame;
[btnCamReverse addTarget:self
action:@selector(onClickButtonCamReverse:)
forControlEvents:UIControlEventTouchUpInside];
[overlayView addSubview:btnCamReverse];
//IBAction (for switching between front and rear camera).
-(IBAction)onClickButtonCamReverse:(id)sender
{
if(imagePickerController.cameraDevice == UIImagePickerControllerCameraDeviceFront)
{
imagePickerController.cameraDevice = UIImagePickerControllerCameraDeviceRear;
}
else
{
imagePickerController.cameraDevice = UIImagePickerControllerCameraDeviceFront;
}
}
对于相机叠加示例,请打开以下链接.....
https://github.com/anka/bw_examples
它对我有用……我希望它也对你有用。
于 2013-06-05T10:42:48.997 回答