需要从 UICollectionView 中删除单元格
Need To delete cell from UICollectionView
我无法摆脱这个,我有一个带有自定义单元格的 UICollectionView,每个单元格都有一个 X 按钮可以将其从列表中删除,我传递给 button.tag IndexPath.item在删除功能上,我实现了以下方法:
- (void)DeleteProductFromArray:(UIButton *)button {
NSLog(@"item: %d",button.tag);
TagHelpConverted = [NSNumber numberWithInt:button.tag];
TagHelp = button.tag;
if(DeletedCells.count == 0)
{
[DeletedCells addObject:TagHelpConverted];
}
else
{
for(int i = 0; i < DeletedCells.count; i++)
{
if([TagHelpConverted compare:DeletedCells[i]] == NSOrderedDescending)
{
TagHelp--;
NSLog(@"ho diminuito il tag di 1");
}
}
[DeletedCells addObject:TagHelpConverted];
}
NSLog(@"valore tagHelp:%d", TagHelp);
[_feedItems removeObjectAtIndex:TagHelp];
[self.customCollectionView deleteItemsAtIndexPaths:@[[NSIndexPath indexPathForItem:TagHelp inSection:0]]];
[self.customCollectionView reloadData];
}
问题是当滚动 UICollectionView 调用 - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
和我的 NSMutableArray 存储哪个按钮已经被点击时 "old values" 与此方法分配的新按钮相比使应用程序删除 UICollectionView 中的随机项目。
我在 Internet 上搜索了有关删除 UICollectionView 单元格的帮助,但我几乎找到了任何东西,我在这方面非常努力,但我找不到出路,如果有人有解决方案,请帮助我
要从 collectionView 中删除单元格,您可以将它们从数据源中删除并重新加载 collectionView。您希望确保您的数据源与屏幕上的内容保持同步。基本上,保持你的数据源你想要它并调用 [collectionView reloadData]。
- (void)didTapDeleteCellBtn:(UIButton *)deleteCellBtn {
UICollectionViewCell *cell = (UICollectionViewCell *)deleteCellBtn.superview.superview; // Make sure this gets the right cell for the button
NSIndexPath *indexPath = [self.customCollectionView indexPathForCell:cell];
id item = self.feedItems[indexPath.row];
NSMutableArray *updatedFeedItems = [self.feedItems mutableCopy];
[updatedFeedItems removeObject:item];
self.feedItems = [NSArray arrayWithArray:updatedFeedItems];
[self.customCollectionView reloadData];
}
我无法摆脱这个,我有一个带有自定义单元格的 UICollectionView,每个单元格都有一个 X 按钮可以将其从列表中删除,我传递给 button.tag IndexPath.item在删除功能上,我实现了以下方法:
- (void)DeleteProductFromArray:(UIButton *)button {
NSLog(@"item: %d",button.tag);
TagHelpConverted = [NSNumber numberWithInt:button.tag];
TagHelp = button.tag;
if(DeletedCells.count == 0)
{
[DeletedCells addObject:TagHelpConverted];
}
else
{
for(int i = 0; i < DeletedCells.count; i++)
{
if([TagHelpConverted compare:DeletedCells[i]] == NSOrderedDescending)
{
TagHelp--;
NSLog(@"ho diminuito il tag di 1");
}
}
[DeletedCells addObject:TagHelpConverted];
}
NSLog(@"valore tagHelp:%d", TagHelp);
[_feedItems removeObjectAtIndex:TagHelp];
[self.customCollectionView deleteItemsAtIndexPaths:@[[NSIndexPath indexPathForItem:TagHelp inSection:0]]];
[self.customCollectionView reloadData];
}
问题是当滚动 UICollectionView 调用 - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
和我的 NSMutableArray 存储哪个按钮已经被点击时 "old values" 与此方法分配的新按钮相比使应用程序删除 UICollectionView 中的随机项目。
我在 Internet 上搜索了有关删除 UICollectionView 单元格的帮助,但我几乎找到了任何东西,我在这方面非常努力,但我找不到出路,如果有人有解决方案,请帮助我
要从 collectionView 中删除单元格,您可以将它们从数据源中删除并重新加载 collectionView。您希望确保您的数据源与屏幕上的内容保持同步。基本上,保持你的数据源你想要它并调用 [collectionView reloadData]。
- (void)didTapDeleteCellBtn:(UIButton *)deleteCellBtn {
UICollectionViewCell *cell = (UICollectionViewCell *)deleteCellBtn.superview.superview; // Make sure this gets the right cell for the button
NSIndexPath *indexPath = [self.customCollectionView indexPathForCell:cell];
id item = self.feedItems[indexPath.row];
NSMutableArray *updatedFeedItems = [self.feedItems mutableCopy];
[updatedFeedItems removeObject:item];
self.feedItems = [NSArray arrayWithArray:updatedFeedItems];
[self.customCollectionView reloadData];
}