iOS9为UICollectionView实现了一个很好的重新排序功能。
在我的CollectionViewController中,我实现了以下代码以使其工作:
- (void)collectionView:(UICollectionView *)collectionView moveItemAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath
{
_cells[sourceIndexPath.row][1] = [NSString stringWithFormat:@"%li", (long)destinationIndexPath.row];
_cells[destinationIndexPath.row][1] = [NSString stringWithFormat:@"%li", (long)sourceIndexPath.row];
[self saveCellorder];
}‘单元格’数组就在那里,以保存视图中单元格的顺序
--
现在谈谈我的问题/问题:
我的CollectionView里有两个不同大小的细胞,当我把一个小的细胞拖到一个小的细胞上时,它们会改变它们的位置,一切都很好。当我把一个大细胞拖过一个大细胞时,也会发生同样的情况。
但是当我把一个小细胞拖到一个大细胞上时,大细胞变小,小细胞变大。我怎样才能阻止细胞改变它们的大小?
发布于 2015-09-23 12:00:41
我想,您已经实现了委托方法-collectionView:layout:sizeForItemAtIndexPath:。严格地说,此方法返回的不是单元格的大小。它返回指定位置的单元格的大小。因此,当集合视图顺序发生变化并以一种方式对其作出响应时,您应该抓住时机,告诉-collectionView:layout:sizeForItemAtIndexPath:返回正确的大小。
或者,您可以简单地实现自调整大小的集合视图单元。看一看WWDC 2014“表和收藏视图中的新内容”。这很容易,令人惊叹
有关自调整单元格的更多信息:SO answer
https://stackoverflow.com/questions/32736568
复制相似问题