我想做什么: 我正在尝试使用自动布局约束来动态显示/隐藏 View ,但我希望 View 在隐藏时有效占用 0 空间(因此普通的隐藏属性对我没有用)。
方法: 我正在使用 NSLayoutConstraints 以编程方式完成我的所有布局(注意,使用 Xamarin C#,而不是 Objective c),所以我试图以编程方式在一组“可见”约束(正常布局,这总是工作正常)和“隐藏”约束,它将宽度和高度设置为零。
我正在做一些基本测试,我可以在其中删除宽度限制,然后设置一个新的来做任何我想做的事情。但是,每当我尝试定义(更不用说添加到 View 中)乘数和常数为零的约束时,NSLayoutConstraint 中的乘数神奇地变为 1。例如,我的隐藏宽度约束定义为:
NSLayoutConstraint c1 = NSLayoutConstraint.Create(view, NSLayoutAttribute.Width, NSLayoutRelation.Equal, null, NSLayoutAttribute.NoAttribute, 0f, 0f);
我检查约束 c1
,乘数为 1,常量为 0。view
是我要添加约束的 View (一个 UIButton
在这种情况下)。
问题:是否可以像这样将自动布局约束乘数设置为 0?如果是这样,UIButton
是否有什么特别之处阻止我这样做?理想情况下,我希望能够为几乎所有 UIView
执行此显示/隐藏操作。
最佳答案
0 乘数在 iOS8 中被破坏/“被认为是愚蠢的”。
解决方案是将常量设置为 0,并将乘数保留为 1。
关于c# - 无法将 iOS Autolayout 乘数设置为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31462795/