22.そらのの自由研究 iPhoneアプリを作ってみよう!「イメージピッカー<続き>」

libub
ライブブch季節外れの夏休み企画! アプリ作りは初めてどころかプログラミングもしたことのないそらのが、皆様の手助けを借りながらiPhoneアプリを作っていきます! 目指すは完成アプリをApp Storeに申請まで!果たしてそらのは夏休みの宿題を無事に終わらせることができるのか!?

第22回 Index

UIImagePickerController:画像データを読み込む
①実践
②アドバイス

実践

カメラで写真を撮る
【コラム】実践! iPhoneアプリ開発 (2) カメラアプリの作り方(2) – カメラで写真を撮る | エンタープライズ | マイコミジャーナル

21回目から引き継ぎます。

https://matome.eternalcollegest.com/post-2131838938742129801

アクションシートができあがりましたので、このデリゲートの中から、イメージピッカーの表示を行います。


https://matome.naver.jp/odai/2131847828543607301/2131852509444201203
実装ファイルにプログラムを追加します
21回で作った実装ファイルの-(void)~~~buttonIndexの後ろに、カメラやフォトアルバムから画像を取得するようにイメージピッカーの定義を行っていく。

画像を取得するにはUIImagePickerControllerクラスのsourceTypeというプロパティを使う。

UIImagePickerControllerSourceTypeという型になり、対応する3つの定数が定義されている。

画像の緑枠部分にあたる。

UIImagePickerControllerSourceTypePhotoLibraryはフォトライプラリ、UIImagePickerControllerSourceTypeCameraはカメラ、UIImagePickerControllerSourceTypeSavedPhotosAlbumはiPhoneだとカメラロールが、iPod touchだと「Saved Photos」というフォルダからそれぞれ画像を取得することになる。


https://matome.naver.jp/odai/2131847828543607301/2131851426544136203
コード文字おこし

-(void)actionSheet:(UIActionSheet*)
actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex >= 3) {
return;
}
UIImagePickerControllerSourceType sourceType = 0;
switch (buttonIndex) {

case 0: {
sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
break;
}
case 1: {
sourceType = UIImagePickerControllerSourceTypeCamera;
break;
}
case 2: {
sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
break;
}
}
if (! [UIImagePickerController
isSourceTypeAvailable:sourceType]) {
return;
}
UIImagePickerController* imagePicker;
imagePicker = [[UIImagePickerController alloc] init];
[imagePicker autorelease];
imagePicker.sourceType = sourceType;
imagePicker.allowsEditing = YES;
imagePicker.delegate = self;

[self
presentModalViewController:imagePicker animated:YES];
}


https://matome.naver.jp/odai/2131847828543607301/2131852589744203503
ヘッダーファイルでデリゲートをお忘れなく
UINavigationControllerDelegateとUIImagePickerControllerDelegateのデリゲートを宣言します。
今回はアクションシートも使っているので、アクションシートのデリゲートも書かれていますが、特に記述する順番は関係ないそうです。

https://matome.naver.jp/odai/2131847828543607301/2131852641644205303
こちらミスしたほう
このように、デリゲートの宣言をしていないと

https://matome.naver.jp/odai/2131847828543607301/2131852650344206103
こういう風に警告が出てしまいます。

Nyanmage@ttakeo_next

アクションシートのデリゲート設定が漏れている? ( #libub at wcz.jp/3BenYk )

動作確認はデバッガで

フォトアルバムや、カメラを起動させるプログラムのため、シミュレーターで動作を確認するには少々難がある。
今回はデバッガを使って動作を確認したい。

画面キャプチャでは伝わりにくいので、近日中に動画を公開する。

まずはcase0

case1

case2

編集後記

やりながら覚えていくのかな

デバッガなど、ログの表示やシミュレーター以外を使っての動作確認を覚えた。
そろそろ“学習”というよりも、“習うより慣れろ”になってきなのかな、と。

そらのプロフィール


https://matome.naver.jp/odai/2131847828543607301/2131847860943613303
そらの
鶏肉みたいなココロを耐久ガラスで守ってます。
(株)ソラノート 広報です。
プログラミングは未経験です。

そらのの自由研究 iPhoneアプリを作ってみよう! まとめ一覧

https://matome.naver.jp/odai/2131847828543607301
2011年10月18日