2015-10-19 134 views
0

我可以在按鈕點擊時添加文本框,但我無法刪除已添加的文本框,我只能刪除最近添加的文本框,但無法刪除其他以前的文本框,我怎麼能刪除/刪除Swift中的文本字段。如何在Swift中添加和刪除按鈕時添加和刪除視圖上的文本字段?

我已經成功添加了按鈕,但我無法刪除這些文本框。

我試圖讓每個文本字段的標籤值,但在這裏我錯過了一些邏輯,請在這方面的幫助。提前致謝。

enter image description here

下面是當我點擊刪除參考圖像( - )按鈕,然後相對於該文本框必須拆除並不是所有的子視圖。

//爲add方法

@IBAction func btnAddOptionAction(sender: UIButton) 
{ 
    txtOption = UITextField(frame: CGRectMake(52, yFrame+17, 195, 30)) 
    txtOption.borderStyle = .None 
    txtOption.tag = index 
    let modifiedURLString = NSString(format:"Option %d", index) as String 
    //textField.text = modifiedURLString 
    txtOption.attributedPlaceholder = NSAttributedString(string:modifiedURLString, 
     attributes:[NSForegroundColorAttributeName: UIColor.whiteColor()]) 
    txtOption.font = UIFont(name: "Avenir Medium", size: 16) 
    txtOption.textColor = UIColor.whiteColor() 
    self.scrOptions.addSubview(txtOption) 


    btnDeleteOption.frame = CGRectMake(259, txtOption.frame.origin.y + 8, 25, 25) 
    btnAddOption.frame = CGRectMake(259, txtOption.frame.origin.y + txtOption.frame.size.height + 10, 25, 25) 

    btnDeleteOption.hidden = false 

    print("Add index", index) 

    index++ 
    yFrame = yFrame + 40 

    scrOptions.contentSize = CGSizeMake(0, btnAddOption.frame.origin.y + btnAddOption.frame.size.height + 20) 

} 

//對於刪除方法

@IBAction func btnDeleteOptionAction(sender: UIButton) 
{ 
    yFrame = yFrame - 40 
    index-- 
    sender.tag = index 

    txtOption.removeFromSuperview() 

    imgoption.removeFromSuperview() 

    imgUnderLine.removeFromSuperview() 

    btnDeleteOption.frame = CGRectMake(259, yFrame - 15, 25, 25) 
    btnAddOption.frame = CGRectMake(259, yFrame + 32 - 15, 25, 25) 

    if index <= 1 
    { 
     btnDeleteOption.frame = CGRectMake(259, 25, 25, 25) 
     btnAddOption.frame = CGRectMake(259, 25, 25, 25) 

     btnDeleteOption.hidden = false 

    } 

    print("y-axis ",btnDeleteOption.frame.origin.y) 




} 
+0

你使用removeFromSuperview?可以發佈您的代碼,以便我們可以幫助您的viewDidLoad中的 – PK20

+0

,包括文本字段的代表。和後來在btnDeleteOptionAction,嘗試self.textFields.removeFromSuperview() – PK20

+0

我已經給委託給我的文本字段,你清楚地觀察到我只使用一個文本字段,每次我添加一個新的文本字段具有相同的名稱。 –

回答

0

什麼:

var myTag = 0 

if let myView = UIView() { 
    view.addSubview(myView) 
    myView.tag = myTag++ 
} 

if let viewWithTag = self.view.viewWithTag(myTag) { 
    viewWithTag.removeFromSuperview() 
} 

必須刪除最後一個元素

+0

爲您的解決方案,我不能刪除以前的文本框,對於您提供的方法,我將刪除它包含的所有子視圖。 –

+0

每當我提供「self.view.subviews.last」,那麼我得到這個錯誤 - 類型'UIView?'的值?沒有成員'Generator' –

+0

嘗試我的代碼的新版本 –

0

嘗試刪除所有子視圖。 刪除所有子視圖後,在視圖中添加必需的文本框。 希望它有助於..快樂編碼.. :)

0
@IBOutlet weak var updateIdView: UIView! 


let textField: UITextField = updateIdView.viewWithTag(textFieldTag) as! UITextField 
    textField.removeFromSuperview() 
相關問題