无法将 iOS 自动布局乘数设置为零
Can't set iOS Autolayout multiplier to zero
我想做什么:
我正在尝试使用自动布局约束来动态 show/hide 视图,但我希望视图在隐藏时有效地占用 0 space (因此正常的隐藏 属性 不是对我有用)。
方法:
我正在使用 NSLayoutConstraints 以编程方式完成我的所有布局(注意,使用 Xamarin C#,而不是 Objective c),所以我试图以编程方式在一组 "visible" 约束之间切换(正常布局,这总是工作正常)和 "hide" 约束,将宽度和高度设置为零。
我正在做一些基本测试,我可以在其中删除宽度限制,然后设置一个新的来做任何我想做的事情。但是,每当我尝试定义(更不用说添加到视图中)乘数和常数为零的约束时,NSLayoutConstraint 中的乘数神奇地变为 1。例如,我的隐藏宽度约束定义为:
NSLayoutConstraint c1 = NSLayoutConstraint.Create(view, NSLayoutAttribute.Width, NSLayoutRelation.Equal, null, NSLayoutAttribute.NoAttribute, 0f, 0f);
我检查约束 c1
,乘数为 1,常量为 0。view
是我要添加约束的视图(在本例中为 UIButton
).
问题:是否可以像这样将自动布局约束乘数设置为0?如果是这样,UIButton
是否有什么特别之处阻止我这样做?理想情况下,我希望能够对几乎所有 UIView
.
执行此操作 show/hide
iOS8 中的 0 乘法器损坏/"considered silly"。
解决方法是将常数设置为 0,并将乘数保留为 1。
CGFLOAT_MIN 适合我。
将乘数设置为 0.000001
适合我。
我想做什么: 我正在尝试使用自动布局约束来动态 show/hide 视图,但我希望视图在隐藏时有效地占用 0 space (因此正常的隐藏 属性 不是对我有用)。
方法: 我正在使用 NSLayoutConstraints 以编程方式完成我的所有布局(注意,使用 Xamarin C#,而不是 Objective c),所以我试图以编程方式在一组 "visible" 约束之间切换(正常布局,这总是工作正常)和 "hide" 约束,将宽度和高度设置为零。
我正在做一些基本测试,我可以在其中删除宽度限制,然后设置一个新的来做任何我想做的事情。但是,每当我尝试定义(更不用说添加到视图中)乘数和常数为零的约束时,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 乘法器损坏/"considered silly"。
解决方法是将常数设置为 0,并将乘数保留为 1。
CGFLOAT_MIN 适合我。
将乘数设置为 0.000001
适合我。