PS:重點(diǎn)解決某度上,文字間距不居中的問題.
注意:使用類別而不是方法
/// 設(shè)置文字間距
- (void)setText:(NSString *)text spacing:(CGFloat)spacing{
// 設(shè)置文字間距原理是在每一個(gè)字符串後面添加一個(gè)空白的間距,這樣會使得居中出現(xiàn)問題
// text = [NSString stringWithFormat:@" %@",text]; 錯(cuò)誤方式,就算空白字符串,也會佔(zhàn)用寬度,居中有偏差
// 正確解決辦法就是在xib中設(shè)置居中偏移量為 + spacing/2.0
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:text attributes:@{NSKernAttributeName:@(spacing)}];
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
[paragraphStyle setAlignment:self.textAlignment];
[paragraphStyle setLineBreakMode:self.lineBreakMode];
[attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [text length]-1)];
self.attributedText = attributedString;
[self sizeToFit];
}
/// 設(shè)置行間距
- (void)setText:(NSString *)text lineSpacing:(CGFloat)lineSpacing
{
if (!text || lineSpacing < 0.01) {
self.text = text;
return;
}
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
[paragraphStyle setLineSpacing:lineSpacing]; //設(shè)置行間距
[paragraphStyle setLineBreakMode:self.lineBreakMode];
[paragraphStyle setAlignment:self.textAlignment];
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:text];
[attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [text length])];
self.attributedText = attributedString;
}