UITextField 最小字体大小

Posted

技术标签:

【中文标题】UITextField 最小字体大小【英文标题】:UITextField minimum fontsize 【发布时间】:2011-05-18 13:07:09 【问题描述】:

我正在使用属性minimumFontSize

textField.font = [UIFont boldSystemFontOfSize:17];
textField.textColor = [UIColor darkGrayColor];
textField.minimumFontSize = 10;
textField.adjustsFontSizeToFitWidth = YES;

但是文本永远不会达到 10 的最小字体大小,它会被截断,但如果我将当前的 fontSize 更改为 10,整个文本就会正确显示。我是不是用错了这个属性?

【问题讨论】:

【参考方案1】:

尽管如此...您正确设置了您的UITextField,并且adjustsFontSizeToFitWidth 确实可以正常工作,但我认为ios 是不正当的。

UITextField 中的文本似乎不会自动缩小超过 14 pts* - 无论您是否将 minimumFontSize 设置为小于该值,例如您的合理要求 10 pts。

UITextField 与:

字体大小为 17,如果需要,最小大小为 15 将降至 15 字体大小为 17,最小大小为 10 只会下降到 14 字体大小为 13,最小大小为 4 将保持为 13

您可以通过并排比较三个UITextFields 与对它们来说太长的文本字符串来测试这一点,其中最小字体大小分别为13、14 和15。前两个将完全相同,均为 14 分。

这似乎是一个奇数的幻数,但就是这样。铁腕的可读性考虑?我想你可以试试adjusting the font size yourself 或与minimumFontSize = 14 一起生活。

*我在 IB 中验证了这一点,但它肯定也适用于以编程方式创建的 UITextFields。

【讨论】:

【参考方案2】:

字体将被截断,直到最小字体大小。为了试验这一点,在 Interface Builder 中拖动一个 UILabel,在其中设置属性并更改 UILabel 的宽度以查看效果。

【讨论】:

是的,这是预期的效果,但我在 UITableViewCell 中有一个 UITextField,文本永远不会达到最小大小。我可以看到文本在我键入时变小,但还不足以达到最小尺寸 应该可以。你把它正确连接了吗?或者你可以尝试在 IB 中设置它。 你试过这个吗(在调用你的最小字体代码之后):[theLabel sizeToFit]; 原始海报指的是 UITextField,而不是 UILabel。 adjustsFontSizeToFitWidth 似乎不适用于文本字段。

以上是关于UITextField 最小字体大小的主要内容,如果未能解决你的问题,请参考以下文章

自动调整大小时 UITextField 字体粗细变化

iPhone——获取 UITextField 调整后的字体大小

编辑后 UITextField 上的 Xcode 5 字体大小错误

单个 UITextField 中的多种字体

UILabel 最小字体大小阴影问题

UIButton - 如何设置最小字体大小?