以前の記事のサンプルプログラムを作成している時にはまったのでメモ.
UIImageViewはデフォルトの状態ではタッチイベントを発生させることができません.userInteractionEnabledプロパティをYESに設定することで,touchBeganイベントを発生させることができます.

設定方法

まず,クリックされたオブジェクトを判別するためにimageViewtagをつけます.番号は0以外ならなんでもいいです.
また,タッチイベントを発生させるためにuserInteractionEnabledYESにします.

self.imageView.tag = 1;
self.imageView.userInteractionEnabled = YES;

画面がタッチされた時の処理を記述します.[event allTouches]で全てのタッチイベントを取得し,タグをチェックしてimageViewがタッチされたかどうかを判別します.

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [[event allTouches] anyObject];
    if ( touch.view.tag == imageView.tag )
    {
        //タッチ時の処理
    }
}
Share Button

iOS UIImageViewのタッチ機能を有効化

<2015/06/14>