2013-04-04 153 views
1

我在Xcode 4.6中有一個集合視圖的應用程序。我爲每個集合視圖單元添加了一個刪除按鈕,以便爲用戶提供刪除單元的選項。從集合視圖中刪除集合視圖單元格Xcode

儘管我意識到集合視圖與表視圖相似(並且我知道如何從表視圖中刪除單元格),但刪除對象似乎在集合視圖中工作方式不同。我查看了收集視圖的類參考,但是作爲iOS新手,我無法將他們的建議代碼應用到我的項目中。該文檔顯示了刪除單元格的以下建議代碼:

[self.collectionView performBatchUpdates:^{ 
NSArray* itemPaths = [self.collectionView indexPathsForSelectedItems]; 

// Delete the items from the data source. 
[self deleteItemsFromDataSourceAtIndexPaths:itemPaths]; 

// Now delete the items from the collection view. 
[self.collectionView deleteItemsAtIndexPaths:tempArray]; 
} completion:nil]; 

因此,我將此代碼添加到了我的按鈕操作方法中。並且它在「temp array」中表示,我將集合視圖所使用的數組替換爲其數據源,以確定要顯示的單元格數量。但我對「deleteItemsFromDataSourceAtIndexPaths:」是什麼感到困惑。這是一個委託方法嗎?編譯器警告說它沒有被聲明。我不確定該從哪裏出發。

任何幫助表示讚賞。

+0

它似乎是從數據源數組中刪除給定的NSIndexPaths的實用方法。這並不難。 – CodaFi 2013-04-04 16:07:15

回答

2

它說「臨時數組」,我用集合視圖正在使用的數組作爲其數據源來確定要顯示的單元格的數量。

這是你的第一個問題:數組很可能不包含NSIndexPath的實例,這就是該方法所期望的。您可能需要的是傳入itemPaths數組,這將使集合視圖從字面上移除「所有選定行的索引路徑」。

「deleteItemsFromDataSourceAtIndexPaths:」是。這是一個委託方法嗎?

不是,那是僞代碼。 Apple沒有看到有必要討論如何從循環中的數組中刪除對象,我也沒有必要自己實現該方法,或者希望NSIndexPath不會執行,並使用-removeObjectsInArray:正確更新您的數據源。

0

Clear sample可在這裏。首先從數據源中刪除,然後從視圖中刪除這些索引路徑。 2步操作,並應按照相同的順序完成。

相關問題