Ios 如何使相机覆盖拍摄照片
我正在尝试在我的应用程序中为相机创建覆盖。我已经成功地在屏幕上显示了一个按钮,但我不知道该为按钮的选择器设置什么。所以我有一个叫做CameraOverlay的类,它所做的就是在屏幕上放置一个按钮。然后我有另一个类,在那里我创建了相机,并在相机拍摄完成后处理所有事情。我该怎么做才能在CameraOverlay类中按下按钮时让设备拍照?以下是CameraOverlay类的代码:Ios 如何使相机覆盖拍摄照片,ios,camera,uiimagepickercontroller,camera-overlay,cameraoverlayview,Ios,Camera,Uiimagepickercontroller,Camera Overlay,Cameraoverlayview,我正在尝试在我的应用程序中为相机创建覆盖。我已经成功地在屏幕上显示了一个按钮,但我不知道该为按钮的选择器设置什么。所以我有一个叫做CameraOverlay的类,它所做的就是在屏幕上放置一个按钮。然后我有另一个类,在那里我创建了相机,并在相机拍摄完成后处理所有事情。我该怎么做才能在CameraOverlay类中按下按钮时让设备拍照?以下是CameraOverlay类的代码: - (id)initWithFrame:(CGRect)frame { if (self = [super ini
- (id)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
//Create Button
[self createCameraButton];
self.backgroundColor = [UIColor clearColor];
screenWidth = [UIScreen mainScreen].bounds.size.width;
screenHeight = [UIScreen mainScreen].bounds.size.height;
}
return self;
}
-(void)createCameraButton{
self.cameraButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[self.cameraButton addTarget:self
action:@selector(takePicture)
forControlEvents:UIControlEventTouchUpInside];
[self.cameraButton setBackgroundImage:[UIImage imageNamed:@"camera.png"] forState:UIControlStateNormal];
self.cameraButton.frame = CGRectMake(140, 500, 50, 50);
[self addSubview:self.cameraButton];
}
以下是创建UIImagePickerController的方法:
//create an overlay view instance
CameraOverlayView *overlay = [[CameraOverlayView alloc]initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)];
self.imagePicker = [[UIImagePickerController alloc]init];
self.imagePicker.delegate = self;
self.imagePicker.allowsEditing = NO;
self.imagePicker.navigationBarHidden = YES;
self.imagePicker.toolbarHidden = YES;
self.imagePicker.wantsFullScreenLayout = YES;
self.imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
self.imagePicker.videoMaximumDuration = 10;
self.imagePicker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:self.imagePicker.sourceType];
self.imagePicker.showsCameraControls = NO;
self.imagePicker.cameraOverlayView = overlay;
[self presentViewController:self.imagePicker animated:NO completion:nil];
只是为了澄清overlay类是UIView的一个子类。我在委托行上收到一条警告:从不兼容的类型分配给id。在最后一行,我得到一个错误,说:没有可见的@interface声明选择器。。。
-(void) takePicture:(id)sender{
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.cameraDevice = UIImagePickerControllerCameraDeviceFront;
picker.showsCameraControls = NO;
[self presentViewController:picker animated:YES
completion:^ {
[picker takePicture];
}];}
}