해당 이미지에 하나의 이미지 뷰와 텍스트 필드가 있습니다. 아래의 코드로 텍스트 필드를 드래그 가능하게 만들지 만 화면의 어느 곳으로나 드래그 할 수 있습니다. 그 텍스트 필드는 이미지 뷰의 한계 내에서만 드래그 가능하게하고 싶습니다. draagedView 함수를 체크 인하면 주석을 제거하면 x 값이 같아지기 때문에 textfield가 imageview의 왼쪽에 붙어 있습니다.Swift에서 드래그 가능한 항목으로 한도 설정
이 솔루션을 발견했지만 내 프로젝트에서 작동하도록 수정할 수 없습니다. 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)
// }
}
텍스트 필드의 위치를 변경하고 변경하면 텍스트 필드가 이미지보기의 가운데로 다시 이동합니다. 나는 그것이 그곳에 머물러 있기를 바랍니다. 어떻게 해결할 수 있습니까? 고맙습니다! –
번역을 재정의하는 자동 레이아웃 제한 조건 일 수 있습니다. 나는 이것을 새로운 질문으로 제기 할 것이다. – ganzogo