点击打开链接上一章节的,如果在ios10以上,可能上下标的字体会很小,偏移的很严重,这一章节主要讲,如果修复
修改PollutantFormatlabel.m :
+(void)PollutantFormatLabel:(UILabel *)label labelValue:(NSString *)labelValue {
PollutantFormatlabel *p = [PollutantFormatlabel new];
NSString *string = [self pollutantChineseToEnglish:labelValue];
string = [ValueLabel valueLabel:string];
float size = label.font.pointSize;
UIFont *smallFont = [UIFont systemFontOfSize:size/1.5];
NSMutableAttributedString *attString = [[NSMutableAttributedString alloc] initWithString:string];
[attString beginEditing];
for (NSString *key in p.dic.allKeys) {
NSRange strRange = [string 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"];
NSInteger script = [scripting integerValue];
[attString addAttribute:NSFontAttributeName value:(smallFont) range:range];
//[attString addAttribute:(NSString*)kCTSuperscriptAttributeName value:scripting range:range];
if (script == 1) {
[attString addAttribute:NSBaselineOffsetAttributeName value:@(size/3) range:range];
}else {
[attString addAttribute:NSBaselineOffsetAttributeName value:@(-(size/3)) range:range];
}
}
}
[attString endEditing];
label.text = string;
label.attributedText = attString;
}
我的业余技术微信公众号:YKJGZH,欢迎大家进入