2015-04-03 77 views
1

禁用补充视图(例如标题)的正确性是什么?有一次我想展示给他们(iPhone),有一次我不想展示给他们(iPad)。禁用补充视图

我现在唯一的想法是在referenceSizeForHeaderInSection返回零大小。但我认为创建视图是一种开销,根本不用。另一方面,我必须执行collectionView:viewForSupplementaryElementOfKind:atIndexPath:,我不能返回nil,因为应用程序崩溃了。

如何禁用UICollectionView中的补充视图?

回答

1

如果您从collectionView:layout:referenceSizeForHeaderInSection:返回CGSizeZero委托方法collectionView:viewForSupplementaryElementOfKind:atIndexPath:将不会被调用。

+0

你说得对。我没有检查过。 – testing 2015-04-03 12:03:55

0

苹果开发API参考指出约collectionView(_:layout:referenceSizeForHeaderInSection:)

如果在适当的滚动尺寸的大小为0,不添加报头。


以下雨燕4的代码片段显示,以显示或不UICollectionView补充意见可能实现的collectionView(_:layout:referenceSizeForHeaderInSection:)

// MARK: - UICollectionViewDelegateFlowLayout 

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize { 
    if UIDevice.current.userInterfaceIdiom == UIUserInterfaceIdiom.pad { 
     return CGSize.zero 
    } else { 
     let flowLayout = collectionView.collectionViewLayout as! UICollectionViewFlowLayout 
     return flowLayout.headerReferenceSize 
    } 
}