0

そのため、私はこの問題に長い間苦労してきました。利用可能なすべての StackOverflow ソリューションを試したと思いますが、それでもこれを正しく行うことはできません。

ソーシャル ネットワーキング アプリケーションで、他のすべてのビューの上に「カーテン ビュー」があります。

これは、カーテンがデフォルトモードのときの外観です これは、カーテンがデフォルトモードのときの外観です

これは、カーテンが「ダウン」モードのときの外観です。 幕が入るとこんな感じ

カーテンは、スクロール ビューに含まれるビューです。

カーテンを下にドラッグできるようにするために、画像で確認できるように、コンテンツのサイズを緑色のボタンに重なるように設定する必要がありました。

コンテンツのサイズは、この下の図の黒いストローク領域のようなものです。

ここに画像の説明を入力

私の問題。スクロールビューがデフォルトモードのときに、緑色のボタン「フォロー中、みんな、近く」をクリック可能/タッチ可能にする方法がわかりません。明らかに、スクロールビューのコンテンツサイズがボタンに重なっていますが、どうすればそれを回避できますか?

私はhitTest のオーバーライドを試し、一連のイベント
他の同様のソリューションを介してタッチ イベントを渡そうとしましたが、うまくいきませんでした。これを機能させることはできません。

スクロールビューを含むカスタム ビュー コントローラーを使用してカーテン ビューを実装しました。次に、このビューがルート ビューに追加されます。

4

1 に答える 1

1

UIScrollViewデフォルトの位置にあるときは非表示にする必要があります。

scrollView.hidden = YES;

UIScrollViewこれにより、がその下のボタンへのタッチをブロックするのを防ぎます。

Apple の UIView docoを参照してください。

非表示のビューはウィンドウから消え、入力イベントを受け取りません。ただし、スーパービューのサブビューのリストに残り、通常どおり自動サイズ変更に参加します。

次に、カーテンを下にドラッグする直前に非表示を NO に設定します。

編集:

コメントの質問に答えるには:

  1. スクロール ビューがデフォルトの位置にあり、イベントがトリガーされていないことをどのように確認できますか? contentOffsetスクロール ビューのプロパティを 確認することで、スクロール ビューがデフォルト (非表示) の位置にあるか、下の位置 (表示) にあるかを判断できるはずです。

  2. 非表示にするとカーテンの画像が消えませんか?はい、そうです。ビューを完全に消えないように部分的に上部に表示したい場合は、別のアプローチが必要になります (以下のいくつかの提案を参照してください)。

  3. スクロール ビューは指で「下にドラッグ」する必要があります (もちろん)。そのため、常にイベントをトリガーする必要があります。メインビューでタッチ/パンジェスチャを検出し、そのジェスチャに基づいてスクロールビューを上下に移動させることができます。ジェスチャは、実際にはスクロールビュー内で開始する必要はありません。

ここに私が役立つと思ったいくつかのリンクがあります:

お役に立てれば!

于 2013-07-24T00:06:09.477 に答える