如何动态调整UITableView的高度?

Boo*_*oon 7 iphone uikit

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

该怎么做?

Lav*_*tis 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)];
Run Code Online (Sandbox Code Playgroud)


rei*_*ein 5

您需要设置tableview的边界:

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


Tim*_*Tim 2

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

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

更多信息: