Autolayout自动布局cell

发布于 2022-09-05 04:19:21 字数 664 浏览 12 评论 0

clipboard.png

如图所示,想做的效果为: 商品名称宽度不固定,价格宽度不固定,高度为自动计算行高。

我从右至左添加的约束为

+ 按钮约束: right 5 width 25 height 25 bottom 15

数量label约束: right 10 width 35 下对齐 +按钮

- 按钮约束: right 10 width 25 height 25 下对齐+按钮

价钱label约束: right 10 下对齐+按钮 width >= 50

商品名称label约束: left 5 right 10 centerY 居中 bottom 15

约束添加完毕后,还是有错误。 如下图所示

clipboard.png

望大佬指教!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

咆哮 2022-09-12 04:19:22

我按照你的layout, 自己写了一个xib. 出现和你一样的水平约束错误.(商户名称数量价格等label)
出现约束错误的原因是,约束默认都是优先等级是1000, 水平和垂直抗压缩系数相等, 然而这些label都会因为其内容而宽度发生改变,xcode认为这三个label水平方向无法保证其所有约束都能成立,所以报错。
解决
首先, 布局分析, 数量价格是必须要保证其内容完整显示, 所以宽度不能压缩. 能做处理的只能是商品名称.
所以, 先把商品名称水平抗压缩系数调低, 在把数量价格的调高即可满足需求.
1. 按你的需求拖出来的xib
图片描述
2. 改变商品名称约束系数, 如图点击change
图片描述
3. 修改价格系数
图片描述
4. 完成
图片描述
5. 测试1 - 修改数量
图片描述
6. 测试2 - 修改价格
图片描述
7. 测试3 - 修改商品名称
图片描述

萌吟 2022-09-12 04:19:22

设约束的方法很多,常用的是比例计算,例如width>=50这种只是一个限制条件,并不能起到绝对固定的作用,即你的价格宽度是可变的,然后根据cell的宽度会自动推算商品描述的宽度

最简单修改办法,如果cell是320的宽度,价格设置为(50),把描述的宽度 改为 320-5-25-10-35-10-25-10-(50)-10-5 = 135即可
clipboard.png

这么设置约束是有问题的,比如把 cell的宽度改成 414,就会这样
clipboard.png

我比较倾向的设置方法应该是 给price设置比例:
clipboard.png

这样就好了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文