web-dev-qa-db-ja.com

スクロールバーなしでUITableViewの高さを取得する

UITableViewの全高(つまり、スクロールするものがなくなる高さ)を取得する必要があります。これを行う方法はありますか?

私はもう試した [tableView sizeThatFits:CGSizeZero]ですが、それは0x0 CGSizeのみを返します。

40
igul222

UITableViewのスーパークラスであるUIScrollViewから継承されたcontentSizeメソッドを試してください。ただし、contentSizeが正しくない値または古い値を返す場合があるため、最初にlayoutIfNeededを呼び出して、テーブルのレイアウトを再計算する必要があります。

- (CGFloat)tableViewHeight
{
   [tableView layoutIfNeeded];
   return [tableView contentSize].height;
}
93
Todd Yandell

必須Swift 3.2.2回答。

var tableViewHeight: CGFloat {
    tableView.layoutIfNeeded()

    return tableView.contentSize.height
}
7
CodeBender