向NSAttributedString添加左边距的最佳方法是什么?

时间:2014-09-12 02:47:58

标签: ios objective-c nsattributedstring

我试图在NSAttributedString中添加左边距,这样当我将其与另一个NSAS连接时,两个框架框之间会有一些空间。

到目前为止,我所拥有的只是:

NSMutableAttributedString *issn = [[NSMutableAttributedString alloc] initWithString:jm.issn attributes:nil];

NSRange range = NSMakeRange(0, [issn length]);
[issn addAttribute:NSFontAttributeName
             value:[UIFont fontWithName:@"AvenirNext-Medium" size:8]
             range:range];

NSMutableAttributedString *textLabel = [[NSMutableAttributedString alloc] initWithAttributedString:title];
[textLabel  appendAttributedString:issn];

我想要第二个字符串左侧的边距。

谢谢!

修改:图片上传

enter image description here

3 个答案:

答案 0 :(得分:2)

为什么不在两个字符串之间使用制表符?

您可以通过将第一行更改为此来执行此操作:

NSMutableAttributedString *issn = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"\t%@", jm.issn] attributes:nil];

这应该输出类似你想要的东西。但是,您可能希望添加2个\t个字符而不是一个字符,因为根据字符串长度,它可能不需要制表符来对齐它(例如,在您发布的确切字符串中,它没有在我的输出中添加任何内容)。

包含字符串的1个标签:

One tab

带有字符串的2个标签:

Two tabs

答案 1 :(得分:1)

你做不到。如果您连接属性字符串,则最终字符串中的特定范围周围没有“边距”。如何使用多行或文本包装?

如果要在属性字符串中使用空格,请使用空格字符 - 空格或制表符。您可以使用段落样式定义制表位的位置。

答案 2 :(得分:0)

您只需在源字符串之前添加所需的空格(或空格字符),然后将其添加到NSMutableAttributedString。

 NSString *newString = [NSString stringWithFormat:@"  %@", jm.issn] <- Have given two spaces here.

由于