IOS Label行距间隔 首行缩进的解决 原创
?Label的首行缩进一直是个很头疼的问题,现在IOS6只有有一个attributedText的属性值得我们深究,可以达到我们自定义的行高,还有首行缩进,各种行距和间隔问题。下面这个是两个Label, 一个是UserName,另一个是Content文本多行信息,这个效果就是 用户名: + 多行评论换行,而且首行间距根据用户名自动缩进
比如 ?小李: ?我评论了,还有什么问题再给我留言。。。
?
创建标签
?
@interface ViewController : UIViewController
@property (weak, nonatomic) IBOutletUILabel *usernameLabel
?
@property (weak, nonatomic) IBOutletUILabel *contentLabel;
?
@end
?
//视图展示层
?
- (void)viewDidLoad {
? ??self.usernameLabel.text?=?@"用户名Jordan CZ: ";
? ??self.usernameLabel.adjustsFontSizeToFitWidth?=?YES;
? ??[self.usernameLabel?sizeToFit];
?
? ? ?self.contentLabel.text?=?@"首行缩进根据用户昵称自动调整 间隔可自定根据需求随意改变。。。。。。。";
? ? ?self.contentLabel.adjustsFontSizeToFitWidth?=?YES;
? ???self.contentLabel.adjustsLetterSpacingToFitWidth?=?YES;
?
?
? ? ?[self?resetContent];
}
?
//自适应计算间距 ? ?
- (void)resetContent{
? ? NSMutableAttributedString *attributedString = [[NSMutableAttributedStringalloc] initWithString:self.contentLabel.text];
? ? NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStylealloc] init];
? ? paragraphStyle.alignment = NSTextAlignmentLeft;
? ? paragraphStyle.maximumLineHeight = 60; ?//最大的行高?
? ? paragraphStyle.lineSpacing = 5; ?//行自定义行高度
? ? [paragraphStyle setFirstLineHeadIndent:self.usernameLabel.frame.size.width + 5];//首行缩进 根据用户昵称宽度在加5个像素
? ? [attributedString addAttribute:NSParagraphStyleAttributeNamevalue:paragraphStyle range:NSMakeRange(0, [self.contentLabel.textlength])];
? ? self.contentLabel.attributedText = attributedString;
? ? [self.contentLabelsizeToFit];
}
? ?
还有其他的问题可以发出来一起讨论讨论!!
? ??
?
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。