UILabel sizeWithFont:方法使用明细
来源:互联网 发布:医学软件大全下载 编辑:程序博客网 时间:2024/04/28 10:00
Computing Metrics for a Single Line of Text
– sizeWithFont: 同下面,换行方式默认取NSLineBreakByWordWrapping
– sizeWithFont:forWidth:lineBreakMode: 将字符串放入指定宽度,如果不够,就依据换行方式截断字符串,返回其大小。
– sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode:将字符串放入限定宽度内,不足,就缩小字体,直至放下,返回此时的字符串大小和字体大小;缩小到最小还不能放下,就截断字符串,返回其大小和字体大小。设置高度没有什么意义,因为高度值再大也只能显示一行,再小也要显示一行。
Computing Metrics for Multiple Lines of Text
– sizeWithFont:constrainedToSize: 同下面,换行方式默认取NSLineBreakByWordWrapping
– sizeWithFont:constrainedToSize:lineBreakMode:用于多行,指定限制,换行方式,字体大小。限制大小的宽度值和换行方式影响换行,进而影响结果的高度值。限制大小的高度值会影响内容显示的多少,大于实际所需,没影响;小于的话,字符串只能显示一部分,直至只能显示一行.
注意:指定的限制只是一个评估值,例如在多行里,我设定宽度限制120,高度无限,换行方式NSLineBreakByWordWrapping,那么最终输出的宽度值是118。因为对于某个字体大小,它不会刚好填满你指定的宽度。此外,除了– sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode:会改变字体大小的情况外,字体大小指定时,无论换行方式如何,是多行还是单行,最终的高度都是和字体所需的高度成1倍或者n倍关系。
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. NSString *text = @"tw ia nwifei xantianwif eixan tianwi feixan"; //设置字体,包括字体及其大小 UIFont *font = [UIFont fontWithName:@"Arial" size:50.0f]; //label可设置的最大高度和宽度 CGSize maxSize = CGSizeMake(320.f, MAXFLOAT); //字符串在指定区域内按照指定的字体显示时,需要的高度和宽度(宽度在字符串只有一行时有用) //一般用法:指定区域的宽度而高度用MAXFLOAT,则返回值包含对应的高度 //如果指定区域的宽度指定,而字符串要显示的区域的高度超过了指定区域的高度,则高度返回0 //核心:多行显示,指定宽度,获取高度 CGSize labelSize = [text sizeWithFont:font constrainedToSize:CGSizeMake(320.f, MAXFLOAT) lineBreakMode:NSLineBreakByWordWrapping]; //指定用于显示的区域 CGRect rect = CGRectMake(0.0f, 0.0f, labelSize.width, labelSize.height); //CGRectZero表示(0,0,0,0),即留待后面再设置 UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectZero]; //label默认只显示一行,把numberofline设为0,即表示不限制行数,根据实际显示 [myLabel setNumberOfLines:0]; myLabel.frame = rect; myLabel.text = text; myLabel.font = font; myLabel.textColor = [UIColor grayColor]; //把label加入到view里,这样才能显示 [self.view addSubview:myLabel]; //引用计数减一,因为在上一行 addSubview 时,view已经把mylabel的引用计数加一了 [myLabel release]; } -(void)test { NSString *text = @"asfawlfaw;lojf"; UIFont *font = [UIFont fontWithName:@"Arial" size:20.0f]; //字符串在指定区域内按照指定的字体显示时,需要的高度和宽度(宽度在字符串只有一行时有用) //一般用法:指定区域的宽度而高度用MAXFLOAT,则返回值包含对应的高度 //如果指定区域的宽度指定,而字符串要显示的区域的高度超过了指定区域的高度,则高度返回0 //核心:多行显示,指定宽度,获取高度 CGSize labelSize = [text sizeWithFont:font constrainedToSize:CGSizeMake(320.f, MAXFLOAT) lineBreakMode:NSLineBreakByWordWrapping]; //字符串用指定字体进行单行显示时,需要的高度和宽度 CGSize size1 = [text sizeWithFont:font]; //字符串用指定字体在指定区域进行单行显示时,需要的高度和宽度; //一般的用法是,指定区域的高度固定而宽度用MAXFLOAT,则返回值包含对应的宽度 //如果指定区域的宽度不够,则宽度返回0;高度不够则没影响 //核心:单行显示,指定区域的宽度要够大,获取宽度 CGSize size2 = [text sizeWithFont:font constrainedToSize:CGSizeMake(MAXFLOAT, 100.0f)]; //字符串用指定字体指定宽度和指定换行方式显示时,需要的高度和宽度 //虽然指定了换行方式,在实际计算时也会换行,但返回结果只会返回第一行的高度和宽度 //如果指定宽度小于字符串宽度,则宽度返回0 //核心:貌似没有什么用 CGSize size3 = [text sizeWithFont:font forWidth:400.0f lineBreakMode:NSLineBreakByWordWrapping]; CGFloat f = 0.0f; //虽然指定了换行方式,在实际计算时也会换行,但返回的结果只是第一行的高度很宽度 //指定了应该显示的字体,最小的字体,实际的字体,在实际计算中,如果宽度不够,则尽量缩小字符串的字体直至能够一行全部显示,如果缩到最小还不能完全显示字符串,则进行截断,返回截断后的字符串的高度和宽度 //字体实际的大小,存放在 actualFontSize里 CGSize size4 = [text sizeWithFont:font minFontSize:10.0f actualFontSize:&f forWidth:100.0f lineBreakMode:NSLineBreakByWordWrapping]; }
- UILabel sizeWithFont:方法使用明细
- sizeWithFont:方法使用明细
- sizeWithFont:方法使用明细
- sizeWithFont:方法使用明细
- sizeWithFont:方法使用明细
- sizeWithFont:方法使用明细
- sizeWithFont:方法使用明细
- sizeWithFont:方法使用明细
- 计算文本高度 UILabel和sizeWithFont方法
- iOS学习:UILabel和sizeWithFont方法
- ios7 UILabel sizeWithFont方法的最新写法
- 不使用sizeWithFont:minFontSize:actualFontSize:forWidth:使UILabel自适应,以及自定义UITableViewCell的自定义方法
- iOS学习:UILabel和sizeWithFont方法,可用于动态调整UILabel大小
- sizeWithFont方法过时替换
- iOS7以后,sizeWithFont方法被弃用。
- sizeWithFont:constrainedToSize:lineBreakMode的使用
- 使用明细汇总子句
- IOS7.0 sizeWithFont:constrainedToSize:lineBreakMode:方法
- 用netstat查看网络状态详解
- 模板方法模式
- Struts2-----2、Struts2的下载和安装
- sqoop导入数据到hive
- uva--188+模拟
- UILabel sizeWithFont:方法使用明细
- Eclipse安装Drools插件
- linux下静态路由修改命令
- SetFont()修改字体大小及样式的问题
- Vmware虚拟网络详解(太详细了,讲的很浅显易懂。。。。。。。。。。)
- 黑马程序员-java基础之网络编程
- wordpress date_i18n 日期格式化
- C++编程学习50个经典网站 强力推荐
- IOS UIScrollView背景色 及滑动范围设定