UITextView lineSpacing machen cursor der Höhe nicht gleichen
Ich bin mit NSMutableParagraphStyle
in meinem UITextview
für das hinzufügen linespace zwischen den einzelnen Zeilen text.
Wenn ich etwas in textview, cursor-Höhe ist normal. aber wenn ich mich bewege cursor-position der text auf der 2. Reihe (nicht die Letzte Zeile) cursor-Höhe wird immer größer.
Was sollte ich tun, um cursor-Höhe normal, in jede Zeile der Texte?
Dies ist der code, den ich derzeit benutze:
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.lineSpacing = 30.;
textView.font = [UIFont fontWithName:@"Helvetica" size:16];
textView.attributedText = [[NSAttributedString alloc] initWithString:@"My Text" attributes:@{NSParagraphStyleAttributeName : paragraphStyle}];
Du musst angemeldet sein, um einen Kommentar abzugeben.
Endlich habe ich eine Lösung gefunden, die mein problem gelöst.
Ändern der cursor-Höhe ist möglich, indem bilden von Unterklassen der
UITextView
, dann überschreiben diecaretRectForPosition:position
Funktion. Zum Beispiel:Link zur Dokumentation: https://developer.apple.com/documentation/uikit/uitextinput/1614518-caretrectforposition
Update: Swift 2.x-oder Swift-3.x
Sehen Nate ' s Antwort.
Update: Swift 4.x
Für Swift 4.x verwenden Sie
caretRect(for position: UITextPosition) -> CGRect
.Link zur Dokumentation: https://developer.apple.com/documentation/uikit/uitextinput/1614518-caretrect
UITextInput
- Protokoll, welchesUITextView
entspricht (developer.apple.com/library/prerelease/ios/documentation/UIKit/...).Sowie für Swift 2.x oder Swift 3.x:
caretRectForPosition(position: UITextPosition)
zu:caretRect(for position: UITextPosition)