gpt4 book ai didi

ios - NSLayoutConstraint.constraintsWithVisualFormat 在 Swift 2.0 中的 options 参数中传递 nil

转载 作者:行者123 更新时间:2023-11-30 14:06:35 24 4
gpt4 key购买 nike

所以我有一个项目,并且项目中的 UI 是完全编码的(根本没有 .xib 文件或 Storyboard)。使用 Objective-C,我们可以传递 nil0 作为 options 参数的参数。像这样

[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|-[one(two)]-[two(three)]-[three]-|" options: nil metrics:metrics views:views]];

Swift 1.2 还允许我们传递 nil 作为参数

  self.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|[categoryTitleLabel]|", options: nil, metrics: nil, views: views))

但在最新的 Xcode 7 beta 6 中,带有 Swift 2.0 选项参数现在需要非可选值,我有点卡住了。我假设,之前,如果我们在 options 参数中传递 nil,那么就会使用 NSLayoutFormatOptions 中的一些默认值。我查看了 NSLayoutFormatOptions 声明,发现 DirectionLeadingToTrailing 是默认值。所以我将所有 nil 参数替换为 .DirectionLeadingToTrailing 。它有效,但应用程序开始崩溃

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** +[NSLayoutConstraint constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:]: A constraint cannot be made between a leading/trailing attribute and a right/left attribute. Use leading/trailing for both or neither

我已经意识到一些约束是冲突的,但事实是,显然, .DirectionLeadingToTrailing 不是默认值。如果不是,那么什么是?当前的解决方法是将 NSLayoutFormatOptions(rawValue: 0) 作为参数传递,但它看起来很难看。

最佳答案

尝试:

self.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|[categoryTitleLabel]|", options: [], metrics: nil, views: views))

关于ios - NSLayoutConstraint.constraintsWithVisualFormat 在 Swift 2.0 中的 options 参数中传递 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32312650/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com