Добавьте TapRecognizer и другой цвет к слову внутри строки в Xcode - PullRequest
0 голосов
/ 12 декабря 2010

Я вытягиваю текст из списка и рисую его в UIView. Текст содержит термины, которые я хочу выделить, и взаимодействие с пользователем включено, чтобы я мог получить представление словаря с объяснением команды.

Я знаю, как найти их местоположение в строке, и это прекрасно работает. Но я не нашел, как заставить их выглядеть в другом цвете. И еще важнее для меня - как добавить к ним распознаватель крана.

Буду признателен за любую помощь.

Спасибо Шани

Ответы [ 2 ]

0 голосов
/ 24 декабря 2010

O.k Я нашел решение, которое прекрасно работает для меня.

Я использую UIWebView в качестве представления текста, а затем добавляю текст в формате HTML. таким образом я могу использовать CSS для лучшего форматирования текста и даже пометить часть текста как ссылку, в примере я хочу, чтобы слово «согласный» появилось как ссылка (Другим большим преимуществом является то, что я могу добавить поддержку RTL томится).

UIWebView *webView =[[UIWebView alloc] initWithFrame:imgViewRect];
            webView.backgroundColor = [UIColor clearColor];
            webView.opaque=NO;
            webView.delegate=self;
            NSString *localizedPath = [NSString stringWithFormat:@"rt%@",pcard.card_number];
            NSString *localizedString = NSLocalizedString(localizedPath,@"");
            NSString *cssPath = [[NSBundle mainBundle] pathForResource:@"style" ofType:@"css"];

            //do base url for css
            NSString *path = [[NSBundle mainBundle] bundlePath];
            NSURL *baseURL = [NSURL fileURLWithPath:path];

            NSString *html =[NSString stringWithFormat:@"<a href=\"consonant\"><dfn>consonant</dfn></a>",
                             currentLanguage,dir,cssPath,langClass,localizedString];
            NSLog(@"%@",html);
            [webView loadHTMLString:html baseURL:baseURL];  

            [self addSubview:webView];

затем я использую эту функцию, чтобы распознать, какое слово щелкает, и пообедать в UIView со словарем текста:

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request
 navigationType:(UIWebViewNavigationType)navigationType {

    if (navigationType == UIWebViewNavigationTypeLinkClicked) {  
        NSURL *URL = [request URL];  
        NSLog(@"%@",[URL lastPathComponent]); //thats gives me the name of the clicked word. 


        //here you can set any function that you like.
            //using the data from the url path.

    }
    return YES;
}

надеюсь, это кому-нибудь поможет. Шани

0 голосов
/ 14 декабря 2010

Добавьте прозрачную кнопку с тем же шрифтом и текстом перед тем, где слово появляется в UIView. У меня есть класс, который будет делать это с UILabel, если вам это нравится? Создает тот же эффект, что и в приложении Facebook.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...