如何在Swift 3.0中使用砖石布局?

5
Objective-C

[textView mas_makeConstraints:^(MASConstraintMaker *make) {
    make.edges.mas_equalTo(UIEdgeInsetsZero).priorityLow();
    make.top.mas_equalTo(imageView.mas_bottom).offset(20);
}];

我想修改Swift代码,请帮助我吗?谢谢。


你想做什么,有什么问题?你已经尝试过自己解决它了吗? - Tali
3个回答

7
这些代码使工作正常。
btn.mas_makeConstraints { (make:MASConstraintMaker?) in
    make?.top.equalTo()(view.mas_top)?.with().offset()(0)
    make?.left.equalTo()(view.mas_left)?.with().offset()(0)
    make?.right.equalTo()(view.mas_right)?.with().offset()(0)
    make?.bottom.equalTo()(view.mas_bottom)?.with().offset()(0)
    return()
}

2

如果您希望镜像父视图的edges,则最简单的方法是:

    self.xibView .mas_makeConstraints( { make in
        _ = make?.edges.equalTo()(self)
    })

这个赋值语句 _ = 也可以消除关于未赋值的警告。

0

您也可以使用SnapKit,它是Masonry的仅限Swift版本。看起来他们已经决定不再弃用Masonry了,但对于您的仅限Swift项目仍然是一个好主意。如果您熟悉Masonry,那么您可以非常容易地迁移到SnapKit。


1
我自己的建议唯一需要注意的是,SnapKit的支持并不是很久远。我在macOS上遇到了支持问题,他们只支持10.11+。 - Bill Burgess
有些人不幸地不能使用Swift框架。 - thibaut noah

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接