任何人都可以为我检查一下......只是为了确保我不会生气!
我使用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 对齐,第二个字符串被剪切掉了标签的末尾:
然后我更改NSTextAlignmentRight
NSTextAlignmentCenter
,现在正确对齐!
我知道我已经解决了我的问题,但由于iOS框架中似乎存在错误,因此当Apple解决此问题时,我不希望该应用程序中断。所以如果有人能告诉我它是否确实是错的,或者我真的错了,我会非常感激,谢谢!
答案 0 :(得分:0)
我自己也遇到了这个问题并且可以确认,截至2015年8月21日,NSTextAlignmentCenter和NSTextAlignmentRight被交换。