通过文本字段上的自动布局调整字体大小并改变高度

Posted

技术标签:

【中文标题】通过文本字段上的自动布局调整字体大小并改变高度【英文标题】:Resize font size with a change in height by autolayout on a textfield 【发布时间】:2012-10-17 22:04:23 【问题描述】:

我有一个可以通过自动布局调整大小的 UITextField。当文本字段高度小于字体时,如何使字体大小自动变小?

谢谢

【问题讨论】:

问题是为什么你希望文本字段的高度改变它的大小?通常你只改变它的宽度。 我已经对文本字段进行了操纵,以通过自动布局随屏幕大小改变高度。如果字体也可以缩放就好了... 我发现这个 developer documentation 声明 ".. 如果字符串值发生变化,一个文本字段会调用 invalidateIntrinsicContentSize。" 它可能对您有帮助吗? 【参考方案1】:

我希望我能像其他人一样弄清楚如何让 cmets 离开,而不是给出答案。

无论如何,这似乎是 ios 设计中非常基础的东西,似乎没有任何承认这种事情,库/对象/属性的整个设计似乎认为你只会曾经想根据宽度更改字体大小,但这对我来说似乎完全是任意的。使用自动布局,这似乎只是需要修复的弹簧和支柱的不幸遗留问题。

作为一种变通方法,您可以创建一些约束以将标签的宽度与高度按一定比例链接起来,这样高度的变化会导致宽度也发生变化,从而强制字体发生变化。

我正在尝试解决同样的问题。

据我所知,这些约束必须在代码中创建。

【讨论】:

声望达到 50 即可离开 cmets。见privileges。 如果宽度和高度之间的比例固定,这可能会起作用。为此,文本和字体必须始终相同。因此,它不适用于多语言应用程序,或者如果苹果在 iOS 上进行了某些更改。

以上是关于通过文本字段上的自动布局调整字体大小并改变高度的主要内容,如果未能解决你的问题,请参考以下文章

自动布局根据文本调整按钮大小并让文本字段填充可用空间

自动布局调整多个标签的大小

自动布局:UILabel 无法正确调整长文本的大小

动态调整视图大小(拖动运动)时自动布局约束中断

添加文本和禁用滚动时如何使 UITextView 字段扩展?

自动调整不同设备字体大小的最佳方法?