Xcode 10 beta SnapKit 约束类型错误

Posted

技术标签:

【中文标题】Xcode 10 beta SnapKit 约束类型错误【英文标题】:Xcode 10 beta SnapKit constraints type error 【发布时间】:2018-09-01 11:59:20 【问题描述】:

我正在使用 Xcode 10 beta 5。我的项目在带有 4.0.0 SnapKit 的 Swift 4 上运行。 我有一个设置UITableView 约束的函数:

private func setupConstraints() 
    tableView.snp.makeConstraints  make in
        make.leading.equalTo(view.safeAreaLayoutGuide.leadingAnchor)
        make.trailing.equalTo(view.safeAreaLayoutGuide.trailingAnchor)
        make.top.equalTo(view.safeAreaLayoutGuide.topAnchor)
        make.bottom.equalTo(view.safeAreaLayoutGuide.bottomAnchor)
    

此函数产生以下错误: Argument type 'NSLayoutXAxisAnchor' does not conform to expected type 'ConstraintRelatableTarget'

我试过view.safeAreaLayoutGuide.leadingAnchor as! ConstraintRelatableTarget,但这个转换失败了。

你们知道怎么解决吗?

【问题讨论】:

【参考方案1】:

尝试例如view.safeAreaLayoutGuide.snp.leading。您缺少 .snp 部分,最后一部分也有所不同。

【讨论】:

make.bottom.equalTo(view.safeAreaLayoutGuide.snp.bottom) 工作完美。非常感谢!【参考方案2】:

另一个案例

在我的情况下,当我的“视图”是 optional 属性时,我会遇到同样的错误。我在accepted answer 中添加了“.snp”部分。但我得到了同样的错误。

Xcode 版本 11.4 (11E146)

解决方案

所以我转换为非可选。我的问题解决了。

我希望,它会帮助别人。

最好的。

【讨论】:

以上是关于Xcode 10 beta SnapKit 约束类型错误的主要内容,如果未能解决你的问题,请参考以下文章

UITableView HeaderView,FooterView 使用SnapKit布局导致约束异常

为啥我在 xcode 6 beta 中得到“必须将自动调整大小掩码转换为约束才能拥有 _setHostsLayoutEngine:YES”

Swift 控件约束之 SnapKit

更新 SnapKit 约束偏移

SnapKit 更新约束导致冲突

使用 SnapKit 约束动画