質問編集履歴

1

TsukubaDepotのご指摘により変更しました.

2020/09/20 03:33

投稿

ponponpoo
ponponpoo

スコア1

test CHANGED
File without changes
test CHANGED
@@ -99,3 +99,125 @@
99
99
  }
100
100
 
101
101
  ```
102
+
103
+
104
+
105
+ ### 追記
106
+
107
+
108
+
109
+ 親Viewの中にcontainerViewがあり,その中のImageViewを長押しすると
110
+
111
+ view1 view2が同じサイズ,位置,つまり,完全に重なった状態で親Viewに追加されます.
112
+
113
+ 長押しは何回でも出来るのでview1とview2の1組は何個も親Viewに存在します.
114
+
115
+ イメージ図はこんな感じです ↓
116
+
117
+ ![![イメージ説明](6839ce2f4d46c0fe3e64e1760deff45c.png)
118
+
119
+
120
+
121
+ **このような感じで,
122
+
123
+ 一回親に貼り付けられたview1とView2を一緒に動かしたいです.**
124
+
125
+
126
+
127
+ ContainerViewのViewControllerは親Viewと異なります.
128
+
129
+ ContainerViewで,長押しを感知し,View1とView2を生成しています.
130
+
131
+ 以下が該当コードです.
132
+
133
+
134
+
135
+ ContainerVC内で
136
+
137
+ ```swift
138
+
139
+ override func viewDidLoad() {
140
+
141
+ super.viewDidLoad()
142
+
143
+ //長押しをセット
144
+
145
+ let longPressGesture =
146
+
147
+ UILongPressGestureRecognizer(target: self,
148
+
149
+ action: #selector(self.longPress(_:)))
150
+
151
+ longPressGesture.delegate = self
152
+
153
+ self.imageView.addGestureRecognizer(longPressGesture)
154
+
155
+ }
156
+
157
+
158
+
159
+ //長押しされたら
160
+
161
+ @objc func longPress(_ sender: UILongPressGestureRecognizer){
162
+
163
+ if sender.state == .began {
164
+
165
+ //View1 座標はランダム
166
+
167
+ view1 = UIImageView(frame: CGRect(x: x,y: y, width: 168, height: 90))
168
+
169
+ let panGesture2 = UIPanGestureRecognizer(target: self, action: #selector(self.moveView))
170
+
171
+ panGesture2.delegate = self
172
+
173
+ view1.addGestureRecognizer(panGesture2)
174
+
175
+
176
+
177
+ view1.isUserInteractionEnabled = true
178
+
179
+
180
+
181
+ //View2 Viewに重なるように表示
182
+
183
+ view2 = UIImageView(frame: CGRect(x: x,y: y, width: 168, height: 90))
184
+
185
+
186
+
187
+ //Viewを追加
188
+
189
+ self.parent?.view.addSubview(view1)
190
+
191
+ self.parent?.view.addSubview(view2)
192
+
193
+ }
194
+
195
+ }
196
+
197
+ }
198
+
199
+ ```
200
+
201
+
202
+
203
+ moveView()については上記の通りです.
204
+
205
+
206
+
207
+ pangestureをView1,2両方につけてもView2しか反応しない(VIew2が上にあるから?)ので
208
+
209
+ View1が動かされたときに対になっているView2を取得して
210
+
211
+ 一緒に動かせばいいと考えたのですが,座標からViewを取得する方法がわからず・・・.
212
+
213
+
214
+
215
+ 座標からというのは,
216
+
217
+ View1の中心がX,Yなので,中心が同じ他のVIewをview2にするような
218
+
219
+ イメージです.
220
+
221
+
222
+
223
+ ご教授お願いします.