带有 UIImagePickerController 和 AVFoundation 的自定义相机
Posted
技术标签:
【中文标题】带有 UIImagePickerController 和 AVFoundation 的自定义相机【英文标题】:Custom camera with UIImagePickerController and AVFoundation 【发布时间】:2013-11-19 08:25:49 【问题描述】:我的应用上有一个自定义摄像头。我在相机视图上添加了一个按钮,以便用户可以根据需要从相册中选择图像。一旦他们选择了一张图片,他们就会将它裁剪成一个正方形,然后到达编辑屏幕。我遇到的问题是一旦用户裁剪图像并点击“完成”,它就会回到相机而不是进入编辑屏幕。 这是我的代码:
- (void)viewDidLoad
[super viewDidLoad];
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
//isAlbum = NO;
NSUserDefaults *def = [NSUserDefaults standardUserDefaults];
NSData *data = [def objectForKey:@"imageData"];
if([NSStringFromClass([data class]) isEqualToString:@"NSData"])
[self performSeague];
// [self.view sendSubviewToBack:self.cameraView];
// Do any additional setup after loading the view, typically from a nib.
[self setupAVCapture];
[self setLatestPicture];
[_AlbumView.layer setBorderColor: [[UIColor whiteColor] CGColor]];
[_AlbumView.layer setBorderWidth:2.0];
[overlayView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"cameraOverlay.png"]]];
[self.view bringSubviewToFront:overlayView];
else
[self performSeague];
[self performSeague]
转到 UIImagePickerController(不同的控制器)。这是它的委托代码
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
UIImage *image = [info valueForKey:UIImagePickerControllerEditedImage];
NSData *data = [[NSData alloc]init];
data = UIImagePNGRepresentation(image);
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:data forKey:@"imageData"];
[self performSegueWithIdentifier:@"pictureSelectedSeague" sender:self];
-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
[self dismissViewControllerAnimated:NO completion:^
[self performSegueWithIdentifier:@"cancelSeage" sender:self];
];
在这里,如果用户取消,我继续回到相机并且它可以工作,但是当用户完成选择编辑后的图像时,而不是遵循 [self performSegueWithIdentifier:@"pictureSelectedSeague" sender:self];
这行代码,它会关闭选择器并返回相机查看。
【问题讨论】:
【参考方案1】:使用以下代码在 didFinishPickingMediaWithInfo 方法中关闭 imagepicker 模型视图[picker dismissModalViewControllerAnimated:NO];
【讨论】:
同样的结果。dismissModalViewControllerAnimated:
已被弃用。以上是关于带有 UIImagePickerController 和 AVFoundation 的自定义相机的主要内容,如果未能解决你的问题,请参考以下文章
ViewController 生命周期 UINavigationController
如何从 webview 使用 UIImagePickerController
iPhone OS 3.0 中的 UIImagePickerController
如何使用 iphone 中的核心数据将图像存储到 sqlite? [复制]
带有多个链接的 NSAttributedString 的 UILabel,带有行限制,显示尾部截断,带有未见文本的 NSBackgroundColorAttributeName