我想在我的单元格上添加一个与刷卡到删除功能相同的自定义按钮.所以当点击我的自定义按钮时,这个将被隐藏,让我们出现官方的红色"删除"按钮.
所以我做了类似的事情:
/// 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;
}
}
Run Code Online (Sandbox Code Playgroud)
此时,我的自定义按钮在点击它们时会隐藏,但官方的红色"删除"按钮没有出现.
有人知道如何处理这个?
我相信删除按钮由tableView处理更多.因此,您可能需要让tableView知道它应该编辑,而不是设置您的单元格编辑.
- (IBAction)deleteDrug:(id)sender event:(id)event {
selectedButtonIndex = [self indexPathForButton:sender event:event];
[tableView setEditing:YES animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
所以你可能需要做一些事情,比如设置tableView进行编辑.然后在tableview的数据源中,您可以实现此方法,其中selectedButton是正确单元格的索引路径.
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath == selectedButtonIndex) {
return YES;
}
return NO;
}
Run Code Online (Sandbox Code Playgroud)
您可能需要为数据源实现此方法.
- (UITableViewCellEditingStyle) tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
return UITableViewCellEditingStyleDelete;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12884 次 |
| 最近记录: |