从 Collection View Xcode 中删除 Collection View Cell
Posted
技术标签:
【中文标题】从 Collection View Xcode 中删除 Collection View Cell【英文标题】:Delete Collection View Cell from Collection View Xcode 【发布时间】:2013-04-04 16:04:16 【问题描述】:我在 Xcode 4.6 中有一个带有集合视图的应用程序。我为每个集合视图单元格添加了一个删除按钮,以便为用户提供删除单元格的选项。
虽然我意识到集合视图类似于表格视图(并且我知道如何从表格视图中删除单元格),但删除对象在集合视图中的工作方式似乎有所不同。我查看了集合视图的类参考,但是作为 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];
所以我在按钮操作方法中添加了这段代码。在它说“临时数组”的地方,我替换了集合视图用作其数据源的数组来确定要显示的单元格的数量。但我对“deleteItemsFromDataSourceAtIndexPaths:”是什么感到困惑。这是委托方法吗?编译器警告它未声明。我不知道从这里去哪里。
感谢任何帮助。
【问题讨论】:
这似乎是一种从数据源数组中删除给定 NSIndexPaths 的实用方法。这并不难。 【参考方案1】:在它说“临时数组”的地方,我替换了集合视图用作其数据源的数组来确定要显示的单元格的数量。
这是您的第一个问题:数组很可能不包含 NSIndexPath 的实例,而这正是该方法所期望的。您可能想要的是传入itemPaths
数组,这将使集合视图从字面上删除“所有选定行的索引路径”。
"deleteItemsFromDataSourceAtIndexPaths:" 是。这是委托方法吗?
不,那是伪代码。 Apple 认为没有必要讨论如何在循环中从数组中删除对象,我也没有。您必须自己实现该方法,或者希望 NSIndexPath 不会起作用,并使用 @ 987654322@ 正确更新您的数据源。
【讨论】:
【参考方案2】:Clear sample 在这里可用。首先从数据源中删除,然后从视图中删除那些 indexPath。 2步操作,应按相同顺序完成。
【讨论】:
以上是关于从 Collection View Xcode 中删除 Collection View Cell的主要内容,如果未能解决你的问题,请参考以下文章
如何在ios中创建没有tableview和collection view的行
使用委托将数据从Collection View Controller传递到View Controller
使用委托将数据从 Collection View Controller 传递到 View Controller
将 UIImage 分配给 Collection View Cell
ScrollTo indexPath 在 Collection View Cell 内的 Collection View (Nested CollectionView)