Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 获取不带滚动条的UITableView的高度_Ios_Iphone_Uitableview_Cocoa Touch_Uikit - Fatal编程技术网

Ios 获取不带滚动条的UITableView的高度

Ios 获取不带滚动条的UITableView的高度,ios,iphone,uitableview,cocoa-touch,uikit,Ios,Iphone,Uitableview,Cocoa Touch,Uikit,我需要获得UITableView的完整高度(即没有更多可滚动的高度)。有没有办法做到这一点 我尝试了[tableView sizeThatFits:CGSizeZero],但这只返回0x0CGSize尝试contentSize方法,该方法继承自UITableView的超类UIScrollView。但是,您可能会发现contentSize返回的值不正确或过期,因此您可能应该首先调用layoutIfNeeded来重新计算表的布局 - (CGFloat)tableViewHeight { [ta

我需要获得
UITableView
的完整高度(即没有更多可滚动的高度)。有没有办法做到这一点


我尝试了
[tableView sizeThatFits:CGSizeZero]
,但这只返回0x0
CGSize
尝试
contentSize
方法,该方法继承自UITableView的超类UIScrollView。但是,您可能会发现
contentSize
返回的值不正确或过期,因此您可能应该首先调用
layoutIfNeeded
来重新计算表的布局

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

如果一个表视图的行数发生了变化,并且您确实需要知道包含上次变化的表视图的内容大小,那么我没有发现layoutifneedd方法实际上有帮助

经过一点修改,我知道了如何强制表视图重新计算其内容大小。在我的例子中,重置表视图框架就足以使其工作:

- (CGSize)com_lohika_contentSize
{
    CGRect theFrame = self.frame;
    self.frame = CGRectZero;
    self.frame = theFrame;
    [self layoutIfNeeded];
    return [self contentSize];
} 

尝试传入不同的CGSize参数,而不是cgsizero。sizeThatFits:方法使用该参数计算其结果。试着从打电话的任何班级输入self.view.size。

必修swift3.02.2回答

var tableViewHeight: CGFloat {
    tableView.layoutIfNeeded()

    return tableView.contentSize.height
}