Label--Label自适应
来源:互联网 发布:mac os更新系统失败 编辑:程序博客网 时间:2024/04/29 20:58
一、sizeToFit
- UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(5, 5, 0, 0)];
- label.backgroundColor = [UIColor blueColor];
- [label setFont:[UIFont systemFontOfSize:20]];
- label.text = @"我们都有一个家名字叫中国";
-
- [label sizeToFit];
- NSLog(@"labelWidth = %f labelHeight = %f", label.frame.size.width, label.frame.size.height);
-
- [self addSubview:label];
二、sizeThatFits方法的使用- UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(5, 5, 0, 0)];
- label.backgroundColor = [UIColor blueColor];
- [label setFont:[UIFont systemFontOfSize:20]];
- label.text = @"我们都有一个家名字叫中国";
- CGSize sizeThatFits = [label sizeThatFits:CGSizeZero];
- NSLog(@"sizeThatFits.width = %f sizeThatFits.height = %f", sizeThatFits.width, sizeThatFits.height);
-
- NSLog(@"labelWidth = %f labelHeight = %f", label.frame.size.width, label.frame.size.height);
-
-
-
- label.frame = CGRectMake(5, 5, sizeThatFits.width, sizeThatFits.height);
- [self addSubview:label];
- UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(5, 5, 0, 0)];
- label.backgroundColor = [UIColor blueColor];
- [label setFont:[UIFont systemFontOfSize:20]];
- label.numberOfLines = 0;
- label.lineBreakMode = NSLineBreakByCharWrapping;
- label.text = @"我们都有一个家名字叫中国我们都有一个家名字叫中国";
-
-
-
-
- CGSize size = [label sizeThatFits:CGSizeMake(100, MAXFLOAT)];
- label.frame = CGRectMake(5, 5, size.width, size.height);
- [self addSubview:label];
-
三、让文本适应label的宽度,label宽度不变字体大小根据字数的多少来调节
label.adjustsFontSizeToFitWidth = YES;
小知识点:
label的截断模式
当label的文本内容超过label的宽度时有一个截断模式,就是来处理多出的文本的显示问题。
- label.lineBreakMode = NSLineBreakByCharWrapping;以字符为显示单位显示,后面部分省略不显示。
- label.lineBreakMode = NSLineBreakByClipping;剪切与文本宽度相同的内容长度,后半部分被删除。
- label.lineBreakMode = NSLineBreakByTruncatingHead;前面部分文字以……方式省略,显示尾部文字内容。
- label.lineBreakMode = NSLineBreakByTruncatingMiddle;中间的内容以……方式省略,显示头尾的文字内容。
- label.lineBreakMode = NSLineBreakByTruncatingTail;结尾部分的内容以……方式省略,显示头的文字内容。
- label.lineBreakMode = NSLineBreakByWordWrapping;以单词为显示单位显示,后面部分省略不显示。
0 0