UIScrollViewのタッチイベントを取得する方法

2014年9月17日

xcode

UIScrollViewがメインのページでは、scrollやzoomイベントを優先するためなのか、タッチイベントが笑えるぐらい全く動かない。 試しにUIScrollViewの手前にUIImageViewを設置して imageView.userInteractionEnabled = YES; としてみると、確かにタッチイベントのみ取得できる。 もちろん、スクロールとズームはイベント取得できない。 これって、同居できないのか????

判明

どうやら、UIScrollViewをハックすると、同居できるらしい事が判明。 下記の参考ページに丁寧にソースコードまで設置されていたので、やってみたところ、なんの問題もなく動作可能。 まだ、ハックの詳細(なんでこれで動くのか)がわかっていないが、とりあえず、アプリ完成を進めたいので、今のところは、これでOKとする。 ちなみに、ソースコードを転載しておきます。 #import <UIKit/UIKit.h> @interface UIScrollView(TouchEvent) @end #import "TouchEvent.h" @implementation UIScrollView(TouchEvent) -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ [[self nextResponder] touchesBegan:touches withEvent:event]; } @end

参考

http://tamotamago.com/?p=308

あとがき

もしかして、いろんなイベントってこうやってハックしていって便利に使えるんじゃないだろうか・・・ アイデアだして研究してみようっと!!!