首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检测UIImagePickerController预览状态?

如何检测UIImagePickerController预览状态?
EN

Stack Overflow用户
提问于 2013-01-29 11:48:50
回答 2查看 2K关注 0票数 8

我使用standart图像选择器来拍摄一些相机照片。

当用户制作照片时,图像选择器向他显示带有两个按钮的"Retake“和"Use".的预览屏幕

如何检测预览屏幕现在处于活动状态,还是按下“重新获取”按钮?是否可能?这些属性或事件有用吗?例如,当图像源是库时,is属性-允许编辑,显示类似的屏幕。

代码语言:javascript
复制
UIImagePickerController * imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
EN

回答 2

Stack Overflow用户

发布于 2017-05-03 19:49:13

有点晚了,但也许有人像我一样在寻找这个答案。如果要继续使用本机相机控件,则可以检查ImagePickerController的子视图以确定记录后视图是否正在显示。

代码语言:javascript
复制
BOOL videoTaken = NO;

for (UIView *aView in self.imagePickerController.view.subviews[0].subviews[0].subviews[0].subviews)
{
    if ([aView isKindOfClass:NSClassFromString(@"PLTileContainerView")])
    {
        videoTaken = YES;
        break;
    }
}

"PLTileContainerView“是包含编辑滑块的子视图,它允许您逐帧查看视频,所以如果它存在,就意味着您的视频已经录制好了。

票数 0
EN

Stack Overflow用户

发布于 2013-01-29 11:54:01

供使用:

代码语言:javascript
复制
- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{    
    [picker dismissModalViewControllerAnimated:NO];
    NSString *type = [info objectForKey:@"UIImagePickerControllerMediaType"];
    if ([type isEqualToString:@"public.movie"]) {

    } else {
        UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
    }
}

对于Cancel,您没有检测它的方法(除了子类UIImagePickerController之外,这可能是禁止的,或者其他我不知道的方式),但是可以肯定的是,第二个cancel是可以检测到的:

代码语言:javascript
复制
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {    
    [picker dismissModalViewControllerAnimated:YES];
}
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14582201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档