在结束刷新的同时更改tableView内容插入吗?

时间:2019-01-13 21:49:17

标签: swift tableview

我发现,在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上方显示一个视图)。

还有另一种方法可以实现这一目标吗?或您有什么建议?

1 个答案:

答案 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()
}