2016-06-20 54 views
-1

任何人都可以告訴我如何創建按鈕,單擊時添加一個Textfield並限制四個文本框?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(sender:AnyObject){}我只需要知道當按鈕被按下時添加文本框的代碼是什麼 –

回答

1

另一種方法是在你的故事創造了四個字段(或的.xib)和標記它們隱藏起來。然後,您的按鈕代碼只需要按順序取消隱藏它們。

這樣做的好處是可以更輕鬆地控制佈局,減少每個按鈕操作的工作量。

+0

那麼我將如何創建一個序列。這是我迄今爲止的代碼。 @IBAction FUNC addPlayer(發件人:的UIButton){ sender.enabled =假 Player1.hidden =假 Player2.hidden =假 Player3.hidden =假 Player4.hidden = FALSE} –

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

我沒有爲文本框指定一個「框架」,也沒有將它添加爲子視圖。當然這就是你必須做的...... –

+0

看看我編輯的答案...... –

相關問題