一: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];

最新文章

  1. IE9 打不开界面也不报错,只有打开控制台才会显示 - console
  2. iOS开发——UI基础-UIButton、UIImageView、UILabel的选择
  3. the differences between function and procedure
  4. C# 微信公众号
  5. list 容器 排序函数.xml
  6. 通过js获取DropDownList的选中项
  7. media queries 媒体查询使用
  8. DoingOrder.aspx.cs缓存的使用方法
  9. 微信平台BAE
  10. c#:readonly与const的区别
  11. Java内存管理思维导图
  12. mysql中OPTIMIZE TABLE的作用
  13. c/c++ 网络编程 陈硕老师视频理解之ttcp
  14. babel分析
  15. C++面向对象程序设计之类和对象的特性
  16. 问题集 & 知识点
  17. maven项目打包发布到私有仓库
  18. 【LOJ6254】最优卡组 堆(模拟搜索)
  19. java_String、StringBuilder
  20. Checked Exception & Unchecked Exception

热门文章

  1. linux的内存性能评估
  2. Python中%r与%s的区别
  3. windows安装SUSE Linux Enterprise Server 12
  4. codeforces edu40
  5. WdatePicker.js的使用方法 帮助文档 使用说明(时间控件)*转载
  6. Linux C多线程编程-线程互斥
  7. Spring启动流程
  8. C#中值类型和引用类型的差别浅记
  9. 创建注记图层C# IFeatureWorkspaceAnno
  10. CSS3中transition-duration參数对hover前后两种过渡时间的影响