今、セルを左にスライドさせて「好きな」ボタンを表示してクリックすると、スワイプしたセルではなく、「好きな」ラベルがランダムなセルに表示されます。指定したボタンをタップすると、右のセルで「お気に入り」ラベルを表示/非表示にするにはどうすればよいですか?特定のセルにラベルを割り当てる方法は?
今editActionsForRowAt関数の私のコードは次のとおりです。
internal func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
let cell = tableView.dequeueReusableCell(withIdentifier: "TableViewCell", for: indexPath) as! TableViewCell
let favorite = UITableViewRowAction(style: .normal, title: "Favorite") { action, index in
cell.favoriteLabel.text = "Favorite"
tableView.reloadRows(at: [indexPath], with: .none)
}
favorite.backgroundColor = UIColor.orange
return [favorite]
}
問題は「favoriteLabel」=「お気に入り」は「お気に入り」
** 'cellForRowAtIndexPath'の外に再利用可能なセルを作成することは絶対にありません。モデル(データソース配列)を更新し、行またはテーブルビュー全体を再ロードします。 – vadian
@vadianどうすれば正しいセルを更新しているのですか(これは私の問題です)また、私のセルが別の関数で作成されていれば、私はどのように私の "favoriteLabel"にアクセスできますか? –
'dequeueReusableCell(withIdentifier:for:)'の代わりに 'cellForRow(at:)'メソッドを使用してください。 – rmaddy