如何更改UITextView
字体大小,以便所有文字最多可以容纳两行?如果文本完全符合一行或两行,那么我不希望字体大小发生变化。但如果文本更长,我需要它变得更小。感谢。
答案 0 :(得分:1)
我相信您有充分的理由使用UITextView
,因此我认为这可能有点棘手,需要进行大量测试才能看到它实际上与您预期的一样。
我建议通过以下方式计算行数:
let font = yourFont
let size = yourTextView.contentSize
let inset = yourTextView.textContainerInset
let rows = (size.height - inset.top - inset.bottom) / font.lineHeight
获取textView
委托方法中的行,例如textView:shouldChangeTextIn:...
,并根据此信息更改字体大小。
另一个建议是使隐藏UILabel
的属性设置如下:
label.font = yourFont
label.frame = CGRect(x: 0, y: 0, width: yourTextView.contentSize.width, height: yourTextView.contentSize.height)
label.numberOfLines = 2
label.adjustFontSizeToFitWidth = true
然后在textView
的委托方法中,更新label
的文字和
textView.font = label.font
我不确定其中任何一个是否真的有用,因为我没有亲自测试过,但我希望这可以帮助你为这个问题设定一个起点。
答案 1 :(得分:0)
除非您特别需要使用UITextView
,否则我建议您使用UILabel
。此代码将UILabel
限制为两行并使其文本自动缩小:
label.numberOfLines = 2
label.adjustsFontSizeToFitWidth = true