NSString -- UILabel中字体有多种颜色,字符串自动计算高度/换行
一:UILabel中字体有多种颜色
UILabel *label = [[UILabel alloc] init];
label.frame = CGRectMake(, , , );
label.backgroundColor = [UIColor yellowColor]; NSString *name = @"David贾永强";
float money = 2.0;
NSString *contentStr = [NSString stringWithFormat:@"%@ 五分钟前薅取 %.2f元 羊毛",name,money];
NSMutableAttributedString *str = [[NSMutableAttributedString alloc]initWithString:contentStr]; [str addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:] range:NSMakeRange(, contentStr.length)];
//名字
NSRange nameRang = NSMakeRange(, name.length);
[str addAttribute:NSForegroundColorAttributeName value:[UIColor greenColor] range:nameRang];
[str addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:] range:nameRang]; //钱数
NSRange moneyRang = NSMakeRange(name.length + , );
[str addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:moneyRang];
[str addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:] range:moneyRang]; label.attributedText = str; [label sizeToFit];
[self.view addSubview:label];
效果图:

二:字符串自动计算高度/换行 方法一:
//进行动态获取高度和宽度。必须用这个NSDictionary,不能用NSMutableDictionary这个。
NSString *str = @"自动计算高度,然后换行,自动计算高度,然后换行,自动计算高度,然后换行,自动计算高度,然后换行,自动计算高度,然后换行,自动计算高度,然后换行,自动计算高度,然后换行,自动计算高度,然后换行,自动计算高度,然后换行,结束";
UIFont *font = [UIFont systemFontOfSize:15.0f];
NSDictionary *attributes = @{ NSFontAttributeName: font };
CGSize size = [str sizeWithAttributes:attributes]; UILabel *label = [[UILabel alloc] init];
label.frame = CGRectMake(, , size.width, size.height);
label.text = str;
label.font = font;
label.backgroundColor = [UIColor orangeColor];
[self.view addSubview:label]; // 自动计算高度,然后换行
label.lineBreakMode = NSLineBreakByWordWrapping;
label.numberOfLines = ; //boundSize,决定label的宽度. 设为屏幕宽度-100. 也可以设置固定的宽度
CGSize boundSize = CGSizeMake([UIScreen mainScreen].bounds.size.width-, MAXFLOAT);
CGSize brSize = [str boundingRectWithSize:boundSize options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:attributes context:nil].size; label.frame = CGRectMake(, , brSize.width, brSize.height);
效果图:

字符串自动计算高度/换行 方法二:
//UILabel 的高度会根据字体自身,大小,label的宽度 自动计算.
UILabel *_label = [[UILabel alloc] initWithFrame:CGRectMake(, , , )];
_label.backgroundColor = [UIColor greenColor];
_label.font = [UIFont systemFontOfSize:];
_label.text = @"自动计算高度,然后换行自动计算高度,然后换行,自动计算高度,然后换行自动计算高度,然后换行,结束";
_label.numberOfLines = ;
[_label sizeToFit];
[self.view addSubview:_label];
NSString -- UILabel中字体有多种颜色,字符串自动计算高度/换行的更多相关文章
- TextView的一些高级应用(自定义字体、显示多种颜色、添加阴影)
1. 自定义字体可以使用setTypeface(Typeface)方法来设置文本框内文本的字体,而android的Typeface又使用TTF字体文件来设置字体所以,我们可以在程序中放入TTF字 ...
- iOS7中计算UILabel中字符串的高度
iOS7中计算UILabel中字符串的高度 iOS7中出现了新的方法计算UILabel中根据给定的Font以及str计算UILabel的frameSize的方法.本人提供category如下: UIL ...
- iOS NSString类中获取子字符串
NSString类中提供了这样三个方法用于获取子字符串: – substringFromIndex://取字符串长度从0开始,当index=str.length时字符串为空"" – ...
- 四、Input框改placeholder中字体的颜色
Input框改placeholder中字体的颜色 input::-webkit-input-placeholder { color: #ccc; font-size: 12px; }
- UE4中多种颜色轮廓线的后期处理
转自:http://blog.csdn.net/pizi0475/article/details/50396277 随着近来虚幻引擎4的一些变化,渲染多种颜色的轮廓线已经可以实现了!通过自定义模板,类 ...
- Eclipse中设置背景颜色与字体大小和xml文件中字体大小调整
Eclipse中代码编辑背景颜色修改: 代码编辑界面默认颜色为白色.对于长期使用电脑编程的人来说,白色很刺激我们的眼睛,所以改变workspace的背景色,可以使眼睛舒服一些.设置方法如下: 1.打开 ...
- QT5如何设置QLabel中字体的颜色
修改了wd的文章: 如何使用Qt5,设置QLabel中字体的颜色. 大致有几种做法: 一是使用setPalette()方法: 二是使用样式表: 三是可以使用QStyle: 四是可以在其中使用一些简单的 ...
- 【转】Android中设置TextView的颜色setTextColor--代码中设置字体颜色
原文网址:http://www.cnblogs.com/myphoebe/archive/2012/01/06/2314728.html android中设置TextView的颜色有方法setText ...
- UILable:显示多种颜色的方法
借用别人封装好的类库,用来显示同一个UILable上的多种颜色的字. 类库可以直接在次博客中下载,下载后别忘留言哦. 类库使用:主要用了CoreText里面的东西,所以在使用类库之前需要引用CoreT ...
随机推荐
- 乱码及restful
1.乱码的解决--通过过滤器来解决乱码:springmvc中提供CharacterEncodingFilter解决post乱码 <filter> <filter-name>Ch ...
- CODEVS_2800 送外卖 状态压缩+动态规划
原题链接:http://codevs.cn/problem/2800/ 题目描述 Description 有一个送外卖的,他手上有n份订单,他要把n份东西,分别送达n个不同的客户的手上.n个不同的客户 ...
- android 获得屏幕状态
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools= ...
- String、StringBuffer和StringBuilder的差别
String.StringBuffer和StringBuilder的差别 1.String类是不可变类,即一旦一个String对象被创建后.包括这个对象中的字符序列是不可改变的 2.在字符串拼接的过程 ...
- GoogLeNet系列解读
GoogLeNet Incepetion V1 这是GoogLeNet的最早版本,出现在2014年的<Going deeper with convolutions>.之所以名为“GoogL ...
- poj 2828 Buy Tickets 【线段树点更新】
题目:id=2828" target="_blank">poj 2828 Buy Tickets 题意:有n个人排队,每一个人有一个价值和要插的位置,然后当要插的位 ...
- IE8.0登录Oracle EBS后报Oracle error 1403错
IE8.0登录Oracle EBS后报错,登录页面打开没有问题.只是输入username和password然后登录,遇到下面错误: <PRE>Oracle error 1403: java ...
- java:BufferedImage推断图像通道顺序并转RGB/BGR
一般来说java ImageIO处理读取图像时.通常是RGB或ARGB格式,可是有的时候.我们须要图像是BGR格式. 比方通过JNI将图像矩阵传递给动态库,动态库里用OpenCV来处理矩阵,而用Ope ...
- HDU 2669 Romantic(扩展欧几里德)
题目链接:pid=2669">http://acm.hdu.edu.cn/showproblem.php?pid=2669 Problem Description The Sky is ...
- Linux和Windows设备驱动架构比较
毕业后一直在学操作系统, 有时候觉得什么都懂了,有时候又觉得好像什么都不懂,但总体来说自认为对操作系统实现机制的了解比周围的人还是要多一些.去年曾花了几个星期的晚上时间断断续续翻译了这篇对Linux和 ...