2015-09-23 156 views
1

iOS9爲UICollectionView實現了一個很好的重新排序功能。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中有2個不同大小的單元格,wh我將一個小小區拖到一個小小區,他們改變了他們的地方,一切都很好。當我將一個大單元拖到一個大單元格上時,情況也是如此。

但是當我在一個大單元格上拖動一個小單元格時,大單元格變小而小單元格變大。 如何防止細胞改變其大小?

回答

1

我想,你有你委託方法-collectionView:layout:sizeForItemAtIndexPath:實施。此方法嚴格說,不返回單元格的大小。它返回指定位置處的單元格大小。因此,當收集視圖訂單發生變化並以某種方式做出響應時,您應該抓住時機,告知-collectionView:layout:sizeForItemAtIndexPath:返回正確的尺寸。

或者,您可以簡單地實施自我大小調整集合視圖單元格。查看WWDC 2014「表和集合視圖中的新功能」。這很容易驚人©

欲瞭解更多關於自我尺寸的細胞:SO answer