我看到很多关于修剪字符串末尾空白区域的问题和答案。我的问题恰恰相反。
我故意在字符串的末尾想要一个空格字符,我不希望在分配到text
的{{1}}属性时自动删除它。
我尝试添加我能想到的所有unicode变体(NO-BREAK SPACE / u00a0; PUNCTUATION SPACE / u0008; TAG SPACE等)但是它们都被修剪了。
在我过去的编程经历中总有一个"空间"什么不被认为是"白色空间"特别是它可以免受自动修剪。
答案 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]}];
}