UITableViewController を使用する場合、initWithStyle: メソッドは、基礎となる UITableView を (ドキュメントによると) 「正しい寸法」で自動的に作成します。
私の問題は、これらの「正しい寸法」が 320x460 (iPhone の画面サイズ) のように見えることですが、この TableView/Controller ペアを、それ自体が UIView に含まれている UINavigationController にプッシュしています。これは、画面の高さの約半分です。
私が思いつくことができるフレームや境界のラングリングは、テーブルのサイズを正しくリセットしていないようです。そのため、「長すぎます」。つまり、画面の下部から押し出され、表示も到達もできない行のコレクションがあることを意味します。スクロール。
だから私の質問は次のようになります: UITableViewController にそのコンポーネント UITableView のサイズを指定された長方形に変更するように指示する適切な方法は何ですか?
ありがとう!
更新ここで提案されているすべての手法を試してみましたが、役に立たなかったのですが、興味深いことが1つ見つかりました.私が言及した囲んでいるビューの直接のサブビューとしてのテーブルビューでは、指定されたフレームサイズが尊重されます。UINavigationController をテーブル ビューの前または後にサブビューとして追加するかどうかに関係なく、テーブル ビューがサブビューとして追加される前または後に alloc/init するかに関係なく、ミックスに UINavigationController を再導入した瞬間、結果は以前と同じ。
私は、UINavigationController があまりチーム プレーヤーではないのではないかと疑い始めています...
更新 2画面上のテーブル ビューの後にフレーム サイズを確認するという提案は適切なものでした。実際には、ナビゲーション コントローラーが読み込みと表示の間にサイズを変更していることがわかりました。私の解決策は、せいぜいハックですが、ロード時に指定されたフレームをキャッシュし、tableView:cellForRowAtIndexPath: の先頭で変更された場合はリセットすることでした。なぜそこに尋ねるのですか?それが私が見つけた唯一の場所だからです。
明らかに不適切であるため、これを解決策とは考えていませんが、他の誰かが読んでいるためには、うまくいくようです。