[英]UITableView - resizing frame and scrolling to row
我有一个UITableView
,我需要显示一个选择器,因此我想缩短表框架的高度,同时滚动到该行以使其可见。
我这样做:添加400像素的底部边距(通过将底部约束距离设置为400)并滚动到该行
bottomConstraint.constant = 400
tableview.scrollToRow(at: currentIndexPath, at: .bottom, animated: true)
这两个命令都是自己工作的(我测试过)。 但是结果是缩短了表格,并且所选行没有出现在视线中(例如,如果该行是最后一行)。
显然发生的事情是在实际更新约束之前已处理滚动,因此,如果在更改约束之前该行可见,则在缩短表时不会滚动。
有任何想法吗?
设置约束后,需要调用self.view.layoutIfNeeded()
。 另一个选择是您可以设置约束变化的动画,并在完成处理程序中调用tableView.scroll...
,尽管设置约束的动画方法是设置常量,然后无论如何layoutIfNeeded
在动画块中调用layoutIfNeeded
,所以本质上是相同的除了视觉和时间方面。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.