//UILabel自适应文本的高度

    UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(, , , )];

    label.numberOfLines = ;

    label.lineBreakMode = NSLineBreakByWordWrapping;

    label.text = @"是它吗?哈哈,太兴奋了。”12日,随着土豪金版100元人民币正式发行,到了中午,不少长春市民也陆续在其朋友圈晒出了他们拿到的新版人民币。不过,先别高兴,不少验钞机还没升级,可能误认它是假钞。";

    CGSize size = [label sizeThatFits:CGSizeMake(label.frame.size.width, MAXFLOAT)];

    label.frame =CGRectMake(, , , size.height);

    label.font = [UIFont systemFontOfSize:];

    [self.view addSubview:label];

以下方法可以做到在固定label大小里面根据文本多少来确定字体的大小。

//让文本自适应Label

    //经常遇到,UILabel里面的显示区域固定,   但是里面的文字显示合适的字体大小的时候,可以用下面的方法:

    UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(, , , )];

    label.backgroundColor = [UIColor clearColor];

    label.textColor = [UIColor redColor];

    label.font = [UIFont systemFontOfSize:];

    label.adjustsFontSizeToFitWidth = YES;

    label.minimumFontSize = ;//默认为0

    label.text = @"flying in the sky";

    //就是在空间够的情况下,使用20号字体,如果空间不够,那么就会自动将字体向下调整,但是也不会少于6号字体,如果6号字体也显示不完,后续显示省略号。。。

    [self.view addSubview:label];

另外一些自适应文本高度的方法:

//自适应label高度,方法一:
UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(, , , )];
NSString *text = @"First take clear picture and then try to zoom in to fit the ";
label.text = text;
label.lineBreakMode = UILineBreakModeWordWrap; //这个是关键
label.numberOfLines = ; //这个是关键
 CGSize maximumSize = CGSizeMake(, CGFLOAT_MAX); // 第一个参数是label的宽度,第二个参数是固定的宏定义,CGFLOAT_MAX
CGSize expectedLabelSize = [text sizeWithFont:label.font
constrainedToSize:maximumSize
lineBreakMode:UILineBreakModeWordWrap]; CGRect newFrame = label.frame;
newFrame.size.height = expectedLabelSize.height;
label.frame = newFrame;
[label sizeToFit];
[self addSubview:label];

综合主要代码:

UILabel *label=[[UILabel alloc]initWithFrame:CGRectMake(10, 225, 300, 180)];
NSString *string = @"First take clear picture and then try to zoom in to fit the "; 
CGRect orgRect=self.label.frame;//获取原始UILabel的frame
[label  setNumberOfLines:0];   //numberoflines为0,即不做行数的限制  
CGSize size = [string sizeWithFont:[UIFont systemFontOfSize:] constrainedToSize:CGSizeMake(, )lineBreakMode:UILineBreakModeWordWrap]; 
orgRect.size.height=size.height+;  //获取自适应文本内容高度
[label setFrame: orgRect];   //重设UILabel的frame
[label setText: string];

UITextView的设置与Label差不多

NSString *string="是它吗?哈哈,太兴奋了。”12日,随着土豪金版100元人民币正式发行,到了中午,不少长春市民也陆续在其朋友圈晒出了他们拿到的新版人民币。不过,先别高兴,不少验钞机还没升级,可能误认它是假钞。";//获取文本内容  

CGRect orgRect=self.txtView.frame;//获取原始UITextView的frame  

CGSize  size = [string sizeWithFont:[UIFont systemFontOfSize:] constrainedToSize:CGSizeMake(, ) lineBreakMode:UILineBreakModeWordWrap];    

orgRect.size.height=size.height+;//获取自适应文本内容高度  

    self.txtView.frame=orgRect;//重设UITextView的frame  

self.txtView.text=string;  

