2016-06-20 15 views
-1

Kann mir jemand sagen, wie ich eine Schaltfläche erstellen kann, wenn Sie darauf klicken, ein Textfeld hinzufügen und eine Grenze von bis zu vier Textfeldern haben?Swift: Fügen Sie ein Textfeld hinzu, wenn die Schaltfläche gedrückt wird

class AddNewGameViewController: UIViewController { 

var textFields: [UITextField] = [] 
    let maxTextFields = 4 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     // Do any additional setup after loading the view. 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

    @IBAction func addPlayer(sender: AnyObject) { 
     if textFields.count < maxTextFields { 
      let textField = UITextField() 
      textFields.append(textField) 
     } 
    } 

Hier ist der Code, den ich bisher habe.

+2

Ich denke, das ist ein "welcher Teil des Prozesses brauchen Sie Hilfe mit" Frage. –

+0

Diese Suche könnte ein Startpunkt sein: https://www.google.com/search?q=ios+erzeugt+uiview+programmatisch –

+0

, also habe ich den Aktionscode, wenn die Schaltfläche gedrückt wird. @IBAction func addPlayers (sender: AnyObject) {} Ich muss nur wissen, was der Code zum Hinzufügen von Textfeldern ist, wenn die Schaltfläche gedrückt wird. –

Antwort

1

Ein alternativer Ansatz wäre es, die vier Felder in Ihrem Storyboard erstellen (oder .xib) und sie versteckt markieren. Dann müsste Ihr Tastencode diese nur nacheinander ausblenden.

Die Vorteile wären eine einfachere Steuerung des Layouts und weniger Arbeitsaufwand für jede Tastenaktion.

+0

Also, wie würde ich eine Sequenz erstellen. Hier ist der Code, den ich bisher habe. @IBAction func addPlayer (Sender: UIButton) { sender.enabled = false Player1.hidden = false Player2.hidden = false Player3.hidden = false Player4.hidden = false} –

0

etwas wie folgt aus:

var textFields: [UITextField] = [] 
let textFieldSize = CGSize(width: 97, height: 30) 
let maxTextFields = 4 

func tappedButton(button: UIButton) { 
    if textFields.count < maxTextFields { 
     let y = CGFloat(textFields.count) * textFieldSize.height 
     let textField = UITextField(frame: CGRect(origin: CGPoint(x: 0, y: y), size: textFieldSize)) 
     view.addSubview(textField) 
     textFields.append(textField) 
    } 
} 
+0

Dies ist, was ich gesucht habe, aber es zeigt keine Textfelder, wenn die Taste gedrückt wird. –

+0

Ich habe kein 'frame' für das Textfeld angegeben und es nicht als Unteransicht hinzugefügt. Natürlich müssen Sie das tun ... –

+0

werfen Sie einen Blick auf meine bearbeitete Antwort ... –