我是一名swift/iOS开发的初学者。来自web开发领域,与DOM/Box模型相比,布局模型完全令我困惑。我知道这意味着要理解所有内容,但是我就是不能弄清楚,我希望像这样的基本示例可以帮助说明一些问题,即使我使用类似snapkit的DSL:http://snapkit.io/
我该如何构建以下布局的约束条件?
我目前得到的,显然是错误的如下所示:
label1.snp.makeConstraints { (make) -> Void in
make.leading.equalTo(Style.MARGIN)
make.trailing.equalTo(-Style.MARGIN)
make.centerX.equalTo(self)
make.top.equalTo(Style.MARGIN)
}
label2.snp.makeConstraints { (make) -> Void in
make.leading.equalTo(Style.MARGIN)
make.trailing.equalTo(-Style.MARGIN)
make.centerX.equalTo(self)
make.top.equalTo(label1.snp.bottom)
}
exampleImage.snp.makeConstraints { (make) -> Void in
make.leading.equalTo(0)
make.trailing.equalTo(0)
make.top.equalTo(label2.snp.bottom).offset(Style.MARGIN)
make.bottom.equalTo(0)
}
Style.MARGIN
只是一个设置为 20
的常量。
我感觉只需要看到这样的一个示例,就能理解布局的流程和构建方式,或许可以避免像建立网站一样构建。在最基本的层面上,最令我困惑的是如何理解高度动态变化的对象如何仅仅放置在前一个对象下方,并使 tableViewCell 相应地调整大小。
exampleImage
是什么? - Sweeper