Voici une solution pour Swift 4 (basé sur Arie Litovsky réponse), vous pouvez mettre ce code dans textViewDidChange(_ textView: UITextView)
méthode de délégué:
Réduire la police:
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()
}
et l'élargissement de la police:
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()
}
Vous pouvez modifier le fontSize < 12
et fontSize > 15
pour répondre à vos besoins en taille de police minimum et maximum.
Ah, y at-il un exemple de code là-bas qui fait cela? J'ai regardé autour de moi et n'ai rien trouvé. Merci beaucoup! –
Je ne suis pas au courant d'un exemple de code; Je n'ai jamais entendu parler de quelqu'un qui essayait de le faire auparavant. –