【发布时间】:2019-05-20 11:55:01
【问题描述】:
我在 DispatchQueue.main.async 上使用 snapKit 以编程方式设置约束。但我注意到 main.async 有时会导致 UI 冻结,我更改了使用它的方法。现在我在使用动态高度时遇到问题,当我尝试使动态高度取决于内容时,旧方法会导致错误...
OLD METHOD(innerView - 是视图的子视图)
DispatchQueue.main.async {
view.snp.makeConstraints({ (make) in
make.top.equalToSuperview().inset(45)
make.left.right.equalToSuperview().inset(12)
make.bottom.equalTo(self.innerView.snp.bottom).offset(12)
})
}
//After i add it like superView.addSubView(view)
//superView contains view, and view(dynamic height) contains innerView
新方法
superView.addSubview(view)
view.snp.makeConstraints({ (make) in
make.top.equalToSuperview().inset(45)
make.left.right.equalToSuperview().inset(12)
make.bottom.equalTo(self.innerView.snp.bottom).offset(12)
})
【问题讨论】:
-
什么错误/崩溃?
-
@Sh_Khan 其 SnapKit 关系错误..
-
能发一下吗
-
@Sh_Khan 我不知道当您真的不知道 subView 约束时是否可以进行底部约束。是的...异步它会起作用,但是这样。不知道有没有可能
-
innerView也包含在superView中吗?
标签: swift constraints snapkit