withアプリーチSwiftのUIKitでアプリ内からカメラを起動して撮影する方法をまとめていきます。カメラを起動して写真を撮影する方法Swiftを使って自作したアプリ内からカメラを起動して写真を撮影する方法は2つ存在します。方法1:UIImagePickerControllerクラス1つ目はUIImagePickerControllerクラスを使用した方法です。フレームワークなどを導入せずに実装でき、コードもシンプルなので実装の手軽さでは圧倒的に軍配が上がります。iOSの「カメラ」アプリのようなUIをそのまま使用できるのもメリットの1つです。方法2:AVFoundation2つ目はAVFoundationを使用した方法です。実装するのはなかなか手間がかかりますがカスタマイズ性が高く柔軟なカメラアプリを開発することができます。撮影ボタンの位置やカメラビューのサイズなどを好きなように配置できるので独自のカメラアプリを作成するのにおすすめです。今回はUIImagePickerControllerクラスを使用した方法で実装してみます。UIKit】画像をカメラロールから選択/保存/取得/削除する方法!info.plistにNSCameraUsageDescriptionキーを追加アプリ内からデバイスのカメラにアクセスするためには「info.plist」にNSCameraUsageDescriptionキーを追加する必要があります。「info.plist」を開いたらKeyにNSCameraUsageDescriptionと入力し、Valueにはカメラ使用する旨を記載しておきます。Descriptionに変換されます。続いてStoryboardにUIImageViewやUIButtonを追加しておきます。今回はカメラを起動するためのボタンと撮影した写真を表示させる場所を用意しました。UIImageViewなどのUI部品をVCに用意Storyboard側の実装が完了したら、コードからビューと紐づけていきます。画像を表示させるためのアウトレット変数としてimageViewと、撮影ボタンのアクションメソッドを用意しておきます。中身は後述していきます。}}定義が完了したら再度Storyboardから紐付けを忘れないようにしてください。続いてボタンのアクションにカメラを起動させる準備をしていきます。UIImagePickerControllerクラスのisSourceTypeAvailableメソッドでcameraが使用できるかを識別し、問題なければカメラビューを表示させています。対象となるViewControllerにはさらにUIImagePickerControllerDelegateとUINavigationControllerDelegateを拡張して準拠させておきます。UIImagePickerControllerDelegateにはユーザーが静止画像または動画を選択したことをデリゲートに伝えるためのimagePickerControllerというデリゲートメソッドが用意されているのでこれを実装しておきます。ここではカメラで撮影した画像を取得してimageViewに格納しています。}}これで全ての実装が完了しました。正常に動作するか実機にビルドして確認してみてください。カメラで撮影した画像をそのままカメラロールに保存したい場合か以下の記事を参考にしてください。}}ここからは登場したクラスやプロトコルなどの使い方や概要をまとめていきます。UIImagePickerControllerDelegateUIImagePickerControllerDelegateは画像を選択するビューとやり取りを実装するためのメソッドが定義されているプロトコルです。imagePickerControllerメソッドデリゲートメソッドのimagePickerControllerはユーザーが静止画像または動画を選択したことをデリゲートに伝えるメソッドです。引数infoから選択された画像にアクセスできます。ディクショナリ(辞書)型のデータ構造になっており、キー値はUIImagePickerController.InfoKeyとして定義されています。今回はその中の元のデータを取得したいので.originalImageを指定しています。UINavigationController公式リファレンス:UIImagePickerControllerクラスUIImagePickerControllerは画像や動画などのメディア類を選択するシステムインターフェースを管理するViewControllerクラスです。このクラスを使用することでカメラロールから画像を選択したり、カメラを起動し撮影した画像を使用することができるようになります。そのためには以下の手順を踏む必要があります。BoolisSourceTypeAvailableは指定された方法(sourceType)でデバイスがメディアの選択をサポートしているかどうかを問い合わせるメソッドです。方法はUIImagePickerController.SourceTypeに定義された値で指定でき、カメラを起動して画像を撮影することができるようにするにはここで.cameraをサポートしているかチェックし後で明示的に.cameraを指定する必要があります。指定方法をサポートしていればUIImagePickerControllerクラスを使って選択するビューを構築していきます。ここではインスタンス化と選択方法の指定、デリゲートの設定、ビューの表示をおこなっています。true)まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。ご覧いただきありがとうございました。友達や家族の誕生日を登録しておくと当日に通知が届きお知らせしてくれるiOSアプリです。貸し借り管理アプリお金の貸し借りを管理するためのアプリです。貸借の色が分かれているので識別しやすく、使いやすさを求めてできるだけシンプルなUIにしています。カシホン人に貸すことが多く、誰に貸したか忘れがちな本の貸し借りを記録できるアプリです。