加载集合视图时隐藏标题

时间:2016-12-14 10:04:00

标签: swift header collectionview

我使用NVActivityIndicatorView来加载动画。 我有这些功能来添加和删除活动指示器。

func addActivityIndicator() {}
func startActivityIndicatorView() {}
func stopActivityIndicatorView() {}

我有一个标题,我在

中实现
override func collectionView(collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, atIndexPath indexPath: NSIndexPath) -> UICollectionReusableView {
   let headerView = ...
   return headerView 
}

我的问题是在loadingView加载时标题是可见的。我希望在collectionView加载时隐藏它。

1 个答案:

答案 0 :(得分:1)

你可能正在执行一些异步操作,同时指示器是动画的,所以你应该通过调用Id让集合视图知道操作已经完成,所以它将通过{重新布局它的UI元素,包括头文件{1}}:

首先,如果指示符在屏幕上,那么您需要从collectionView:layout:referenceSizeForHeaderInSection返回reloadData,这样就不会填充标题:

viewForSupplementaryElementOfKind

然后,无论您在哪里隐藏活动指示器(可能在异步操作的完成块中),都应该调用CGSize.zero,以便再次调用func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize { if indicatorView.isAnimating { return CGSize.zero } else { return CGSize(width: collectionView.frame.width, height: 50) } }

collectionView.reloadData