私はカスタムUICollectionView
を持っており、セルはcellForItemAtにロードされていますが、visibleCells
を使用してすべての表示セルを取得しようとすると、cellはcellForItemAtにロードされていますが、visibleCellsにはありません
たとえば、cellForItemAt
では、セル内のラベルのアルファを0
に設定しています。私だけではなく、「可視」のすべての「ロード」のセルを変更するために何ができるか
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! CustomCell
cell.label.alpha = 0
return cell
}
:
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
handleLabel(scrollView, active: true)
}
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
if pickerIsActive { handleLabel(scrollView, active: false) }
}
private func handleLabel(_ scrollView: UIScrollView, active: Bool) {
guard let pickerView = scrollView as? UICollectionView else { return }
let cells = pickerView.visibleCells.flatMap { $0 as? CustomCell }
panningIsActive = active
UIView.animate(duration: 0.3) {
cells.forEach { $0.label.alpha = $0.isSelected || active ? 1 : 0 }
}
}
とcellForItemAtを:パンしたとき、私は、これらのラベルのアルファが1
に変更したいです細胞?
あなたはどんな細胞を手に入れようとしていますか、どの細胞を実際に入手していますか? – MendyK