UICollectionView scrollToItem не работает в iOS - PullRequest
0 голосов
/ 08 мая 2018

Я использую представление коллекции, UICollectionView, и оно работает абсолютно великолепно ... за исключением того, что я не могу прокрутить до какого-либо конкретного элемента. Кажется, всегда прокручивать до «середины» - это мое лучшее предположение. В любом случае, все, что я посылаю scrollToItem, похоже, не влияет на прокрутку. Я поместил его в разные места на моем контроллере вида, но безуспешно.

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    let lastIndex = IndexPath(row: messages.count-1, section: 0)
    self.messagesView.scrollToItem(at: lastIndex, at: .bottom, animated: true)
}

1 Ответ

0 голосов
/ 08 мая 2018

Вы можете попробовать поместить код прокрутки в viewDidLayoutSubviews, который должен вызываться после загрузки всех ячеек таблицы, что означает, что ваш messages.count должен работать. Кроме того, убедитесь, что у вас есть только один раздел в представлении коллекции.

override func viewDidLayoutSubviews
{
    self.scrollToBottom()
}

func scrollToBottom() {
    DispatchQueue.main.async {
        let lastIndex = IndexPath(item: messages.count-1, section: 0)
        self.messagesView.scrollToItem(at: lastIndex, at: .bottom, animated: true)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...