【问题标题】:UICollectionView ReorderUICollectionView 重新排序
【发布时间】:2015-09-23 10:03:20
【问题描述】:

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];
}

'cells'数组只是用来保存视图中单元格的顺序

--

现在我的问题/问题:

我的 CollectionView 中有 2 个不同大小的单元格,当我将一个小单元格拖到一个小单元格上时,它们改变了位置,一切正常。当我将一个大单元格拖到一个大单元格上时也会发生同样的情况。

但是当我将一个小单元格拖到一个大单元格上时,大单元格会变小,而小单元格会变大。 我怎样才能防止细胞改变它们的大小?

【问题讨论】:

    标签: ios objective-c uitableview ios9


    【解决方案1】:

    我猜,你已经实现了委托方法-collectionView:layout:sizeForItemAtIndexPath:。严格来说,此方法返回的不是单元格的大小。它返回指定位置的单元格大小。所以,你应该抓住时机,当集合视图顺序发生变化并以某种方式响应它,告诉-collectionView:layout:sizeForItemAtIndexPath: 返回正确的大小。

    或者,您可以简单地实现 self-sizing 集合视图单元格。看看 WWDC 2014“表和集合视图的新功能”。这很容易惊人©

    有关自定尺寸单元的更多信息:SO answer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-09
      • 2016-05-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多