c# - 无法将 iOS Autolayout 乘数设置为零

标签 c# ios xamarin xamarin.ios autolayout

我想做什么: 我正在尝试使用自动布局约束来动态显示/隐藏 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/

相关文章:

c# - 问题单元测试 EF 和 ASP.NET Identity - NotSupportedException : Model Compatibility

c# - 与 Dapper.net 的连接池

iphone - 使用 FBloginView 的 facebook 登录未在 ios 6 中显示

ios - 为 iOS React-Native 项目设置 Fbsdk 框架

c# - 如何通知 TrulyObservableCollection 中的单个属性更改或修改

c# - Xamarin.Forms : Directory. GetFiles

c# - 使用 HashTable 属性序列化一个对象并存储在 CouchBase 中

c# - Stripe Connect 中延迟付款至未知用户

ios - 如何知道 CocoaPods 是否安装?进出MAC?

ios - Xamarin Profiler 未显示在 Visual Studio 2017 中的“分析”选项卡下