2009-08-19 16 views

Antwort

3

Es gibt keine Einstellung für die Ausrichtung von Text, den Sie nur in der Mitte, links und rechts haben. Wenn Sie eine ausgerichtete Ausrichtung wünschen, bei der jede Zeile die gleiche Anzahl an Zeichen oder ähnlichem hat, können Sie den eingegebenen Text so formatieren, dass nach x Zeichen oder Wörtern oder ähnlichem ein Wagenrücklauf erfolgt.

+0

Sicher, Theres eine Seite, wo man vorschlagen, Funktionalität auf der Apple-Website, ich erinnere mich nicht, wo es ist tho =/ – Daniel

+1

Es ist hier http://bugreport.apple.com – Jasarien

12

Ich bin zu einer Lösung gekommen, die funktioniert. Zuallererst müssen Sie Ihre UITextView ändern und stattdessen eine UIWebView verwenden.

Details.h

@interface Details : UIViewController { 
    IBOutlet UIWebView *descripcion; 
} 

@property (nonatomic, retain) UIWebView *descripcion; 

Dann laden Sie Ihre UIWebView wie folgt:

Details.m

[descripcion loadHTMLString:[NSString stringWithFormat:@"<div align='justify'>%@<div>",YOUR_TEXT] baseURL:nil]; 
+1

Aber dann styling jenseits der einfachen schwarzen Text auf whi Der Hintergrund muss über CSS-/Inline-HTML-Stile anstelle von Kakaoeigenschaften erfolgen. – autodidakto

6

Es gibt eine andere Option. CATextLayer.

Es unterstützt explizit gerechtfertigte Ausrichtung. Und es ist viel leichter und schneller als UIWebView. Weil es im Wesentlichen eine dünne Schicht über CoreText ist, so erfordert kein schwerer Layoutprozess wie UIWebView.

Oder Sie können eine weitere Option verwenden, nur untere Ebene CoreText Framework direkt verwenden.

Wie auch immer, sie unterstützen keine Textbearbeitung. Wenn Sie es brauchen, müssen Sie alles selbst implementieren.

68

Ich weiß, es ist eine alte Frage, aber jetzt haben wir Neuigkeiten über:

UITextView *textView = // init your text view 
textView.textAlignment = NSTextAlignmentJustified; 

Und das ist es!

UPDATE: Dies funktioniert nur auf iOS 6 und höher

+0

Thx für Update, ich habe vergessen, dies zu erwähnen. – fencingCode

+0

hast du eine Idee, warum das nur auf iOS6 und nicht auf iOS7 funktioniert? NSTextAlignmentJustified auf meinem UILabel funktioniert nicht in iOS7. – Rambatino

+0

@MarkRamotowski, versuchen Sie stattdessen mit UITextView. funktioniert für mich in iOS6 und iOS7 – Sam

10

ist es Lösung:

NSString *text1 = @"Sample text : A his is my weblog in English, German and Korean. If you want to know more about a pizza stone once it’s cooled down."; 

NSMutableParagraphStyle *style = [[NSParagraphStyle defaultParagraphStyle] mutableCopy]; 
[style setAlignment: kCTJustifiedTextAlignment]; 

NSAttributedString * subText1 = [[NSAttributedString alloc] initWithString:text1 attributes:@{ 
               NSParagraphStyleAttributeName : style 
            }]; 

_myUiTextView.attributedText = subText1; 
+1

Dies ist nur iOS6. – Shai

3

Für rechts nach links Sprachen wie Persisch

UITextPosition *beginning = textview.beginningOfDocument; 
    UITextPosition *start = [textview positionFromPosition:beginning offset:0]; 
    UITextPosition *end = [textview positionFromPosition:start offset:[textview.text length]]; 

    UITextRange *textRange = [textview textRangeFromPosition:start toPosition:end]; 
    [textview setBaseWritingDirection:UITextWritingDirectionRightToLeft forRange:textRange]; 

    textview.textAlignment = NSTextAlignmentJustified; 
Verwandte Themen