iOS UILabel计算高度与宽带
2013-12-19 16:41
246 查看
1、在IOS开发中,我们经常需要根据文本的长短动态的设置UILabel的显示位置,这时我们就需要知道UILabel的宽与高。
在IOS6.0以及以前的版本计算UILabel的高度与宽度,在IOS7.0 sizeWithFont被遗弃不在使用。
1、1 定义单行字符串,计算Label的宽度与高度
1、2 定义多行字符串
2 在IOS7.0获取UILabe的宽度与高度
在IOS6.0以及以前的版本计算UILabel的高度与宽度,在IOS7.0 sizeWithFont被遗弃不在使用。
1、1 定义单行字符串,计算Label的宽度与高度
NSString *content=@"欢迎访问"; UILabel *label=[[UILabel alloc] init]; [label setNumberOfLines:1]; CGSize size=CGSizeMake(320, 20); label.text=content; UIFont *font=[UIFont fontWithName:@"Arial" size:12.0f]; label.font=font; CGSize labelsize=[content sizeWithFont:font constrainedToSize:size lineBreakMode:NSLineBreakByTruncatingTail]; label.frame=CGRectMake(10, 10, labelsize.width, labelsize.height); [self.view addSubview:label]; [label release];
1、2 定义多行字符串
NSString *content=@"欢迎访问天猫购物商城,祝您购物愉快"; UILabel *label=[[UILabel alloc] init]; [label setNumberOfLines:0];//设置行数为零,即不做限制 CGSize size=CGSizeMake(320, 1000); label.text=content; UIFont *font=[UIFont fontWithName:@"Arial" size:12.0f]; label.font=font; //NSLineBreakByWordWrapping以单词为单位换行 CGSize labelsize=[content sizeWithFont:font constrainedToSize:size lineBreakMode:NSLineBreakByWordWrapping]; label.frame=CGRectMake(10, 10, labelsize.width, labelsize.height); [self.view addSubview:label]; [label release];
2 在IOS7.0获取UILabe的宽度与高度
NSString *content=@"欢迎访问天猫购物商城,祝您购物愉快"; UILabel *label=[[UILabel alloc] init]; [label setNumberOfLines:0];//设置行数为零,即不做限制 CGSize size=CGSizeMake(320, 1000); label.text=content; UIFont *font=[UIFont fontWithName:@"Arial" size:12.0f]; label.font=font; NSMutableParagraphStyle *paragraph=[[[NSMutableParagraphStyle alloc] init] autorelease]; paragraph.lineBreakMode=NSLineBreakByWordWrapping; paragraph.alignment=NSTextAlignmentCenter; NSAttributedString *attributeText=[[[NSAttributedString alloc] initWithString:content attributes:@{NSFontAttributeName:font,NSParagraphStyleAttributeName:paragraph}] autorelease]; //options 有多个参数,详见苹果官方解释 CGSize labelsize=[attributeText boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin context:nil].size; labelsize=CGSizeMake(ceilf(labelsize.width),ceilf(labelsize.height)); label.frame=CGRectMake(10, 10, labelsize.width, labelsize.height); [self.view addSubview:label]; [label release];
相关文章推荐
- iOS 计算UILabel以及UIButton等控件计算宽度高度。
- IOS开发中UILabel单行、多行文本计算高度、宽度的技巧
- iOS 使用 boundingRectWithSize: 计算 UILabel 高度错误的解决方案
- iOS开发技巧之:UILabel设置行间距和字间距并计算高度
- ios 根据文字数量计算UILabel高度
- 【iOS】UILabel多行文本的高度计算
- iOS UILabel设置行间距和字间距并计算高度
- IOS开发中UILabel单行、多行文本计算高度、宽度的技巧
- iOS UILabel根据内容动态计算高度
- IOS 中UITextField,UITextView,UILabel 根据内容来计算高度
- ios之计算UILabel的高度
- iOS UILabel设置行间距和字间距并计算高度
- 八,iOS当UILabel文字不固定时计算label的高度
- iOS开 4000 发时关于UILabel文本高度和宽度的计算问题(单行、多行)
- [iOS学习]关于UILabel计算多行高度以及显示的问题
- iOS UILabel设置行间距和字间距并计算高度
- iOS UILabel设置行间距和字间距并计算高度
- iOS中的UILabel自动计算高度和换行
- IOS开发中UILabel单行、多行文本计算高度、宽度的技巧
- IOS计算UILabel单行高度、计算UILabel多行文本高度、宽度的技巧,根据文本的高度设置cell高度