sizeToFit的使用
- (void)sizeToFit;
1.是什么
该方法是UIview
的接口方法,适用于所有的 UI层控件
2.干什么用的
自适应 控件宽高
用的
3.使用方法(以UIlable
为例)
NSString *messge = @"这是一组测试数据";
UILabel *lable = [[UILabel alloc] initWithFrame:CGRectMake(10, 100, 30, 30)];
lable.backgroundColor = [UIColor lightGrayColor];
lable.text = messge;
[self.view addSubview:lable];
运行结果:
![](https://img.haomeiwen.com/i2189375/d2cbadcfa37be527.jpeg)
结论:由于控件宽度太小导致文字显示不出来
添加上一行代码[lable sizeToFit];
(注意!该行代码要添加在赋值语句的后面)后
运行结果:
![](https://img.haomeiwen.com/i2189375/f2b0059b1fa18eca.jpeg)
结论:文字可以完整的显示在控件上
4.与numberOfLines
的关系 (以UIlable 为例)
NSString *messge = @"这是一组测试数据numberOfLines";
UILabel *lable = [[UILabel alloc] initWithFrame:CGRectMake(10, 100, 30, 30)];
lable.backgroundColor = [UIColor lightGrayColor];
lable.text = messge;
[self.view addSubview:lable];
lable.numberOfLines = 2;//行数
[lable sizeToFit];
现在将numberOfLines
置为2;
运行结果为:
![](https://img.haomeiwen.com/i2189375/eb511cbc9d66febc.jpeg)
将numberOfLines
置为0;
运行结果为:
![](https://img.haomeiwen.com/i2189375/785fc113b57fa9d5.jpeg)
将numberOfLines
置为1;(默认值,可以省略不写)
运行结果为:
![](https://img.haomeiwen.com/i2189375/3b79c6c1523fe7a0.jpeg)
结论:
1.要满足控件横向自适应宽高
,需要控件的numberOfLines
值为默认值1
;
2.numberOfLines
≠1时, sizeToFit
自适应以高度为主,分行进行展示,具体分几行展示取决于numberOfLines
的具体值为多少,如果在设定的行数内没内有展示完内容,则会以省略号的形式进行展示.
5.总结
1.给控件赋值时,在
赋值语句的后面
添加一句代码[lable sizeToFit];
可以实现控件宽高
的自适应;
2.相较于传统的先计算出内容的实际宽高,再改变控件frame
的手动布局
方式,这种自动布局
方式更加便捷、简洁.
3.sizeToFit
会改变控件的宽度与高度(size),以达到完整显示内容的目的;并不会改变控件的坐标X/Y (origin)
4.如果控件有numberOfLines
属性,则该属性值会影响控件的布局.
6.注意点
1.使用sizeToFit
进行自适应布局时,要注意控件的宽度与高度都会改变,这两个变的值都需要考虑到,防止考虑不周,出现布局误差.
网友评论