so legen Sie fest, dass der Text einer UITextView fett gedruckt und nicht anklickbar ist

StackOverflow https://stackoverflow.com//questions/22064380

  •  23-12-2019
  •  | 
  •  

Frage

Ich habe den folgenden HTML-Code in einem UITextView und möchte es in eine verwandeln UITextView

ist mein Körper für die Note

<a href="/arc/item/21">food item - more item stuff</a>;`

Lassen Sie mich hinzufügen:es wird derzeit blau und unterstrichen angezeigt und ist nicht anklickbar.Ich möchte es fett und nicht anklickbar machen.Ich habe die Dokumente bezüglich gelesen linkTextAttributes aber da ich das nicht benutzt habe, ist es ein bisschen über mich hinaus und ich sehe keinen einfachen Weg, das zu manipulieren.Wie würde ich den obigen Link einfach fett und schwarz (nicht blau) rendern und die nicht anklickbare Natur beibehalten?

War es hilfreich?

Lösung

UPDATE (lösung mit Linktextattribute von UITextView)

self.testTextView.editable = NO;
self.testTextView.selectable = YES;
self.testTextView.userInteractionEnabled = NO;  // workaround to disable link - CAUTION: it also disables scrolling of UITextView content
self.testTextView.dataDetectorTypes = UIDataDetectorTypeLink;
self.testTextView.linkTextAttributes = @{NSFontAttributeName : [UIFont boldSystemFontOfSize:14.0f], // NOT WORKING !?
                                         NSForegroundColorAttributeName : [UIColor redColor]};

...

self.testTextView.text = @"Lorem ipsum http://www.apple.com Lorem ipsum";

Wie Sie in den Kommentaren sehen können, konnte ich keine neue Schriftart für linkTextAttributes festlegen, obwohl das Farbattribut wie erwartet funktionierte.

Wenn Sie mit dem Farbattribut oder einem anderen Textattribut davonkommen können, um Ihre URLs zu formatieren, und Sie sich keine Gedanken über deaktiviertes Scrollen in der UITextView machen müssen, ist dies möglicherweise Ihre Lösung.


VORHERIGEN (Alternativlösung)

Wenn Sie Storyboard / xib verwenden, stellen Sie sicher, dass Sie die Auswahl aufgehoben haben Erkennung -> Links für Ihre UITextView .Sie können Ihren Link fett formatieren, indem Sie die Containerschrift auf eine fett gedruckte Schrift setzen.Wenn Sie verschiedene Text- / Schriftstile in einem Zeichenfolgenobjekt unterstützen möchten, sollten Sie wirklich danach suchen NSAttributedString oder NSMutableAttributedString.

Sehen: https://developer.apple.com/library/ios/documentation/cocoa/reference/foundation/classes/NSAttributedString_Class/Reference/Reference.html.

Beispiel:

UIFont *linkFont = [UIFont fontWithName:@"SomeBoldTypeface" size:12];
NSString *link = @"food item - more item stuff";

NSMutableAttributedString *someString = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"is my body for the note %@; let me ad", link]];
[someString addAttribute:NSFontAttributeName value:linkFont range:NSMakeRange(24, link.length)];

UITextView *textView = [[UITextView alloc] init];
textView.attributedText = someString;
...
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top