iPhone SDK - 如何禁用的UIImagePickerController图片预览?
-
21-09-2019 - |
题
有什么办法拍照用的UIImagePickerController后禁用图像预览?我要取消的ImagePicker只要用户按下快门释放按钮。
解决方案
我问过类似的问题,这里
我的解决方案是创建的默认UIImagePickerControllerView的顶部上的自定义视图。
我下载的例子增强现实
然后你可以将它们添加到您的项目中使用OverlayView.m和OverlayView.h: 我做了自定义工具栏选择器,选择器和OverlayView的全球化,所以,我可以在任何地方访问这些项目。
在您的ViewController.h
@class OverlayView;
@interface ViewController //bla bla...
{
UIImagePickerController * picker;
UIToolbar *toolBar;
OverlayView *overlayView;
}
我创建的控件工具栏的照相机按钮和取消按钮
// toolbar - handy if you want to be able to exit from the image picker...
toolBar=[[[UIToolbar alloc] initWithFrame:CGRectMake(0, 480-55, 320, 55)] autorelease];
toolBar.barStyle = UIBarStyleBlackOpaque;
NSArray *items=[NSArray arrayWithObjects:
[[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelPicture)] autorelease],
[[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil] autorelease],
[[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(shootPicture)] autorelease],
[[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil] autorelease],
[[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil] autorelease],
nil];
[toolBar setItems:items];
// create the overlay view
overlayView=[[[OverlayView alloc] initWithFrame:CGRectMake(0, 0, 320, 480-44)] autorelease];
// important - it needs to be transparent so the camera preview shows through!
overlayView.opaque=NO;
overlayView.backgroundColor=[UIColor clearColor];
// parent view for our overlay
UIView *parentView=[[[UIView alloc] initWithFrame:CGRectMake(0,0,320, 480)] autorelease];
[parentView addSubview:overlayView];
[parentView addSubview:toolBar];
// configure the image picker with our overlay view
picker=[[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
// hide the camera controls
picker.showsCameraControls=NO;
picker.wantsFullScreenLayout = YES;
在取消方法
- (IBAction)cancel {
// Don't pass current value to the edited object, just pop.
[self.navigationController popViewControllerAnimated:YES];
}
在(shootPictureMethod):
-(void) shootPicture {
[picker takePicture];
}
要退出而不表示预览只是驳回拍摄照片在didFinishPickingImage方法后视图
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)img editingInfo:(NSDictionary *)editInfo
{
//do whatever
[self dismissModalViewControllerAnimated:YES];
}
不隶属于 StackOverflow