Как вам использовать TTStyledTextLabel?
Все, что я хочу, это отобразить простой текст в моем viewController и автоматически разбирать гиперссылки. Когда пользователь нажимает на ссылку, я хочу, чтобы элемент управления как-то сделал обратный вызов, где я могу что-то сделать с URL. Как мне этого добиться?
Я уже часами просматривал TTCatalog. Я также попытался изучить исходный код Three20 и трассировку стека. Нет помощи. Я просто не могу понять, как мое приложение может реагировать на нажатие URL. Любые намеки, пожалуйста?
2 ответа
Трудно помочь, не видя того, что вы уже пробовали, но вы должны быть в состоянии сделать что-то вроде следующего:
TTStyledTextLabel* label = [[[TTStyledTextLabel alloc]
initWithFrame:someFrame] autorelease];
NSString* labelText = @"This should <a href=\"custom-uri://some/url\">work</a>";
label.text = [TTStyledText textFromXHTML:labelText lineBreaks:NO URLs:YES];
[someView addSubview:label];
Вы можете использовать TTNavigator
а также TTURLMap
на карту custom-uri://some/url
к конкретному контроллеру в вашем приложении, или обработайте его самостоятельно в своем делегате приложения. Лучшее место, чтобы узнать, как это сделать, это посмотреть на TTNavigatorDemo
Пример приложения, включенного в источник Three20. В частности, посмотрите на AppDelegate.m, где выполняется все сопоставление URL.
В дополнение к тому, что Натан говорит о сопоставлении URL-адресов и ссылок, вы также можете использовать стили CSS!
TTStyledTextLabel* label = [[[TTStyledTextLabel alloc] initWithFrame:someFrame] autorelease];
NSString* labelText = @"This should <a href=\"custom-uri://some/url\">work</a> and
<span class=\"redText\">this should be red</span>";
label.text = [TTStyledText textFromXHTML:labelText lineBreaks:NO URLs:YES];
[someView addSubview:label];
Затем в вашем StyleSheet.m реализовать
- (TTStyle*) redText {
return [TTTextStyle styleWithFont:[UIFont systemFontOfSize:12] color:RGBCOLOR(255,0,0) next:nil];
}