私はこれら 2 つの投稿 ( 1907297および689684 ) に似た状況にあり、私の状況を最も簡潔に説明するために、このテキスト/グラフィック レイアウトを提示します (IB で見られるものと同様に、インデント レベルを強制するためにドットが使用されます)。
UIView (メインビュー: 320x460)
. .UIScrollView (ScrollView: 320x460)
. .UIView (OverlayView: 320x40)
. . . .UIButton (ArbitraryButton1)
. . . .UILabel (ArbitraryLabel1)
. . . .UILabel (ArbitraryLabel2)
ここでの目標は、OverlayView が統合された透明なコンテナーとして機能し、ScrollView の上に任意のボタン/ラベルを配置して表示することです。これらのボタン/ラベルは、下の ScrollView のコンテンツがユーザーのスワイプで移動する間、静止したままにする必要があります。ボタン/ラベルは、(アニメーションを使用して) 一緒に非表示/非表示/スケーリングされる場合があるため、それらをすべて単一の OverlayView にグループ化すると便利です。
問題は、OverlayView のタップが下層の ScrollView に正しく送信されているように見える一方で、スワイプ モーションは効果がないことです。をオーバーライドすることで、スワイプを検出/傍受できます
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
OverlayView のメソッドですが、スクロールする方法で ScrollView に適切に渡す方法をまだ見つけていません。touchesMoved メソッドは、UIScrollView がスワイプを検出/解釈するために使用するものではないことは明らかですか?
私が調査した他のすべての同様の投稿は、私の場合には機能しない別の解決策を見つけたか、解決されなかっただけです。touchesShouldBegin / touchesShouldCancel の採用についての言及も見ましたが、それがどのように実装されるかはわかりません。とにかく、これに対するエレガントな解決策を考え出すことができるコミュニティからの洞察があることを願っています-サンプルコードは素晴らしいでしょう.
前もってありがとう、ジョエル。
PS - これを iOS 3.0 と互換性を持たせる必要があることにも言及する必要があるため、UIGestureRecognizers を使用しようとしていると思います。