UITextView 偏移文本的方式与 UILabel 不同

UITextView offsets text differently than UILabel

我正在使用 UILabelUITextView,它们呈现文本的方式不同。似乎 UITextView 将文本偏移 4.

下面是一个示例,其中顶部是 UILabel,下面是 UITextView。他们都使用相同的字体。这里有两个示例,一个使用自定义 OpenSans 字体,另一个使用系统的 HelveticaNeue 字体。

使用 sizeThatFits:

设置文本后,

UILabel 正在调整大小

    label.text = text;
    CGFloat width = 320 - 2 * 16; // both label and textView end up with 288 width
    CGSize size = [label sizeThatFits:CGSizeMake(width, CGFLOAT_MAX)];
    CGRect frame = CGRectMake(16, 0, width, size.height);
    label.frame = frame;

UITextView.textContainerInset 设置为 (0,0,0,0).

有什么帮助吗?以下是屏幕截图:

1.1 HelveticaNeue: textView offset -4 (label on top)

1.2 HelveticaNeue:对齐(顶部标签)

2.1 OpenSans: textView offset -4 (label on top)

2.2 OpenSans:对齐(标签在顶部)

这对我有用并消除了内部填充:

textView.textContainer.lineFragmentPadding = 0;
textView.textContainerInset = UIEdgeInsetsZero;