我可以使用Table View Cell原型作为标题,这样我就可以完成Interface Builder中的所有工作。也许,这是适用于集合视图,以及:
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
AXSHomeSectionHeaderCell *sectionHeader = [tableView dequeueReusableCellWithIdentifier:@"Home Section Header"];
return sectionHeader;
}
我想看看:
dequeueReusableSupplementaryViewOfKind:withReuseIdentifier:forIndexPath:
---编辑---
也许我没有完全理解你的问题与上面的答案。你想要一个UIView,你可以直接连接到你的视图控制器,但你希望它与Collection视图一起滚动?我过去使用的一种技术是在一个UIScrollView中使用UIView和UICollectionView,其中集合视图的宽度/高度总是尽可能大,因此它不会获得滚动视图本身,然后应用大小到滚动视图UIView和UICollectionView都在,所以他们滚动为一体。
这是我如何处理这种情况:
例
我有一个UIScrollView与一个UIView如在顶部和低于一个UICollectionView的报头。 UIScrollView具有决定自动布局约束的高度,需要将其设置为其内部两个视图内容的高度(也可能是宽度)。我只知道在加载数据后收集视图有多大,所以我在重新加载并在此之后调整大小后开始测量。
// Method being called after I successfully fetched my data
- (void)handleSuccess:(HomeScreenData *)homeScreen {
self.eventsCollectionViewDatasource.featuredEvents = homeScreen.events;
[self.eventsCollectionView reloadData];
float headerHeight = CGRectGetHeight(self.headerView.frame);
float eventsCollectionHeight = self.eventsCollectionView.contentSize.height;
float totalScrollerHeight = headerHeight + eventsCollectionHeight; // This is how tall the scroller should be, you can do more fancy stuff if you need the width as well
self.scrollViewContainerViewHeight.constant = totalScrollerHeight; // With autolayouts, use whatever you like
}
它也将支持滚动滚动!事实上,我用它是一个旋转木马类型的收集视图顶部横向滚动和它下面的一个表,它垂直滚动在一起与顶级集合视图为基础的传送带。它与Interface Builder中的任何其他非重复嵌套项目一样平易近人。
我在想你在编辑中描述的方法,但我对性能有点担心,因为在这种情况下单元不会被重用。我想有可能会丢弃一个静态的UIView作为CollectionView的头部,就像在UITableView中一样,但它看起来好像不可能 – Claus 2014-10-31 10:18:18
我强烈建议采取这种方法,您可以在Collection中查看所有需要显示的大小所有的单元格,并把它们放在一起,在它们自己的scrollview中包含一个头部UIView。这听起来像你试图弯曲UICollectionView太多了。如果你有耐心,我可以搜索一些我的代码并发布。 – 2014-10-31 13:25:02
我会努力的,听起来像是一个很好的解决方案。谢谢! – Claus 2014-10-31 14:21:33