iOS5のnextResponderの挙動
ちょっとハマったので解決してないけどとりあえずメモ。
iOS5がリリースされて、早速今のプロジェクトも5向けでリリースすることに。
スワイプの時はUIScrollViewでスクロール、タップの時は親ビューで処理したいって時に
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { if (!self.dragging) { [self.nextResponder touchesEnded:touches withEvent:event]; } }
って感じでnextResponderにイベント投げてる人は多いと思う。
いや、実際は分からないけど僕はこうやってたわけです。
それがiOSを5にしたら親ビューにtouchesEndedが来ない…
仕方がないので力技で
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { if (!self.dragging) { if (rootViewController_) [rootViewController_ touchesEnded:touches withEvent:event]; else [self.nextResponder touchesEnded:touches withEvent:event]; } }
こんな実装にしてしまった…
自分が憎い。。
解決策をご存知の方がいたらぜひ教えて頂きたいです。
ってか公式ドキュメント読めって話ですかね…頑張ろう。
…スクロールビュー周りではいつもハマる。
nextResponder使わない方法ですが、スクロールビューの挙動を
理解するのにこの記事にはお世話になりました。