因此,您似乎无法使用界面构建器将手势识别器添加到 UICollectionView 的补充视图中。
我相信这是因为当加载 .xib 时,UICollectionView 必须作为一件事出现在超级视图中——当您将手势识别器添加到该 UICollectionView 时,您最终会在超级视图级别得到两件事,它们都对应于UICollectionView。
但是,您可以使用 UICollectionViewReusableView 协议内的补充视图定义以编程方式实现手势识别器。(if 用于在代码后面区分页眉补充视图和页脚补充视图)
if (kind == UICollectionElementKindSectionHeader) {
MyHeaderView *headerView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"MY_HEADER" forIndexPath:indexPath];
// call headerView methods (to put things into the header's UI objects for example)
[headerView ...];
[headerView ...];
[headerView ...];
// add gesture recognition for tapping on a UIlabel within the header (UICollectionView supplementary view)
UITapGestureRecognizer *bioTap = [[UITapGestureRecognizer alloc] initWithTarget:headerView action:@selector(handleUILabelTap:)];
// make your gesture recognizer priority
bioTap.delaysTouchesBegan = YES;
bioTap.numberOfTapsRequired = 1;
[headerView.UILabelName addGestureRecognizer:UILabelTap];
reusableview = headerView;
}