GestureRecognizer の storyboard での設定方法。我流でやってみてもうまくいかない。まずは code を書いてみて、その後 storyboard で設定してみたらうまくいった。code と同等なことを storyboard に実装すればいいのだと。こういう試行錯誤は後になってから忘れなくていいかも。
コードで書くとこんな感じ:
UILongPressGestureRecognizer* longPressRecognize = [[UILongPressGestureRecognizer alloc]
initWithTarget:self
action:@selector( imageLongPress )];
longPressRecognize.minimumPressDuration = 0.33f;
[_cookingImage addGestureRecognizer:longPressRecognize];
要は、UILongPressRecognizer のインスタンスを生成し、効用をもたらしたい object に addGestureRecognizer する。
これを踏まえた上で、storyboard を使った方法はこんな感じ。
- LongPressRecognizer を View に乗っける。すると、View の上に First Responder とかがあるところに、gesture recognizer のアイコンが表示される。
- gesture recognizer のアイコンから反応してほしい object に線を引いて、delegate を設定。
- gesture recognizer から.h に引っ張ってきて action を追加
ちなみに、gesture recognizer のプロパティも storyboard 上で設定できて、attribute inspector に設定できる項目が載っている。Long Press なら default は 0.5 であった。なんとなく、0.33 に変更した。
表現方法が違うけれども、結局、code からでも storyboard からでも設定できるんだなぁと。で、どちらがいいのかというと・・・うーん、微妙。code からの方がぱっと見、わかりやすい。でも、.m に記述が増えてくると管理がままならなくなってくるので、storyboard を使って分散化した方がいいのかな。