gpt4 book ai didi

ios - 带有 NSAttributedString 的 UILabel 正在裁剪内容

转载 作者:技术小花猫 更新时间:2023-10-29 11:20:14 24 4
gpt4 key购买 nike

我有一个 UILabel 设置了自动布局,它的高度基于它的内在内容大小,这样当它有更多的行时它会变得更高。我需要它与同一 View 中的其他元素一起居中。一切都默认,它工作得很好。

但是,我使用的是自定义字体,其中的空间有点太大。我设置了一个 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 Clipping

这也会使其他项目相对于此标签中的文本居中,因为您可以看到两条线之间的空间与标签框架的中心不对齐。

我如何告诉 UILabel 将此文本重新居中,以便顶部不会剪裁并且底部没有任何空间?

最佳答案

我意识到在 iOS 7 发布并且该平台上的 NDA 解除后我再也没有回来回答这个问题。从 iOS SDK 7.0 开始,可以使用 NSAttributedString 属性 NSBaselineOffsetAttributeName,这正是我需要做的。

它在 iOS 6 中可用但“不再受支持”。但是,在使用 iOS 7 SDK 构建时,它似乎做了正确的事情。

编辑:如果不清楚,我不建议这样做。如果 Apple 表示不再支持它,那么依赖它可能不是一个好主意。它对我有用,但这绝对不是一个长期的解决方案。

关于ios - 带有 NSAttributedString 的 UILabel 正在裁剪内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18688253/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com