2

谁能帮我检查一下……只是为了确保我不会发疯!

我创建了一个NSMutableParagraphStylewith tabStops,但它们没有出现在我期望的位置:

float width = self.myLabel.frame.size.width;
self.tabStyle.tabStops = @[[[NSTextTab alloc] initWithTextAlignment:NSTextAlignmentRight location:width - 50 options:nil],
                            [[NSTextTab alloc] initWithTextAlignment:NSTextAlignmentRight location:width options:nil]];

然后我创建了一个方便的方法来创建一个属性字符串,其中包含两个字符串的制表符位置:

- (NSAttributedString *)tabbedTextWithFirstString:(NSString *)firstString secondString:(NSString *)secondString
{
    NSDictionary *attributes = @{NSFontAttributeName:[UIFont fontWithName:kHSTFontFaceDefault size:14.0]};
NSString *tabbedStr = [NSString stringWithFormat:@"\t%@\t", firstString];
    NSMutableAttributedString *attrStr = [[NSMutableAttributedString alloc] initWithString:tabbedStr attributes:attributes];

    attributes = @{NSFontAttributeName:[UIFont fontWithName:kHSTFontFaceDefaultBold size:14.0]};
    [attrStr appendAttributedString:[[NSAttributedString alloc] initWithString:secondString attributes:attributes]];

    [attrStr addAttribute:NSParagraphStyleAttributeName value:self.tabStyle range:NSMakeRange(0, attrStr.length)];
    return attrStr;
}

这被应用于两个独立UILabel的 s,它们一个在另一个之上。当我运行代码并插入文本时,第一个字符串看起来是居中对齐的,而第二个字符串被切断了标签的末尾:

在此处输入图像描述

所以然后我改变NSTextAlignmentRightNSTextAlignmentCenter现在它们正确对齐了!

在此处输入图像描述

我知道我已经解决了我的问题,但由于 iOS 框架中似乎存在错误,我不希望应用程序在 Apple 解决此问题时中断。所以如果有人能告诉我这是否真的错了,或者我真的错了,我将非常感激,谢谢!

4

1 回答 1

0

我自己遇到了这个问题,可以确认截至 2015 年 8 月 21 日 NSTextAlignmentCenter 和 NSTextAlignmentRight 已交换。

于 2015-08-21T16:03:01.303 回答