JASidePanelコントローラー( https://github.com/gotosleep/JASidePanels )内に配置しているUITableviewがあります。initメソッドにデリゲートとデータソースを設定し、canEditRowAtIndexPathメソッドを実装しました。テーブルビューセルをスワイプしましたが、視覚的に何も起こりません。他の質問に目を通し、すべての提案を実装しましたが、削除ボタンを表示できません。誰かがこの行動を引き起こす原因を知っていますか?
質問する
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の削除アクションを実行します。次の3つのメソッドを実装する必要があります。-
このメソッドは、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 に答える