私が達成したいこと: 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 アプリのように)。