如何解决UITableView编辑不起作用
| 我有一个UITableView,它位于弹出窗口中的NavigationController中。因此,我放置了一个可以正常工作的edit / done UIToolBarItem,您可以看到显示的删除附件图标。但是,当我重新排列项目时,“编辑/完成”按钮将停止工作... 我进行了调试,但仍然可以调用它,但它似乎没有更新,并且可以防止其他按钮进行任何进一步的更新。模拟器可能有问题吗? 我在这里先向您的帮助表示感谢! 编辑:添加代码addButton = [[UIBarButtonItem alloc] initWithTitle:@\"Edit\" style:UIBarButtonItemStyleBordered target:self action:@selector(editTable:)];
然后在方法上:
- (IBAction) editTable: (id) sender
{
if ([[addButton title] isEqualToString:EDIT_STRING]) {
[addButton setTitle:DONE_STRING]; //enabling edit mode
[super setEditing:YES animated:YES];
[[self tableView] setEditing:YES animated:YES];
}
else {
[addButton setTitle:EDIT_STRING]; //done with editing
[[self tableView] setEditing:NO animated:YES];
[super setEditing:NO animated:YES];
[[self tableView] setNeedsdisplay];
[[self tableView] reloadData];
}
}
第二部分肯定会随着addButton文本的更改而调用。但是,一旦我进行了修改(例如重新安排一行),它就会停止工作
解决方法
好的,
我似乎已经调用了[tableView beginUpdates],而从未调用过endUpdates,这导致所有更新均未注册。如果有人这样做...
,
- (void)tableView:(UITableView *)tableview commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
[self.tv deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
[self.tv reloadData];
}
}
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
[super setEditing:editing animated:animated];
[self.tv setEditing:editing animated:YES];
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。