Oto rozwiązanie Swift 4 (na Arie Litovsky odpowiedź), możesz umieścić ten kod w: textViewDidChange(_ textView: UITextView)
metoda delegata:
Skalowanie czcionki:
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()
}
i zwiększenia czcionki:
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()
}
Można zmienić fontSize < 12
i fontSize > 15
do swoich potrzeb w minimalnej i maksymalnej wielkości czcionki.
Ah, czy istnieje jakiś przykładowy kod, który to robi? Rozejrzałem się i nie mogłem nic znaleźć. Dzięki wielkie! –
Nie znam żadnego przykładowego kodu; Nigdy wcześniej nie słyszałem, żeby ktoś próbował to zrobić. –