如何动态调整UITableView的高度?

时间:2009-08-23 08:03:40

标签: iphone uikit

在我的应用程序中,我想调整tableview的高度,当它处于编辑模式时,而不是(因为在表格视图下方为编辑控件腾出空间)

应该怎么做?

3 个答案:

答案 0 :(得分:13)

我发现当你在另一个视图中有一个浮动表时,操纵“bounds”属性可能会导致一些意外的行为。有时,当增加高度时,表格会向上扩展,即使原点仍为0,0。

“frame”属性可能更有效:

CGRect tvframe = [tableView frame];
[tableView setFrame:CGRectMake(tvframe.origin.x, 
                                tvframe.origin.y, 
                                tvframe.size.width, 
                                tvframe.size.height + 20)];

答案 1 :(得分:5)

您需要设置tableview的界限:

CGRect tvbounds = [tableView bounds];
[tableView setBounds:CGRectMake(tvbounds.origin.x, 
                                tvbounds.origin.y, 
                                tvbounds.size.width, 
                                tvbounds.size.height + 20)];

答案 2 :(得分:2)

您可以实现表视图委托的tableView:willBeginEditingRowAtIndexPath:tableView:didEndEditingRowAtIndexPath:来确定给定行(以及表格)分别进入和退出编辑模式的时间。

从那里,您可以根据需要调整表视图的frame.size.height属性的值(可选地在UIView动画块内)。如果在接收对其补充方法的任何调用之前接收到对委托方法的多次调用,则在委托方法内部检查表视图的editing属性也可能会有所帮助。

更多信息: