2017-02-10 2 views
1

swift3UICollectionViewFlowLayoutDelegate insetForSectionAt никогда не называли

мне нужно использовать некоторые optional методы UICollectionViewDelegateFlowLayout, однако ниже метод никогда не вызывается.

insetForSectionAt

optional public func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets 

С UICollectionViewDelegateFlowLayout унаследованной от UICollectionViewDelegate - все, что нужно сделать, это назначить collection'sView делегата:

self.collectionView.delegate = self.delegate 

Обратите внимание, что все остальное работает отлично и методы, как sizeForItem или cellForItem вызывается.

+0

Сравните с этим http://stackoverflow.com/questions/41182854/how-to-give -width-and-height-programatically-for-collection-view-cell-in-ios-sw –

+0

эти ответы мне кажутся нецелесообразными -> «реализовать собственный класс макета потока» => нет, вам не нужно. Или они предлагают поддержку flowDelegateProtocol => но это не имеет значения, это просто для компилятора. – Injectios

+0

Вам нужно реализовать его сейчас, попробуйте после реализации 'UICollectionViewDelegateFlowLayout', он обязательно будет работать. –

ответ

0

Пожалуйста, убедитесь, что если вы реализовали UICollectionViewDelegateFlowLayout в своем классе, как это:

class ViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout { 

//...your code here 

}

+0

Разве вы не сказали, что метод не был вызван? – Sneha

+0

, что странно, но он работает, я сделаю ответ, но соглашусь с вами – Injectios

Смежные вопросы