谁能帮我检查一下……只是为了确保我不会发疯!
我创建了一个NSMutableParagraphStyle
with 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,它们一个在另一个之上。当我运行代码并插入文本时,第一个字符串看起来是居中对齐的,而第二个字符串被切断了标签的末尾:
所以然后我改变NSTextAlignmentRight
了NSTextAlignmentCenter
,现在它们正确对齐了!
我知道我已经解决了我的问题,但由于 iOS 框架中似乎存在错误,我不希望应用程序在 Apple 解决此问题时中断。所以如果有人能告诉我这是否真的错了,或者我真的错了,我将非常感激,谢谢!