回答編集履歴

2

追記

2019/10/30 08:47

投稿

退会済みユーザー
test CHANGED
@@ -7,3 +7,69 @@
7
7
  tagの管理からは開放されると思います。
8
8
 
9
9
  質問者さんがほしいtagというのがindexPath.rowならばそれがいいんじゃないでしょうか?
10
+
11
+
12
+
13
+ セルからVCへ送るのはセル自身でも、tag:Intでも、タップされたボタンでも都合のいいものを送って
14
+
15
+ VC側で送られてきたものからindexPathを取り出せばいいんじゃないの?
16
+
17
+
18
+
19
+ ```swift
20
+
21
+ // カスタムセル内
22
+
23
+
24
+
25
+ weak var customCellDelegate: CustomCellDelegate?
26
+
27
+
28
+
29
+ @IBAction func btnDidTap(_ sender: UIButton) {
30
+
31
+ customCellDelegate?.doSomething(cell: self)
32
+
33
+ }
34
+
35
+
36
+
37
+
38
+
39
+ // delegate
40
+
41
+ protocol CustomCellDelegate: class {
42
+
43
+ func doSomething(sell: UITableViewCell)
44
+
45
+ }
46
+
47
+
48
+
49
+
50
+
51
+ // VC
52
+
53
+ func doSomething(cell: UITableViewCell) {
54
+
55
+ guard let indexPath = tableView.indexPath(for: cell) else { return }
56
+
57
+
58
+
59
+ // 取得したindexPathをつかってなんかする。
60
+
61
+
62
+
63
+ }
64
+
65
+ ```
66
+
67
+ これはボタンかな。
68
+
69
+
70
+
71
+ https://teratail.com/questions/160978
72
+
73
+
74
+
75
+ あなたがいつもやってることで、取り立ててコードをとかいうものではないですよ。

1

訂正

2019/10/30 08:47

投稿

退会済みユーザー
test CHANGED
@@ -1,6 +1,6 @@
1
1
  `deleteRows`,`insertRow`などのセルのアニメーションを利用したい場合や
2
2
 
3
- `reloadData`した場合の画面のチラツキが気になるという場合などの場合`reloadData()`できないので、
3
+ `reloadData`した場合の画面のチラツキが気になるという場合`reloadData()`できないので、
4
4
 
5
5
  セルの編集(挿入、削除、並び替え)が頻繁に発生するtableViewを作る場合は、tagに`cellForRowAt`で番号を付与するのではなく、ボタンが押されたセルの`indexPath`、セクションの`index`を`indexPathForCell`や`rectForSection`から取得するようにすると、
6
6