我想在我的单元格上添加一个自定义按钮,它与刷卡删除功能相同.所以当点击我的自定义按钮时,这个将被隐藏,让出现官方的红色“删除”按钮.
所以我做了这样的事情:
/// 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; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。