我遇到问题,viewForSupplementaryElementOfKind
委托功能从未检测到UICollectionElementKindSectionFooter
。
因此,标题已创建,但页脚从未创建。
我还实施了委托referenceSizeForHeaderInSection
和referenceSizeForFooterInSection
方法。
我也注册了NIB。
collectionView.register(UINib(nibName: "FooterCollectionReusableView", bundle: nil), forSupplementaryViewOfKind: UICollectionElementKindSectionFooter, withReuseIdentifier: "footerIdentifier");
collectionView.register(UINib(nibName: "HeaderCollectionReusableView", bundle: nil), forSupplementaryViewOfKind: UICollectionElementKindSectionHeader, withReuseIdentifier: "headerIdentifier");
以下是无效的代码。
func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
var view: UICollectionReusableView! = UICollectionReusableView();
switch kind {
case UICollectionElementKindSectionHeader:
print("HEADER DETECTED");//CALLED
break;
case UICollectionElementKindSectionFooter:
print("FOOTER DETECTED");//NEVER CALLED
break;
default:
break;
}
return view;
}
有人可以帮我吗?
P.S。:我读过一些人说在footerReferenceSize
的布局中设置collectionView
会有效,但是我尝试过它也不起作用
答案 0 :(得分:0)
确保你有一个实现
func collectionView(
_ collectionView: UICollectionView,
layout collectionViewLayout: UICollectionViewLayout,
referenceSizeForFooterInSection section: Int
) -> CGSize
此外,此函数应返回非零大小。我发现如果有任何机会返回零维,UIKit 将推断没有页脚需要出列并且不会调用您的 viewForSupplementaryElementOfKind
函数,或者 supplementaryViewProvider
如果您使用引入的可区分数据源在 iOS 13 中。