所以我试图根据应用中的权限实现一些功能限制。有问题的功能适用于位于main.storyboard中VC底部的按钮。
还有另一个按钮,我想留在那里。它们水平对齐,但不在水平堆栈视图中。它们具有等宽约束,并且一起占据底部的整个垂直空间。
我想要隐藏第一个,因此让第二个从左到右占据整个水平空间,但只有在应该限制对第一个按钮的访问时。我已尝试在viewNeedsRefresh中执行此操作:
let equalWidthConstraint = firstButton.superview?.constraints.filter{
$0.firstItem as? UIButton == firstButton && $0.secondItem as? UIButton == secondButton
}.first
equalWidthConstraint?.isActive = false
firstButton.isHidden = true
secondButton.frame = CGRect(x: 0, y: firstButton.frame.origin.y, width: self.view.frame.width, height: firstButton.frame.height)
但这一切都是隐藏第一个按钮,而第二个按钮突然部分偏离屏幕。如果我在没有手动禁用约束的情况下尝试,我会让它看起来更干净,但第二个按钮仍处于原始位置,可能是因为它因约束而仍保持原始宽度。
答案 0 :(得分:0)
就我个人而言,我个人会做以下事情:
当您需要折叠按钮时,您现在可以直接设置约束的常量:
buttonWidth.constant = 0
这会隐藏视图并为您提供所需的效果。
答案 1 :(得分:0)
事实证明,在我加入之前,他们已经为此构建了一个可重复使用的组件,但实际上并没有多次使用它。我已将页面转换为使用该组件。对不起伙计们。