Label 的富文本 与 自定义Label
2015-03-27 13:10
288 查看
iOS Label 的 富文本
在一个 字符串中 拥有 两种 或多种 的 字符串 字体的 颜色
下划线
删除线
自定义Label
自定义高度
self.label.frame = CGSizeMake(0,maxFloat);
自定义宽度
self.label.frame = CGSizeMake(maxFloat, 0);
在使用UILabel存放字符串时,经常需要获取label的长宽数据,本文列出了部分常用的计算方法。
1.获取宽度,获取字符串不折行单行显示时所需要的长度
CGSize titleSize = [aString sizeWithFont:font constrainedToSize:CGSizeMake(MAXFLOAT, 30)];
CGSize titleSize = [aString sizeWithFont:font
constrainedToSize:CGSizeMake(MAXFLOAT, 30)];
注:如果想得到宽度的话,size的width应该设为MAXFLOAT。
2.获取高度,获取字符串在指定的size内(宽度超过label的宽度则换行)所需的实际高度.
CGSize titleSize = [aString sizeWithFont:font
constrainedToSize:CGSizeMake(label.frame.size.width, MAXFLOAT)
lineBreakMode:UILineBreakModeWordWrap];
注:如果想得到高度的话,size的height应该设为MAXFLOAT。
3.实际编程时,有时需要计算一段文字最后一个字符的位置,并在其后添加图片或其他控件(如info图标),下面代码为计算label中最后一个字符后面一位的位置的方法。
CGSize sz = [label.text sizeWithFont:label.font
constrainedToSize:CGSizeMake(MAXFLOAT, 40)];
CGSize linesSz = [label.text sizeWithFont:label.font
constrainedToSize:CGSizeMake(label.frame.size.width, MAXFLOAT)
lineBreakMode:UILineBreakModeWordWrap];
if(sz.width <= linesSz.width) //判断是否折行
{
lastPoint = CGPointMake(label.frame.origin.x + sz.width, label.frame.origin.y);
}
else
{
lastPoint = CGPointMake(label.frame.origin.x + (int)sz.width % (int)linesSz.width,linesSz.height -
sz.height);
}
在一个 字符串中 拥有 两种 或多种 的 字符串 字体的 颜色
下划线
删除线
自定义Label
自定义高度
self.label.frame = CGSizeMake(0,maxFloat);
自定义宽度
self.label.frame = CGSizeMake(maxFloat, 0);
在使用UILabel存放字符串时,经常需要获取label的长宽数据,本文列出了部分常用的计算方法。
1.获取宽度,获取字符串不折行单行显示时所需要的长度
CGSize titleSize = [aString sizeWithFont:font constrainedToSize:CGSizeMake(MAXFLOAT, 30)];
CGSize titleSize = [aString sizeWithFont:font
constrainedToSize:CGSizeMake(MAXFLOAT, 30)];
注:如果想得到宽度的话,size的width应该设为MAXFLOAT。
2.获取高度,获取字符串在指定的size内(宽度超过label的宽度则换行)所需的实际高度.
CGSize titleSize = [aString sizeWithFont:font
constrainedToSize:CGSizeMake(label.frame.size.width, MAXFLOAT)
lineBreakMode:UILineBreakModeWordWrap];
注:如果想得到高度的话,size的height应该设为MAXFLOAT。
3.实际编程时,有时需要计算一段文字最后一个字符的位置,并在其后添加图片或其他控件(如info图标),下面代码为计算label中最后一个字符后面一位的位置的方法。
CGSize sz = [label.text sizeWithFont:label.font
constrainedToSize:CGSizeMake(MAXFLOAT, 40)];
CGSize linesSz = [label.text sizeWithFont:label.font
constrainedToSize:CGSizeMake(label.frame.size.width, MAXFLOAT)
lineBreakMode:UILineBreakModeWordWrap];
if(sz.width <= linesSz.width) //判断是否折行
{
lastPoint = CGPointMake(label.frame.origin.x + sz.width, label.frame.origin.y);
}
else
{
lastPoint = CGPointMake(label.frame.origin.x + (int)sz.width % (int)linesSz.width,linesSz.height -
sz.height);
}
相关文章推荐
- 富文本(TYAttributedLabel 简单,强大的属性文本控件(无需了解CoreText),支持图文混排显示,支持添加链接,image和UIView控件,支持自定义排版显示)
- coreText自定义富文本Label
- 29. IOS系统原生富文本 自定义Label颜色
- 使用富文本在lable上展示不同颜色的文字,自定义label高度,自定义行间距
- coreText自定义文本Label
- coreText自定义富文本Label
- coreText自定义富文本Label by Gphone
- coreText自定义富文本Label by Gphone
- 自定义cell 在选中状态 cell上面的label的背景色会变没有
- 自定义分类计算文本高度和宽度
- 自定义TextView,实现图片在文字之前的富文本效果
- WPF 自定义文本列表
- 漂亮 [checkbox+radio]+label 自定义样式(jQuery )
- iOS 根据字符串数目,自定义Label等控件的高度
- Label--关于Label富文本的几个三方库介绍
- 计算label自定义行间距字间距,计算自定义行间距字间距的高度
- Libgdx学习笔记:可垂直滚动的文本组件CHScrollLabel
- 关于自定义组件-以apidemo中的LabelView进行讲解
- Android自定义View绘制真正的居中文本
- NGUI 3.5教程(二)Label 标签 (Hello world)、多行文本