专栏首页ios 技术积累iOS富文本之数字小角标

iOS富文本之数字小角标

传入一串文本"02,03,PM25" 返回小角标数字

/// 字符串数字小角标
/// @param text 文本
/// @param size 角标字体
+(NSMutableAttributedString*)getNumberSubscriptString:(NSString*)text size:(CGFloat)size
{
    if (text.length == 0) {return nil;}
    
    NSMutableArray *numStrArr = [NSMutableArray array];
    NSMutableAttributedString *attributedStr = [[NSMutableAttributedString alloc]initWithString:text.uppercaseString];
    
    NSScanner *scanner = [NSScanner scannerWithString:text];
    NSCharacterSet *numbers = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
    
    while (![scanner isAtEnd]) {
        [scanner scanUpToCharactersFromSet:numbers intoString:NULL];
        int number;
        [scanner scanInt:&number];
        
        NSString *num=[NSString stringWithFormat:@"%d",number];
        [numStrArr addObject:num];
    }
    
    if (numStrArr.count) {
        
        NSRange range = NSMakeRange(0, 0);
        for (int i = 0; i < numStrArr.count; i++) {
            range = [text rangeOfString:numStrArr[i]];
            [attributedStr addAttribute:NSFontAttributeName
                                  value:[UIFont systemFontOfSize:size]
                                  range:range];
        }
        
        
    }else{
        [attributedStr addAttribute:NSFontAttributeName
                              value:[UIFont systemFontOfSize:size]
                              range:NSMakeRange(0, text.length)];
    }
    return attributedStr;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Swift 区间运算符

    目前有时间,打算复习一下Swift,打算抽时间写个Swift基础教程系列。今天就说一下区间运算符。

    赵哥窟
  • iOS 调用苹果自带地图导航不准确问题解决

    因为App需要调用第三方导航软件导航,后台返回的GPS,但是发现调用高德导航就要准确一些,调用苹果自带的地图导航偏差很大,查阅了相关资料如下

    赵哥窟
  • iOS 后台持续定位

    在日常的工作开发中,有时会遇到需要在后台持续运行的需求。对于这个需求,安卓实现起来比较简单,而iOS来说就比较复杂了。我们公司就有后台持续定位并且上传上传地理坐...

    赵哥窟
  • 打通上游、中游和下游:万亿美食市场决胜之道

    孟永辉
  • Express结合Socket.io实现聊天室功能

    之前写了一篇 《Node.js中运用socket.io实现智能回复机器人与聊天室功能》 发现浏览人还挺多,不过这篇博客只是讲解了一些实现原理,现在运用Node的...

    越陌度阡
  • 屋台食戟 - ISUX新年派对

    腾讯ISUX
  • 【NLP实战】基于ALBERT的文本相似度计算

    实战是学习一门技术最好的方式,也是深入了解一门技术唯一的方式。因此,NLP专栏推出了实战专栏,让有兴趣的同学在看文章之余也可以自己动手试一试。

    用户1508658
  • 一天可抓取 1300 万条数据的新浪微博爬虫

    爬虫功能: 此项目和QQ空间爬虫类似,主要爬取新浪微博用户的个人信息、微博信息、粉丝和关注(详细见此:https://github.com/LiuXingMin...

    小小科
  • python小工具,通讯录小程序

    print('|---欢迎进入红芽技术通讯录程序---|') print('|---1:查询联系人资料---|') print('|---2:增加新的联系人--...

    红芽
  • 爬虫框架Scrapy的第一个爬虫示例入门教程

    豌豆贴心提醒,本文阅读时间8分钟 我们使用dmoz.org这个网站来作为小抓抓一展身手的对象。 首先先要回答一个问题。 问:把网站装进爬虫里,总共分几步? ...

    小小科

扫码关注云+社区

领取腾讯云代金券