如何将UICollectionViewCell带到前面?

时间:2014-02-15 18:29:10

标签: ios objective-c ipad uicollectionview uicollectionviewcell

我最近发现了收藏视图,现在我的生活更加简单,但我有一个问题。我(显然)在视图中有一些单元格,但内部的内容可以被挤压。我使用一个在单元格框架外扩展的动画,正如您可以想象的那样,当单元格内部的圆圈变大时,附近的其他单元格会覆盖它。在我使用bringSubviewToFront之前,一切正常。但现在我很困惑,不知道如何“带来CellToFront”。那我该怎么做呢? 谢谢你的建议!

2 个答案:

答案 0 :(得分:5)

标准UICollectionViewLayoutAttributes对象具有zIndex属性(documentation)。这决定了细胞的前后顺序。

您的布局类应该使用它来确定哪个单元格最前面。您需要对单元格的索引路径进行一些引用,然后可以将其传递给布局对象,以便它知道要应用哪个z索引。您可能必须在触发动画时使布局无效,因此单元格位于最前面。

答案 1 :(得分:0)

除了jrturton的答案之外,我还将发布代码段以实现您的期望。在您的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)
}

您可以使用负值将视图发送到背面。