您好我创建了一个TTStyledTextLabel,效果很好。
现在我想点击URL,我已经完成了这个:
textLabel.text = [TTStyledText textFromXHTML:[content objectForKey:@"content"] lineBreaks:YES URLs:YES];
但我的链接仍然无法点击。我必须先设置UIWebView吗?在哪里申报?
另一件事是,是否可以调整TTStyledTextLabel中的图像以使其适合标签大小?
提前致谢
//编辑
我做了什么:
textLabel = [[TTStyledTextLabel alloc] initWithFrame:CGRectMake(0.0f, 70.0f, 320.0f, 297.0f)];
textLabel.contentInset = UIEdgeInsetsMake(20, 15, 20, 15);
textLabel.font = [UIFont systemFontOfSize:14];
textLabel.text = [TTStyledText textFromXHTML:[content objectForKey:@"content"] lineBreaks:YES URLs:YES];
[textLabel sizeToFit];
//CGFloat height = textLabel.height;
[scrollView addSubview:textLabel];
scrollView.contentSize = textLabel.frame.size;
我的[content objectForKey:@"content"]
的NSLog返回如下内容:
<a href="http://www.abc.com/">Download-Link</a>
我的链接在我的标签中突出显示,但它们无法点击。
我在UIViewController中的- (void)viewDidLoad
初始化了我的textlabel
答案 0 :(得分:4)
the [content objectForKey:@"content"] should return data containing <a href="url">string to display</a>
如果你要将网址添加到TTURLMap,它也会打开相关的控制器
以下代码段应该可以使用
self = [super init];
TTStyledTextLabel* label = [[[TTStyledTextLabel alloc] initWithFrame:CGRectMake(0, 0, 320, 230)] autorelease];
label.text = [TTStyledText textFromXHTML:@"<a href=\"aa://link1\">link</a> text" lineBreaks:YES URLs:YES];
[label setFont:[UIFont systemFontOfSize:16]];
[[self view] addSubview:label];
//修改
因此,如果您使用的是TTNavigator,则可能需要在URLMap中映射“*”,如:
TTNavigator* navigator = [TTNavigator navigator];
navigator.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[navigator.window makeKeyAndVisible];
TTURLMap* map = navigator.URLMap;
[map from:@"*" toViewController:[TTWebController class]];
这会将所有网址映射到TTWebController,这将打开一个webview进行浏览
答案 1 :(得分:0)
我遇到同样的问题。尝试使用
[navigator setRootViewController:"your main controller";]
这对我有用。