Менять вставку содержимого tableView при завершении обновления? - PullRequest
0 голосов
/ 14 января 2019

Я обнаружил, что изменение 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 (потому что тогда я отображаю вид над таблицей Вид сверху).

Есть ли другой способ добиться этого? Или что бы вы предложили?

1 Ответ

0 голосов
/ 14 января 2019

Вы можете попробовать

self.tableView.contentOffset = CGPoint(x:0,y:50)

Еще одна попытка зацепить верхнее ограничение таблицы как выход, затем выполните

self.tblTop.constant = shouldInfoViewBeVisible ? 0 : 50
UIView.animate(withDuration: 0.25){
   self.view.layoutIfNeeded()
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...