Iphone iOS 7 UIImagePickerController摄像头覆盖静态图像
iOS 7使用UIImagePickerController拍摄两次照片,第二次将显示覆盖相机的静态图像,如何重置相机。 我正在试着一张一张地拍,然后一直拍5张 它在iOS6上工作 在iOS7上,它第一次可以正常工作,但是第二次拍照时,它会在屏幕上显示一个静态暗图像,如何清除或重置它,虽然拍照可以工作,但用户看不到用相机拍摄的内容Iphone iOS 7 UIImagePickerController摄像头覆盖静态图像,iphone,ios,uiimagepickercontroller,ios7,Iphone,Ios,Uiimagepickercontroller,Ios7,iOS 7使用UIImagePickerController拍摄两次照片,第二次将显示覆盖相机的静态图像,如何重置相机。 我正在试着一张一张地拍,然后一直拍5张 它在iOS6上工作 在iOS7上,它第一次可以正常工作,但是第二次拍照时,它会在屏幕上显示一个静态暗图像,如何清除或重置它,虽然拍照可以工作,但用户看不到用相机拍摄的内容 bool fistTimeToShow = YES; -(void) viewDidAppear:(BOOL)animated{ if (fistTimeT
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];
}
更新
我更改了dismise函数以放置[self-tackImage]代码>在块中。现在它总是显示拍摄的第一张照片
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
NSLog(@"====== imagePicker: didFinish ======");
self.imagePickerController = nil;
[self dismissViewControllerAnimated:NO completion: ^{
[self tackImage];
}];
}
我在想办法清除图像。但我还不知道图像保存在哪里
更新2
使用
和功能
-(void)presentCameraView{
[self presentViewController:self.imagePickerController animated:NO completion:nil];
}
取代<代码>[self-presentViewController:self.imagePickerController动画:无完成:无]代码>它在我的设备上运行,但我甚至不知道为什么
更新3
我已将userInteractionEnabled
设置为NO
当Delay:1.0f
时,以避免其他问题,并且可能还需要设置导航栏
和选项卡栏
,以便专门使用 我在iOS 7下使用Xamarin.iOS时遇到了完全相同的问题
有帮助的是在didFinishPickingMediaWithInfo
方法中添加GC.Collect()
。
在C#GC.Collect()
中,从未使用/已处理的对象中“清理”内存
当然,在Obj-C中没有直接的等价物,但这也可能会对您的问题有所帮助(可能与内存有关)。我已经读过这篇文章,现在测试一些东西黑色摄像头的问题很常见,我也有一个关于它的问题。。如果你得出结论,请告诉我,你会做同样的@Heavy_Bullets是的,我给苹果发了一份bug报告,等待反馈。任何结果都会让你知道。我也是,但他们问我一个例子项目。。。我不能重现这个问题(如果我可以,那就不是问题),如果有人举个例子,让我来举个例子know@Heavy_Bullets,我创建了一个简单的演示应用程序,可以重现我的问题,并附加到错误报告。我只是用一个开发配置文件构建它,不确定它是否正确。正在等待苹果的回复。谢谢,我认为这是一种与内存相关的问题,看起来图像没有很快清理干净,但无论如何。我记得有人自己制作了图像选择器控制器,它可以工作,所以我认为问题在于苹果的图像选择器控制器。
-(void)presentCameraView{
[self presentViewController:self.imagePickerController animated:NO completion:nil];
}