博客> 解决使用NSMutableAttributedString 设置不同字体,文字不能居中对齐
解决使用NSMutableAttributedString 设置不同字体,文字不能居中对齐
2017-09-21 13:48 评论:0 阅读:295 NullNil
ios NSMutableAttributedString 居中
  • 问题描述 使用NSMutableAttributedString设置不同字体,
int a = 50; int b = 10;
  NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc] initWithString:@"10元抵现券"]; 
[attStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:a] range:NSMakeRange(0, 2)];
 [attStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:b] range:NSMakeRange(2, attStr.length - 2)];
// [attStr addAttribute:NSBaselineOffsetAttributeName value:@(0.36 * (a - b)) range:NSMakeRange(2, attStr.length - 2)]; 
label.attributedText = attStr;

文字不能居中对齐;如图:  Simulator Screen Shot 2016年8月17日 下午5.37.01.png

  • 解决方法 NSMutableAttributedString 添加NSBaselineOffsetAttributeName这个Attribute
[attStr addAttribute:NSBaselineOffsetAttributeName value:@(0.36 * (a - b)) range:NSMakeRange(2, attStr.length - 2)];

value = 0.36 * (大字号 - 小字号)

 int a = 50; 
int b = 10; 
 NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc] initWithString:@"10元抵现券"]; 
[attStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:a] range:NSMakeRange(0, 2)]; 
[attStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:b] range:NSMakeRange(2, attStr.length - 2)];
 [attStr addAttribute:NSBaselineOffsetAttributeName value:@(0.36 * (a - b)) range:NSMakeRange(2, attStr.length - 2)]; 
label.attributedText = attStr;
  • 效果图  Simulator Screen Shot 2016年8月17日 下午5.43.14.png
收藏
0
sina weixin mail 回到顶部