質問編集履歴
1
TsukubaDepotのご指摘により変更しました.
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
|
+
ご教授お願いします.
|