0

Ich versuche, panGestureRecogniser zu verwenden, um Benutzern meiner ersten App zu ermöglichen, programmgesteuert erstellte Textfelder zu verschieben. Nach der Lösung gesucht habe ich nur veralteten Code für IBOutlets gefunden. Das Problem ist, dass ich Schwierigkeiten habe, die Position neu erstellter Textfelder auf die Position zu setzen, an die sich die Benutzer hinziehen. Alles funktioniert gut, wenn ich meinen Code auf einem Textfeld in einem Storyboard, über ein IBOutlet verbunden, erstelle. Mein Problem ist, wie man eine Verbindung zwischen dem Standort von der didPan-Funktion und einem neuen Etikett herstellt, das von generateTextField func erstellt wird. Eine andere Sache ist, dass ich möchte, dass viele Benutzer in der Lage sind, viele Textfelder zu erstellen, und jedes sollte ziehbar sein, also sollte jede Lösung das beinhalten. Ich fügen Sie meinen Code unten:Programmgesteuertes Erstellen von UItTextFields

override func viewDidLoad() { 
    super.viewDidLoad() 

} 

func generateTextField() { 

    let textPanel = UITextField(frame: CGRect(x: 50, y: 50, width: 100, height: 30)) 
    textPanel.textAlignment = NSTextAlignment.center 
    textPanel.textColor = UIColor.blue 
    textPanel.borderStyle = UITextBorderStyle.line 
    self.view.addSubview(textPanel) 

    let gest = UIPanGestureRecognizer(target: self, action: #selector(didPan)) 

    textPanel.isUserInteractionEnabled = true 
    textPanel.addGestureRecognizer(gest) 

} 

@objc func didPan(sender: UIPanGestureRecognizer){ 

    let location = sender.location(in: view) 

    if sender.state == .began { 
     print("Gesture began") 
    } else if sender.state == .changed { 
     print("Gesture is changing") 
    } else if sender.state == .ended { 
     print("Gesture ended") 
    } 
} 


@IBAction func generateTextFieldPressed(_ sender: Any) { 
    generateTextField() 
} 

Antwort

0

In didPan Sie Textfield von Erkennungs wie abrufen können:

let textField = sender.view as TextField 

und nach dieser Änderung textfield des Rahmens.

Verwandte Themen