首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift SnapKit动态高度问题

Swift SnapKit动态高度问题
EN

Stack Overflow用户
提问于 2019-05-20 11:55:01
回答 2查看 2.6K关注 0票数 0

我在DispatchQueue.main.async上使用snapKit以编程方式设置约束。但我注意到,main.async有时会导致冻结UI,因此我更改了使用它的方法。现在,我在使用动态高度时遇到了问题,旧的方法在试图使动态高度取决于内容时会产生错误。

旧方法 (innerView -是视图的子视图)

代码语言:javascript
复制
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

新方法

代码语言:javascript
复制
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)
        })

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-24 12:56:14

我发现了问题,以防有人需要.添加make.bottom.equalTo(self.innerView.snp.bottom).offset(12),后,添加所有的superview约束,它将工作!

票数 0
EN

Stack Overflow用户

发布于 2019-05-20 12:42:16

在设置约束之前,必须同时添加两者

代码语言:javascript
复制
superView.addSubview(view)
superView.addSubview(innerView) //  or view.addSubview(innerView) if it's nested UI
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)
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56220536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档