2016-06-20 17 views
-1

ボタンをクリックして、テキストフィールドを追加し、最大4つのテキストフィールドを持つ方法を教えてもらえますか?Swift:ボタンを押したときにテキストフィールドを追加する

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) 
     } 
    } 

これまでのコードは次のとおりです。このような

+2

「これはプロセスのどの部分に助けが必要か」という質問です。 –

+0

この検索は、https://www.google.com/search?q=ios+create+uiview+programmatically –

+0

のように開始することができるので、ボタンを押したときのアクションコードがあります。 @IBAction func addPlayers(送信者:AnyObject){}ボタンが押されたときにテキストフィールドを追加するためのコードが何であるかを知る必要があります。 –

答えて

1

別のアプローチは、ストーリーボード(または.xib)の4つのフィールドを作成することですし、隠されたそれらをマーク。そして、あなたのボタンコードは、順番にそれらを非表示にする必要があります。

利点は、レイアウトの管理が容易になり、各ボタン操作で行う作業が少なくなることです。

+0

どうすればシーケンスを作成できますか?ここに私がこれまで持っていたコードがあります。 addPlayer FUNC @IBAction(送信者:UIButton){ sender.enabled =偽 Player1.hidden =偽 Player2.hidden =偽 Player3.hidden =偽 Player4.hidden =偽} –

0

何か:

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

これは私が探していたものですが、ボタンを押すとテキストフィールドが表示されません。 –

+0

私はテキストフィールドに 'frame'を指定せず、それをサブビューとして追加しませんでした。もちろんそれはあなたがしなければならないことです... –

+0

私の編集された答えを見てください... –

関連する問題