Silbentrennung in der nativen iOS-App

9

Wie kann ich die automatische Silbentrennung in iOS aktivieren?

Ich habe versucht, den Silbentrennungsfaktor in den attributierten Textoptionen eines UILabel auf 1 zu setzen, allerdings bekomme ich keine Bindestriche.

    
Chris 31.10.2013, 14:39
quelle

3 Antworten

11
  1. Der iOS 7 Weg . Verwenden Sie UITextView anstelle von UILabel . Das hyphenationFactor (entweder als NSParagraphStyle Attribut oder als NSLayoutManager Eigenschaft) sollte dann funktionieren (dank dem neuen TextKit).
  2. Der Web-Weg . Verwenden Sie die Eigenschaften UIWebView und -webkit-hyphens CSS.
  3. Der Kerntext oder der harte Weg . Verwenden Sie die Funktion CFStringGetHyphenationLocationBeforeIndex() , die Sie in einem Kommentar erwähnt haben. Diese Funktion gibt nur einen Hinweis darauf, wo Bindestriche in einer Zeichenfolge für eine bestimmte Sprache platziert werden sollen. Dann müssen Sie Ihre Textzeilen selbst mit den Kerntextfunktionen (wie CTLineCreateWithAttributedString() und alle) aufbrechen. Siehe TextKit kennenlernen (der Absatz Silbentrennung erklärt die Logik des Kerns Text-Prozess, ohne Code) und Silbentrennung mit Core Text auf dem iPad (gibt ein Codebeispiel, aber die Website scheint jetzt gleich unten sein). Es wird wahrscheinlich mehr Arbeit als Sie wollen!
Guillaume 04.11.2013, 11:41
quelle
8

CoreText oder TextKit

Sie müssen der Zeichenfolge "weiche Silbentrennung" hinzufügen. Diese sind "-", die beim Rendern nicht sichtbar sind, sondern nur für CoreText oder UITextKit in Warteschlangen stehen, um zu wissen, wie man Wörter aufteilt.

Das weiche Bindestrichzeichen, das Sie in den Text einfügen sollten, lautet:

%Vor%

Beispielcode

%Vor%

Ausgaben ac-ces-si-bil-i-ty tests and frame-works check-ing

NSString + SoftHyphenation.h

%Vor%

NSString + SoftHyphenation.m

%Vor%     
hfossli 08.11.2013 09:55
quelle
1

Schnelle Version:

%Vor%     
buxik 11.10.2017 13:12
quelle

Tags und Links