TTStyledText 中的 URL 和图像

发布于 2024-08-21 14:15:35 字数 1088 浏览 8 评论 0原文

您好,我创建了一个 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 中初始化了我的文本标签

Hi i created a TTStyledTextLabel, works well.

Now i want to make URL clickable, i've done this:

textLabel.text = [TTStyledText textFromXHTML:[content objectForKey:@"content"] lineBreaks:YES URLs:YES];

but my links are still unclickable. Do i have to setup a UIWebView first? Where to declare it?

Another thing is, is it possible to resize Images inside my TTStyledTextLabel to fit them to the Label Size?

Thanks in advance

// edit

what i have exactly done:

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;

an NSLog of my [content objectForKey:@"content"] returns something like this:

<a href="http://www.abc.com/">Download-Link</a>

My Links are highlighted in my label, but they are unclickable.

i initialized my textlabel in - (void)viewDidLoad in a UIViewController

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

家住魔仙堡 2024-08-28 14:15:35
the [content objectForKey:@"content"] should return data containing <a href="url">string to display</a>

如果您将 url 添加到 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];

//edit

因此,如果您使用 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 的所有 url 将打开一个 web 视图进行浏览

the [content objectForKey:@"content"] should return data containing <a href="url">string to display</a>

if you'll add the url to TTURLMap it will also open the relevant controller

the following code snippet should work

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];

//edit

So you probably need to map "*" in the URLMap if you are using the TTNavigator, something like:

TTNavigator* navigator = [TTNavigator navigator];

navigator.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[navigator.window makeKeyAndVisible];

TTURLMap* map = navigator.URLMap;
[map from:@"*" toViewController:[TTWebController class]];

this will map all of the urls to the TTWebController which will open a webview to browse in

趴在窗边数星星i 2024-08-28 14:15:35

我有同样的问题。尝试使用

[navigator  setRootViewController:"your main controller";] 

它对我有用。

I've same problem.Try to use

[navigator  setRootViewController:"your main controller";] 

It's work for me.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文