有没有"空间"从UILabel的末端没有修剪过的角色?

时间:2014-09-14 17:58:59

标签: ios objective-c nsstring uilabel

我看到很多关于修剪字符串末尾空白区域的问题和答案。我的问题恰恰相反。

我故意在字符串的末尾想要一个空格字符,我不希望在分配到text的{​​{1}}属性时自动删除它。

我尝试添加我能想到的所有unicode变体(NO-BREAK SPACE / u00a0; PUNCTUATION SPACE / u0008; TAG SPACE等)但是它们都被修剪了。

在我过去的编程经历中总有一个"空间"什么不被认为是"白色空间"特别是它可以免受自动修剪。

2 个答案:

答案 0 :(得分:3)

我搜索了大约一周的答案,我发现使用unicode" 0009" (标签空间)适用于UILabel

答案 1 :(得分:1)

添加标签空间并没有帮助我,因为我只想在开头和标签上添加1个空格,所以我想出了看起来不太好的解决方案,但是可配置的&救了我一命:

NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString:text attributes:@{NSForegroundColorAttributeName : [UIColor blackColor]}];

[string insertAttributedString:[self emptyAtributedWhitespace] atIndex:0];
[string appendAttributedString:[self emptyAtributedWhitespace]];

label.attributedText = string;

...

- (NSAttributedString *)emptyAtributedWhitespace
{
    // You can put any random string there or how many spaces you want
    return [[NSAttributedString alloc] initWithString:@"_" attributes:@{ NSForegroundColorAttributeName : [UIColor clearColor]}];
}