gpt4 book ai didi

ios - 以编程方式触发 UITableViewCell "Delete"按钮

转载 作者:技术小花猫 更新时间:2023-10-29 10:39:33 24 4
gpt4 key购买 nike

我想在我的单元格上添加一个自定义按钮,其功能与滑动删除功能相同。所以当点击我的自定义按钮时,这个按钮将被隐藏以显示官方的红色“删除”按钮。

所以我做了类似的事情:

/// Controller.m
///
/// @brief Delete icon button pressed. Trigger display of Delete full button
///
- (IBAction)deleteDrug:(id)sender event:(id)event {
NSIndexPath *indexPath = [self indexPathForButton:sender event:event];
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
[cell setEditing:YES animated:YES];
}

/// CustomCell.m
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
[super setEditing:editing animated:animated];

// hide / show "modify" button when entering in edit mode
switch (editing) {
case YES:
self.deleteButton.hidden = YES;
break;
case NO:
self.deleteButton.hidden = NO;
break;
default:
break;
}
}

此时,我的自定义按钮在点击它们时会隐藏起来,但官方的红色“删除”按钮没有出现。

有人知道如何处理吗?

最佳答案

我相信删除按钮更多地由 tableView 处理。因此,与其设置单元格编辑,不如让 tableView 知道它应该进行编辑。

- (IBAction)deleteDrug:(id)sender event:(id)event {
selectedButtonIndex = [self indexPathForButton:sender event:event];

[tableView setEditing:YES animated:YES];
}

因此您可能需要执行一些操作,例如将 tableView 设置为可编辑。然后在您的 TableView 的数据源中,您可以实现此方法,其中 selectedButton 是正确单元格的索引路径。

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath == selectedButtonIndex) {
return YES;
}

return NO;
}

您可能需要为您的数据源实现此方法。

- (UITableViewCellEditingStyle) tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
return UITableViewCellEditingStyleDelete;
}

关于ios - 以编程方式触发 UITableViewCell "Delete"按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15480860/

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