У меня есть 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
}
}