如何测试UICollectionView标头当前是否在视图rect中?

top*_*wik 4 objective-c ios uicollectionview uicollectionviewlayout uicollectionreusableview

我需要知道UICollectionView标头补充视图当前是否在视图中,以便在更改应用程序设置/首选项时强制它刷新/更新.

如果标题不在视图中,一旦滚动到,标题将被适当地绘制,但是现在只在加载时发生,如果用户滚动标题然后返回.

如果标题在视图中,我需要它来更新,但我真的不想每次这个设置改变时重新加载整个第0部分(只是当标题在视图中时...).

ben*_*uuu 6

你可以做一些事情,比如在视图出列时保留一个属性.然后使用以下方法更改它:

- (void)collectionView:(UICollectionView *)collectionView didEndDisplayingSupplementaryView:(UICollectionReusableView *)view forElementOfKind:(NSString *)elementKind atIndexPath:(NSIndexPath *)indexPath;
Run Code Online (Sandbox Code Playgroud)

根据您希望更新的发生方式,您可以保持bool isVisible,或者在出现时启动NSTimer,并在计时器消失时停止计时.

不幸的是,它看起来并不像有一个visibleSupplementaryViews方法.