SnapKit snp 无法分配给 UIHostingController
Posted
技术标签:
【中文标题】SnapKit snp 无法分配给 UIHostingController【英文标题】:SnapKit snp can't assign to UIHostingController 【发布时间】:2020-07-18 12:10:14 【问题描述】:在许多项目中我都使用 SnapKit。在新项目上也是如此。在项目中,我有与 SwiftUI 视图连接的 ViewController:
class OfficeListViewController: UIViewController
override func viewDidLoad()
super.viewDidLoad()
let vc = UIHostingController(rootView: OfficeListView())
addChild(vc)
view.addSubview(vc.view)
vc.didMove(toParent: self)
vc.view.translatesAutoresizingMaskIntoConstraints = false
// Here I want to set constraints to vc
vc.snp // throws error: Value of type 'UIHostingController<OfficeView>' has no member 'snp'
struct OfficeListView: View
var body: some View
Text("View")
但它会抛出错误:
“UIHostingController”类型的值没有成员“snp”
如何正确使用SnapKit?
【问题讨论】:
UIHostingController
只是UIViewController
的子类。我不知道您所说的vc.snp
是什么意思,但如果您想设置约束,请像往常一样使用vc.view
。
【参考方案1】:
UIHostingController
只是UIViewController
的子类,它在常规UIView
中呈现SwiftUI 视图。如果你想设置约束,那么你应该使用vc.view
,就像我们通常对视图所做的那样。
【讨论】:
以上是关于SnapKit snp 无法分配给 UIHostingController的主要内容,如果未能解决你的问题,请参考以下文章
如何获取 snapkit 为 UIView 声明的高度约束?