2015-04-17 16 views
6

Mam podklasowaną UITableViewCell, która zawiera UITextView. Dodałem NSParagraphStyle jako atrybut do ciągu w podklasie NSTextStorage. W poniższym kodzie zwiększyłem przestrzeń między każdym wierszem w UITextView.Modyfikowanie właściwości odstępów między wierszami w NSParagraphStyle powoduje wydłużanie kursora.

wysokość szybki

let paragraphStyle = NSMutableParagraphStyle() 
paragraphStyle.lineSpacing = 11 
myCustomTextStorage.appendAttributedString(NSAttributedString(string: someText, attributes: [NSParagraphStyleAttributeName: paragraphStyle])) 

Kursor wydłużają się aż do wysokości następnego wiersza, jak pokazano poniżej. Dzieje się tak tylko w wierszach przed ostatnim wierszem.

enter image description here

Szukałem w kilku stanowisk na SO dotyczące tego problemu, w tym this post; jednak żadne z proponowanych rozwiązań nie działa dla mnie.

Przeczytałem dokumentację TextKit, ale nie znalazłem żadnego rozwiązania tego problemu.

Czy istnieje sposób na zmniejszenie wysokości kursora?

Odpowiedz

0

Działa to tak, jak zostało zaprojektowane i jest takie samo na komputerze Mac. Ma to na celu dostarczenie użytkownikowi wizualnej informacji zwrotnej zarówno na temat linii, na której się znajdują, jak i wysokości tej linii. Powinieneś się zastanowić, zanim zmienisz to tylko dlatego, że nie podoba ci się to, jak wygląda.

To powiedziawszy, metoda w liście SO, którą podałeś powyżej, jest ogólnym podejściem do regulacji kursora (chociaż skorygowane pochodzenie prostownika również może wymagać korekty). A co z tym nie dla ciebie? Lepiej zacząć od tego miejsca.

0

odpowiedź na ten temat jest podana w tym wątku. właśnie tutaj wklejam dla przyszłego odniesienia. iOS - UITextView lineSpacing make cursor height not same

„może zmieniać wysokość kursorem przez podklasy z UITextView, następnie zastąpić caretRectForPosition. Funkcji położenia dla przykładu:

  • (CGRect) caretRectForPosition (UITextPosition *) Pozycja { CGRect originalRect = [ Super caretRectForPosition: stanowisko]; originalRect powrotu;; originalRect.size.height = 18,0 } "
Powiązane problemy