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