Изменение фрейма и содержимого Inset UICollectionView в layoutSubviews () с использованием IGListKit - PullRequest
0 голосов
/ 20 февраля 2019

Мне нужно изменить frame и верхнюю вставку содержимого (contentInset.top) моего представления коллекции (то есть UICollectionView).Изменения верхней вставки и фрейма зависят от границ суперпредставления и смещения содержимого представления коллекции, поэтому я помещаю изменяющий вставку код в layoutSubviews().

override func layoutSubviews() {
  super.layoutSubviews()

  collectionView.collectionViewLayout.invalidateLayout()
  collectionView.contentInset.top = new_inset_top
  collectionView.frame = new_frame
}

Однако представление коллекции делаетновые учетные вставки не учитываются, и журнал показывает следующее:

Поведение UICollectionViewFlowLayout не определено, поскольку: высота элемента должна быть меньше высоты UICollectionView за вычетом вставки сечения top инижние значения, минус верхние и нижние значения содержимого.

Как это исправить, чтобы представление представления коллекции отображалось правильно?

Я использую IGListKit

1 Ответ

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

Вам не нужно делать все это внутри layoutSubviews.

в viewDidLoad реализовать его следующим образом:

func viewDidLoad() {
    super.viewDidLoad()

    // let say you want 40px top inset
    collectionView.contentInset = UIEdgeInsetsMake(40, 0, 0, 0)
}

Другое дело, что я не получаюпочему вы устанавливаете кадр в layoutSubviews.Нет необходимости устанавливать frame для изменения contentInset.

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