2013-01-15 5 views
7

Gibt es eine Möglichkeit, anklickbare Teile von UITextView zu machen. Eigentlich mag ich Text so etwas wieiOS anklickbarer Text in UITextView

Mit einem Klick auf „Registrieren“ oben machen, akzeptieren Sie die Nutzungsbedingungen der Dienste stimmen und Datenschutzerklärung

wo Bedingungen Dienstleistungen sollten eine andere Verbindung und Datenschutzerklärung sein . Und wenn ich auf diese klicke, sollte ich etwas tun.

+1

wenn es möglich ist, in Ihrer Anwendung, können Sie 'UIWebView' Objekt mit einem formatierten' HTML' Inhalt verwenden, und alles kann angeklickt werden, und Sie wäre in der Lage, alle von ihnen in Ihrer Anwendung zu behandeln. – holex

+0

Ja, ich kenne diese Lösung, aber es ist eine Art Hack :) und ich wollte etwas elegantere Lösung. Vielen Dank! – zvjerka24

+0

es ist sehr kostenlos und leistungsstarke Lösung, wenn die Zeit spielt keine Rolle ... :) – holex

Antwort

5

Ich habe es mit dem obigen Code mit this project

- (void)_configureTermsLabel 
{ 
    self.termsOfUseLabel.hidden = YES; 
    self.termsAndConditionsLabel = [[TTTAttributedLabel alloc] initWithFrame:self.termsOfUseLabel.frame]; 
    self.termsAndConditionsLabel.font = [UIFont systemFontOfSize:14]; 
    self.termsAndConditionsLabel.lineBreakMode = UILineBreakModeWordWrap; 
    self.termsAndConditionsLabel.numberOfLines = 0; 

    NSString *termsStr = NSLocalizedString(@"Terms of use", @"Terms of use"); 
    NSString *privacyStr = NSLocalizedString(@"Privacy Policy", @"Privacy Policy"); 
    NSString *andStr = NSLocalizedString(@"and", @"and"); 
    NSString *conductStr = NSLocalizedString(@"Code of conduct", @"Code of conduct"); 
    NSString *termsAndConditionsStr = [NSString stringWithFormat:@"%@ - %@ %@ %@", termsStr, 
             privacyStr, andStr, conductStr]; 
    self.termsAndConditionsLabel.text = termsAndConditionsStr; 

    NSString *languageCode = [[GLQAppDelegate sharedDelegate] languageIdentifier]; 
    NSURL *termsURL = [NSURL URLWithString:[NSString stringWithFormat:kGLQTermsOfUseURL, languageCode]]; 
    NSURL *privacyURL = [NSURL URLWithString:[NSString stringWithFormat:kGLQPrivacyPolicyURL, languageCode]]; 
    NSURL *conductURL = [NSURL URLWithString:[NSString stringWithFormat:kGLQCodeOfConductURL, languageCode]]; 

    NSRange termsRange = [self.termsAndConditionsLabel.text rangeOfString:termsStr]; 
    NSRange privacyRange = [self.termsAndConditionsLabel.text rangeOfString:privacyStr]; 
    NSRange conductRange = [self.termsAndConditionsLabel.text rangeOfString:conductStr]; 

    [self.termsAndConditionsLabel addLinkToURL:termsURL withRange:termsRange]; 
    [self.termsAndConditionsLabel addLinkToURL:privacyURL withRange:privacyRange]; 
    [self.termsAndConditionsLabel addLinkToURL:conductURL withRange:conductRange]; 
    self.termsAndConditionsLabel.delegate = self; 

    self.termsAndConditionsLabel.userInteractionEnabled = YES; 
    [self.scrollView addSubview:self.termsAndConditionsLabel]; 
} 
+0

Funktioniert gut, danke! – zvjerka24

+0

froh, dass es Ihnen hilft, danke für die richtige Antwort markiert – tkanzakic

+0

Sie haben also UITextView nicht verwendet. Ist das mit UITextView nicht möglich? – NSGodMode