UIImagePickerControllerを使わずに写真を撮る

【これは古い情報です】iOS8ではもっと簡単にできるっぽい

iPhoneで写真を撮りたい時はUIImagePickerControllerを使うと簡単に写真が撮れるのだが、こいつだとちょっと問題がある場合がある。例えばUIをカスタマイズしたいとか。

私の場合、「写真が撮影された時のカメラの向き(方位)を知りたい」であった。
UIImagePickerControllerはダメだった。
どうダメかというと、シャッターボタンがパシャリと押されてからUIImagePickerControllerから処理が返ってくるまでにタイムラグがあるのだ。例えば0.3秒タイムラグがあったとして、その間に端末の向きが大きく変わってしまうということが往々にしてある。特に無理な体勢で撮影して、パシャっと撮った後うまく撮れたか確認しようと画面を見る、なんて動作をすると、撮って0.1秒後でも端末の向きが変わってしまってたりする。それでは「撮影した方位」を知りようがない。

なのでシャッターボタンが押されてすぐに処理が返るようなUIImagePickerController代替が欲しいなーってことでその辺のサンプル寄せ集めてAVFoundationで静止画像をキャプチャする何かを作ってみた。

https://github.com/kitzzking/ImageCaptureViewControllerSample

GitHubよくわかってないので作法的によろしくなったりするかもしれないがよくわからない。。。

UIImagePickerController代替のImageCaptureViewControllerと、それを使って位置情報やらを付加した写真を保存するViewController、というカンジのサンプルです。