访问 collectionView 单元格可见/不可见
Posted
技术标签:
【中文标题】访问 collectionView 单元格可见/不可见【英文标题】:Accessing collectionView cells visible/invisible 【发布时间】:2018-11-06 06:53:54 【问题描述】:我有一个功能可以翻转我的集合视图单元格,它工作正常。我的问题是我想翻转所有单元格而不仅仅是这个可见的单元格,所以当我滑动到下一个单元格时它会被翻转。
这就是我用来翻转一个可见单元格的方法。任何正确方向的帮助将不胜感激。
func flipAction()
let visibleRect = CGRect(origin: mainCollecView.contentOffset, size: mainCollecView.bounds.size)
let visiblePoint = CGPoint(x: visibleRect.midX, y: visibleRect.midY)
let visibleIndexPath = mainCollecView.indexPathForItem(at: visiblePoint)
let cell = mainCollecView.cellForItem(at: visibleIndexPath!) as! MainCollectionViewCell
if cell.isFlipped == false
//Flip card
cell.flip()
cell.isFlipped = true
flipBtn.setImage(UIImage(named: "reversed"), for: .normal)
else
// Flip the card back
flipBtn.setImage(UIImage(named: "Calendar"), for: .normal)
cell.flipBack()
cell.isFlipped = false
【问题讨论】:
用 var myarr = Array您可以使用不同的方法。但是,如果您希望全部翻转,请在您的 Class 中使用一个变量,例如
var isFlipped:Bool = false
现在在你的函数中:
flipAction()
isfliped = !isfliped
mycollection.reload() //where mycollection is yours
然后在你的
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
if isfliped == false
// your code for cell when is not flipped
else
//your code for cell when is flipped
这样,所有单元格将立即翻转或不翻转,而不取决于它们是否可见。
【讨论】:
感谢您的回复。您的解决方案不起作用,因为我在按钮内使用翻转方法而不是 collectionViewcellForItemAt。 无论你怎么称呼它,它都会设置一个声明为通用的值,并且你的集合视图会根据该值重新加载。以上是关于访问 collectionView 单元格可见/不可见的主要内容,如果未能解决你的问题,请参考以下文章
尝试在collectionview中为不可见单元格设置动画时如何防止延迟
无法从 UITest 中的 CollectionView 元素访问单元格