博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS学习:UILabel和sizeWithFont方法
阅读量:6915 次
发布时间:2019-06-27

本文共 3046 字,大约阅读时间需要 10 分钟。

1 - (void)viewDidLoad 2 { 3     [super viewDidLoad]; 4     // Do any additional setup after loading the view, typically from a nib. 5      6     NSString *text = @"tw ia nwifei xantianwif eixan tianwi feixan"; 7      8     //设置字体,包括字体及其大小 9     UIFont *font = [UIFont fontWithName:@"Arial" size:50.0f];10     11     //label可设置的最大高度和宽度12     CGSize maxSize = CGSizeMake(320.f, MAXFLOAT);13     14     //字符串在指定区域内按照指定的字体显示时,需要的高度和宽度(宽度在字符串只有一行时有用)15     //一般用法:指定区域的宽度而高度用MAXFLOAT,则返回值包含对应的高度16     //如果指定区域的宽度指定,而字符串要显示的区域的高度超过了指定区域的高度,则高度返回017     //核心:多行显示,指定宽度,获取高度18     CGSize labelSize = [text sizeWithFont:font19                          constrainedToSize:CGSizeMake(320.f, MAXFLOAT)20                              lineBreakMode:NSLineBreakByWordWrapping];21 22     //指定用于显示的区域23     CGRect rect = CGRectMake(0.0f, 0.0f, labelSize.width, labelSize.height);24     25     //CGRectZero表示(0,0,0,0),即留待后面再设置26     UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectZero];27     28     //label默认只显示一行,把numberofline设为0,即表示不限制行数,根据实际显示29     [myLabel setNumberOfLines:0];30     31     myLabel.frame = rect;32     myLabel.text = text;33     myLabel.font = font;34     myLabel.textColor = [UIColor grayColor];35     36     //把label加入到view里,这样才能显示37     [self.view addSubview:myLabel];38     39     //引用计数减一,因为在上一行 addSubview 时,view已经把mylabel的引用计数加一了40     [myLabel release];41     42 }43 44 -(void)test45 {46     NSString *text = @"asfawlfaw;lojf";47     UIFont *font = [UIFont fontWithName:@"Arial" size:20.0f];48     49     //字符串在指定区域内按照指定的字体显示时,需要的高度和宽度(宽度在字符串只有一行时有用)50     //一般用法:指定区域的宽度而高度用MAXFLOAT,则返回值包含对应的高度51     //如果指定区域的宽度指定,而字符串要显示的区域的高度超过了指定区域的高度,则高度返回052     //核心:多行显示,指定宽度,获取高度53     CGSize labelSize = [text sizeWithFont:font54                         constrainedToSize:CGSizeMake(320.f, MAXFLOAT)55                             lineBreakMode:NSLineBreakByWordWrapping];56     57     //字符串用指定字体进行单行显示时,需要的高度和宽度58     CGSize size1 = [text sizeWithFont:font];59     60     //字符串用指定字体在指定区域进行单行显示时,需要的高度和宽度;61     //一般的用法是,指定区域的高度固定而宽度用MAXFLOAT,则返回值包含对应的宽度62     //如果指定区域的宽度不够,则宽度返回0;高度不够则没影响63     //核心:单行显示,指定区域的宽度要够大,获取宽度64     CGSize size2 = [text sizeWithFont:font65                     constrainedToSize:CGSizeMake(MAXFLOAT, 100.0f)];66     67     68     //字符串用指定字体指定宽度和指定换行方式显示时,需要的高度和宽度69     //虽然指定了换行方式,在实际计算时也会换行,但返回结果只会返回第一行的高度和宽度70     //如果指定宽度小于字符串宽度,则宽度返回071     //核心:貌似没有什么用72     CGSize size3 = [text sizeWithFont:font73                              forWidth:400.0f74                         lineBreakMode:NSLineBreakByWordWrapping];75     76     CGFloat f = 0.0f;77     78     //虽然指定了换行方式,在实际计算时也会换行,但返回的结果只是第一行的高度很宽度79     //指定了应该显示的字体,最小的字体,实际的字体,在实际计算中,如果宽度不够,则尽量缩小字符串的字体直至能够一行全部显示,如果缩到最小还不能完全显示字符串,则进行截断,返回截断后的字符串的高度和宽度80     //字体实际的大小,存放在 actualFontSize里81     CGSize size4 = [text sizeWithFont:font82                           minFontSize:10.0f83                        actualFontSize:&f84                              forWidth:100.0f85                         lineBreakMode:NSLineBreakByWordWrapping];86 87 }

转载地址:http://hdacl.baihongyu.com/

你可能感兴趣的文章
Daily scrum 12.12
查看>>
php 汉语转换拼音
查看>>
Java中如何遍历Map对象的4种方法
查看>>
Office常用技巧
查看>>
Spark:saveAsTable解析
查看>>
python---数据类型---列表
查看>>
iOS-应用程序被杀死时调用的函数
查看>>
安全测试===Mysql 注入技巧学习 MySQL注入技巧(2)
查看>>
python基础===Python 迭代器模块 itertools 简介
查看>>
Leetcode 8. String to Integer (atoi)
查看>>
第二天作业
查看>>
烂泥:切割nginx日志
查看>>
SSM-Spring-22:Spring+Mybatis+JavaWeb的整合
查看>>
Spring transaction事务之roll back回滚
查看>>
Java运算符、引用数据类型、流程控制语句
查看>>
Block Nested-Loop 和 Batched Key Access
查看>>
SecureCRT文件传输模式
查看>>
前端学HTTP之WEB服务器
查看>>
深入理解闭包系列第五篇——闭包的10种形式
查看>>
JPush开发
查看>>