2013-01-15 15 views
7

Czy istnieje sposób na tworzenie klikalnych części UITextView. Właściwie chcę zrobić coś tekstowej jakTekst do kliknięcia iOS wewnątrz UITextView

Klikając „Zarejestruj” powyżej, zgadzasz się na Warunki Usługi i Prywatności

gdzie zakresie usług powinien być jeden link i Polityka prywatności inny . I klikając na te, powinienem coś zrobić.

+1

jeśli jest to możliwe w was aplikacji, można użyć 'obiekt UIWebView' z sformatowanej' zawartości HTML', a wszystko może być klikalny, a ty byłby w stanie obsłużyć wszystkie z nich w twojej aplikacji. – holex

+0

Tak, znam to rozwiązanie, ale to jakiś hack :) i chciałem trochę bardziej eleganckiego rozwiązania. Dziękujemy! – zvjerka24

+0

to bardzo kosztowne i wydajne rozwiązanie, jeśli czas ma znaczenie ... :) – holex

Odpowiedz

5

Zrobiłem go z kodem powyżej używając 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

Działa dobrze dzięki! – zvjerka24

+0

cieszę się, że to pomaga, dzięki za zaznaczoną jako poprawną odpowiedź – tkanzakic

+0

Więc nie korzystałeś z UITextView. Czy nie można tego zrobić za pomocą UITextView? – NSGodMode

Powiązane problemy