效果图:

有关 iOS 字符串上下标 (二)点击打开链接

主要代码:继承于UILabel

PollutantFormatlabel.h

#import <UIKit/UIKit.h>IB_DESIGNABLE
@interface PollutantFormatlabel : UILabel+(void)PollutantFormatLabel:(UILabel *)label labelValue:(NSString *)labelValue;@end

PollutantFormatlabel.m

#import "PollutantFormatlabel.h"
#import <CoreText/CoreText.h>
#import "ValueLabel.h"@interface PollutantFormatlabel ()
@property(nonatomic,strong)NSDictionary *dic;@end@implementation PollutantFormatlabel/***   scripting 1-上标 -1-下标*   loc       从哪个位置开始*   len       需要上下标的长度*/
-(NSDictionary *)dic {if (!_dic) {_dic = @{@"μg/m3":@{@"scripting":@1,@"loc":@4,@"len":@1},@"mg/m3":@{@"scripting":@1,@"loc":@4,@"len":@1},@"PM10": @{@"scripting":@(-1),@"loc":@2,@"len":@2},@"PM2.5":@{@"scripting":@(-1),@"loc":@2,@"len":@3},@"O3":   @{@"scripting":@(-1),@"loc":@1,@"len":@1},@"O3_8H":@{@"scripting":@(-1),@"loc":@1,@"len":@1},@"SO2":  @{@"scripting":@(-1),@"loc":@2,@"len":@1},@"NO2":  @{@"scripting":@(-1),@"loc":@2,@"len":@1},@"NOX":  @{@"scripting":@(-1),@"loc":@2,@"len":@1},@"NOx":  @{@"scripting":@(-1),@"loc":@2,@"len":@1},};}return _dic;
}-(void)drawTextInRect:(CGRect)rect  {[PollutantFormatlabel PollutantFormatLabel:self labelValue:self.text];[super drawTextInRect:rect];
}+(void)PollutantFormatLabel:(UILabel *)label labelValue:(NSString *)labelValue {PollutantFormatlabel *p = [PollutantFormatlabel new];float size = label.font.pointSize;UIFont *smallFont = [UIFont systemFontOfSize:size/1.7];NSMutableAttributedString *attString = [[NSMutableAttributedString alloc] initWithString:labelValue];[attString beginEditing];for (NSString *key in p.dic.allKeys) {NSRange strRange = [labelValue rangeOfString:key];if (strRange.location != NSNotFound) {NSDictionary *dic = p.dic[key];NSInteger loc = [dic[@"loc"] integerValue]+strRange.location;NSInteger len = [dic[@"len"] integerValue];NSRange range = NSMakeRange(loc,len);NSNumber *scripting = dic[@"scripting"];[attString addAttribute:NSFontAttributeName value:(smallFont) range:range];[attString addAttribute:(NSString*)kCTSuperscriptAttributeName value:scripting range:range];}}[attString endEditing];label.text = labelValue;label.attributedText = attString;
}@end

使用:

我的业余技术微信公众号:YKJGZH,欢迎大家进入

