У меня есть UIView
, который содержит много UIView
подвидов. Когда пользователь пытается панорамировать одно из подпредставлений, я хочу, чтобы они могли перетаскивать его в любое другое место на экране.
Тем не менее, я могу перетаскивать эти меньшие представления только внутри большего UIView
, в котором они содержатся. Когда пользователь впервые пытается панорамировать меньший вид, есть ли способ программно создать второй UIView сверху, а затем вместо этого перетащить второй UIView ? Второй UIView будет совершенно новым по сравнению с меньшим представлением, которое было затронуто первым.
Это функция обработчика, которая у меня есть до сих пор, просто для справки. Однако я не знаю, где программно создать второй UIView. Любая помощь будет принята с благодарностью:
@objc func handlePanGesture(sender: UIPanGestureRecognizer) {
// get translation
var translation = sender.translation(in: view)
sender.setTranslation(CGPoint.zero, in: view)
// drag around current UIView
var newView = sender.view as! UIView
newView.center = CGPoint(x: newView.center.x+translation.x, y: newView.center.y+translation.y)
newView.isMultipleTouchEnabled = true
newView.isUserInteractionEnabled = true
if sender.state == UIGestureRecognizer.State.began {
// add something you want to happen when the Label Panning has started
}
if sender.state == UIGestureRecognizer.State.ended {
// add something you want to happen when the Label Panning has ended
}
if sender.state == UIGestureRecognizer.State.changed {
// add something you want to happen when the Label Panning has been change ( during the moving/panning )
} else {
// or something when it's not moving
}
}