16

当我的 UITextField 成为第一响应者(编辑时)时,文本会略微向下移动,并且字符之间的间距会略微增加。第一响应者辞职后(键盘消失),角色移回原来的位置。起初我认为这是一个字体问题,因为我使用的是自定义字体,但是当我使用系统字体或其他自定义字体时也会发生同样的事情。

请检查下面的图片。第一个是键盘向下,第二个是键盘向上。可能很难看到,因为差异很小,但键盘向上状态显示字符向下移动并稍微分开。

在此处输入图像描述

在此处输入图像描述

4

9 回答 9

4

在 xib 中,将文本字段的边框样式设置为除 TextBorderStyleNone 之外的任何值。在代码中,将文本字段的边框样式显式设置为 TextBorderStyleNone。

我不知道为什么,但这似乎是初始化程序错误。它在其他不通过 xib 的插座初始化 UITextField 的代码中工作正常。

在xib中将textfield的borderStyle设置为TextBorderStyleNone时,即使在代码中将borderStyle设置为TextBorderStyleNone,问题依然存在。后面可能会出现某种由值变化触发的“layoutIfNeeded”内容。

于 2016-12-09T06:56:47.043 回答
3

选择“调整以适应”属性会在 UITextField 中设置属性 adjustsFontSizeToWidth。

具有此属性(UITextField Apple 文档):

通常,文本字段的内容是使用您在 font 属性中指定的字体绘制的。但是,如果此属性设置为 YES,并且 text 属性中的内容超出了文本字段的边界矩形,则接收器开始减小字体大小,直到字符串适合或达到最小字体大小。文本沿基线收缩。

此属性的默认值为 NO。如果将其更改为 YES,则还应通过修改 minimumFontSize 属性来设置适当的最小字体大小。

我会尝试首先取消选中它并查看是否会停止它,然后按照文档建议将 minimumFontSize 属性设置为较低,否则这也可能导致问题。

此问题可能是蓝色“正在编辑”光标出现的结果。文本的基线(参考)是文本的底部。您的文本通过向下推“沿基线”缩小,这更强烈地倾向于它成为 minimumFontSize/adjustsFontSizeToWidth 问题的方向。

于 2013-08-31T01:28:09.090 回答
3

如果您强制使 UITextField 成为第一响应者,请在 viewDidAppear 中执行:而不是 viewDidLoad... 这为我解决了问题...

于 2014-06-25T06:15:04.067 回答
2

在我的故事板中检查文本字段的“剪辑到边界”对我来说很好。

于 2017-01-24T08:23:43.133 回答
1

您可能已将 UITextField 的大小设置为在高度方面略微太小。尝试手动调整它的大小,使其高一两个像素。或者在 XIB 编辑器中选择它并在编辑器菜单中使用“大小以适合内容”。这应该将文本字段设置为正确的大小,以便不会发生这种文本移动。

于 2013-08-31T00:10:42.087 回答
1

设置Min Font Size属性等于字体大小Interface Builder为我工作

于 2017-03-29T22:24:57.397 回答
1

改变故事板控制下的垂直对齐方式为我做了。

于 2018-04-23T15:56:24.010 回答
1

我的问题与错误alignment有关UIStackView

当您放入时UITextField,请UIStackView确保您alignment正确设置它,否则自动布局将无法确定如何正确定位您的视图。


就我而言,我必须将其设置为.leading.

stackView.alignment = .leading
于 2019-12-02T08:45:08.067 回答
0

您应该在 Text 属性之前设置 Font 属性。

于 2014-04-30T12:34:19.773 回答