たとえば、tableViewには100行ありheightForRowAtIndexPath:
、100行目が表示される前にすでに実行されています。
なんで?contentSize
tableViewを計算するには?
ありがとう!
たとえば、tableViewには100行ありheightForRowAtIndexPath:
、100行目が表示される前にすでに実行されています。
なんで?contentSize
tableViewを計算するには?
ありがとう!
Appleのドキュメントから:
テーブルビューが表示されるたびに、各行のデリゲートでtableView:heightForRowAtIndexPath:が呼び出されます。
そうです、セルを表示する前に呼び出されます。あなたがそれについて考えるならば、テーブルがそれを逆にした場合、それは標準の高さのセルを作成し、それにコンテンツを入れ、実際の高さを取得し、セルのサイズを変更/シフトします。それは本当にいいことではないでしょう。
これによりパフォーマンスの問題が発生する可能性があるため、高さが異なるセルがある場合にのみ使用してください。
このメソッドを使用すると、デリゲートはさまざまな高さの行を指定できます。このメソッドが実装されている場合、返される値は、指定された行のUITableViewのrowHeightプロパティに指定された値をオーバーライドします。
tableView:heightForRowAtIndexPath:
rowHeightプロパティの代わりに使用すると、パフォーマンスに影響があります。テーブルビューが表示されるtableView:heightForRowAtIndexPath:
たびに、各行のデリゲートが呼び出されます。これにより、多数の行(約1000以上)を持つテーブルビューで重大なパフォーマンスの問題が発生する可能性があります。
それ以外の場合、すべてのセルが同じ高さである場合は、rowHeight
プロパティを使用し、を実装しないでくださいtableView:heightForRowAtIndexPath:
。