Swift 4 - UIRefreshControl на вертикальных задержках UICollectionView - PullRequest
0 голосов
/ 12 ноября 2018

По какой-то причине, моя тяга к обновлению действительно сложна. Под этим я подразумеваю, что для того, чтобы подтянуть и обновить, я должен начать с самого верха моего представления коллекции и прокрутить вниз до самого низа ... иногда мне даже приходится использовать второй палец, чтобы прокрутите еще, чтобы все заработало!

Вот как я инициализирую переподготовку:

private var refresher: UIRefreshControl!

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.

    refresher = UIRefreshControl()

    refresher.addTarget(self, action: #selector(self.requestRefreshContent), for: .valueChanged)

    if #available(iOS 10.0, *) {
        schoolPostsCollectionView.refreshControl = refresher
    }
    else {
        schoolPostsCollectionView.addSubview(refresher)
    }

    refresher.beginRefreshing()
}

Вот как я звоню beginRefreshing():

private func getContentOfSchool() {
    someBackgroundServerCall() {
        // some code

        ...

        DispatchQueue.main.async {
            self.refresher.endRefreshing()
            self.schoolPostsCollectionView.reloadData()
        }
    }
}

Есть идеи, почему это происходит?

1 Ответ

0 голосов
/ 12 ноября 2018

попробуйте это ....

refresher = UIRefreshControl()
    refresher.attributedTitle = NSAttributedString(string: "Refreshing...", attributes: nil)
    refresher.tintColor = UIColor.black
    refresher.addTarget(self, action: #selector(self.requestRefreshContent), for: .valueChanged)

    if #available(iOS 10.0, *) {
        schoolPostsCollectionView.refreshControl = refresher
    } else {
        schoolPostsCollectionView.backgroundView = refresher
    }
...