首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用静态图像覆盖的iOS 7 UIImagePickerController相机

用静态图像覆盖的iOS 7 UIImagePickerController相机
EN

Stack Overflow用户
提问于 2013-09-25 06:55:09
回答 1查看 3K关注 0票数 4

iOS 7使用UIImagePickerController拍照两次,第二次会显示静态图像覆盖相机,如何重置相机.

我试着一个接一个地拍照,然后继续拍5张照片。

它在iOS6上工作。

在iOS7上,它第一次工作很好,但是当它第二次拍照时,它会在屏幕上显示一个静态的暗图像,如何清除或重置它的,虽然拍照工作,但用户看不到什么将用相机捕捉。

代码语言:javascript
复制
bool fistTimeToShow = YES;

-(void) viewDidAppear:(BOOL)animated{
    if (fistTimeToShow) {
        fistTimeToShow = NO;

        self.imagePickerController = nil;

        [self tackImage];
    }
}

-(void)tackImage{
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {

        self.imagePickerController = [[UIImagePickerController alloc]init];
        self.imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
        self.imagePickerController.showsCameraControls = YES;
        self.imagePickerController.delegate = self;

        [self presentViewController:self.imagePickerController animated:NO completion:nil];
    }
}

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
    NSLog(@"====== imagePickerController:didFinishPickingMediaWithInfo ======");
    [self.imagePickerController dismissViewControllerAnimated:NO completion:nil];

    //...deal with the image capture...

    self.imagePickerController = nil;

    [self tackImage];
}

更新

我改变解散函数,将[self tackImage];放在块中。现在它总是显示出拍摄的第一个图像。

代码语言:javascript
复制
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
    NSLog(@"====== imagePicker: didFinish ======");

    self.imagePickerController = nil;

    [self dismissViewControllerAnimated:NO completion: ^{
        [self tackImage];
    }];
}

我想找个办法把图像弄清楚。但我还不知道图像保存在哪里。

Update2

使用

代码语言:javascript
复制
[self performSelector:@selector(presentCameraView) withObject:nil afterDelay:1.0f];

和功能

代码语言:javascript
复制
-(void)presentCameraView{
    [self presentViewController:self.imagePickerController animated:NO completion:nil];
}

来代替。[self presentViewController:self.imagePickerController animated:NO completion:nil];它无论如何在我的设备上工作,但我甚至不知道为什么。

Update3

为了避免其他问题,我已经将userInteractionEnabled设置为NODelay:1.0f,并且可能还需要将navigationBartabBar设置为专用。

EN

回答 1

Stack Overflow用户

发布于 2013-12-29 07:15:13

在使用iOS 7的Xamarin.iOS中,我遇到了完全相同的问题。

有帮助的是,在didFinishPickingMediaWithInfo方法中添加了didFinishPickingMediaWithInfo。在C#中,GC.Collect()“清除”未使用/已释放对象中的内存。

当然,在Obj中没有直接的对应关系,但这可能也会说明您的问题(可能与内存有关)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18998190

复制
相关文章

相似问题

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