質問編集履歴

4

訂正

2020/09/03 03:24

投稿

mskRR
mskRR

スコア6

test CHANGED
File without changes
test CHANGED
@@ -4,4 +4,46 @@
4
4
 
5
5
  ~~`shouldHighlightRowAt`と`contextMenuConfigurationForRowAt`が呼ばれるのが順不同っぽいのですが、~~
6
6
 
7
- `contextMenu`表示時にshouldHighlightRowAt`内部で処理を分岐する方法はないでしょうか?
7
+ `contextMenu`表示時に`shouldHighlightRowAt`内部で処理を分岐する方法はないでしょうか?
8
+
9
+
10
+
11
+ きちんと長押しされれば、`contextMenuConfigurationForRowAt`→`shouldHighlightRowAt`の順番に呼ばれるので、フラグでごまかしていますが、管理が煩わしくなるので、余計なフラグなどを設定せずに実現できないでしょうか?
12
+
13
+
14
+
15
+ ```swift
16
+
17
+
18
+
19
+ var inProcess = false
20
+
21
+
22
+
23
+ func tableView(_ tableView: UITableView, shouldHighlightRowAt indexPath: IndexPath) -> Bool {
24
+
25
+ if inProcess { return false }
26
+
27
+ // 略
28
+
29
+ }
30
+
31
+
32
+
33
+ func tableView(_ tableView: UITableView, contextMenuConfigurationForRowAt indexPath: IndexPath, point: CGPoint) -> UIContextMenuConfiguration? {
34
+
35
+ inProcess = true
36
+
37
+ DispatchQueue.main.asyncAfter(deadline: .now() + 0.01) {
38
+
39
+ self.inProcess = false
40
+
41
+ }
42
+
43
+ // 略
44
+
45
+ }
46
+
47
+
48
+
49
+ ```

3

訂正

2020/09/03 03:24

投稿

mskRR
mskRR

スコア6

test CHANGED
File without changes
test CHANGED
@@ -2,6 +2,6 @@
2
2
 
3
3
  [shouldHighlightRowAt](https://developer.apple.com/documentation/uikit/uitableviewdelegate/1614988-tableview)が呼ばれて`shouldHighlightRowAt`内部に書かれている処理が実行されてしまいます。
4
4
 
5
- `shouldHighlightRowAt`と`contextMenuConfigurationForRowAt`が呼ばれるのが順不同っぽいのですが、
5
+ ~~`shouldHighlightRowAt`と`contextMenuConfigurationForRowAt`が呼ばれるのが順不同っぽいのですが、~~
6
6
 
7
7
  `contextMenu`表示時にshouldHighlightRowAt`内部で処理を分岐する方法はないでしょうか?

2

追記

2020/09/03 02:24

投稿

mskRR
mskRR

スコア6

test CHANGED
File without changes
test CHANGED
@@ -2,6 +2,6 @@
2
2
 
3
3
  [shouldHighlightRowAt](https://developer.apple.com/documentation/uikit/uitableviewdelegate/1614988-tableview)が呼ばれて`shouldHighlightRowAt`内部に書かれている処理が実行されてしまいます。
4
4
 
5
-
5
+ `shouldHighlightRowAt`と`contextMenuConfigurationForRowAt`が呼ばれるのが順不同っぽいのですが、
6
6
 
7
7
  `contextMenu`表示時にshouldHighlightRowAt`内部で処理を分岐する方法はないでしょうか?

1

訂正

2020/09/03 02:09

投稿

mskRR
mskRR

スコア6

test CHANGED
File without changes
test CHANGED
@@ -4,4 +4,4 @@
4
4
 
5
5
 
6
6
 
7
- `表示時に`shouldHighlightRowAt`内部で処理を分岐する方法はないでしょうか?
7
+ `contextMenu`表示時にshouldHighlightRowAt`内部で処理を分岐する方法はないでしょうか?