Вот решение для Swift 4 (на основе Arie Litovsky ответ), вы можете поместить этот код в textViewDidChange(_ textView: UITextView)
делегат метод:
Уменьшение шрифта:
while (textView.contentSize.height > textView.frame.size.height) {
guard let fontName = textView.font?.fontName, let fontSize = textView.font?.pointSize else {return}
if fontSize < 12 {
return
}
textView.font = UIFont(name: fontName, size: fontSize - 1)
textView.layoutIfNeeded()
}
и расширение шрифта:
while (textView.contentSize.height < textView.frame.size.height) {
guard let fontName = textView.font?.fontName, let fontSize = textView.font?.pointSize else {return}
if fontSize > 15 {
return
}
textView.font = UIFont(name: fontName, size: fontSize + 1)
textView.layoutIfNeeded()
}
Вы можете изменить fontSize < 12
и fontSize > 15
в соответствии с вашими потребностями в минимальном и максимальном размере шрифта.
Ах, есть ли какой-нибудь образец кода, который делает это? Я огляделся и ничего не нашел. Спасибо! –
Я не знаю ни одного образца кода; Я никогда не слышал, чтобы кто-то пытался это сделать раньше. –