如何将标签中的文本设为网址,通过单击标签中的文本移动到网页/拨打电话

时间:2013-07-08 05:53:13

标签: iphone objective-c uitableview uilabel nsurlconnection

在我的应用程序中,我在tableview中使用自定义单元格显示了一些内容。

自定义单元格包含imageView,按钮,4个标签

的每个标签
1. Name of the candidate
2. Web page address,
3. Email address
4. Phone number.

在此我需要突出显示网址标签,电话号码标签和电子邮件地址标签,如网址,并在用户触摸时执行相应的操作。

喜欢

1. open web page when touch on web address label,
2. open email composer sheet when touch on email address label,
3. make a call when touch on phone number label

2 个答案:

答案 0 :(得分:4)

几乎所有相同的想法,iOS中的所有应用都可以使用格式appShortName://whatyouwantToHandle打开,对于仅http://myurl

的网站

要拨打电话,请tel

NSURL *phoneURL = [NSURL URLWithString:@"tel:+123456789"];
[[UIApplication sharedApplication] openURL:phoneURL];

要开始编写电子邮件,它是mailto:,并且它支持GET参数来填写电子邮件。

const NSString* mailFormat  = @"mailto:%@?subject=%@&body=%@";
const NSString* mailEmails  = @"person1@gmail.com,person2@gmail.com";
const NSString* mailBody    = @"This is the mail body\n Hi!");
const NSString* mailSubject = @"This is the mail Subject!";

NSString *urlString = [NSString stringWithFormat:(NSString*)mailFormat,[mailEmails stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding],[mailSubject stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding],[mailBody stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSURL *mailURL = [NSURL URLWithString:urlString];

[[UIApplication sharedApplication] openURL:mailURL];

要打开网页,正如您所期望的那样,它只是http:

NSURL *websiteURL = [NSURL URLWithString:@"http://mywebsite.com"];
[[UIApplication sharedApplication] openURL:websiteURL];

如果您想了解更多信息,请查看-openURL:上的文档。

答案 1 :(得分:1)

启用所有UILabel的用户交互。在每个标签上应用敲击手势,并在每个标签上点击实现功能调用。为上面建议的每个标签实现功能。