2011/11/20更新

[XCODE] UIImageViewでユーザーからの操作を扱いたい

このエントリーをはてなブックマークに追加            

こんにちは、@yoheiMuneです。
今日は、 UIImageViewでユーザーからのタップイベントなどを受け取る方法をブログに残しておきたいと思います




UIImageViewでユーザー操作を扱う設定

UIImageViewに画像を表示していて、タップされたらさらに何かアクションをするって事をしてみたくて、調べました。
UIImageViewって初期状態では、ユーザーからの動作を無視するようになってるんです。
その設定の変え方です。InterfaceBuilderやソースコード上で、UIImageIViewに以下のような設定を行います。
aImageView.userInteractionEnabled = YES;
userInteractionEnabledをYESにする事で、ユーザーからのジェスチャーに反応することが出来ます。
さらに、複数の指操作に対応したい場合には、以下のように設定を行います。
aImageView.multipleTouchEnabled = YES;




UIImageViewでユーザー操作を扱う実装例

これら設定で、UIImageViewでもユーザーからの操作に反応することが出来ます。
例えば、以下のような実装が可能となります。
UIImageView *imageView = [[UIImageView alloc] initWithImage:anImage];
imageView.userInteractionEnabled = YES;
UITapGestureRecognizer *tap 
  = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction:)];
[imageView addGesture:tap];
上記例では、imageViewがタップされたら、tapAction:というメソッドが呼び出される設定です。
こんな感じに簡単に、UIImageViewでもユーザー操作を扱えます。




最後に

userInteractionEnabledという属性は最初存在すら知らず、泣かされました。
気付くとなんともない設定なんですがね(*゚▽゚)ノ






こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。