私はUITableViewControllerのフローを理解するのに苦労しています。私はもちろんのtableViewを収容tableViewControllerを持ってheightForRowAtIndexPathは常に2回呼び出されます
:基本的にここに私の構造です。ここでは、getCellContentViewとcellForRowAtIndexPathを使用して、自分のセルに関連するすべての作業を行います。私のセルには、それぞれの向きのフレームが1つずつある、少数のUILabelsがあります。私はオリエンテーションの変更とフレームの再描画を正しく検出して実行します。問題はありません。ここまでは順調ですね。
は、今私は景観のために100を返すと、縦向きのための200を言うためにheightForRowAtIndexPathを必要としています。私の問題は、NSLogを内部に置くと、tableViewを回転させるときに何らかの理由でメソッドが2回呼び出されるということです。誰かが、なぜそのメソッドが回転で2回起動されるのか知っていますか?私は、-reloadDataが問題になるかもしれないと思っていました。私はwillRotateToInterfaceOrientationメソッドの中で一度だけ-reloadDataを呼び出し、コード内ではどこにも呼び出されません(最初のviewDidLoad呼び出し内を除く)。
なぜ、各回転イベントでheightForRowAtIndexPathが2回呼び出されるのですか?また、heightForRowAtIndexPathも、回転が始まるときに向きを正しく判別できないようです。ステータスバーの向きプロパティを使用して、heightForRowAtIndexPathの内部をチェックし、適切なセルの高さを返します。どんな助けも素晴らしいだろう!それは呼ばれていた回数を気に
氏deanWombourne、私はあなたを愛して!働いた!現在、テーブルが2回レンダリングされる理由(2回のreloadData呼び出しが行われた場合のように)を実際に調べるために、回転内部を読み込みます。 – user511872