質問

コアデータ/ uitableviewベースのアプリがあります。実際、これまでのコードの80%は、Apple Sample App Coredatarecipesに等しくなります。私の問題は、編集モードを入力すると(編集ボタンを押して)、行の左側に「バッジの削除」がないことです。バンパー。

alt text

coredatarecipesを使用したコードの違い:

  1. コードのみではなく、nibファイルを備えたカスタムuitabelviewセルがあります。
  2. 私のテーブルビューは、クラスビュー内のアウトレットです。したがって、私のクラスRecipeListTableViewControllerは、UableViewControllerの代わりにTableView Delegatesを持つUIViewControllerです

私が試したこと:

  • TableViewは正常に動作します。リンクまたは委任の問題はありません
  • テーブルが実際に編集モードに入るかどうかを確認しました。します。 「追加」ボタンが無効になっているため、それを見ることができます。
  • 編集スタイルが問題ないかどうかを確認しました。デフォルトである必要がありますが、私が追加したことを確認する必要があります:

    (uitableviewcelleditingStyle)tableView:(uitableView*)tableVieweditingStyleForroAtIndexpath(nsindexpath*)indexpath {return uitableviewcelleditingStyledElete;}

  • Cellviewの後ろにない削除アイコンを確認しました。存在しません。私は今、右に移動するセルの挙動はiOSによって処理されていると思います。

  • セルをスワイプすると、右の削除ボタンが表示され、必要に応じて機能します
  • 私はレイアウトサブビューで自分の行動を自分で構築しようとしました。編集モードに入ると何も変わりません。しかし、スワイプすると、1つの行にサブビューが表示されます。

alt text

誰かアイデアはありますか?それは単純なものでなければなりません。

役に立ちましたか?

解決

それを確認してください

- (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;
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top