Я реализовал подкласс UICollectionViewFlowLayout, который переопределяет только один метод func targetContentOffset(forProposedContentOffset proposedContentOffset: CGPoint, withScrollingVelocity velocity: CGPoint) -> CGPoint
. В этом методе я намереваюсь получить доступ к текущим свойствам макета уже обработанного представления коллекции, например: itemSize, sectionInsets и т. Д.
Однако, когда я пытаюсь получить доступ к нему, как self.itemSize
, он возвращает значение по умолчанию.
Apple Docs просит делегата CollectionView реализовать соответствующий метод делегата для каждого из этих свойств, например:
Если делегат не реализует collectionView: layout: sizeForItemAtIndexPath: метод, объект макета потока использует значение этого свойства для установки полей для каждого раздела.
Я реализовал все эти методы делегата в моем View Controller.
Теперь мой вопрос заключается в том, что эти значения не устанавливают базовые свойства объекта CollectionViewFlowLayout? Всегда ли проверяется, отвечает ли делегат конкретному соответствующему селектору и не сохраняет ли это значение в соответствующих свойствах?
Это правильный способ доступа к свойствам макета в объекте потока в collectionview?
let delegate = self.collectionView!.delegate as! UICollectionViewDelegateFlowLayout
let itemSize = delegate.collectionView(<#T##collectionView: UICollectionView##UICollectionView#>, layout: <#T##UICollectionViewLayout#>, sizeForItemAt: <#T##IndexPath#>)
Если да, то почему это такой затяжной подход? Если нет, то что мне не хватает?