首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SnapKit自动调整UILabel大小

使用SnapKit自动调整UILabel大小
EN

Stack Overflow用户
提问于 2017-04-15 05:17:02
回答 1查看 5K关注 0票数 1

让我们假设CustomView's大小是300x300。iconImageView有它的大小和分配的约束。我不知道文本在UILabel中会有多长,所以我不想让UILabel的大小固定不变。我的目标是将左侧约束固定到iconImageView的右侧,将右侧约束固定到customView

代码语言:javascript
复制
override func updateConstraints() {
    super.updateConstraints()

    iconImageView.snp.updateConstraints { (make) in
        make.left.equalTo(customView).offset(10)
        make.centerY.equalTo(customView)
        make.size.equalTo(CGSize(width: 40.0, height: 40.0))
    }

    nameLabel.snp.updateConstraints { (make) in
        make.right.equalTo(customView).offset(-10)
        make.left.equalTo(iconImageView.snp.right).offset(10)
        make.centerY.equalTo(customView)
    }
}

当我尝试这种方法时,我得到了错误:Unable to simultaneously satisfy constraints.什么是正确的方法?

EN

回答 1

Stack Overflow用户

发布于 2017-04-17 02:33:01

好吧,我想你的子视图不知道任何关于顶部/底部约束的东西,这意味着视图不知道如何重新布局自己。试试这个:

代码语言:javascript
复制
override func updateConstraints() {
    super.updateConstraints()

    iconImageView.snp.updateConstraints { (make) in
        make.left.equalTo(customView).offset(10)
        make.centerY.equalTo(customView)

        // Also from my point of view this line \/ 
        // is not very readable
        //  make.size.equalTo(CGSize(width: 40.0, height: 40.0))
        // Changed to:
        make.width.height.equalTo(40.0)
    }

    nameLabel.snp.updateConstraints { (make) in
        make.right.equalTo(customView).offset(-10)
        make.left.equalTo(iconImageView.snp.right).offset(10)

        // Add:
        make.top.equalTo(customView.snp.top)
        make.bottom.equalTo(customView.snp.bottom)
    }
}

如果你想保持标签的“默认”高度(在空字符串的情况下)您可以添加:

代码语言:javascript
复制
make.height.greaterThanOrEqual(40.0)

另外,自动布局和框架不能很好地协同工作,所以你应该在"updateConstraints“方法中布局你的自定义视图,如下所示:

代码语言:javascript
复制
customView.snp.updateConstraints { (make) in 
     make.edges.equalTo(self)
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43419393

复制
相关文章

相似问题

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