`

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];

}

   

还有其他的问题可以发出来一起讨论讨论!!酷

    

 

0
2
分享到:
评论

相关推荐

    IOS应用源码之支持丰富文本样式的工具.zip

    为了实现更复杂的布局,如段落间距、行距或者首行缩进,我们需要使用`NSParagraphStyle`。这个类提供了对文本块的格式化控制,如对齐方式(左对齐、右对齐、居中、两端对齐)、行间距等。 同时,`NSTextAttachment`...

    AttributeLabel

    它不仅支持基本的NSAttributedString属性,如字体(font)、颜色(color)和下划线样式(underlineStyle),还添加了对链接(link)、行距(lineHeightMultiple)和首行缩进(firstLineIndent)等高级特性的支持。...

    ios-一个有层次label控件.zip

    "ios-一个有层次label控件.zip"这个资源提供了一个名为LevelLabel的自定义控件,专门用于处理具有层次结构的文本显示。 LevelLabel控件的核心特性可能包括以下几点: 1. **层级控制**:LevelLabel能够根据每个文本...

    lable的行间距和字间距的设置

    在iOS开发中,`UILabel` 是一个非常常用的控件,用于展示单行或多行文本。在界面设计中,行间距和字间距的设置对于提升用户体验和视觉效果至关重要。本篇文章将详细探讨如何调整`UILabel`的行间距和字间距,并通过...

    UILabel富文本

    5. 段落样式:支持首行缩进、行距调整等高级排版功能。 6. 其他功能:如列表、表格、高亮、删除线等。 实现这样的功能通常需要自定义视图和手势识别,以处理用户的触摸交互,同时还需要管理复杂的文本和图像数据。...

    单一Lable显示不同的颜色demo

    如果还需要控制段落样式,如首行缩进、行距等,可以创建`NSParagraphStyle`对象,并将其与`NSAttributedString`结合使用。 3. **使用第三方库**: 有些第三方库,如`TTTAttributedLabel`或`YYText`,提供了更强大...

    NSAttributeString富文本的使用

    `NSMutableParagraphStyle`提供了许多自定义选项,如创建悬挂缩进或首行缩进。 总之,`NSAttributeString`在iOS开发中扮演着重要的角色,它使得开发者能够轻松创建出富有表现力的文本界面,提升用户体验。了解和...

Global site tag (gtag.js) - Google Analytics