情况就像我有一个带有四个按钮的 View
有一个条件,当带有文本搜索社区的按钮应该被隐藏并且选项按钮的宽度应该增加时
在我的项目中第一次使用约束,我不知道如何实现这一点。从以下两张图片可以清楚地看到在这两个按钮上添加的一组约束。
最佳答案
我在您的设置中发现的问题是,两个宽度相等的按钮之间存在这种限制。在第一种情况下是这样,但当你想隐藏其中一个时,它就不再是了。
因此,您需要重新考虑一下您的限制。也许您可以在第一个按钮(您想要隐藏的左侧按钮)上使用静态宽度约束,而不是等宽度约束。然后第二个,将只有第一个的水平空间约束,以及 superView 的尾随空间。
然后你在 VC 中为第一个按钮的宽度约束创建一个导出,当你想隐藏它时,你可以这样做:
self.searchButtonWidthConstraint.constant = 0
UIView.animateWithDuration(0.3, animations: { () -> Void in
self.view.layoutIfNeeded() // if you want to animate the constraint change
})
如果您有任何问题,请告诉我。祝你好运,希望一切顺利!
更新
对于横向用例,您可以监听方向更改通知,以更新按钮的宽度约束
-(void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
self.searchButtonWidthConstraint.constant = LANDSCAPE_WIDTH
UIView.animateWithDuration(duration, animations: { () -> Void in
self.view.layoutIfNeeded() // if you want to animate the constraint change
})
}
关于ios - 以编程方式更新约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31180188/