下記の画像をチェックしてください。私はにを強調表示する必要がありますそれはすべての細胞の上にあるようにcollectionView
。
私は、フォーカスされたセルのzIndex
を変更する必要があることを知っています。どうやってするか?
私はロジックが必要です。私のコードはobjective-c
です。UICollectionView zIndexを変更するには?
これはtvOS
ですが、iOS
のコードもここで動作します。
下記の画像をチェックしてください。私はにを強調表示する必要がありますそれはすべての細胞の上にあるようにcollectionView
。
私は、フォーカスされたセルのzIndex
を変更する必要があることを知っています。どうやってするか?
私はロジックが必要です。私のコードはobjective-c
です。UICollectionView zIndexを変更するには?
これはtvOS
ですが、iOS
のコードもここで動作します。
cell.layer.zPosition
の設定値を試しましたか?
これは動作しますが、手動で前のセルのレイヤーのzPositionを0に、現在のアクティブなセルレイヤーのzPositionを1に設定する必要があります。 – abhi1992
は、カスタムコレクションビューのFlowLayoutのを作成する必要があります。コレクションビューのスクロール位置または表示可能な矩形に基づいてzIndexを計算します。サンプルクラスを以下に示します。
class CustomCollectionViewLayout : UICollectionViewFlowLayout {
override func layoutAttributesForElementsInRect(rect: CGRect) -> [UICollectionViewLayoutAttributes]? {
let attributes = super.layoutAttributesForElementsInRect(rect)
attributes?.forEach {
$0.zIndex = 0 //Compute and set
}
return attributes
}
override func layoutAttributesForItemAtIndexPath(indexPath: NSIndexPath) -> UICollectionViewLayoutAttributes? {
let attribute = super.layoutAttributesForItemAtIndexPath(indexPath)
attribute?.zIndex = 0 //Compute and set
return attribute
}
}
UICollectionViewCell
サブクラスのzIndex
applyLayoutAttributes:
における方法であることがlayer.zPosition
を適用手動で試し:
- (void)applyLayoutAttributes:(UICollectionViewLayoutAttributes *)layoutAttributes
{
[super applyLayoutAttributes:layoutAttributes];
self.layer.zPosition = layoutAttributes.zIndex;
}
このメソッドで現在選択されているインデックスを取得する方法 –
多分にハイライトを消し、-2コレクションビューのz位置を設定-1と0
に強調これのサンプルコードはありますか? –
私は持っていません。私が正しく覚えていれば、 'didUpdateFocusInContext:'メソッドの中で次のフォーカスされたセルのレイヤーの 'zPosition'を一つに変更するだけです。また、以前のフォーカスされたセルのzPositionをゼロに設定します。それは動作するはずです。 – abhi1992
これはUICollectionViewCellのメソッドですか?もしそうなら、私はそれを追加しましたが、呼び出されません。それ以上の設定は必要ですか? –