如何在按下按钮后修改视图控制器?

时间:2017-07-04 17:26:26

标签: ios objective-c swift

让我们说,如果您在帐户文本字段中输入内容后按屏幕底部的按钮,则还需要输入密码,如第二张图片中所示。

我该怎么做?我不认为创建一个新的视图控制器会很好。那么,我应该以某种方式修改相同的视图控制器吗?

如何在帐户文字字段下添加新密码文字字段?

请记住,它们仍然居中。隐藏和取消隐藏在这种情况下不起作用,我还需要修改更多的东西,而不仅仅是添加该文本字段。

enter image description here enter image description here

2 个答案:

答案 0 :(得分:0)

首先,创建一个UIView,其中包含您需要的所有内容。在这个例子中,我将只有两个文本字段,它们都是彩色编码。

enter image description here

视图需要水平和垂直居中,宽度和高度。设置要在以后更新的高度约束的标识符。将clip to board设置为true,这样当我们重新设置视图的高度时,下面的文本字段将隐藏。视图的设置将如下所示

enter image description here

对于您的文本字段,它们必须具有常量填充到顶部。在我的例子中,它们被设置为水平居中,具有恒定的高度,宽度和填充到opp。

现在,您需要做的就是从代码中获取视图的高度,并设置高度以显示或隐藏文本字段。

var flag = true

@IBAction func click(_ sender: Any) {
    if flag {
        flag = false
        let filteredConstraints = theView.constraints.filter { $0.identifier == "viewHeight" }
        if let heightConstraint = filteredConstraints.first {
            heightConstraint.constant = 60
        }
    } else {
        flag = true
        let filteredConstraints = theView.constraints.filter { $0.identifier == "viewHeight" }
        if let heightConstraint = filteredConstraints.first {
            heightConstraint.constant = 128
        }
    }
}

这是在simulater中运行的代码。

enter image description here

答案 1 :(得分:0)

另一个选项是你可以在中心制作tableView,你需要创建tableview高度约束插座,

然后你可以维护一个计数器你想要添加View的次数,计数器应该在tableView numberOfRowsInSection中返回, 并且您可以在Prototype Cell中使用NIB创建此视图,然后只调整标题标签文本,textField占位符和特定单元格索引上的文本,

当您增加或减少计数器更新tableView约束时,例如您的单元格高度为50,在第一种情况下,当您在tableView中的单元格上时,可以将tableView高度约束的常量设置为50,当单元格为2时为100等等......

我认为这是一个简单的逻辑