如何在 iOS 中删除 UILabel 中的插图

Posted

技术标签:

【中文标题】如何在 iOS 中删除 UILabel 中的插图【英文标题】:How to remove insets in UILabel in iOS 【发布时间】:2016-05-31 14:55:25 【问题描述】:

我有带有文本 D 的简单标签,我使用 sizeToFit 我得到高度 21.5

但我看到大约 2px 的填充

如何去除?

我尝试 layoutMargins = UIEdgeInsetsZero - 但没有效果

【问题讨论】:

尝试将文本设置为 Dj,看看底部是否发生了魔法? 无变化。仅移除底部 那是因为字体高度。我 j 删除了底部填充,这意味着可能有一些比 D 高的字符会到达实验室的顶部 【参考方案1】:

您可能想尝试将UILabel 子类化并覆盖drawTextInRect:

- (void)drawTextInRect:(CGRect)rect

    [super drawTextInRect:UIEdgeInsetsInsetRect(rect, UIEdgeInsetsMake(0., 0., 0., 0.))];

【讨论】:

【参考方案2】:
CGRect frame = CGRectMake(0, 0, 120, 30);
UIEdgeInsets contentInsets = UIEdgeInsetsMake(0, 0, 0, 0);
CGRect labelFrame = UIEdgeInsetsInsetRect(frame, contentInsets);
UILabel *label = [[UILabel alloc] initWithFrame:labelFrame];

【讨论】:

以上是关于如何在 iOS 中删除 UILabel 中的插图的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 中使用边缘插图?

iOS 7 自定义容器控制器 - 如何设置子控制器的视图插图?

UILabel 文本边距 [重复]

iOS · UILabel加删除线

iOS:从 iPod 库中获取和显示专辑插图

如何修复 UILabel 文本间距?