如何动态调整UITableView的高度?
答
您可以实现表视图委托的tableView:willBeginEditingRowAtIndexPath:
和tableView:didEndEditingRowAtIndexPath:
来分别确定给定行(以及表)进出编辑模式的时间。
从那里,你可以适当地调整表视图的frame.size.height
属性的值(可选地在UIView动画块内)。如果您在接收任何对它们的补充方法的调用之前接收到对这两个委托方法的多个调用,那么在委托方法内作为一个整体来检查表视图的editing
属性也可能会有所帮助。
更多信息:
-
UITableView:
editing
财产 -
UITableViewDelegate:
tableView:willBeginEditingRowAtIndexPath:
方法(didEndEditing
也是本文档中)
答
您需要设置的tableview的界限:
CGRect tvbounds = [tableView bounds];
[tableView setBounds:CGRectMake(tvbounds.origin.x,
tvbounds.origin.y,
tvbounds.size.width,
tvbounds.size.height + 20)];
答
我发现在另一个视图中有一个浮动表格时,操纵“bounds”属性可能会导致一些意外的行为。有时桌子在增加高度时会向上扩展,即使原点仍然是0,0。
“帧” 属性可能会更有效:
CGRect tvframe = [tableView frame];
[tableView setFrame:CGRectMake(tvframe.origin.x,
tvframe.origin.y,
tvframe.size.width,
tvframe.size.height + 20)];