一: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中字体有多种颜色,字符串自动计算高度/换行的更多相关文章

  1. TextView的一些高级应用(自定义字体、显示多种颜色、添加阴影)

    1.    自定义字体可以使用setTypeface(Typeface)方法来设置文本框内文本的字体,而android的Typeface又使用TTF字体文件来设置字体所以,我们可以在程序中放入TTF字 ...

  2. iOS7中计算UILabel中字符串的高度

    iOS7中计算UILabel中字符串的高度 iOS7中出现了新的方法计算UILabel中根据给定的Font以及str计算UILabel的frameSize的方法.本人提供category如下: UIL ...

  3. iOS NSString类中获取子字符串

    NSString类中提供了这样三个方法用于获取子字符串: – substringFromIndex://取字符串长度从0开始,当index=str.length时字符串为空"" – ...

  4. 四、Input框改placeholder中字体的颜色

    Input框改placeholder中字体的颜色 input::-webkit-input-placeholder { color: #ccc; font-size: 12px; }

  5. UE4中多种颜色轮廓线的后期处理

    转自:http://blog.csdn.net/pizi0475/article/details/50396277 随着近来虚幻引擎4的一些变化,渲染多种颜色的轮廓线已经可以实现了!通过自定义模板,类 ...

  6. Eclipse中设置背景颜色与字体大小和xml文件中字体大小调整

    Eclipse中代码编辑背景颜色修改: 代码编辑界面默认颜色为白色.对于长期使用电脑编程的人来说,白色很刺激我们的眼睛,所以改变workspace的背景色,可以使眼睛舒服一些.设置方法如下: 1.打开 ...

  7. QT5如何设置QLabel中字体的颜色

    修改了wd的文章: 如何使用Qt5,设置QLabel中字体的颜色. 大致有几种做法: 一是使用setPalette()方法: 二是使用样式表: 三是可以使用QStyle: 四是可以在其中使用一些简单的 ...

  8. 【转】Android中设置TextView的颜色setTextColor--代码中设置字体颜色

    原文网址:http://www.cnblogs.com/myphoebe/archive/2012/01/06/2314728.html android中设置TextView的颜色有方法setText ...

  9. UILable:显示多种颜色的方法

    借用别人封装好的类库,用来显示同一个UILable上的多种颜色的字. 类库可以直接在次博客中下载,下载后别忘留言哦. 类库使用:主要用了CoreText里面的东西,所以在使用类库之前需要引用CoreT ...

随机推荐

  1. R语言入门视频笔记--4--R的数据输入

    输入 R的数据输入可以大体三种: 1.键盘输出 2.从文本文件导入 3.从Excel中导入数据 一.从键盘输入 首先创建一个数据框,玩玩嘛,瞎建一个 mydata <- data.frame(a ...

  2. What should do in Production

    Using Compose in production https://docs.docker.com/compose/production/

  3. centos 安装php缓存 apc或zend-opcode

    去官方下载apc:pecl.php.net 搜索apc,安装最新的. #wget http://pecl.php.net/get/APC# tar -xzvf APC-3.1.9.tgz#cd  AP ...

  4. android官方Api 理解Activity生命周期的回调机制(适合有基础的人看)

    原文地址:http://www.android-doc.com/training/basics/activity-lifecycle/starting.html#lifecycle-states 此处 ...

  5. mock.js 的用法 -- 脱离后端独立开发,实现增删改查功能

    在我们的生产实际中,后端的接口往往是较晚才会出来,并且还要写接口文档,于是我们的前端的许多开发都要等到接口给我们才能进行,这样对于我们前端来说显得十分的被动,于是有没有可以制造假数据来模拟后端接口呢, ...

  6. eclipse使用正则表达式查找文件内容

    今天有个需求,查找工程中包含汉字的所有文件,随即想到利用eclipse的search功能配合正则表达式. 在eclipse中Ctrl+H,然后在Containing text中输入[\u4e00-\u ...

  7. Objective-C之成魔之路【10-继承性】

    郝萌主倾心贡献.尊重作者的劳动成果.请勿转载. 假设文章对您有所帮助,欢迎给作者捐赠,支持郝萌主.捐赠数额任意.重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载:点我传送 继承性是面 ...

  8. String 字符串基本使用

    目录 一.JavaDoc解释 二.基础属性和构造函数 三.基本方法说明 一.JavaDoc解释 String类表示字符串,所有Java程序中的字符串像是"abc"都是此类的实例,字 ...

  9. @SuppressWarnings 用法

    从Java 5.0起,您可以使用java.lang.SuppressWarning注释,来停用与编译单元子集相关的编译警告 作用:用于抑制编译器产生警告信息. Idea 设置泛型检查,变量.方法未使用 ...

  10. 链式mapreduce

    在hadoop 中一个Job中可以按顺序运行多个mapper对数据进行前期的处理,再进行reduce,经reduce后的结果可经个经多个按顺序执行的mapper进行后期的处理,这样的Job是不会保存中 ...