Mal*_*lte 14 xcode objective-c interface-builder ios autolayout
NSLayoutConstraint(in iOS 8.0)有一个BOOL被调用的属性active,可以很容易地即时禁用/启用所述布局约束.
要创建一个视图控制器,我可以然后以编程使能/禁止(经由第二布局组IBOutletCollection的NSLayoutConstraints两个套),我需要停用在界面生成器我已经定义布局约束.
让我在这里清楚我不想删除它们,只是禁用它们以便我可以设计第二组而不需要界面构建器一直抱怨不匹配的约束.此外,切换大小类不是一种选择,因为布局集适用于同一个大小的类.
有没有选择吗?
提前致谢
马尔特
更多的信息: SDK Version: 8.1 Deployment Target 8.0
gab*_*ler 27
在storyboard中选择要禁用的约束,使用Option+ Command+ 4显示Attributes Inspector,然后取消选择Installed.
Ash*_*Ash 13
我之前使用过Gabbler成功提供的解决方案,但最近我尝试使用Swift 2.0和Xcode 7做同样的事情,发现它不再有效.正如人们所预料的那样,设置为未安装的约束根本没有安装,并且在打开或关闭时对布局没有影响.
我对该问题的解决方案是确保所有约束都已安装,并使用键'active'添加用户定义的运行时属性,键入'boolean'和值'false'.
可以在Custom Class字段下的Identity Inspector中找到用户定义的运行时属性面板.
我使用 Xcode 8 和 Swift 3 的解决方案没有收到任何警告,未选中界面生成器、检查器选项卡上的已安装框:
然后创建 IBOutlet 并在viewDidLayoutSubviews()上以编程方式添加/删除它们
view.removeConstraints([constraints to remove, ...])
view.addConstraints([constraints to add, ...])
Run Code Online (Sandbox Code Playgroud)
确保先删除约束,否则您将收到消息日志Unable tolattice Constraints...
| 归档时间: |
|
| 查看次数: |
8965 次 |
| 最近记录: |