Ich habe ein Bild und ein Textfeld auf dem Bild. Ich mache das Textfeld mit unterem Code ziehbar, aber es kann an jeden beliebigen Ort auf dem Bildschirm gezogen werden. Ich möchte, dass dieses Textfeld nur im Rahmen der Bildansicht ziehbar ist. Wenn ich das Kommentarzeichen bei der draadedView-Funktion auschecke, bleibt das Textfeld auf der linken Seite der Bildansicht stecken, weil ihre x-Werte gleich werden.Limit auf ziehbare Artikel in Swift setzen
Ich habe diese Lösung gefunden, kann sie aber nicht ändern, um an meinem Projekt zu arbeiten. 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)
// }
}
Wenn ich die Position des Textfelds ändere und eine Änderung vornimmt, wird das Textfeld erneut in die Mitte der Bildansicht verschoben. Ich will, dass das bleibt, wo es ist. Wie kann ich das lösen? Danke! –
Es können automatische Layout-Einschränkungen sein, die Ihre Übersetzung überschreiben. Ich würde dies als eine neue Frage aufwerfen. – ganzogo