Сборный вид с автоматическими ячейками перестает работать после перезагрузки - PullRequest
0 голосов
/ 11 декабря 2018

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

// called in viewDidLoad()

private func setupCollectionView() {
    let cellNib = UINib(nibName: SomeCell.nibName, bundle: nil)
    collectionView.register(cellNib, forCellWithReuseIdentifier: SomeCell.reuseIdentifier)

    guard let flowLayout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout else { return }

    flowLayout.estimatedItemSize = UICollectionViewFlowLayout.automaticSize
    flowLayout.itemSize = UICollectionViewFlowLayout.automaticSize
}

Ячейка имеет 1 представление, которое имеет ограничение по высоте.Это представление подпредставляет метку, которая ограничена 2 строками и не ограничена шириной.Идея здесь состоит в том, чтобы позволить label вычислять свой собственный текст подгонки ширины в 2 строки.

Чтобы сделать эту работу, я добавил следующий код в класс ячеек:

override func awakeFromNib() {
    super.awakeFromNib()

    contentView.translatesAutoresizingMaskIntoConstraints = false

    contentView.leftAnchor.constraint(equalTo: leftAnchor).isActive = true
    contentView.rightAnchor.constraint(equalTo: rightAnchor).isActive = true
    contentView.topAnchor.constraint(equalTo: topAnchor).isActive = true
    contentView.bottomAnchor.constraint(equalTo: bottomAnchor).isActive = true
}

Теперь это работает отлично.Ячейки автоматически меняются, scrollView выполняет горизонтальную прокрутку и т. Д. Пока я не вызову reloadData() хотя бы один раз.Тогда ячейки имеют размер 50x50 и больше никогда не меняются автоматически, пока я не покину экран и не вернусь снова.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...