The only solution I could come up with that had barely-acceptable behavior:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (self.collectionView.contentOffset.y < 0) {
self.collectionView.contentOffset = CGPointMake(self.collectionView.contentOffset.x, 0.0);
}
}
As well as setting the height of the content to fmax(self.collectionView.frame.size.height + 20, [self stackedSectionHeight])
in collectionViewContentSize
This removes the space above the section header, but it removes the "bounce" from the top. A pretty sub-optimal solution, but fairly acceptable.
I'll accept a better answer if anyone has one, or if I find one I'll update this answer.