1

セクション ヘッダーを使用して、適切なセクションのセルの横に「フローティング」する小さな画像を表示しています。セクション ヘッダーは透明で、画像ビューのみが含まれます。このソリューションの最初の問題は、セクション ヘッダーが高さを占めることでした。これは奇妙に見えました (各セクションの先頭に不要な空白がありました + テーブルビューが先頭までスクロールされたときに、画像を最初のセルの上部に揃える必要があります)。セクションの)。これに対する修正は、セクション ヘッダーの高さを 1px に設定することでした。画像はまだ配置されていましたが、ヘッダーは高さを使用せず、すべてが見栄えがよくなりました.

ただし、その画像の上に UIButton を追加する必要がありますが、残念ながら、ヘッダーの高さが 1px の場合は機能しません。隠されたり覆われたりせず、正しく描画されますが、セットセレクターは呼び出されません。高さを設定すると、ボタンが機能します。

要するに、実質的に高さのないセクションヘッダーで機能するボタンを実現する方法、または通常の高さで常にセルに重なるセクションヘッダーを実現する方法 (テーブルビューが一番上にスクロールされたときにスペースを使用しない)セクションの)?

どんな助けでも大歓迎です。

4

2 に答える 2

0

David Hの提案も私の最初のアイデアでしたが、もっとエレガントな解決策を見つけたいと思っていました。とにかく、それが私がこの機能を実装することになった方法です。

コードを可能な限りシンプルに保ちました(より最適化された方法で実行でき、ニーズに十分に対応できると確信しています)-セクションに追加された各画像(ボタンをオーバーレイする必要がなくなりました)も追加されましたセクション番号をキーとする辞書。マスクレイヤービュー(テーブルビューの上に追加された透明なビュー)がタッチされているときCGRectContainsPoint、タッチが辞書内のビューのいずれかに対応しているかどうかを確認するだけです。

于 2012-09-04T10:33:41.783 に答える
0

これを機能させる方法の 1 つは、テーブルに透明なビューを追加することです。touchDown と touchUp をインターセプトします。それらがボタンの 1 つの上にあるかどうかを計算し、その場合はボタンに直接送信し、そうでない場合は転送することができます。タッチ イベントが取得されない理由は、おそらくタッチがヘッダー フレームに収まらないためです。

于 2012-09-03T20:11:57.610 に答える