全画面でUITableViewを表示しているが、表示するデータが少ない際は空のセルを表示せず、テーブル背後のビュー等を見せたい場合があった。
表示する内容(=contentSize)に応じてテーブルを伸縮させればよい。
// テーブルロード後に以下を実行すればよい.
- (void)updateTableSize:(UITableView *)tableView
{
tableView.frame =
CGRectMake(tableView.frame.origin.x,
tableView.frame.origin.y,
tableView.contentSize.width,
MIN(tableView.contentSize.height,
tableView.bounds.size.height));
}
// 例.
- (void)hoge
{
[_tableView reloadData];
[self updateTableSize:_tableView];
}