Skip to content
This repository has been archived by the owner on Jun 20, 2023. It is now read-only.

5.1 UIImagePickerController

tamotamago edited this page May 7, 2013 · 10 revisions

class reference

UIImagePickerController Class Reference

UIImagePickerController Delegate Protocol

プログラミングガイド

カメラ操作のプログラ ミング(iOS用)につ いて

UIImagePickerController を使って iPhone の中にあるメディアを参照してみましょう。

(UIImagePicker を使うことでデバイスのカメラ機能も呼び出すことが出来ますが、実機のみの確認となりますので本研修からは省略します)

UIImagePickerController の呼び出し

実際にインスタンスを作成してモーダルとして表示させます。

UIImagePickerController 作成時に重要なプロパティがあります。

  • sourceType : イメージッピッカーをカメラキャプチャとして起動するか、フォトライブラリへの参照として起動するか
  • allowsEditing : 選択したメディアの編集(拡大縮小など)を許可する
  • mediaTypes : Photo, Movie のどのメディアを選択可能にするか

mediaTypes availableMovie

allowEditing editMode

- (IBAction)pressCameraButton:(id)sender
{
    UIImagePickerController *imagePickerVC = [[UIImagePickerController alloc] init];
    // UIImagePickerControllerSourceTypeSavedPhotosAlbum だと直接写真選択画面
    imagePickerVC.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    // 選択したメディアの編集を可能にするかどうか
    imagePickerVC.allowsEditing = YES;

    // 選択可能なメディアの制限 デフォルトは photo のみ。
    // movie を選択可能にするには
    // imagePickerVC.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:imagePickerVC.sourceType];
    imagePickerVC.delegate = self;
    [self presentViewController:imagePickerVC animated:YES completion:nil];
}

UIImagePickerController の mediaType は default kUTTypeImage で写真のみの選択が可能となっています。

delegate の実装

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

を実装して、写真選択完了のイベントを取得しましょう。

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    [picker dismissViewControllerAnimated:YES completion:nil];

    [_photoImageView setImage:info[UIImagePickerControllerOriginalImage]];
}

photo 選択の場合 info の中身

{
    UIImagePickerControllerCropRect = "NSRect: {{0, 0}, {300, 33}}";
    UIImagePickerControllerEditedImage = "<UIImage: 0x7569090>";
    UIImagePickerControllerMediaType = "public.image";
    UIImagePickerControllerOriginalImage = "<UIImage: 0x753ddc0>";
    UIImagePickerControllerReferenceURL = "assets-library://asset/asset.PNG?id=0CF2CC3D-4F4D-4CA3-91D3-0CD0A95AFBBF&ext=PNG";
}

問題

下図のような画面遷移を実装してください。 practice

はじめに

  1. iOSについて

  2. Xcode最初のステッフ

  3. 導入

  4. Objective C の基礎

  5. メモリ管理

  6. 1.3 UIViewController1 UIViewController のカスタマイズ(xib, autoresizing)

  7. 1.3 UIViewController1 UIViewController のカスタマイズ(storyboard)

  8. UIViewController2 - ModalViewController

  9. UIViewController2 - ModalViewController(storyboard)

  10. UIViewController3 - ライフサイクル

  11. HomeWork 1 Objective C の基本文法

  12. HomeWork 2 UIViewControllerとModalViewController

  13. HomeWork 3 UIViewController + Animation

  14. UIKit 1 - container, rotate-

  15. UINavigationController

  16. UITabController

  17. Custom Container View Controller

  18. Supporting Multiple Interface Orientations

  19. HomeWork 1 - タブバーからモーダルビューを表示する

  20. HomeWork 2 - NavigationController

  21. HomeWork 2.3 デバイスことに回転対応

  22. UIKit 2- UIView -

  23. UIView

  24. UIView のカスタマイズ

  25. UIView Animation

  26. HomeWork 1 - UIScrollView

  27. UIKit 3 - table view -

  28. UITableView について

  29. UITableViewとNavigationController

  30. custom UITableViewCell の作成

  31. UITableViewのその他のオプション、カスタマイズ

  32. HomeWork 1 - Dynamic height with a custom uitableviewcell

  33. UIKit 4 - image and text -

  34. UIImagePickerController

  35. Assets Library

  36. UITextFiled, UITextView

  37. KeyboardNotification

  38. Homework 1 - フォトの複数枚選択

  39. ネットワーク処理

  40. NSURLConnection

  41. JSONのシリアライズとデシリアライズ

  42. UIWebView

  43. ローカルキャッシュと通知

  44. NSUserDefaults, Settings Bundle

  45. NSFileManager

  46. Key Value Observing

  47. NSNotification、NSNotificationCenter を用いた通知

  48. UILocalNotification

  49. Blocks, GCD

  50. Blocks

  51. GCD

  52. 【演習】GCD,-Blocksを用いたHTTPリクエストマネージャの作成

  53. 設計とデザインパターン

  54. クラス設計 1

  55. クラス設計 2

  56. [クラス設計演習] (https://github.com/mixi-inc/iOSTraining/wiki/9.3-%E3%82%AF%E3%83%A9%E3%82%B9%E8%A8%AD%E8%A8%88%E6%BC%94%E7%BF%92)

  57. 開発ツール

  58. Instruments, デバッガ

  59. CocoaPods

  60. テスト

  61. iOS開発におけるテスト

  62. GHUnit

  63. Kiwi

  64. KIF

  65. In-App Purchase

  66. In-App Purchase

  67. 付録

  68. Tips of Xcode

  69. Auto Layout 入門

  70. Auto Layout ドリル

Edit sidebar

Clone this wiki locally