Предпочитаю большие заголовки и RefreshControl не работает хорошо - PullRequest
0 голосов
/ 05 июня 2018

Я использую это учебное пособие , чтобы реализовать поведение "тянуть-обновить" с RefreshControl.Я использую Navigation Bar.При использовании обычных заголовков все работает хорошо.Но при использовании «Предпочитать большие заголовки» он работает неправильно, как вы можете видеть в следующих видео.Кто-нибудь знает почему?Единственным изменением между видео является проверка раскадровки на «Предпочитать большие заголовки».

With With normal title

Ответы [ 5 ]

0 голосов
/ 26 июня 2019

Единственное решение, которое работало для меня с использованием XIB, было одним из решений Бруно: https://stackoverflow.com/a/54629641/2178888

Однако я не хотел использовать XIB.Я изо всех сил пытался заставить эту работу с помощью кода с помощью AutoLayout.

Я наконец нашел решение, которое работает:

    override func loadView() {
        super.loadView()
        let tableView = UITableView()
        //configure tableView
        self.view = tableView
    }
0 голосов
/ 08 апреля 2019

Кажется, есть много разных причин, которые могли бы сделать это, для меня я встроил TableView в ViewController. Я установил верхнее руководство по разметке таблицы на суперпредставление с 0 .После всего этого ничего не осталось, пока я не завернул редактирование конца RefreshControl в блок с задержкой:

DispatchQueue.main.async {
   if self.refreshControl.isRefreshing {
       DispatchQueue.main.asyncAfter(deadline: .now() + 1.0, execute: {
            self.refreshControl.endRefreshing()
       })
   }
}
0 голосов
/ 25 сентября 2018

Если вы использовали tableView.tableHeaderView = refreshControl или tableView.addSubView(refreshControl), попробуйте использовать tableView.refreshControl = refreshControl

0 голосов
/ 11 февраля 2019

У меня та же проблема, и ни один из других ответов не помог мне.

Я понял, что изменил ограничение верхней части табличного представления с безопасной области на superview исправил эту странную ошибку вращения.

Кроме того, убедитесь, что постоянное значение для этого ограничения равно 0 *.

if using storyboard

0 голосов
/ 06 июня 2018

В конце концов у меня сработало:

  • Чтобы исправить ошибку исчезновения индикатора выполнения RefreshControl с большими заголовками:

    self.extendedLayoutIncludesOpaqueBars = true
    
  • Чтобы исправить смещение списка после refreshcontrol.endRefreshing():

    let top = self.tableView.adjustedContentInset.top
    let y = self.refreshControl!.frame.maxY + top
    self.tableView.setContentOffset(CGPoint(x: 0, y: -y), animated:true)
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...