gpt4 book ai didi

swift - Snapkit:将倍数限制为边距

转载 作者:搜寻专家 更新时间:2023-10-30 22:30:24 27 4
gpt4 key购买 nike

我正在使用 Snapkit 来简化我的自动布局代码,但是似乎经常弹出一个场景,我想知道是否有一种方法可以减少代码。

假设我需要将 UIView 的边缘固定到它的 super View 边距,我们可能会这样做:

subView.snp.makeConstraints { make in
make.top.equalTo(parentView.snp.topMargin)
make.bottom.equalTo(parentView.snp.bottomMargin)
make.left.equalTo(parentView.snp.leftMargin)
make.right.equalTo(parentView.snp.rightMargin)
}

这基本上会导致 subview 填充父 View ,除了由父 View 布局边距定义的少量填充。我确信这种变化很常见。

对于这个库来说,这似乎过于冗长。它有一些非常好的辅助方法,比如这些

make.edges.equalToSuperview()
make.top.left.right.equalToSuperview()

然而,我在他们的文档中没有找到的是如何执行上述两个与页边距相关的辅助方法。

我正在寻找的(如果存在的话)类似于:

make.edges.equalToSuperview().withMargins()
make.top.left.right.equalToSuperview().withMargins()
make.top.left.right.equalTo(someview).withMargins()

那么,除了非常冗长的方法之外,还有其他方法可以做到这一点吗?我是否遗漏了文档中的某些内容,或者这可以通过扩展添加?

最佳答案

你试过这样的事情吗?

subView.snp.makeConstraints { make in
make.edges.equalTo(view.snp.margins)
}

评论后编辑:

当你只想将某些边限制到父 View 边距时,你可以这样做。

subView.snp.makeConstraints { make in
make.top.leading.equalTo(view).inset(view.layoutMargins)
}

subView.snp.makeConstraints { make in
make.top.leading.equalTo(view.layoutMarginsGuide)

subView.snp.makeConstraints { make in
make.top.leading.equalTo(view.safeAreaLayoutGuide)

关于swift - Snapkit:将倍数限制为边距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46119256/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com