gpt4 book ai didi

ios - 如何将 UITableViewCell 显示为选中状态并仍然接收 didDeselectRowAtIndexPath

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:33:37 25 4
gpt4 key购买 nike

我有一个 UITableView,当 isEditing=YES 显示带有标准 iOS 选择圆形“复选框”的单元格(见下图)。其中一些已通过 CoreData“添加书签”。

tableView:willDisplayCell 从 CoreData 读取并设置cell.selected = YES; 用于已添加书签的单元格。

问题是这些“加了书签”的单元格不响应

tableView:didDeselectRowAtIndexPath

tableView:didSelectRowAtIndexPath

而相同的回调在具有 cell.selected=NO;

的单元格上工作正常

图像显示了一个选中的单元格在一个未选中的单元格上方。 enter image description here

这是在内部执行的

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath


if (tableView.isEditing)
{ [cell setSelected:[self isCellFave:indexPath]]; }

isCellFave 在哪里

- (BOOL) isCellFave:(NSIndexPath *) indexPathIn
{
BOOL isSelected = NO;
// Check if this cell is a favourite
NSError *error;

NSString * id = [self getIDFromIndexPath:IndexPathIn];

NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Event"];
request.predicate = [NSPredicate predicateWithFormat:@"( id = %@ )", id];
request.sortDescriptors = @[[[NSSortDescriptor alloc] initWithKey:@"sort1" ascending:YES selector:@selector(caseInsensitiveCompare:)]];

NSArray *fetchedObjects = [ManagedContext executeFetchRequest:request error:&error];

if ([fetchedObjects count] !=0) //if a result then it is a fave
{
// When we set a cell as selected, all gestures stop working - so we can't deselect it.
isSelected=YES;
}
return isSelected;
}

最佳答案

尝试使用这些代码。

   - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
if (tableView.isEditing) {
[cell setSelected:[self isCellFave:indexPath]];
[cell addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(unselectRow:)]];
}
}
}

然后添加一个点击手势处理程序

- (void)unselectRow:(UITapGestureRecognizer *)sender {
UITableViewCell *cell = (UITableViewCell *) sender.view;
cell.selected = NO;
}

关于ios - 如何将 UITableViewCell 显示为选中状态并仍然接收 didDeselectRowAtIndexPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43072913/

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