【Swift】タップするとPhothLibraryを開いて画像を差し替えする方法

  • 1
    いいね
  • 0
    コメント

概要

あるUIImageをタップするとPhotoLibraryが開いて、選択した画像に置き換える実装をする.

手順

  • info.plistでアルバムから写真を選択可能に設定する
  • ViewControllerにUIImagePickerControllerDelegateとUINavigationControllerDelegateをdelegete設定
  • 画像をタップした時にPhotoLibraryを開く実装
  • 画像の置き換え

実装

info.plistを設定する.
スクリーンショット 2017-07-17 18.57.08.png

次にコード

import UIKit

class HogeViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
  @IBOutlet weak var avaImg: UIImageView!

  override func viewDidLoad() {
    super.viewDidLoad()

    // tapした時にimage libraryを開く
    let avaTap = UITapGestureRecognizer(target: self, action: #selector(loadImg))
    avaTap.numberOfTapsRequired = 1
    avaImg.isUserInteractionEnabled = true
    avaImg.addGestureRecognizer(avaTap)
  }

  func loadImg(recognizer : UITapGestureRecognizer) {
    let picker = UIImagePickerController()
    picker.delegate = self
    picker.sourceType = .photoLibrary
    picker.allowsEditing = true
    present(picker, animated: true, completion: nil)
  }

  // UIImagePickerのデリゲートメソッド
  func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    // 画像を置き換える
    avaImg.image = info[UIImagePickerControllerEditedImage] as? UIImage
    // 前の画面に戻る
    self.dismiss(animated: true, completion: nil)
  }
}

できた!!!

50381bfcde90f08e523ddd5380b2dc9c.gif