が複数回呼び出されると誤解していると思いますtableView:heightForRowAtIndexPath:
(テーブルの行ごとに1回)。
行の高さが異なる場合は、現在の行とその高さを決定する必要があります。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
{
CGFloat height;
if (0 == indexPath.row) {
// This is the first row
height = // what ever you want
} else if (1 == indexPath.row) {
// This is the second row
height = // what ever you want
}
return height;
}
後で行を異なる高さにする必要があると判断した場合でも、各行に使用する正しい高さを計算する必要があるのはこのメソッドです。このようにtableViewをリロードせずにこれを強制的に呼び出すことができます
[tableView beginUpdates];
[tableView endUpdates];