iOS下 UILabel 如何自动换行
- UILabel的自动换行,自动换行的同时要自适应Frame大小。
- UITableView的行高自适应内容,实时调整高度。
- UILabel的自动换行
- 获取UILabel的frame大小
- 获取UILabel的字体大小
- 获取UILabel的文本内容
- 根据上面的3部分数据,计算文本显示区域大小
- 根据4计算的大小,实时改变UILabel的frame
NSString * labelStr = @“你好,这是UILabel的自动换行测试内容,主要实现多行数据的自动换行,自适应不同行数的数据”;
CGSize labelSize = {0, 0};
labelSize = [labelStr sizeWithFont:[UIFont systemFontOfSize:14]
constrainedToSize:CGSizeMake(200.0, 5000)
lineBreakMode:UILineBreakModeWordWrap];
//14 为UILabel的字体大小
//200为UILabel的宽度,5000是预设的一个高度,表示在这个范围内
label.numberOfLines = 0;//表示label可以多行显示
label.lineBreakMode = UILineBreakModeCharacterWrap;//换行模式,与上面的计算保持一致。
label.frame = CGRectMake(label.frame.origin.x, label.frame.origin.y, label.frame.size.width, labelSize.height);//保持原来Label的位置和宽度,只是改变高度。
- UITableView的行高自适应内容
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString * labelStr = @“你好,这是UILabel的自动换行测试内容,主要实现多行数据的自动换行,自适应不同行数的数据”;
CGSize labelSize = {0, 0};
labelSize = [labelStr sizeWithFont:[UIFont systemFontOfSize:14]
constrainedToSize:CGSizeMake(200.0, 5000)
lineBreakMode:UILineBreakModeWordWrap];
//14 为UILabel的字体大小
//200为UILabel的宽度,5000是预设的一个高度,表示在这个范围内
return labelSize.height + delta;
//delta 是Cell除了自适应控件UILabel外的其它控件所占的高度。
}
小结:实现上面2个技术点后,评论相关的APP或者类似的APP都可以做到自适应内容,根据内容多少自动换行,自动调整控件的位置和大小,达到最优的显示效果。
iOS下 UILabel 如何自动换行的更多相关文章
- iOS之UILabel的自动换行
思路: 获取UILabel的frame大小 获取UILabel的字体大小 获取UILabel的文本内容 根据上面的3部分数据,计算文本显示区域大小 根据4计算的大小,实时改变UILabel的frame ...
- iOS关于UILabel 基本属性 背景图片 背景色
[代码] iOS关于UILabel 基本属性 背景图片 背景色 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ...
- IOS下拉放大图片
代码地址如下:http://www.demodashi.com/demo/11623.html 一.实现效果图 现在越来越多的APP中存在下拉放大图片的效果,今天贡献一下我的实现这种方法的原理,和我遇 ...
- IOS 为UILabel添加长按复制功能
IOS 为UILabel添加长按复制功能 在iOS中下面三个控件,自身就有复制-粘贴的功能: 1.UITextView 2.UITextField 3.UIWebView UIKit framewor ...
- 如何在webapp中做出原生的ios下拉菜单效果
github:https://github.com/zhoushengmufc/iosselect webapp模仿ios下拉菜单 html下拉菜单select在安卓和IOS下表现不一样,iossel ...
- 记一次事件委托在 ios 下的兼容 bug
项目中碰到的兼容类 bug,记录一二. 页面上有几个同类型的控件,点击它们会触发一些事件,很显然,事件委托优于批量绑定.为了图方便,我将 click 事件绑定到了 document.body 上(绑定 ...
- ios下fixed回复框bug的解决方案
前几天做一个移动端的页面,要加个像微信那样附着在底部的回复框,按照做PC端网页的思路,首先是用fixed,在安卓上测了一下是好的,结果到朋友的iphone6p上就不行了,点击输入框之后它总会跳到屏幕中 ...
- Cordova webapp实战开发:(6)如何写一个iOS下获取APP版本号的插件?
上一篇我们学习了如何写一个Andorid下自动更新的插件,我想还有一部分看本系列blog的开发人员希望学习在iOS下如何做插件的吧,那么今天你就可以来看看这篇文字了. 本次练习你能学到的 学习如何获取 ...
- opencv直线检测在c#、Android和ios下的实现方法
opencv直线检测在c#.Android和ios下的实现方法 本文为作者原创,未经允许,不得转载 :原文由作者发表在博客园:http://www.cnblogs.com/panxiaochun/p/ ...
随机推荐
- 10. Firewalls (防火墙 2个)
Netfilter是在标准Linux内核中实现的强大的包过滤器. 用户空间iptables工具用于配置. 它现在支持数据包过滤(无状态或有状态),各种网络地址和端口转换(NAT / NAPT),以及用 ...
- 单线拨号上网时RouterOS内网端口映射的配置
很多时候routeros 是通过单线拨号上网,假设PPP接口名为pppoe-out1 若需要添加内网ip=18.16.1.92主机的3389端口映射 ,可以在命令行键入: ip firewall na ...
- 古墓丽影:崛起 PC版今日发售
之前xbox one的独占游戏 古墓丽影: 崛起(Rise of the Tomb Raider™), 今天正式在steam发售了, 之前就可以预购.简单看了一下, 画风跟前代类似, 但是画面更好, ...
- xc笔记
2019-03-20正式开始准备 --言语理解与表达------------------------------------------------------- 分为 1.逻辑填空 2.片段阅读 ...
- lua 匹配空白符
lua 支持的所有字符类: . 任意字符%s 空白符 空白字符一般包括空格.换行符\n.制表符\t以及回到行首符\r%p 标点字符%c 控制字符%d 数字%x 十六进制数字%z 代表0的字符% ...
- js驗證網址URL格式
/^((ht|f)tps?):\/\/([\w\-]+(\.[\w\-]+)*\/)*[\w\-]+(\.[\w\-]+)*\/?(\?([\w\-\.,@?^=%&:\/~\+#]*)+)? ...
- ActiveMQ (三)—持久化消息
ActiveMQ的另一个问题就是只要是软件就有可能挂掉,挂掉不可怕,怕的是挂掉之后把信息给丢了,所以本节分析一下几种持久化方式: 一.持久化为文件 ActiveMQ默认就支持这种方式,只要在发消息时设 ...
- php5.5.7添加pgsql,pdo_pgsql,swoole
一:下载php源码sudo wget cn2.php.net/distributions/php-X.X.X.tar.gz 二:解压 tar xzf /php-X.X.X.tar.gz 三:进入源码e ...
- LAB1 partI
序言 1. master.go 可以正常调用Distributed() 和 Sequential(). Sequential 顺序执行主要用于调试. 2. master : 创建一个 RPC serv ...
- 获取sd卡空间大小和获取sd卡目录
获取sd卡空间大小 TextView tv_total_size = (TextView)findViewById(R.id.textView1); TextView tv_useable_size ...