如何在Swift中单击添加和删除按钮时在视图上添加和删除文本字段?

时间:2015-10-19 05:23:26

标签: ios swift

我可以在按钮点击上添加文本字段,但我无法删除我添加的文本字段,我只能删除我添加的最近文本字段但无法删除其他以前的文本字段,怎么能我在Swift中删除/删除了那些文本字段。

我已成功添加按钮,但我无法删除这些文本字段。

我试图为每个文本字段获取这些标记值,但在这里我缺少一些逻辑请在这方面提供帮助。提前谢谢。

enter image description here

下面是我点击删除( - )按钮时的参考图像,然后关于该文本字段必须删除而不是所有子视图。

// for add method

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




}

3 个答案:

答案 0 :(得分:0)

怎么样:

var myTag = 0

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

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

必须删除最后一个元素

答案 1 :(得分:0)

尝试删除所有子视图。 删除所有子视图后,在视图中添加所需的文本字段。 希望它有所帮助..快乐编码.. :)

答案 2 :(得分:0)

{{1}}