首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用SnapKit实现宽高比和小尺寸

使用SnapKit实现宽高比和小尺寸
EN

Stack Overflow用户
提问于 2019-09-12 01:46:13
回答 1查看 9.9K关注 0票数 4

我正尝试在SnapKit中创建此布局的约束,但在设置最大尺寸(lessThanOrEqual)时遇到了困难。

代码语言:javascript
运行
复制
let maxWidthContainer: CGFloat = 435
let maxHeightContainer: CGFloat = 600

containerView.snp.makeConstraints {
    $0.width.equalTo(containerView.snp.height).multipliedBy(maxWidthContainer / maxHeightContainer)
    $0.centerX.centerY.equalToSuperview()
    $0.leading.trailing.equalToSuperview().inset(38).priorityLow()
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-12 03:55:56

如果我理解你想要什么,这应该可以做到:

代码语言:javascript
运行
复制
    let v = UIView()
    v.backgroundColor = .blue
    view.addSubview(v)

    let maxWidthContainer: CGFloat = 435
    let maxHeightContainer: CGFloat = 600

    v.snp.makeConstraints { (make) in
        // centered X and Y
        make.centerX.centerY.equalToSuperview()

        // at least 38 points "padding" on all 4 sides

        // leading and top >= 38
        make.leading.top.greaterThanOrEqualTo(38)

        // trailing and bottom <= 38
        make.trailing.bottom.lessThanOrEqualTo(38)

        // width ratio to height
        make.width.equalTo(v.snp.height).multipliedBy(maxWidthContainer/maxHeightContainer)

        // width and height equal to superview width and height with high priority (but not required)
        // this will make it as tall and wide as possible, until it violates another constraint
        make.width.height.equalToSuperview().priority(.high)

        // max height
        make.height.lessThanOrEqualTo(maxHeightContainer)
    }
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57894335

复制
相关文章

相似问题

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