我可以使用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