まだ試していませんが、ユーザーが子スクロール ビューでスクロールしたいことがわかったらすぐに、親スクロール ビューのスクロールを無効にする必要があると思いますよね?
どちらのスクロール ビューも水平方向にスクロールします。
親のスクロール検出を一時的に無効にするにはどうすればよいですか? それとも何か他の方法がありますか?
まだ試していませんが、ユーザーが子スクロール ビューでスクロールしたいことがわかったらすぐに、親スクロール ビューのスクロールを無効にする必要があると思いますよね?
どちらのスクロール ビューも水平方向にスクロールします。
親のスクロール検出を一時的に無効にするにはどうすればよいですか? それとも何か他の方法がありますか?
UIScrollView には と呼ばれるプロパティがありscrollEnabled、これを設定しNOて親スクロール ビューのスクロールを無効にできます。
私はまだ試していませんが、正しく動作することがわかるかもしれません。つまり、内側のスクロール ビューがスクロールできなくなるまでスクロールし、その時点で外側のスクロール ビューがスクロールします。
それは非常に可能です。scrollEnabled最も簡単な方法は、プロパティを無効にすることですUIScrollView。outercontentSizeをその境界に設定して、スクロールしないようにすることもできます。必要に応じて、 No を設定することもできますが、bounce基本的にはスクロール ビューを通常の UIView のようにします。
すべての子を制御UIScrollViewできる場合は、プロトコルを実装できますUIScrollViewDelegateが、そうでない場合、または子UIScrollViewが実際にUITableView、 またはUICollectionViewである場合、プロトコルを実際に信頼することはできませんが、 が付属していることをUIScrollViewDelegate覚えておいてください。それで遊んでください。強力だが面倒な方法は、のプロパティにオブザーバーを追加して、問題の のデリゲートにならずにすべてのイベントをキャプチャできるようにすることです。UIScrollViewpanGestureRecognizerpanGestureRecognizerstateUIScrollView
これを行ったところ、親 scrollView がスクロールしなくなりましたが、これは問題ありませんが、presentModalViewController を介してプッシュされた子 scrollView はスクロール イベント (上下のスクロールなど) に応答しません。私は明らかに何かが欠けています...
編集:親ビューで「scrollEnabled」を使用して、最終的に機能するようになりました。ありがとう。
以下を使用して、内側の ScrollView の contentSize に十分な高さを動的に設定するまで、私はこの同じ問題を抱えていました。
[scrollView setContentSize:CGSizeMake(scrollView.frame.size.width,600)];
明らかに、これはハードコーディングされた例にすぎません。ビューのコンテンツ全体を表示するために必要な高さを設定する必要があり、最終的にはスクロールが不要になる場合があります。
IBuilder を使用して scrollView の高さを設定するだけでは不十分なようで、スクロールは必要ありませんでした。そのため、スイープ イベントが内側のスクロールに到達していないと考えていました。
お役に立てれば!