我有一个UICollectionView
有几个单元格 - 视口外总是有一些单元格,所以有一些单元格被重用。
当事件发生时,我想拍摄一个特定的单元格并将其移动到UICollectionView
的前面。为了使moveItemAtIndexPath()
工作,我需要知道我想要移动的Cell的当前indexPath
。
当我使用CollectionViewDelegate
方法初始化cellForItemAtIndexPath
中的单元格时,我将其indexPath
保存到作为Cell模型的Object的变量中(不是它的实际对象,只是模型)。然后,当我想移动单元格时,我会查看此变量。
只要单元格可见一次就可以正常工作 - 它似乎只是启动了,即使它始终是CollectionViewData
的一部分。
如何确保CollectionViewCell
indexPath
有 - (CGSize)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout *)collectionViewLayout
sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
CGSize size;
CGRect bounds = [[UIScreen mainScreen] bounds];
double bWidth = (bounds.size.width/320)* 200 ; // 200 is your cell width which given in xib
double bheight = (bWidth/320)* 250 // 250 is your cell height which given in xib;
size = CGSizeMake(bWidth, bheight);
return size;
}
,即使它不可见或尚未显示?
答案 0 :(得分:1)
如果您知道要在UICollectionView
的前面(我假设是最顶层)显示哪些数据(单元格),为什么不直接更新dataSource
并重新加载{ {1}}?