NSTextAlignmentCenter和NSTextAlignmentRight在NSTextTab中是错误的方式?

时间:2014-06-26 15:29:01

标签: ios objective-c nsattributedstring nsparagraphstyle nstexttab

任何人都可以为我检查一下......只是为了确保我不会生气!

我使用NSMutableParagraphStyle创建了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,它们一个在另一个上面。当我运行代码,插入文本时,第一个字符串看起来是 center 对齐,第二个字符串被剪切掉了标签的末尾:

enter image description here

然后我更改NSTextAlignmentRight NSTextAlignmentCenter现在正确对齐!

enter image description here

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

1 个答案:

答案 0 :(得分:0)

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