UICollectionView глюки при прокрутке - PullRequest
0 голосов
/ 20 мая 2019

Я реализую UICollectionView для загрузки всей контактной информации на экране.Поддерживая чистоту основного и фонового потоков, я загружаю данные в коллекцию.Теперь, когда данные загружены, и я начинаю прокручивать, это дает мне крайнюю задержку / дрожание кадров.Я не уверен, почему это происходит.Все мои данные в фоновом потоке.

ниже код:

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let data : PhoneContact!
    data = allContacts[indexPath.row]
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: friendsCellID, for: indexPath) as! FriendsCell
    cell.label.text = data.name
    return cell
}

// Cell has only label
override init(frame: CGRect) {
    super.init(frame: frame)
    backgroundColor = UIColor(rgb: (r: 232, g: 231, b: 222))
    setLabel()
}

allContact имеет геттер, который каждый раз выбирает контакты из телефонной книги.Я думаю, это может быть проблемой.Но не уверен.Можно мне на это посмотреть?Я думаю, что не думаю о чем-то и в итоге получаю ошибочный результат.

1 Ответ

1 голос
/ 20 мая 2019

Ваш пример UICollectionViewController, а не UITableViewController. Если бы вы использовали UITableViewController, вы могли бы попытаться реализовать делегат UITableViewDataSourcePrefetching для обработки длительных операций, но я не думаю, что это происходит здесь.

Если вы снимаете ячейку с представления коллекции в раскадровке, вы должны , а не иметь инициализатор для нее. Вместо этого, поскольку все, что вы делаете в инициализаторе, это настройка метки и цвета фона, это должно быть сделано в раскадровке, и между ячейкой и ее меткой должна быть подключена розетка.

...