iOS 字符串上下标(一)相关推荐

  1. iOS 6上的Safari是否缓存$ .ajax结果?

    本文翻译自:Is Safari on iOS 6 caching $.ajax results? Since the upgrade to iOS 6, we are seeing Safari's ...

  2. ios 拍照上传到服务器_ios端浏览器拍照上传到服务器,图片被旋转90度 php 解决方案...

    1.可以通过前端进行解决,本案例通过后端解决的 判断请求的浏览器的ua,如果是ios浏览器则进行90度旋转 重点来了: 必须确保检测的图片是ios设备上传的完整图片,不要在前端压缩过的,因为压缩后的图 ...

  3. silverlight 上下标

    Superscript:(上标)0 : U+20701 : U+00B92 : U+00B23 : U+00B34-9 : U+2074-2079+ : U+207A- : U+207B= : U+2 ...

  4. iOS知识分享 — iOS 13上的暗模式

    我们将本周的文章献给那些庆祝这个受人尊敬的假期的人,无论是同时还是在iOS 13进入通用汽车的过程中.我们希望一些快速提示可以帮助您避开即将到来的阴影. 暗模式是一种外观偏好,告诉系统和参与的应用程序 ...

  5. MapGis中如何输入分数、带有上下标格式的注释_map2shp_新浪博客

    1.MAPGIS中输入上下标格式字符串. 输入立方米: M# 3 //上标 输入二氧化碳: CO#-2 //下标 输入上下标混合: CO#-2# 3#=SO#-4 //上下标混合使用 2.MAPGIS ...

  6. 上下标 java_java包POI处理excel上下标的代码分享

    原理是逐字检查发现,即使用sup,sub的网页标签替换. 含有2003版本和2007版本 package com.uet.common.utils; import org.apache.commons ...

  7. 解决 .webp 格式图片在 ios 设备上无法正常显示的问题

    解决.webp 格式图片在 ios 设备上无法正常显示的问题 使用字符串的 replace() 方法,将 webp 的后缀名替换为 jpg 的后缀名 // 定义请求商品详情数据的方法 async ge ...

  8. 关于npoi导出的excel中设置上下标

    //NPOI 库在生成excel是速度比较快的,可添加图片,设置连框,合并单元格等.微软的com生成excel方式可以扔掉了,那东西太慢. HSSFFont subscript = (HSSFFont ...

  9. iOS 字符串截取、iOS 字符串替换、iOS 字符串分隔、iOS 字符串匹配、截取字符串、匹配字符串、分隔字符串

    iOS之字符串截取.iOS 字符串替换.iOS字符串分隔.iOS之字符串匹配.截取字符串.匹配字符串.分隔字符串 1.iOS 字符串截取 //1.ios截取字符串NSString *string =@ ...

最新文章

  1. ReactiveCocoa入门-part2
  2. java 属性自定义配置,将自定义FXML属性设置为自定义javafx组件的参数
  3. spss回归分析_回归分析中的简单斜率检验:用SPSS或jamovi实现
  4. Django开发基础----操作数据库
  5. Arts 第十九周(7/22 ~ 7/28)
  6. 简单英文题 24 Divisor and Multiple(python)
  7. 常用技巧 —— 位运算 —— 位运算基础
  8. Asp.net MVC - 使用PRG模式(附源码)
  9. PHP+node采集58微聊聊天信息
  10. 红米note7android10,红米Note7 Pro 安卓10.0原生刷机包(最新固件升级包lineage17.1)
  11. 概率论基础-严士健 第二版 习题与补充2.1答案
  12. mysql连接服务器教程_连接 MySQL 服务器
  13. 基金定投如何选择买卖点?——关于定投的择时研究
  14. CityBuilder+DataV制作次世代3D城市大屏,一秒俘获甲方的心!
  15. 天线要设计为四分之一波长的原因
  16. 特斯拉神器TeslaMate一键安装,终于来了
  17. JDBC Mybatis 调用 ORACLE 存储过程 函数 返回 varray 类型 function return varray out varray
  18. 当使用curl 下载压缩包时报解压格式错误
  19. Python使用逻辑回归提示FutureWarning: Default solver will be changed to ‘lbfgs‘ in 0.22. Specify a solver to
  20. 目前国内的高频交易系统的延迟做到了什么水平?

热门文章

  1. Linux Centos8最小化安装,tab键无法使用解决方法
  2. AI工程师基础知识100题
  3. 中国信通院“可信隐私计算”产品测评体系升级上线
  4. Adobe Creative Suite 6 CS6 正式版下载大全
  5. .html 打开方式注册表,注册表怎么打开
  6. 在windowsXP 上成功安装moodle
  7. DJI与优酷土豆战略合作
  8. 魅族什么时候加入鸿蒙系统,魅族接入鸿蒙意味着什么?2021鸿蒙系统产品发布时间确定...
  9. 波长分别为640/670nm和609/640nm的BODIPY荧光染料
  10. HTML5+css+JS实现页面打枪声音特效减压玩法 PUBG 大吉大利 今晚吃鸡