我想做的事情: 我试图使用autolayout约束来动态显示/隐藏视图,但我希望视图在隐藏时有效占用0空间(因此正常的隐藏属性对我来说并不有用)。 / p>
方法 我使用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
)。
问题:是否可以将autolayout约束乘数设置为0?如果是这样,UIButton
有什么特别的东西阻止我这么做吗?理想情况下,我希望能够显示/隐藏几乎任何UIView
。
答案 0 :(得分:4)
CGFLOAT_MIN对我来说很好。
答案 1 :(得分:3)
0乘数被打破/"被认为是愚蠢的"在iOS8中。
解决方案是将常量设置为0并将乘数保持为1。
答案 2 :(得分:0)
将乘数设置为0.000001
对我有用。