具有不同NSMutableParagraphStyle的Nsattributedstring

ios*_*per 3 attributes nsattributedstring ios

我有一个带有多个段落的属性字符串.
我已经给了FirstLineHeadIndent = 2.12.
现在我想要给第FirstLineHeadIndent=01段和FirstLineHeadIndent=2第2段中的属性字符串.

如果我设置属性像

 NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
        paragraphStyle.lineSpacing =Line_space;
        paragraphStyle.firstLineHeadIndent =2;
        paragraphStyle.headIndent =margin_space;
        paragraphStyle.tailIndent =-margin_space;
        paragraphStyle.paragraphSpacing=paragraph_space;

        NSDictionary *ats = @{
                              NSFontAttributeName : [UIFont fontWithName:self.bookView.defaultFontFamily size:self.bookView.defaultFontSize],
                              NSParagraphStyleAttributeName : paragraphStyle,
                              };
Run Code Online (Sandbox Code Playgroud)

它将为paragaraph提供顶部空间.请帮我.我正在上传图片以获得更多帮助: - 在此输入图像描述

Lar*_*rme 5

因此,解决方案是使用2段样式.
NSString用a分隔\n,表示两段之间的分隔.

NSMutableParagraphStyle *firstParagraphStyle = [[NSMutableParagraphStyle alloc] init];
[firstParagraphStyle setFirstLineHeadIndent:0];
//Do the rest of the settings

NSMutableParagraphStyle *secondParagraphStyle = [[NSMutableParagraphStyle alloc] init];
[secondParagraphStyle setFirstLineHeadIndent:2];
//Do the rest of the settings

//You may use the same paragraphStyle, changing just the firstLineHeadIndent, and set the attributes, but for a clearer explanation, I used 2 paragraph styles
NSRange range = [[yourAttributedString string] rangeOfString:@"\n"];

[yourAttributedString addAttribute:NSParagraphStyleAttributeName value: firstParagraphStyle range:NSMakeRange(0, range.location)]; //The range is from the start to the \n

[yourAttributedString addAttribute:NSParagraphStyleAttributeName value: secondParagraphStyle range:NSMakeRange(range.location, [[yourAttributedString string] length]-range.location)]; //The range is from the start of \n to the end
Run Code Online (Sandbox Code Playgroud)