我发现,在contentInset
时更改tableView的endingRefreshing()
会互相冲突。
代码:
func reloadData(){
...
self.refreshControl.endRefreshing()
self.displayInfoViewIfNeeded()
}
func displayInfoViewIfNeeded(){
if self.shouldInfoViewBeVisible == true {
self.infoView.isHidden = false
UIView.animate(withDuration: 0.25){
self.tableView.contentInset = UIEdgeInsets(top: 50, left: 0, bottom: 0, right: 0)
}
} else {
self.infoView.isHidden = true
UIView.animate(withDuration: 0.25){
self.tableView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
}
}
}
问题在于,有时它会导致奇怪的插入结果。
我该如何解决?如果shouldInfoViewBeVisible == true
,我需要在顶部留一点空间(因为这样我会在顶部的tableView上方显示一个视图)。
还有另一种方法可以实现这一目标吗?或您有什么建议?
答案 0 :(得分:0)
您可以尝试
self.tableView.contentOffset = CGPoint(x:0,y:50)
另一种尝试将表的顶部约束挂钩为outlet,然后这样做
self.tblTop.constant = shouldInfoViewBeVisible ? 0 : 50
UIView.animate(withDuration: 0.25){
self.view.layoutIfNeeded()
}