Uiimagepicker用于显示相机

时间:2010-11-03 10:09:58

标签: iphone-sdk-3.0

大家好我正在尝试制作相机应用。我这样做是为了

picker.sourceType = UIImagePickerControllerSourceTypeCamera;

其中picker是UIimagepicker Controller的对象。

但是当运行代码时,应用程序终止显示错误。

  

由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'源类型1不可用'

我在模拟器上使用它。我知道在模拟器中检查相机是不可能的,但我们可以测试一下。我认为这可能是因为相机不可用,这就是它终止的原因。 但我看到一个应用程序使用相同的代码但是在模拟器上运行,只显示了摄像头视图。 只是帮我解决这个问题。此外,如何将我的自定义视图添加到该应用程序中的相机?

3 个答案:

答案 0 :(得分:21)

在设置sourcetype之前,您需要检查设备是否有可用的相机。

以下内容可以检查设备是否有可用的相机。

if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])  {
}

您无法从模拟器检查相机功能。您可以将UIImagePickerControllerSourceTypePhotoLibrary指定为要在模拟器上测试的sourceType。

答案 1 :(得分:1)

Swift 2.2

if UIImagePickerController.isSourceTypeAvailable(.Camera) {
  imagePicker.delegate = self
  imagePicker.sourceType = .Camera
  presentViewController(imagePicker, animated: true, completion: nil)
} else {
  print("The device has no camera")
}

已保存的相册

if UIImagePickerController.isSourceTypeAvailable(.SavedPhotosAlbum) {
  imagePicker.delegate = self
  imagePicker.sourceType = .SavedPhotosAlbum
  imagePicker.allowsEditing = false
  self.presentViewController(imagePicker, animated: true, completion: nil)
}

答案 2 :(得分:0)

将下面的代码置于例外情况下。记住你需要实现navigationController

 if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
            UIAlertController *alertView = [UIAlertController alertControllerWithTitle:@"ERROR" message:@"No Camera Avalible" preferredStyle:UIAlertControllerStyleAlert];

        UIAlertAction *ok = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
            [self dismissViewControllerAnimated:alertView completion:nil];
        }];
        [alertView addAction:ok];
        [self.navigationController presentViewController:alertView animated:YES completion:nil];
    }