2017-12-15 4 views
0

Ich habe eine Anforderung für iOS-Anwendung, wo entweder mit TextView oder UILabel, zeigen Sie Text, der Text und zwei Links enthält. Klickt jemand auf einen Textlink, muss dieser zugehörige Link entsprechend geöffnet werden.Textansicht oder UI Label mit mehreren Links

Für zB: Wenn Sie das Bild unten sehen, gibt es zwei Links. Ich konnte erreichen, dass Textattribute und Text in Attribute Inspector geändert wurden.

Jetzt ist meine Frage, wie man Verbindungen öffnet, wenn Benutzer auf Virginia Beach oder Niagara klopft. Wie erkennt man, auf welchen Textabschnitt der Benutzer geklickt hat?

enter image description here

Verbindungen geöffnet werden:

https://www.vbgov.com/Pages/default.aspx

https://www.niagarafallsusa.com/

ich Ihre Hilfe zu schätzen wissen.

+0

Werfen Sie einen Blick in [diesem Code] verwenden (https://github.com/TTTAttributedLabel/TTTAttributedLabel) oder vielleicht sogar verwenden. –

Antwort

1

Sie können NSMutableAttributedString verwenden, um diese Funktionalität zu implementieren.

Ich habe geschrieben eine Methode, die Sie, rufen Sie diese Methode von Ihrem viewDidLoad

- (void)configureLinks 
{ 
    NSString *fullString = @"Please accept the terms and conditions of virginia beach and Niagara."; 
    NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:fullString]; 

    // Adding attributes 
    [attributedString addAttribute:NSLinkAttributeName value:@"https://www.vbgov.com/Pages/default.aspx" range:[fullString rangeOfString:@"virginia beach"]]; 
    [attributedString addAttribute:NSLinkAttributeName value:@"https://www.niagarafallsusa.com/" range:[fullString rangeOfString:@"Niagara"]]; 

    // For underline 
    [attributedString addAttribute:NSUnderlineStyleAttributeName value:@(NSUnderlineStyleSingle) range:[fullString rangeOfString:@"virginia beach"]]; 
    [attributedString addAttribute:NSUnderlineStyleAttributeName value:@(NSUnderlineStyleSingle) range:[fullString rangeOfString:@"Niagara"]]; 

    // Setting attributed string to textview 
    yourTextViewOrLabel.attributedText = attributedString; 
} 
+0

Es funktioniert, aber meine Anforderung ist es auch zu unterstreichen. – Karen

+0

@Karen: Ich habe die Antwort aktualisiert. –

0

dieses .. versuchen verwenden kann ich unterstrichenen Code in @MidhunMP Antwort hinzugefügt haben.

NSString *stringValue = @"Please accept the terms and conditions of virginia beach and Niagara."; 
NSMutableAttributedString *output = [[NSMutableAttributedString alloc] initWithString:stringValue]; 
[output addAttribute:NSLinkAttributeName value:@"https://www.vbgov.com/Pages/default.aspx" range:[stringValue rangeOfString:@"virginia beach"]]; 
[output addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInt:NSUnderlineStyleSingle] range:[stringValue rangeOfString:@"virginia beach"]]; 
[output addAttribute:NSLinkAttributeName value:@"https://www.niagarafallsusa.com/" range:[stringValue rangeOfString:@"Niagara"]]; 
[output addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInt:NSUnderlineStyleSingle] range:[stringValue rangeOfString:@"Niagara"]]; 
yourTextView.attributedText = output; 
0

Sie einfach KI Label einfach und leicht

Verwandte Themen