我已经设置了一个带有自动布局的 UILabel,它的高度基于其固有的内容大小,这样当其中有更多行时它会变得更高。我需要它与同一视图中的其他元素一起居中。一切都是默认的,它工作得很好。
但是,我使用的是自定义字体,其中空间有点太大。我已经设置了一个 NSMutableParagraphStyle,如下所示:
NSMutableParagraphStyle *headlineParagraphStyle = [NSMutableParagraphStyle new];
headlineParagraphStyle.lineSpacing = 0.0f;
headlineParagraphStyle.maximumLineHeight = 20.0f;
headlineParagraphStyle.hyphenationFactor = 0.0f;
headlineParagraphStyle.alignment = NSTextAlignmentLeft;
然后我创建一个 NSAttributedString 并将其设置为 UILabel 的-attributedText
:
NSString *uppercaseHeadline = self.currentStory.headline.uppercaseString;
NSAttributedString *attributedHeadline = [[NSAttributedString alloc] initWithString:uppercaseHeadline attributes:@{NSParagraphStyleAttributeName: headlineParagraphStyle}];
self.headlineLabel.attributedText = attributedHeadline;
结果是文本看起来不错,但它被推到 UILabel 顶部上方并在顶部被剪掉,而标签底部仍有额外空间:
这也会使其他项目相对于该标签中的文本居中,因为您可以看到两行之间的空间与标签框架的中心不一致。
我怎样才能告诉 UILabel 重新定位此文本,以便顶部不会剪辑并且底部没有任何空间?