Swift 如何启用,然后禁用,然后再次启用约束?

Swift 如何启用,然后禁用,然后再次启用约束?,swift,constraints,Swift,Constraints,我想做一个按钮来激活和停用约束,但我的问题是当我启用->禁用->启用它时,我会得到一个致命的错误 这是我的密码: @IBOutlet weak var heightEmail: NSLayoutConstraint! if alamatDomisiliSegmentedControl.selectedSegmentIndex == 1 { heightEmail.isActive=true heightEmail.constant=8 print("tidak") }

我想做一个按钮来激活和停用约束,但我的问题是当我启用->禁用->启用它时,我会得到一个致命的错误

这是我的密码:

@IBOutlet weak var heightEmail: NSLayoutConstraint!

if alamatDomisiliSegmentedControl.selectedSegmentIndex == 1 {
    heightEmail.isActive=true
    heightEmail.constant=8
    print("tidak")
} else if alamatDomisiliSegmentedControl.selectedSegmentIndex == 0 {
    heightEmail.isActive=false
    print("ya")
}
试试这个:

if alamatDomisiliSegmentedControl.selectedSegmentIndex == 1 {
heightEmail.isActive = true
heightEmail.constant = 8
print("tidak")
} else if alamatDomisiliSegmentedControl.selectedSegmentIndex == 0 {
    heightEmail.constant = 0 //disappear   
    heightEmail.isActive=false
    print("ya")
}

我不知道您为什么要使用isActive。 逻辑很简单。当您希望它消失时,将其高度设置为0;当显示时,将其高度设置为8

 if alamatDomisiliSegmentedControl.selectedSegmentIndex == 1 {                   
              heightEmail.constant=8
            print("tidak")

        }else if alamatDomisiliSegmentedControl.selectedSegmentIndex == 0{  
                heightEmail.constant=0 // Assuming you want to hide here
         print("ya")
        }

在崩溃后,您将此代码放在何处?我收到了此错误线程1:致命错误:在展开可选值时意外发现零。您将代码放在何处?解释您的代码与OP的codeCheck有何不同检查代码。解释此代码如何解决“致命错误:在展开可选值时意外发现零”错误。您确定(heightEmail.constant=0)将解决上述问题,但如何使其成为不使用constantSorry的相对约束?我不理解您的问题。?你能解释一下吗?哦,这很有效!我想如果我将约束设置为常量,如果我使用更大的手机,约束看起来会很混乱,你可以给出设备方面的条件。如果我没听错的话。您需要的是,您需要为每个设备提供常量。在这种情况下,只需给出一个简单的条件,例如:如果iphone5{height=30}elseif iphone6{height=40}@IndraSen,则表示您收到了错误“在展开可选值时意外发现为零”。现在你声明这个答案是有效的。但这个答案并不能解决这个错误。您是否将该错误与此答案中的更改分开修复?