【发布时间】:2016-11-10 19:45:36
【问题描述】:
我在该图像上有一个图像视图和一个文本字段。我使用下面的代码使文本字段可拖动,但它可以拖动到屏幕中的任何位置。我希望该文本字段只能在图像视图的限制下拖动。如果我在 draagedView 函数中检查时取消注释,则文本字段会卡在 imageview 的左侧,因为它们的 x 值变得相同。
我找到了这个解决方案,但无法修改它以适用于我的项目。 Use UIPanGestureRecognizer to drag UIView inside limited area
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let gesture = UIPanGestureRecognizer(target: self, action: #selector(ViewController.draggedView(_:)))
bottomTextField.addGestureRecognizer(gesture)
bottomTextField.isUserInteractionEnabled = true
}
func userDragged(gesture: UIPanGestureRecognizer){
let loc = gesture.location(in: self.view)
self.bottomTextField.center = loc
}
func draggedView(_ sender:UIPanGestureRecognizer) {
let compare = MyimageView.frame.maxX <= bottomTextField.frame.maxX
//if(MyimageView.frame.minX <= bottomTextField.frame.minX && compare )
// {
self.view.bringSubview(toFront: sender.view!)
let translation = sender.translation(in: self.view)
sender.view!.center = CGPoint(x: sender.view!.center.x + translation.x, y: sender.view!.center.y + translation.y)
sender.setTranslation(CGPoint.zero, in: self.view)
// }
}
【问题讨论】:
标签: ios swift view imageview textfield