teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

1

2020/01/24 00:53

投稿

takabosoft
takabosoft

スコア8356

answer CHANGED
@@ -17,5 +17,17 @@
17
17
  > func hitLayer(touch:UITouch) -> CALayer
18
18
 
19
19
  の関数の実装を見直し、
20
- view.layer.sublayerの中からMyShapeLayerのものだけを抽出し(インスタンス①とします)、
20
+ view.layer.sublayersの中からMyShapeLayerのものだけを抽出し(インスタンス①とします)、
21
- その①のインスタンスに対してhitTest関数を呼び出し、ヒットしていることが判れば、①のインスタンスを選択レイヤーとして保持すれば期待通りの結果になるのではないかと思います。
21
+ その①のインスタンスに対してhitTest関数を呼び出し、ヒットしていることが判れば、①のインスタンスを選択レイヤーとして保持すれば期待通りの結果になるのではないかと思います。
22
+
23
+ 以下疑似コードです。コンパイル通るかためしていませんが雰囲気だけでも伝われば。
24
+
25
+ ```swift
26
+ for layer in view.layer.sublayers {
27
+ if let myLayer = layer as? MyShapeLayer {
28
+ if myLayer.hiiTest(...) != nil {
29
+ return myLayer
30
+ }
31
+ }
32
+ }
33
+ ```