检查下图。我需要突出显示关注的单元格,使其高于collectionView
中的所有单元格。
我知道我必须改变焦点细胞的zIndex
。怎么做?
我需要逻辑。我的代码在objective-c
。
这适用于tvOS
但iOS
代码也可以在此处使用。
答案 0 :(得分:11)
您是否尝试过为cell.layer.zPosition
设置值?
答案 1 :(得分:8)
尝试手动将layer.zPosition
应用为zIndex
子类的applyLayoutAttributes:
方法中的UICollectionViewCell
:
- (void)applyLayoutAttributes:(UICollectionViewLayoutAttributes *)layoutAttributes
{
[super applyLayoutAttributes:layoutAttributes];
self.layer.zPosition = layoutAttributes.zIndex;
}
答案 2 :(得分:3)
您需要创建自定义集合视图流布局。根据集合视图的滚动位置或可见的rect计算zIndex。样本类如下所示。
final class CustomCollectionViewLayout: UICollectionViewFlowLayout {
override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? {
let attributes = super.layoutAttributesForElements(in: rect)
attributes?.forEach {
$0.zIndex = 0 //Compute and set
}
return attributes
}
override func layoutAttributesForItem(at indexPath: IndexPath) -> UICollectionViewLayoutAttributes? {
let attribute = super.layoutAttributesForItem(at: indexPath)
attribute?.zIndex = 0 //Compute and set
return attribute
}
}
答案 3 :(得分:-1)
也许将集合视图的z位置设置为-2,取消高亮显示为-1并突出显示为0