【发布时间】:2018-06-21 11:25:10
【问题描述】:
我想要一个集合视图来翻阅单元格并居中,但显示上一个和下一个单元格的一部分,如下所示:
那里有大量的黑客攻击,但我想通过UICollectionView 的本机分页属性来实现这一点。将单元格设置为集合视图的整个宽度不会显示上一个/下一个单元格,并且使单元格宽度更小不会在分页时对齐到中心。
例如,是否可以将集合视图设为屏幕宽度的 80%,并让上一个/下一个单元格溢出边界(没有剪辑到边界)?
或者任何其他使用本机分页实现此目的的想法?
【问题讨论】:
-
您可以通过禁用
clipsToBounds来使用滚动视图。这将使它绘制滚动视图之外的内容。之后需要做的是覆盖hitTest,这样它甚至可以检测到超出其界限的触摸(最好在它的超级视图上完成)。但是由于单元格出列,集合视图可能有点问题。如果它需要一点缓冲区(至少在两个方向上加载/保持第一个屏幕外单元格),它可能会起作用,但它也可能是完全严格的,并且一旦单元格离开屏幕就删除它。如果您知道结果,请告诉我们。 -
另外,如果您正在寻找一个快速的解决方案,并且您不希望显示太多这些单元格,那么可以使用具有堆栈视图的滚动视图轻松完成结果。
-
我认为没有比手动执行此操作更好的方法了。我在这里发布了代码审查:codereview.stackexchange.com/questions/197017/…
-
其实可能有。如果我理解正确,您可以将流布局子类化并覆盖方法
targetContentOffset(forProposedContentOffset:)。基本上,您禁用分页,但可能会计算使分页生效所需的偏移量。
标签: ios uicollectionview uicollectionviewlayout