gpt4 book ai didi

objective-c - UICollectionView 如何删除单元格(相当于 commitEditingStyle)?

转载 作者:太空狗 更新时间:2023-10-30 03:31:40 26 4
gpt4 key购买 nike

我正在使用 UICollectionView 构建我的第一个应用程序,并注意到在对象删除方面我无能为力。对于 UITableView 应用,有滑动删除方法:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete) {
// Delete the row from the data source
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}

}

当我使用GMGridView时,它有类似于在iPhone主屏幕上长按的行为—— View 星星摇动,并且可以显示一个删除按钮,它负责删除 View 。我当然可以尝试复制这种行为,但不确定用户是否会“理解”。

我感兴趣的是让用户从 UICollectionView 中删除对象的选项是什么 - 我是否必须实现自己的删除手势/控件,或者是否有我缺少什么(或开源)?

最佳答案

我将这段代码插入到包含 CollectionView 的 View Controller 中,并以这种方式完成。您可能已经在使用点击手势来检测选定的单元格来执行类似的操作。

- (IBAction)didLongPressCellToDelete:(UILongPressGestureRecognizer*)gesture {
CGPoint tapLocation = [gesture locationInView:self.myCollectionView];
NSIndexPath *indexPath = [self.myCollectionView indexPathForItemAtPoint:tapLocation];
if (indexPath && gesture.state == UIGestureRecognizerStateBegan) {
NSLog(@"image with index %d to be deleted", indexPath.item);
self.itemToBeDeleted = indexPath.item;
UIAlertView *deleteAlert = [[UIAlertView alloc]
initWithTitle:@"Delete?"
message:@"Are you sure you want to delete this image?"
delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Yes", nil];
[deleteAlert show];

}
}


- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
NSLog(@"selected button index = %d", buttonIndex);
if (buttonIndex == 1) {
// Do what you need to do to delete the cell
[self.myCollectionView reloadData];
}
}

关于objective-c - UICollectionView 如何删除单元格(相当于 commitEditingStyle)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15620591/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com