2015-10-30 8 views
5

Ho un'app che utilizzava UITextViews per visualizzare testo (eventualmente multilinea) e funzionava correttamente in iOS8. Ho disattivato lo scorrimento dichiarando self.scrollEnabled = false. Il UITextView avrebbe rotto le parole a nuove linee dove necessario e tutto sembrava funzionare!iOS9 Multi-Line UITextView non visualizza correttamente

Tuttavia, quando ho eseguito il codice su iOS9, UITextView visualizzava sempre solo 1 riga di testo (indipendentemente dal numero di righe di testo presenti).

enter image description here

ho capito quando ho rimosso la linea self.scrollEnabled = false, il UITextView resi correttamente (mostrando tutte le linee), ma era tornato ad essere scorrevole ovviamente e questo non era l'intenzione.

enter image description here

Cosa devo fare per permettere al UITextView di rendere più linee e spegnere lo scorrimento? Qualcuno ha mai visto questo problema prima o ha qualche suggerimento?

Grazie!

+0

Potete controllare lo stesso comportamento, diminuendo dimensione del font del textView? Solo per il test – channi

+0

Basta ridurre la dimensione del carattere in modo che due linee possano essere adattate in IB. allora funzionerà –

+2

Sto costruendo programmaticamente le dimensioni di UITextView. Tuttavia, se aumento l'altezza di alcuni pixel (lo stesso concetto che diminuisce la dimensione del carattere), hai ragione, le cose funzionano! Strano che la funzione di misurazione di 'boundingRectWithSize' sia passata da iOS8 a iOS9. Devo inserire una riga che corregge questa differenza di dimensione :( – Alex

risposta

1

È necessario impostare la textContainerInset del textView

Il codice qui sotto crea un UITextView con più linee (si dovrebbe anche impostare vincoli alla TextView)

let titleTextView: UITextView = { 
    let textView = UITextView() 
    textView.translatesAutoresizingMaskIntoConstraints = false 
    textView.text = "something to say" 
    textView.textContainerInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0) 
    textView.textColor = UIColor.lightGray 
    textView.font = UIFont(name: "Helvetica", size: 14) 
    return textView 
}()