Chcę wyrównać tekst w pionie w środku w UItextView
.UITextView alligining text vertical center
Używam następujący kod
UITextView *tv = object;
CGFloat topCorrect = ([tv bounds].size.height - [tv contentSize].height * [tv zoomScale])/2.0;
topCorrect = (topCorrect < 0.0 ? 0.0 : topCorrect);
tv.contentOffset = (CGPoint){.x = 0, .y = -topCorrect}
;
Jakoś to nie działa w systemie iOS 5, ponieważ zwrócona zawartość contentSize jest inna niż w systemie iOS6.
Dowolny pomysł, dlaczego contentSize
tego samego tekstu jest inny w iOS 5 i iOS 6?
To nie powoduje, że tekst jest stale wycentrowany w pionie, ponieważ jeśli rozmiar UITextView jest zmieniany na przykład, gdy pojawi się klawiatura), wówczas zawartość UITextView powraca do górnego wyrównania. – motionpotion
To jest świetny kawałek kodu oprócz jego wartości jako obserwatora klawiatury. Dzięki. –
Miałem awarię podczas używania tego kodu w 'UITableView'. Działa dobrze na ios8, ale także musi usunąć obserwatora po wyrównaniu. Dodaj tę linię jako ostatnią linię metody "observeValueForKeyPath": [tv removeObserver: self forKeyPath: @ "contentSize"]; ' –