如何将 snapkit 中按钮的宽度设置为最小且不超过最大宽度

How to set the width of a button in snapkit to be the smallest it can be and not exceed a max width

我有一个按钮,我希望它尽可能小,因此它只包含文本,但如果按钮太大,请将其限制在插入 2 个标准单位的包含视图的大小内。

现在这是我的代码:

    backButton.snp.makeConstraints { make in
        make.centerX.equalToSuperview()
        make.top.equalTo(containerView.snp.bottom).offset(2.su)
        make.trailing.leading.lessThanOrEqualToSuperview().inset(2.su)
    }

它的问题在于它会立即调整大小以占用 trailingleading 约束中的 space。有没有办法让它花费更少 space?

您需要将 leading 设置为 greaterThanOrEqualToSuperview 或将 trailing 设置为 lessThanOrEqualToSuperview。由于您将 centerX 设置为居中,因此您不需要两者。

当您将它们设置为 lessThanOrEqualToSuperview 时,trailing 工作正常,但 leading 会干扰它。

backButton.snp.makeConstraints { make in
    make.centerX.equalToSuperview()
    make.top.equalTo(containerView.snp.bottom).offset(2.su)
    make.trailing.lessThanOrEqualToSuperview().inset(2.su)
}