【发布时间】:2015-01-20 15:36:00
【问题描述】:
使用以下代码:
- (void) viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
if (!self.alreadyAppeared) {
[self performSelector:@selector(showCamera) withObject:nil afterDelay:0.3];
}
}
-(void)showCamera
{
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.showsCameraControls = YES;
picker.cameraDevice = UIImagePickerControllerCameraDeviceFront;
picker.delegate = self;
[self presentViewController: picker animated:YES completion:NULL];
}
我的应用程序运行良好。但是,如果我更改
picker.cameraDevice = UIImagePickerControllerCameraDeviceFront;
到
picker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
我丢失了图像。以下代码是我如何捕获图像并在我的应用程序中设置图像视图。我使用导航控制器返回应用程序:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImage *chosenImage = info[UIImagePickerControllerOriginalImage];
self.cf.imageView.image = chosenImage;
NSLog(@"%@",chosenImage);
[picker dismissViewControllerAnimated:YES completion:NULL];
// pop back to previous controller
NSArray *myControllers = self.nc.viewControllers;
int previous = (int)myControllers.count - 2;
UIViewController *previousController = [myControllers objectAtIndex:previous];
[self.nc popToViewController:previousController animated:YES];
}
同样,这在我的 iPad 上运行良好,使用前置摄像头也运行良好。即使使用后置摄像头,所选图像(我记录的)也显示正确。有人知道为什么后置摄像头设置会产生这样的效果吗?
另外一个项目:我收到这条非常令人恼火的信息,它有大约 1,000 种不同的解释,但都没有消除这条信息:
对尚未渲染的视图进行快照会导致快照为空。确保您的视图在快照之前或屏幕更新后的快照之前至少渲染过一次。
【问题讨论】:
标签: ios iphone xcode uiimagepickercontroller