iPhone5 は縦に長くて、上にあるCancel ボタンが押しにくいよね
そんなわけで、UIImagePickerController にツールバーを表示して、
それをダブルタップしたらUIImagePickerController が引っ込むという操作を実装します。
GestureRecognizer でdismissModalViewControllerAnimated: を呼び出すだけ
もー、まんまです。
ダブルタップのジェスチャーレコグナイザーを用意して、それにdismissModalViewControllerAnimated: を関連付ければ終わりです。
コード
以下、コード。
// UIImagePickerController の呼び出しメソッド
- (void)showImagePickerController {
// 今回の例ではカメラロール
if ( ![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeSavedPhotosAlbum] ) {
return;
}
// イメージピッカー用意
UIImagePickerController* ipc = [[UIImagePickerController alloc] init];
[ipc setSourceType:UIImagePickerControllerSourceTypeSavedPhotosAlbum];
[ipc setDelegate:self];
// ツールバー表示
[ipc setToolbarHidden:NO];
// GestureRecognizer 用意
UITapGestureRecognizer* doubleTapGesture = [[UITapGestureRecognizer alloc] init];
[doubleTapGesture setNumberOfTapsRequired:2]; // ダブルタップ
// ダブルタップ時に呼び出すアクションを指定。
// (画面引っ込める=dismissModalViewControllerAnimated:)
[doubleTapGesture addTarget:self action:@selector(dismissModalViewControllerAnimated:)];
// ツールバーにGestureRecognizer を追加
[[ipc toolbar] addGestureRecognizer:doubleTapGesture];
// イメージピッカー表示
[self presentViewController:ipc animated:YES completion:nil];
}