iOS 9.0 之后,官方提供了两个属性,支持 UICollectionView 的 header 和 footer 悬停效果。
// Set these properties to YES to get headers that pin to the top of the screen and footers that pin to the bottom while scrolling (similar to UITableView).
@property (nonatomic) BOOL sectionHeadersPinToVisibleBounds API_AVAILABLE(ios(9.0));
@property (nonatomic) BOOL sectionFootersPinToVisibleBounds API_AVAILABLE(ios(9.0));
字面意思写的非常清楚,而这两个属性属于 UICollectionViewFlowLayout ,所以使用方法也很明显。
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
layout.sectionHeadersPinToVisibleBounds = YES;
layout.sectionFootersPinToVisibleBounds=YES;
这里需要注意的是,UICollectionView 的 header 是由 UICollectionReusableView 创建的。请确保 reusableView 只有一个直接子控件,如果 reusableView 直接添加了多个子控件,将不会出现悬停效果。










网友评论