Ich habe ein Textfeld, das angeklickt werden kann, um zu bearbeiten, und entlang der y-Achse mit einem UIPanGesture
gezogen werden.Textfeld klicken und ziehen
Wenn der Benutzer auf das Textfeld klickt, möchte ich die textAlignement
to.left & festlegen, wenn der Benutzer das Textfeld umherzieht, möchte ich das Textcenter ausgerichtet halten.
I Initialisierung im viewDidLoad
Methode:
let dragText = UIPanGestureRecognizer(target: self, action: #selector(userDragged))
textOverlay.addGestureRecognizer(dragText)
textOverlay.addTarget(self, action: #selector(textClicked), for: UIControlEvents.touchDown)
Callback-Methoden:
func textClicked() {
//let actLocation = textOverlay.frame.origin.y
textOverlay.frame.origin.y = self.finalKBH
self.textOverlay.textAlignment = .left
print("Text clicked")
}
func userDragged(gesture: UIPanGestureRecognizer) {
let loc = gesture.location(in: self.view)
self.textOverlay.frame.origin.y = loc.y
self.textOverlay.textAlignment = .center
print("Text dragged")
}
Das Problem das ich habe, ist zwischen einer tatsächlichen 'Click-to-edit' und zieht Geste differenzier .
Beim Ziehen des Textfelds wird auch die textClicked
-Funktion aufgerufen und der Text wird nach links ausgerichtet.
Gibt es eine Möglichkeit, zwischen diesen beiden Aktionen zu unterscheiden?
Ich habe versucht, die textClicked
targer zu UIControlEvents.touchUpInside
zu ändern, aber dann wird meine Funktion nicht in der Konsole registriert.
Vielen Dank im Voraus
Dies ist eine ordnungsgemäße Verwendung von TextField, ich bin mir nicht sicher über das Overlay obwohl .. – silentBob