私が達成したいこと: http://youtu.be/SUWxVtpc0JA
私が達成できること: http://youtu.be/b1xH6Xsvxcg
テキスト ページからメニューに変更するときに Year Walk Companion アプリが行うのと同じ垂直視差スクロール効果を実行しようとしています。
を使用して上下に移動することUIScrollViews
により、水平方向にのみ移動するこの効果を実行できました(ネストされた配列間をスワイプすることを想像してください)。UIPanGestureRecognizer
ただしUIScrollView
、垂直スクロールを使用すると壊れます。
下にスクロールするUIScrollView
と、期待どおりに移動します。上に移動しても同じです。ただし、コンテンツではなく、それ自体を垂直にUIPanGestureRecognizer
動かしたいときに問題が発生します。UIScrollView
これまでのところUIScrollView
、関数のテストを行うためにサブクラス化しましたgestureRecognizerShouldBegin
。
-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer{
UIPanGestureRecognizer* pan = (UIPanGestureRecognizer*)gestureRecognizer;
CGPoint panGestureTranslation = [pan translationInView:self];
if (self.contentOffset.y == 0 && panGestureTranslation.y > 0 ) {
return NO;
}
return YES;
}
NO
私が一番上に来ると戻りUIScrollView
、ページ間の視差スクロール用の私の他の UIPanGesture が再び開始できるようにします。
私の問題は、私UIScrollView
がスクロールして一番上に達したときに、関数gestureRecognizerShouldBegin
が呼び出されず、UIPanGestureRecognizer
視差スクロールを許可する前にタッチを離さなければならないことです。
質問:画面から指を離さずにタッチ ハンドルを停止し、タッチを上に上げるにはUIScrollView
どうすればよいですか? UIPanGestureRecognizer
(Year Walk Companion アプリのように)。