uableview編集モード中に表示されない左の削除アイコン
-
10-10-2019 - |
質問
コアデータ/ uitableviewベースのアプリがあります。実際、これまでのコードの80%は、Apple Sample App Coredatarecipesに等しくなります。私の問題は、編集モードを入力すると(編集ボタンを押して)、行の左側に「バッジの削除」がないことです。バンパー。
coredatarecipesを使用したコードの違い:
- コードのみではなく、nibファイルを備えたカスタムuitabelviewセルがあります。
- 私のテーブルビューは、クラスビュー内のアウトレットです。したがって、私のクラスRecipeListTableViewControllerは、UableViewControllerの代わりにTableView Delegatesを持つUIViewControllerです
私が試したこと:
- TableViewは正常に動作します。リンクまたは委任の問題はありません
- テーブルが実際に編集モードに入るかどうかを確認しました。します。 「追加」ボタンが無効になっているため、それを見ることができます。
編集スタイルが問題ないかどうかを確認しました。デフォルトである必要がありますが、私が追加したことを確認する必要があります:
(uitableviewcelleditingStyle)tableView:(uitableView*)tableVieweditingStyleForroAtIndexpath(nsindexpath*)indexpath {return uitableviewcelleditingStyledElete;}
Cellviewの後ろにない削除アイコンを確認しました。存在しません。私は今、右に移動するセルの挙動はiOSによって処理されていると思います。
- セルをスワイプすると、右の削除ボタンが表示され、必要に応じて機能します
- 私はレイアウトサブビューで自分の行動を自分で構築しようとしました。編集モードに入ると何も変わりません。しかし、スワイプすると、1つの行にサブビューが表示されます。
誰かアイデアはありますか?それは単純なものでなければなりません。
解決
それを確認してください
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
return YES;
}
これがyesを返すように設定されていない場合、バッジは有効になりません。デフォルトはnoを返すように設定されています
他のヒント
あなたはラインを追加していないと思います tableView.editing=YES
編集]ボタンをクリックすると
設定して試してみてください!
あなたのものはuiviewcontrollerであるため、TableViewは設定コールを取得しません。追加するだけです:
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
[super setEditing:editing animated:animated];
[self.tv setEditing:editing animated:YES];
}
アウトレット/デリゲート/ DataSourceをセットアップしていることを確認してください。
-(void)editButtonTapped
{
[self.tableView setEditing:YES animated:YES];
}
-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
return YES;
}
-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
return UITableViewCellEditingStyleDelete;
}