Apple提供UICollectionViewFlowLayout
类,以及UICollectionViewDelegateFlowLayout
协议,使用
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAtIndex section: Int) -> CGFloat
和
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAtIndex section: Int) -> CGFloat
我的理解是,默认情况下,UICollectionViewController
将自己设置为UICollectionViewFlowLayout
的委托。所以我假设UICollectionViewFlowLayout
有一个委托属性要设置。但如果我将其子类化,就没有这样的东西。默认行为是否仍然适用,自动设置委托?或者我只是误解了它是如何工作的?
答案 0 :(得分:3)
如果你注意,你会发现.box :hover {
background-color:red;
}
.div box_position :hover{
border-color:black;
font-size:20px
}
也是UICollectionViewDelegateFlowLayout
:
UICollectionViewDelegate
因此@protocol UICollectionViewDelegateFlowLayout <UICollectionViewDelegate>
委托也是UICollectionView
委托。我对如何实现这一点的猜测是,内部布局做了类似的事情:
UICollectionViewFlowLayout
答案 1 :(得分:0)
delegate
属性位于UICollectionView
上(与dataSource
一样)。 UICollectionViewController
只是将自己设置为它拥有的集合视图的委托,您可以继承UICollectionViewController
来实现所需的委托方法。
请注意UICollectionViewDelegateFlowLayout
继承自UICollectionViewDelegate
(这是UICollectionView.delegate
所期望的),如果您实现自己的布局类&amp ;,则可以遵循相同的模式。协议