如何将 UICollectionViewCell 放在前面?
Posted
技术标签:
【中文标题】如何将 UICollectionViewCell 放在前面?【英文标题】:How to bring a UICollectionViewCell to front? 【发布时间】:2014-02-15 18:29:09 【问题描述】:我最近发现了集合视图,现在我的生活变得简单多了,但我遇到了一个问题。我(显然)在视图中有一些单元格,但里面的内容可以被捏住。我使用了一个在单元格框架外展开的动画,正如您可以想象的那样,当单元格内的圆圈变大时,附近的其他单元格会覆盖它。在我简单地使用bringSubviewToFront 之前,一切正常。但现在我很困惑,不知道如何“bringCellToFront”。那么我该怎么做呢? 谢谢你的建议!
【问题讨论】:
【参考方案1】:标准的UICollectionViewLayoutAttributes
对象有一个zIndex
属性(documentation)。这决定了单元格的从前到后的顺序。
您的布局类应该使用它来确定最前面的单元格。您需要对单元格的索引路径有一些引用,然后您可以将其传递给布局对象,以便它知道要应用哪个 z 索引。您可能必须在触发动画时使布局无效,因此单元格位于最前面。
【讨论】:
【参考方案2】:除了jrturton
的回答,我会贴一个代码sn-p来实现你要的。在您的UIViewCollectionCell
中,只需覆盖以下方法:
override func apply(_ layoutAttributes: UICollectionViewLayoutAttributes)
layoutAttributes.zIndex = 1 // Or any other number you want. The higher, the front-errr (?) Default is 0
super.apply(layoutAttributes)
您可以使用负值将视图发送到后面。
【讨论】:
以上是关于如何将 UICollectionViewCell 放在前面?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 UICollectionViewCell 高度设置为视图(屏幕)高度的 90%?
如何将导航栏移到 UICollectionViewCell 之外?
如何将 UIView 约束为 UICollectionViewCell
如何将 UICollectionViewCell 放在前面?