Ho UITextView con del testo in esso. Tutto andava bene con iOS 6 ma ora con iOS 7 lascia lo spazio vuoto in alto e quindi posiziona il testo sotto il centro della visualizzazione di testo.
Non ho impostato alcun contentOffSet. Per favore aiuto!
Ho UITextView con del testo in esso. Tutto andava bene con iOS 6 ma ora con iOS 7 lascia lo spazio vuoto in alto e quindi posiziona il testo sotto il centro della visualizzazione di testo.
Non ho impostato alcun contentOffSet. Per favore aiuto!
Risposte:
Una visualizzazione di testo è una visualizzazione a scorrimento. I controller di visualizzazione aggiungeranno automaticamente un offset del contenuto per scorrere le visualizzazioni, poiché si presume che vogliano scorrere verso l'alto dietro la barra di navigazione e la barra di stato.
Per evitare ciò, impostare la seguente proprietà sul controller della vista contenente la vista del testo:
self.automaticallyAdjustsScrollViewInsets = NO
L'attuale risposta fornita da IronManGill non è una buona soluzione, perché non si basa sulla comprensione del motivo per cui il problema si verifica in primo luogo.
La risposta di jrturton non è nemmeno il modo più pulito per risolverlo. Non è necessario eseguire l'override. Mantienilo semplice!
Tutto ciò di cui hai bisogno è impostare quanto segue:
self.automaticallyAdjustsScrollViewInsets = NO;
nel metodo viewDidLoad.
Guarda i documenti: https://developer.apple.com/documentation/uikit/uiviewcontroller/1621372-automaticallyadjustsscrollviewin
automaticallyAdjustsScrollViewInsets
è deprecato. Da iOS11, usacontentInsetAdjustmentBehavior
In Interface Builder,
Questo ha funzionato per me
textView.textContainerInset = UIEdgeInsetsZero;
textView.textContainer.lineFragmentPadding = 0;
Vai a Interface Builder
:
view controller
quello che contiene il tuotext view
Adjusts Scroll View Insets
proprietàMi chiedo davvero se questa sia una caratteristica reale ... Questo riquadro automatico a 64 punti viene aggiunto solo quando UIScrollView
o UITextView
come maggiore profondità di tutte le sottoview della vista del controller di visualizzazione. Ad esempio, se aggiungi una vista dietro (qui sto parlando di z-buffer, non di imbricazione della vista) la vista a scorrimento, questo riquadro di 64 punti non viene aggiunto automaticamente.
Ad esempio, questo aggiunge il riquadro:
In questo caso, il riquadro non viene aggiunto:
Questo mi sembra davvero strano ... Perché il sistema operativo dovrebbe esaminare la profondità della visualizzazione per decidere se estenderla?
Su swift (Xcode 6)
self.automaticallyAdjustsScrollViewInsets = false
viewDidLoad
controller di visualizzazione con la visualizzazione del testo.
automaticallyAdjustsScrollViewInsets
è deprecato. Da iOS11, usacontentInsetAdjustmentBehavior
Ho risolto questo problema impostando l'offset del contenuto su un valore negativo. Ecco il codice Swift.
yourTextView.setContentOffset(CGPoint(x: 0, y: -150), animated: true)
[self.textView setContentOffset:CGPointMake(0.f, -self.topLayoutGuide.length) animated:NO];
Quello che devi capire è che questo si riferisce alla barra di navigazione:
Soluzione per Swift 4:
textView.textContainerInset = UIEdgeInsets.zero
Questa è una soluzione poco professionale, ne sono sicuro ... Ma solo mettere un'etichetta vuota dietro la visualizzazione del testo risolve il problema.