3

ペン先からUITableViewに単純なテーブル全体のフッタービューを追加しようとしていますが、何らかの理由でフッターが常に1行高すぎて表示され、ボタンがタップにまったく反応しません(実際にはタッチ実際にはボタンの後ろのセルまで進みます):

ここに画像の説明を入力

フッターが正しい位置にない理由がわかりません。その高さは、含まれている のサイズで明示的に説明しましたUIPopoverController

フッタービューを作成/追加する方法は次のとおりです。

self.tableFooterView = [[NSBundle mainBundle] loadNibNamed:@"ModifierFooterView" owner:self options:nil][0];
self.tableView.tableFooterView = self.tableFooterView;

更新:ボタンはそれぞれ左下隅と右下隅にバインドされています。

ここに画像の説明を入力

また、手がかりとして、フッター ビューの背景色全体を明るい緑色に設定してみました。前のスクリーンショットからわかるように、どこにも緑色が表示されていません。

更新 2:テーブルのフッターとして設定した後、ペン先から読み込むときにフッター ビューのフレーム値をログに記録すると、最後の行の直後に配置される正しい Y 値があります。唯一のわずかに奇妙な読み取りは、幅が親ビューの幅ではなく 768 であることです。

更新 3:この問題は、読み込まれたフッター ビューのフレームの高さがどこかで 0 に設定されていることが原因であることがわかりました。これがどこで/なぜ起こっているのかはまだわかりませんが、ビューが表示されようとしているときに明示的に 50 に戻すと、正常に動作するため、大きな問題にはなりません。ただし、これがなぜ起こっているのかについての洞察がある場合は、回答を投稿してください。

4

1 に答える 1

1

タッチがビューを通過している場合は、親ビューの境界の外にあることを意味します。スクリーンショットを見ると、濃い灰色のバーが実際のフッター ビューだと思います。そして、何らかの理由で、その中のボタンが押し上げられて範囲外になっています.

最も可能性の高い理由は、ビューがテーブルに挿入されると、XIB レイアウトよりも小さい高さが与えられ、ボタンのストラットとスプリング (または自動レイアウト制約) がそれらを押し上げることです。したがって、ストラットとスプリング (または拘束) を調整するだけです。レイアウトについて詳しく教えていただければ、より具体的な指示を出すことができます。

于 2013-08-31T23:35:05.387 に答える