2011年10月21日 01:18 更新

【Objective-C】UISwipeGestureRecognizerをつかってiMessageのようにスワイプダウンでキーボードを閉じる方法。

スポンサード リンク
  • ツイートする
  • このエントリーをはてなブックマークに追加

IMG 0389

iOS 5のiMessageで実装されたスワイプダウンでソフトウェア・キーボードを閉じる機能。


これが超快適なので「するぷろ for iPhone」でも実装したくなり、いち早く実装していたFastEver作者の@frnkさんに方法を聞いてみたら、「あれ簡単ですよ。UIGestureRecognizer使ってすぐできます。」とアドバイスいただき、実際に書いてみたら、ホントにちょー簡単に実装できたので、その方法を備忘録として記事にしておきたいと思います。

てかスワイプダウンによるキーボードを閉じる機能ってなんなのか。

Skitched 20111021 014615

FastEverやiMessageでこのように下にスワイプしてみましょう。


IMG 0391
すると、このようにキーボードが閉じて広々とテキストビューをみまわせる機能のことです。


関連:これが「次代の操作感」!FastEverがスワイプダウンでキーボードを隠す機能を搭載!!

価格: ¥170 (記事公開時)
カテゴリ: 仕事効率化
App Storeで詳細を見る。

UISwipeGestureRecognizerを使って実装する。

それではどんな機能かわかったところで、さっそく実装してみましょう。スワイプを検知するUISwipeGestureRecognizerを使うことで、驚くほど簡単に実装可能です。サンプルコードは以下の通り。

- (void)viewDidLoad {
	[super viewDidLoad];
    UISwipeGestureRecognizer *downSwipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeDownMethod:)];
    downSwipeGesture.direction = UISwipeGestureRecognizerDirectionDown;
    [self.view addGestureRecognizer:downSwipeGesture];
    [downSwipeGesture release];
}

- (void)swipeDownMethod:(id)sender{
  
    [textView resignFirstResponder];
}

self.view上でスワイプダウンを検知したら、swipeDownMethodが動くという仕組みですね。いやー簡単にタッチ操作を使えるようになるUIGestureRecognizer便利すぎる。


ただ、このUIGestureRecognizerは、iOS 4以上じゃないと使えないので注意が必要です。iOS 3以下のものに実装するにはtouchesbeganを使えばいいのかな?


というわけで、このキーボードをスワイプダウンで閉じる機能は、現在作成中のするぷろ for iPhone ver1.3で実装予定です。ホント便利なのでお楽しみに!


追記: 本家のiMessageのものは指に追随してキーボードを下ろせるので、このコードでは挙動は完全に同じにはなりません。あくまでiMessageのアレっぽく下ろせます。

icon
価格: ¥350 (記事公開時)
カテゴリ: ソーシャルネットワーキング, 仕事効率化
App Storeで詳細を見る。 icon
みなさんはどう思われましたか?
スポンサード リンク
  • ツイートする
  • このエントリーをはてなブックマークに追加
No.3450
こんな記事もいかがですか?
Related Entries
Objective-Cカテゴリの記事
List Entries in the Same Category
メールマガジン

和洋風◎メールマガジンを購読和洋風◎の1日分の更新を無料でメールでお届けします!
下のテキストボックスにメールアドレスを入れて
購読するをクリックしてください。

Mail Magazine
RSSフィード

RSSを購読当ブログを気にって頂けたら、ぜひRSSの登録をお願いします!
和洋風◎の最新情報を速攻でお届けします!
現在の総登録数は和洋風◎のRSS購読者です!

RSS Feed
Facebook ファンページ
Facebook FanPage
コメント
Comments