如何使用UIImagePickerController从实际设备访问照片

时间:2015-01-31 11:24:28

标签: ios swift uiimagepickercontroller

目前我正在使用此代码:

@IBAction func selectPicture(sender: UIButton) {
    if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.PhotoLibrary){
        var imag = UIImagePickerController()
        imag.delegate = self
        imag.sourceType = .Camera;
        imag.mediaTypes = [kUTTypeImage as String]
        imag.allowsEditing = false
        imag.modalPresentationStyle = .Popover
        self.presentViewController(imag, animated: true, completion: nil)
    }
}

但是当我在iPad iPhone设备上运行它时,它仅向我询问相机许可,而我无法从任何专辑/相机胶卷中选择照片。

我该怎么做才能从设备上访问照片?

1 个答案:

答案 0 :(得分:1)

您设置了错误的sourceType

imag.sourceType = .Camera;

将其更改为:

imag.sourceType = .SavedPhotosAlbum;

imag.sourceType = .PhotoLibrary

常量在UIImagePickerControllerSourceType Enumeration中定义,定义如下:

  

UIImagePickerControllerSourceType

     

选择图像或确定可用时使用的来源   媒体类型。声明

     

<强>夫特

enum UIImagePickerControllerSourceType : Int
{
    case PhotoLibrary
    case Camera
    case SavedPhotosAlbum
}
     

<强>常量

     

PhotoLibrary

     

指定设备的照片库作为图像选择器控制器的源。

     

Camera

     

指定设备的内置摄像头作为图像选择器控制器的源。指出您想要的特定相机(正面或   通过使用cameraDevice属性,后面,可用)。

     

SavedPhotosAlbum

     

指定设备的相机胶卷相册作为图像选择器控制器的来源。如果设备没有摄像头,   指定已保存的照片相册作为来源。

     

<强>讨论

     

给定的源可能在给定设备上不可用,因为   来源不是实际存在的,或者因为它目前无法存在   访问。