Swift Label.sizeToFit() 大小适应问题

参考链接:sizeToFit()使用心得_aaa1231722的博客-CSDN博客

问题:

              Label.sizeToFit()

              Label.snp.makeConstraints { make in

                    make.width.equalTo(Label.frame.size.width)

                }

设置了 sizeToFit() 自适应宽度属性,字数过多时仍然显示 :字数...  点点点,可以适当放开宽度的初始值

解决:

 初始值放宽即可:如:

            1.    .init(frame: CGRect(x: 0, y: 0, width: 一个大点的值, height: 高度))

            2. Label.snp.makeConstraints { make in

                          make.width.equalTo(一个大点的值)                                   

                }

原因:

具体原因,文档里说明的很清楚了:

- (void)sizeToFit;                      

// calls sizeThatFits: with current view bounds and changes bounds size.

**调用sizeThatFits:使用当前视图边界并更改边界大小。

那么 sizeThatFits是啥?

- (CGSize)sizeThatFits:(CGSize)size;    

// return 'best' size to fit given size. does not actually resize view. Default is return existing view size

**返回“最佳”尺寸以适合给定尺寸。实际上不会调整视图的大小。默认值是返回现有视图大小

猜想,出现这种问题: sizeToFit()方法从sizeThatFits里面,得到了一个最佳尺寸,然后进行大小调整,没改变大小要不就是最佳尺寸计算的不对(需要宽100,结果返回了99),要不就是没有进行调整。反正是有个机制没有被触发,或者返回错误。

所以,你可以设置一个大一点的值,让系统知道这个值明显不适合,然后进行重新计算和调整。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

app开发工程师V帅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值