【发布时间】:2018-07-31 07:54:22
【问题描述】:
我有一个 UIswitch,当它打开时,我想在它下面显示一个视图并将所有其他视图向下移动。同样,当开关关闭时,视图应该会消失,并像以前一样重新排列所有视图。
@objc func switchValueDidChange(_ sender: UISwitch) {
if sender == fuelSwitch{
if (sender.isOn == true){
// show fuel view
print("on")
fuelRequiredView?.isHidden = false
topConstraint = layoutConstraints.setTopMargin(isOverloadedLabel, attribute1: .topMargin, relatedBy: .equal, toItem: fuelRequiredView, attribute2: .topMargin, multiplier: 2.0, constant: 0)
contentView?.addConstraint(topConstraint!)
topConstraint = layoutConstraints.setTopMargin(overloadedSwitch, attribute1: .topMargin, relatedBy: .equal, toItem: fuelRequiredView, attribute2: .topMargin, multiplier: 2.0, constant: 0)
contentView?.addConstraint(topConstraint!)
}
else{
// hide fuel view
print("off")
fuelRequiredView?.isHidden = true
topConstraint = layoutConstraints.setTopMargin(isOverloadedLabel, attribute1: .topMargin, relatedBy: .equal, toItem: contentView, attribute2: .topMargin, multiplier: 2.4, constant: 0)
contentView?.addConstraint(topConstraint!)
topConstraint = layoutConstraints.setTopMargin(overloadedSwitch, attribute1: .topMargin, relatedBy: .equal, toItem: contentView, attribute2: .topMargin, multiplier: 2.4, constant: 0)
contentView?.addConstraint(topConstraint!)
}
}
【问题讨论】:
-
为此目的使用 UIStackView。
-
@Vishal16 如果您可以提供一个简短的工作代码,那将很容易理解。 :)
-
您是在使用情节提要还是以编程方式添加视图?
-
以编程方式。我不使用故事板
-
检查我的答案,请点赞并接受。如果它可以帮助你。
标签: ios swift autolayout uiswitch