gpt4 book ai didi

ios - 表达式类型 'NSLayoutConstraint' 在没有更多上下文的情况下不明确

转载 作者:行者123 更新时间:2023-11-28 13:25:33 24 4
gpt4 key购买 nike

当我尝试构建我的 iOS 应用程序时收到以下错误。我怎样才能找出导致它的原因?

Error: Expression type 'NSLayoutConstraint' is ambiguous without more context

代码:

private func centerIndicator() {
let xCenterConstraint = NSLayoutConstraint(
item: loadingView ?? default value, attribute: .centerX, relatedBy: .equal,
toItem: indicator, attribute: .centerX, multiplier: 1, constant: 0
)
loadingView.addConstraint(xCenterConstraint)

let yCenterConstraint = NSLayoutConstraint(
item: loadingView, attribute: .centerY, relatedBy: .equal,
toItem: indicator, attribute: .centerY, multiplier: 1, constant: 0
)
loadingView.addConstraint(yCenterConstraint)
}

最佳答案

您最有可能的罪魁祸首是默认值,它不应该存在。如果 loadingView 是非可选的,您可以删除 ??默认值。如果它 是可选的,那么您可能应该将其包装在 if let loadingView = loadingView block 中。对随机 View 设置约束是行不通的。

接下来,Apple 不再建议直接向 View 添加约束。相反,请使用 isActive 属性。

NSLayoutConstraint(
item: loadingView, attribute: .centerY, relatedBy: .equal,
toItem: indicator, attribute: .centerY, multiplier: 1, constant: 0
).isActive = true

但这些都是非常简单的约束。更好的方法是改用布局 anchor 。

loadingView.centerYAnchor.constraint(equalTo: indicator.centerYAnchor).isActive = true

关于ios - 表达式类型 'NSLayoutConstraint' 在没有更多上下文的情况下不明确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58417928/

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