【Swift】アルバムとカメラを起動する

 

完成図

 

f:id:nekokichi_yos2:20190204110314p:plainf:id:nekokichi_yos2:20190204110325p:plain

(アルバム画面はEvernoteのものです。)

 

解説

 

過去に同じ記事を書いたが、

というテキトーな記事だったのに、新たに書き直した。

 

※注意

下記のソースコードに加え、ナビゲーターエリア(左のメニュー)にある、

  • info.plist

に変更を加える必要がある。

 

下記の2つ(Key)を追加し、それぞれを起動する際にアラートで表示したい文章(Value)を入力すればいい。

  • Privacy - Photo Library Usage Description //アルバム
  • Privacy - Camera Usage Description //カメラ

 

f:id:nekokichi_yos2:20190204110105p:plain

 

 

ソースコード

 

import UIKit

class ViewController: UIViewController,UIImagePickerControllerDelegate,UINavigationControllerDelegate{
    
    @IBOutlet weak var imageView: UIImageView!
    
    @IBAction func button(_ sender: Any) {
        //アルバムを起動
        changeImage()
    }
    
    func changeImage() {
        //アルバムを指定
        //SourceType.camera:カメラを指定
        //SourceType.photoLibrary:アルバムを指定
        let sourceType:UIImagePickerController.SourceType = UIImagePickerController.SourceType.photoLibrary
        //アルバムを立ち上げる
        if UIImagePickerController.isSourceTypeAvailable(UIImagePickerController.SourceType.photoLibrary){
            // インスタンスの作成
            let cameraPicker = UIImagePickerController()
            cameraPicker.sourceType = sourceType
            cameraPicker.delegate = self
            //アルバム画面を開く
            self.present(cameraPicker, animated: true, completion: nil)
        }
    }
        
    //アルバム画面で写真を選択した時
    func imagePickerController(_ picker: UIImagePickerController,didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
        //imageにアルバムで選択した画像が格納される
        if let image = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {
            //ImageViewに表示
            self.imageView.image = image
            //アルバム画面を閉じる
            self.dismiss(animated: true, completion: nil)
        }
    }
    
    
}