Aquí es una solución para Swift 4 (basado en Arie Litovsky respuesta), puede poner este código en textViewDidChange(_ textView: UITextView)
delegar método:
Escalar la fuente:
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()
}
y la ampliación de la fuente:
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()
}
Puede cambiar el fontSize < 12
y fontSize > 15
para satisfacer sus necesidades de tamaño mínimo y máximo de la fuente.
Ah, ¿hay algún código de muestra que haga esto? Miré a mi alrededor y no pude encontrar nada. ¡Muchas gracias! –
No conozco ningún código de muestra; Nunca había escuchado que alguien intentara hacer esto antes. –