一、需求图如下所示 
 
  1. UILabel 的高度自适应
  2. UILabel中的段落间距可设置
 
图片效果如下:
 
调整段落适应长宽高方式:
 
 
 
 
需求:
 
保证“游戏玩法” 章节,UILabel高度自适应,行内距为4px
 
做法:
 
UILabel实现自适应宽高(一)中说明了 UILabel 自适应的方法,但是如果加行间距,就要用到  NSMutableAttributedString  富文本的方式实现,来判断行内距然后再通过 sizetofit 进行高度自适应。
 
 
自适应方法如下:
 
Coding:
 
- (void)setLineSpacing:(CGFloat)spacing label:(UILabel *)label
{
    if(!label.text.length) return;
    NSMutableAttributedString *attributedString = [[NSMutableAttributedStringalloc] initWithString:label.text];
    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStylealloc] init];
    [paragraphStyle setLineSpacing:spacing];
    [attributedString addAttribute:NSParagraphStyleAttributeNamevalue:paragraphStyle range:NSMakeRange(0, [label.textlength])];
    [label setAttributedText:attributedString];
    label.lineBreakMode = NSLineBreakByCharWrapping;
    [label sizeToFit];
}
 
注意一下label.lineBreakMode = NSLineBreakByCharWrapping;这句话一定要在UILabel设置富文本之后加,不然会不起作用。
 
sizeToFit 自适应方法也要在最后加,不然会被富文本方法替换掉。
 
 
二、需求图如下所示
 
 
 
  1. UILabel 中如果为数字,会显示红色
 
图片效果如下:
 
 
 
做法: 通过UILabel的富文本来实现此方法,遍历UILabel文本中如果有数字,自动设置为红色.
 
实现:
 
NSMutableString * subtitlelabelStr=[NSMutableStringstringWithFormat:@"共参与%ld期,%@", _dataModel.count,_dataModel.last_time];
    _subtitlelabel.text = subtitlelabelStr;

    NSString *content = subtitlelabelStr;
    NSArray *number = @[@"0",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9"];
    NSMutableAttributedString *attributeString  = [[NSMutableAttributedStringalloc]initWithString:content];
    for (int i = 0; i < content.length; i ++) {
        NSString *a = [content substringWithRange:NSMakeRange(i, 1)];
        if ([number containsObject:a]) {
            [attributeString setAttributes:@{NSForegroundColorAttributeName:NF_Color_C19,NSFontAttributeName:[UIFontsystemFontOfSize:Near_Final_Font_T9]}range:NSMakeRange(i, 1)];
        }
    }
    _subtitlelabel.attributedText = attributeString;

 
问题:如果实现UIlabel 内容的文字全部为随机颜色,如何实现?
 
 
 
 
 
 
 
 
 
 
 

最新文章

  1. sql 判断 函数 存储过程是否存在的方法
  2. Symantec Backup Exec Remote Agent 2010在Redhat Enterprise 6.6上启动问题
  3. Jetty 服务器的知识
  4. ng-repeat 嵌套 ng-switch 出错解决
  5. ACM心情总结
  6. KM算法详解+模板
  7. Kinetic使用注意点--image
  8. drawBitmapMesh方法关键参数的说明
  9. java 数组变量与数组对象
  10. MVC中Controller控制器相关技术
  11. python重试(指数退避算法)
  12. linux目录结构 简单讲解
  13. html实现调用jar包
  14. 1.let命令总结
  15. Dan版本的nnet2
  16. linux安全加固浅谈
  17. 从源码的角度分析List与Set的区别
  18. 6.25python线程问题
  19. IntelliJ IDEA 自动导入包 关闭重复代码提示
  20. 42-字符串到json 的错误 com.alibaba.fastjson.JSONObject cannot be cast to java.lang.String

热门文章

  1. iOS RunLoop了解和使用
  2. 单点登录原理与简单实现--good
  3. Spring MVC的RequestContextHolder使用误区 good
  4. 微信上传素材 {&quot;errcode&quot;:41005,&quot;errmsg&quot;:&quot;media data missing&quot;} 解决方法和思路
  5. JScript实现将指定目录下的vc工程加到解决方案
  6. eclipes中配置javadoc文档
  7. JSON格式的服务接口
  8. 机器学习: Tensor Flow +CNN 做笑脸识别
  9. 二叉树C语言
  10. Java之&quot;Mozilla Rhino&quot;引擎(二)