[iOS]iOS5でScrollViewのタッチイベント・タップイベントを親クラスで取得する

UIScrollViewのタッチイベントを親クラスで受け取るために、UIScrollViewのカスタムクラスを作り、

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
	if (!self.dragging) {
		[self.nextResponder touchesEnded: touches withEvent:event]; 
	}		
	[super touchesEnded: touches withEvent: event];
}

のように、touchesEnded:をオーバーライドする方法が紹介されている。

http://d.hatena.ne.jp/spitfire_tree/20100707/1278470269 http://i.studio23c.com/?p=159

が、iOS5では、どうも親クラスにイベントがこない。どーしたもんかと、いろいろ調べてみたら

http://stackoverflow.com/questions/8485853/ios-5-uiscrollview-not-pass-touches-to-nextresponder

をみつけた。

[self.nextResponder touchesEnded: touches withEvent:event]; 

[[self.nextResponder nextResponder] touchesMoved:touches withEvent:event];

とすればよいとのこと。結構な時間をついやしてしまた。。。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください