- (void)conversionCharacterInterval:(NSInteger)maxInteger current:(NSString *)currentString withLabel:(UILabel *)label
{
CGRect rect = [[currentString substringToIndex:] boundingRectWithSize:CGSizeMake(,label.frame.size.height)
options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading
attributes:@{NSFontAttributeName: label.font}
context:nil]; NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:currentString];
float strLength = [self getLengthOfString:currentString];
[attrString addAttribute:NSKernAttributeName value:@(((maxInteger - strLength) * rect.size.width)/(strLength - )) range:NSMakeRange(, strLength)];
label.attributedText = attrString;
} - (float)getLengthOfString:(NSString*)str { float strLength = ;
char *p = (char *)[str cStringUsingEncoding:NSUnicodeStringEncoding];
for (NSInteger i = ; i < [str lengthOfBytesUsingEncoding:NSUnicodeStringEncoding]; i++) {
if (*p) {
strLength++;
}
p++;
}
return strLength/2;
}

注:中文字符长度1,英文字符及数字长度0.5

最新文章

  1. css3实现翻页卡片
  2. TCP协议学习记录 (三) Ping程序 RR选项 记录路由hop
  3. [转]Oracle数据泵的使用
  4. 用 CSS 做轮播图
  5. Windows操作 - Photoshop为图片添加透明立体水印
  6. ubuntu 12.04 安装 nginx+php+mysql web服务器
  7. Unix/Linux环境C编程入门教程(39) shell命令之系统管理
  8. Working——流程关系状态表
  9. Spring Cloud Netflix多语言/非java语言支持之Spring Cloud Sidecar
  10. mysql将字符串转化为数字
  11. DAY22、面向对象
  12. eclise开发设置
  13. 移动端开发注意事项——meta、rem以及弹性盒
  14. winform窗体退出
  15. axios 用法简介(转载)
  16. CSS margin合并
  17. Idea 12配置SPring MVC 和Tomcat Server
  18. php 允许浏览器跨域访问web服务端的解决方案
  19. servlet路径获取
  20. Nutch1.2 的安装与使用

热门文章

  1. (2.8)Mysql之SQL基础——索引的分类与使用
  2. Spark Core(二)Driver上的Task的生成、分配、调度(转载)
  3. 【转】Deep Learning(深度学习)学习笔记整理系列之(一)
  4. 使用Markdown写博客
  5. Docker(二)
  6. Django组件拾忆
  7. 限制可编辑div只能输入纯文本
  8. link标签 rel=&quot;stylesheet&quot;
  9. react 项目微信端 签名失败 原因
  10. Mkdocs 搭建