iOS UILabel UITextView自适应文本,或文本大小自适应的更多相关文章

  1. iOS UILabel UITextView UIButton 等等显示文本行间距

    iOS UILabel  UITextView UIButton 等等显示文本行间距都用如下方法 NSMutableParagraphStyle *paragraphStyle = [[NSMutab ...

  2. iOS - UILabel添加图片之富文本的简单应用

    //创建富文本 NSMutableAttributedString *attri = [[NSMutableAttributedString alloc] initWithString:@" ...

  3. 【iOS】WebView加载HTML图片大小自适应与文章自动换行

    在很多App中都会使用到webview,尤其是在加载新闻内容等文章形式的数据时.因为图文混编以及不同字体格式的显示,在iOS进行编辑 和显示都是一大问题(当然,iOS中也可以用CoreText进行绘制 ...

  4. WebView加载HTML图片大小自适应与文章自动换行

    http://www.brighttj.com/ios/ios-webview-load-html-image-adaptive.html 在很多App中都会使用到webview,尤其是在加载新闻内容 ...

  5. IOS 学习笔记(5) 控件 文本视图(UITextView)的使用方法

    相对于UILabell所支持的较短文本内容,UITextView对于长文本的支持更好.UITextView能够以滚动的方式全部浏览到长文本,并且就像UILabel那样,从ISO6,他也提供了对NSAt ...

  6. Xamarin iOS教程之显示和编辑文本

    Xamarin iOS教程之显示和编辑文本 Xamarin iOS显示和编辑文本 在一个应用程序中,文字是非常重要的.它就是这些不会说话的设备的嘴巴.通过这些文字,可以很清楚的指定这些应用程序要表达的 ...

  7. iOS 9应用开发教程之多行读写文本ios9文本视图

    iOS 9应用开发教程之多行读写文本ios9文本视图 多行读写文本——ios9文本视图 文本视图也是输入控件,与文本框不同的是,文本视图可以让用户输入多行,如图2.23所示.在此图中字符串“说点什么吧 ...

  8. 使用contenteditable+div模拟textarea文本域实现高度自适应

    使用contenteditable+div模拟textarea文本域实现高度自适应 开发过程中由于需要在发送消息的时候需要有一个可以高度自适应的文本域,一开始是使用textarea并搭配auto-si ...

  9. 我的插件のinput文本框实现宽度自适应

    先来最后结果:DEMO 介绍一下如何让一个文本框的宽度能够随着文本框中的内容的宽度增长而增长,也就是能够实现宽度自适应效果. 代码实例如下: <!DOCTYPE html> <htm ...

随机推荐

  1. JS判断按时间跳转到相应的页面

    <!--时间段跳转js--><script language="javaScript" type="text/javascript"> ...

  2. codeforces 433C. Ryouko's Memory Note 解题报告

    题目链接:http://codeforces.com/problemset/problem/433/C 题目意思:一本书有 n 页,每页的编号依次从 1 到 n 编排.如果从页 x 翻到页 y,那么| ...

  3. WAS:启动服务后,server一会挂起。

    有个WAS集成,其中一台因为linux系统异常需要重新安装,于是服务器停了:一会现场提报ERP系统访问不了. 查看了另外一个server后台日志,有一批webcontainer进程挂起,明显服务死了. ...

  4. [原创]java调用PageOffice生成word

    一.在开发OA办公或与文档相关的Web系统中,难免会遇到动态生成word文档的需求,为了解决工作中遇到导出word文档的需求,前一段时间上网找了一些资料,在word导出这方面有很多工具可以使用,jac ...

  5. 嵌入式Linux学习方法——给那些彷徨者(上)

    要想学好嵌入式Linux,首先要解决两个重要问题: 1. 学什么? 2. 怎么学? 首先解决第一个问题. 嵌入式Linux的系统架构包括软件和硬件两个部分,如下图: 再来看看一个成熟的嵌入式产品的开发 ...

  6. 浅谈getAttribute兼容性

    最近终于证实tag.setAttribute("style", "color:#000;");在IE7中不起作用.于是百度了一些解决办法. IE的setAttr ...

  7. Vue.nextTick()的正确使用

    Vue异步执行DOM更新.只要观察导数据变化,Vue将开启一个队列,并缓冲在同一事件循环中发生的所有数据改变,如果同一个watcher被多次触发,只会一次推入到队列中.这种在缓冲时去除重复数据对于避免 ...

  8. VPS 安全措施(CentOS 6)

    新到手一台VPS,要做的第一件事大概是做好安全措施. 下面针对CentOS 6随便写点,我目前做的几步是: 修改root密码 SSH-key登录 配置iptable 安装fail2ban 1.修改ro ...

  9. Codechef SUMCUBE

    SUMCUBE code 给定无向简单图 G = (V, E)(即不存在自环和重边),以及 k = 1, 2, 或3 .求$$ \sum_{S \subseteq V} f(S)^k, $$其中 $f ...

  10. [转]C# Socket编程笔记

    本文转自:http://www.cnblogs.com/stg609/archive/2008/11/15/1333889.html 原文如下: 看到这个题目,是不是很眼熟?在博客园里搜下,保证会发现 ...