何时知道UITableView的内容大小



我想添加一个子视图到我的UITableView的底部,为了做到这一点,我需要知道表视图的contentSize属性。但我在考虑最好的方法,我的意思是什么时候,用什么方法;当我创建表格视图时,我仍然不知道有多少单元格。

那么我可以在numbersOfRowsInSections中做吗?或者在cellForRowAtIndexPath中更合适,询问委托它是否是最后一个单元格,并在那一刻添加它,只是第一次。

如果tableView只是作为子视图添加,viewWill/DidAppear不会被调用,所以它们都不是一个真正的选择。

UPDATE:我应该清除(按照第一个答案),它必须在表下,但在表中,而不是在superView中,不想使用页脚,它必须是一个添加的子视图。我知道如何得到的内容大小,我问自己在哪里是更好的地方处理它。

UPDATE 2:我已经说过了,回答下面的评论,但我想我也必须把它放在这里,因为这引发了投票。我只是不关心页脚视图。页脚视图不是这里的问题,我不想使用它,我已经知道如何手动添加子视图。我只是在问,在什么时间,用什么方法,问表视图的contentSize。

是否更好

将想要放置在表底部的视图分配给表的tableFooterView属性

UITableView有一个tableFooterView属性http://developer.apple.com/library/IOs/#documentation/UIKit/Reference/UITableView_Class/Reference/Reference.html

我认为在你的视图中设置这个属性可以达到你想要的效果

-(float)getTableViewHeight
{
[self.tableView layoutIfNeeded];
return self.tableView.contentSize.height;
} 

我想这就是你需要的。

try this one
-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section 
{
//you can add your view in this method. with return key
//like
return view;
}

你可以通过下面的代码

NSLog(@"%f",YourTableObject.contentSize.height);

最新更新