UITextView以不同于UILabel的方式偏移文本

val*_*674 9 objective-c uikit ios

我正在使用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;
Run Code Online (Sandbox Code Playgroud)

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

有帮助吗?以下是截图:

1.1 HelveticaNeue:textView偏移-4(顶部标签)
HelveticaNeue:抵消-4

1.2 HelveticaNeue:对齐(顶部标签)
HelveticaNeue  - 一致

2.1 OpenSans:textView偏移-4(顶部标签)
OpenSans  - 偏移-4

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

Art*_*tal 10

这适用于我,并消除了内部填充:

textView.textContainer.lineFragmentPadding = 0;
textView.textContainerInset = UIEdgeInsetsZero;
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,lineFragmentPadding是关键. (2认同)