我正在开发一个应用程序,从iDevice的相机捕获图像并将其上传到Web服务.
没问题除了设备的相机外,一切正常.设备的相机让我疯狂.我使用下面的代码来允许用户捕获图像.有时相机显示预览,有时不显示.而不是预览只是在屏幕上显示完全黑暗.如果我从后面切换到前置摄像头,则开始正常工作.我甚至尝试从设备中删除所有后台应用程序并清除尽可能多的内存; 仍然没有运气,我被卡住了.:(
- (IBAction)addNewImage:(id)sender
{
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
{
// Take picture from camera
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
// set no to take as much pictures as user want.
imagePicker.showsCameraControls = YES;
// Show user the camera
[self presentModalViewController:imagePicker
animated:YES];
}
else
{
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentModalViewController:imagePicker
animated:YES];
}
}
Run Code Online (Sandbox Code Playgroud)
我在我的应用程序中遇到过这个问题。尽管我从未发现问题所在,但我重写了代码来定义UIIMagePickerController类型的属性并在 getter 中初始化一次。使用此属性来初始化相机视图:
吸气剂:
-(UIImagePickerController *) imagePicker{
if(!_imagePicker){
_imagePicker = [[UIImagePickerController alloc] init];
_imagePicker.delegate = self;
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]){
_imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
}
else{
_imagePicker.sourceType =UIImagePickerControllerSourceTypePhotoLibrary;
}
}
return _imagePicker;
}
- (IBAction)addNewImage:(id)sender{
if (self.imagePicker)
{
[self presentViewController:self.imagePicker animated:YES completion:^{}];
}
}
Run Code Online (Sandbox Code Playgroud)
由于某种原因,这解决了预览有时显示黑屏的问题
| 归档时间: |
|
| 查看次数: |
7435 次 |
| 最近记录: |