【发布时间】:2010-08-12 08:40:13
【问题描述】:
我目前正在开发一个应用程序,它使用 UIImagePickerController 来使用内置相机拍照。
我不想做的是在 UIImagePickerController 的底部栏上为用户提供一个开关,以便能够在前后摄像头之间切换(当然如果可用的话)。我知道如何确定是否有前置摄像头,但是如何在底栏上显示这样的开关?
感谢您的帮助!
【问题讨论】:
标签: iphone objective-c image camera
我目前正在开发一个应用程序,它使用 UIImagePickerController 来使用内置相机拍照。
我不想做的是在 UIImagePickerController 的底部栏上为用户提供一个开关,以便能够在前后摄像头之间切换(当然如果可用的话)。我知道如何确定是否有前置摄像头,但是如何在底栏上显示这样的开关?
感谢您的帮助!
【问题讨论】:
标签: iphone objective-c image camera
.h 文件 @property(nonatomic) UIImagePickerControllerCameraDevice cameraDevice;
cameraButtonPressed 方法打开后置摄像头。 changeCam 方法在后置和前置摄像头之间切换。
.m 文件
-(无效)cameraButtonPressed { overLay=[[UIView alloc]initWithFrame:CGRectMake(0,0, 320, 480)]; UIImage *CameraClickImg=[UIImage imageNamed:@"capture.png"]; UIButton *captureBtn=[UIButton buttonWithType:UIButtonTypeCustom]; [captureBtn setFrame:CGRectMake(35,440, 240,40)]; [captureBtn addTarget:self action:@selector(captureImage) forControlEvents:UIControlEventTouchUpInside]; [captureBtn setImage:CameraClickImg forState:UIControlStateNormal]; UIButton *changeBtn=[UIButton buttonWithType:UIButtonTypeCustom]; [changeBtn setFrame:CGRectMake(250,30, 40,40)]; [changeBtn addTarget:self action:@selector(changeCam) forControlEvents:UIControlEventTouchUpInside]; [changeBtn setImage:CameraClickImg forState:UIControlStateNormal]; 选择器 = [[UIImagePickerController alloc] init]; 选择器.delegate = self; 选择器.allowsEditing = NO; picker.sourceType = UIImagePickerControllerSourceTypeCamera; 选择器.showsCameraControls=否; picker.cameraFlashMode = UIImagePickerControllerCameraFlashModeOff; 选择器.cameraOverlayView=overLay; [自我presentModalViewController:选择器动画:YES]; [覆盖 addSubview:captureBtn]; [覆盖 addSubview:changeBtn]; [选择器发布]; [self.view addSubview:activityIndicator]; } -(void)captureImage { [选择器拍照]; } -(无效)changeCam { 如果(picker.cameraDevice==UIImagePickerControllerCameraDeviceRear) picker.cameraDevice=UIImagePickerControllerCameraDeviceFront; 别的 picker.cameraDevice=UIImagePickerControllerCameraDeviceRear; }【讨论】:
将UIImagePickerController 的showsCameraControls 设置为YES 或使用cameraOverlayView 提供您自己的控件。
要在前后摄像头之间切换,请使用UIImagePickerController 的cameraDevice 属性。
【讨论】: