【发布时间】:2015-01-10 02:43:40
【问题描述】:
我有一个带有 4 个按钮及其相应标签的 UIView。它们当前位于视图的中心,中间的按钮具有适当的尾随和前导空间约束,因此它们之间始终存在定义的空间。
但是,现在当其中一个按钮被隐藏时(并且一次最多只隐藏两个中间按钮之一),按钮需要重新居中。我似乎无法删除与尾随和前导空格相关的约束,而没有 Interface Builder 到处乱吐,因为我不能只是没有子视图的约束,我只想覆盖按钮的所有约束(宽度和高度除外与尾随(和或)前导空格相关的按钮本身)。
作为没有视觉图片的例子
A----->B----->C----->D
这些是我的四个按钮,下面有标签(当然没有显示),它们之间有四个空格(但它们都在视图中居中)。如果 B 被隐藏,那么我想在视图中重新居中 A、C 和 D,但现在原始设置的尾随和前导空格当然已经过时,需要根据此示例重置。如果 C 被隐藏,那么我需要重新居中并重置 A、B 和 D 的约束,其中 B 需要在视图中居中,且 A 和 D 位于两侧,间距相同(四个空格)。
有没有办法在这样的代码中覆盖这些约束?似乎没有一种方法可以在 XCode 中设置条件约束(尽管那会很好),并且仍然没有一种方法可以删除子视图中的约束,以便您可以在代码中创建它们。
此解决方案需要支持 iOS 7 和 8,我不能只关闭自动布局,因为屏幕上其他视图中的其他元素使用约束。
有什么想法吗?想法?
【问题讨论】:
标签: ios xcode interface-builder autolayout constraints