Проблема TTStyledTextLabel с URL-адресами

#iphone #objective-c #three20

#iPhone #objective-c #three20

Вопрос:

Я добавил TTStyledTextLabel в свою пользовательскую ячейку для моего UITableView, код:

   TTStyledTextLabel * tt_title = [[[TTStyledTextLabel alloc] initWithFrame:CGRectMake(50, cell.frame.origin.y, 640, 200)] autorelease];
    tt_title.text = [TTStyledText textWithURLs:[[self.posts objectAtIndex:indexPath.row] message]];
    tt_title.font = [UIFont systemFontOfSize:15];
    tt_title.contentInset = UIEdgeInsetsMake(10, 10, 10, 10);
    [tt_title sizeToFit];
    [cell addSubview:tt_title
  

];

Переданная NSString содержит URL-адрес, однако, когда я нажимаю на URL-адрес, он ничего не делает.. даже не открываю его в safari.. почему это?

Ответ №1:

Не уверен точно, не видя, что находится в фактической строке, которую вы передаете в TTStyledText, но в качестве альтернативы вы могли бы попробовать использовать

 [TTStyledText textFromXHTML:[[self.posts objectAtIndex:indexPath.row] message] lineBreaks:NO URLs:YES];
  

и добавьте <a href=''></a> в свою строку

Комментарии:

1. строка просто @»Это тест на www.youtube.com »

2. это внутри TTTableViewCell

3. Попробовал ваш код и получил те же результаты, но смог превратить его в ссылку, добавив ‘http: //’ в начало. Итак, я предполагаю, что конструктор textWithURLs не такой умный. Итак, у вас есть несколько вариантов: 1) используйте textFromXHTML и превратите вашу строку в разметку с привязками href, 2) добавьте http: // в начало ваших ссылок или 3) измените источник TTStyledText, чтобы принимать только ‘www.’. надеюсь, это поможет!