如何删除一行UILabel下方的额外填充

时间:2015-11-28 08:25:51

标签: ios objective-c uilabel

我想使用 UILabel 来显示从服务器发送的一些单词,这些单词我将它们设置为 NSMutableAttributeString 有时只占用一行< / strong>(仅在这种情况下,问题出现了。)

我打算获得标签占用的确切空间,但是当标签只占用一行时,非常重要 - 我使用lineSpacing设置NSMutableAttributeString (10px,NSMutableParagraphStyle),但出乎意料的是,  即使这里只有一行也会有效 - 问题显示在单词下面有一些额外的填充(我用一些中文单词测试,但注意:如果单词占用多行,则没有问题)。而且很奇怪 故事是 - 如果单词是纯英文或阿拉伯数字,则额外的填充将不存在

以下照片可能会清楚地显示问题:

1.English words - oneline( no 额外填充) [测试词:今天0987776]

Test with english words

2.Chinese words - oneline( some extra padding) [测试词:今天天气好啊!]

Test with chinese words

希望有人会帮忙。很多。

2 个答案:

答案 0 :(得分:1)

在标签上使用sizeToFit文字所需的尺寸

[yourlabelName sizeToFit];

任何其他padding都来自字体,标签本身不会应用任何其他填充

答案 1 :(得分:0)

// baselineOffset,它完全被击中,希望能帮助你

[attributionString addAttribute:NSBaselineOffsetAttributeName value:@(baselineOffset)range:range];