我有一个 UITableview 放在 JASidePanel 控制器中(https://github.com/gotosleep/JASidePanels)我在表格视图单元格上滑动,但视觉上没有任何反应。我查看了其他问题并实施了所有建议,但无法显示删除按钮。有谁知道什么会导致这种行为?
问问题
2724 次
3 回答
8
您必须实现tableView:editingStyleForRowAtIndexPath:
委托方法和tableView:commitEditingStyle:forRowAtIndexPath:
数据源方法。没有这些,删除将不会出现在单元格中。
我假设您是YES
从tableView:canEditRowAtIndexPath:
数据源方法返回的(至少对于适当的行)。
于 2013-03-18T02:50:20.223 回答
1
你试过这个类自己的删除单元格的方法吗?
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (UITableViewCellEditingStyleDelete) {
int k = [[tempArray objectAtIndex:indexPath.row] intValue];
//Remove object from index 'k'.
}
}
它可能对你有帮助。
谢谢。
于 2013-03-18T04:03:09.920 回答
0
在滑动 TableViewCell 时执行 UITableView 的删除操作。我们必须实现以下三种方法:-
此方法将在滑动 TableViewCell 时显示删除按钮。
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView
editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
NSUInteger row = [indexPath row];
NSUInteger count = [posts count];
if (row < count) {
return UITableViewCellEditingStyleDelete;
} else {
return UITableViewCellEditingStyleNone;
}
}
当用户在 TableViewCell 滑动时删除一行时调用此方法,并且在点击删除按钮时将删除滑动的行。
- (void)tableView:(UITableView *)tableView
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
forRowAtIndexPath:(NSIndexPath *)indexPath {
NSUInteger row = [indexPath row];
NSUInteger count = [posts count];
if (row < count) {
[posts removeObjectAtIndex:row];
}
}
最后,在删除行后调用此方法来更新表格视图。
- (void)tableView:(UITableView *)tableView
didEndEditingRowAtIndexPath:(NSIndexPath *)indexPath {
[self updateViewTitle];
[tableView reloadData];
}
于 2018-01-30T07:24:02.703 回答