【发布时间】:2014-11-15 22:36:46
【问题描述】:
目标是 iOS 7+ iPhone 4s、5、5s、6、6+
按照设计,我有一个滚动视图,其中包含一个仅显示一行单元格的集合视图。
使用此设置,效果很好。用户可以从右到左或上下滚动并比较单元格的内容。
滚动视图支持上/下滚动。集合视图支持左右滚动。
在每个集合视图单元格的顶部,我有一个 titleView(显示为“Some Title”)。当用户上下滚动时,我希望每个单元格的 titleView 始终浮动在屏幕顶部。 (见下图)
我已经接近答案了。我使用 scrollViewDidScroll 并将 titleView.origin.y 设置为 scrollView.contentOffset.y。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView;
{
for (CVKRecipeCollectionViewCell *cell in self.collectionView.visibleCells) {
CGRect myFrame = cell.titleView.frame;
myFrame.origin.y = scrollView.contentOffset.y;
cell.titleView.frame = myFrame;
}
}
当用户上下滚动时有效。但是,当用户向右/向左滚动时,titleView 会将自身重置回其原始 y 位置 0。
如何将 titleView 保持在我在 scrollViewDidScroll 中指定的 y 位置?
显示问题的代码位于: https://bitbucket.org/finneycanhelp/kata_collection_view_and_flow_layout/branch/floating-title-view
CVKMainViewController 有 scrollViewDidScroll 方法。
【问题讨论】:
标签: ios objective-c uiscrollview uicollectionview uicollectionviewcell