Iphone Objective-C UILabel作为超链接

Iphone Objective-C UILabel作为超链接,iphone,objective-c,ios,Iphone,Objective C,Ios,我正在尝试使UILabel成为UIWebView的链接。如何使UILabel作为超链接使用?一种可能的解决方案是使用UIButtonTypeCustom类型的UIButton,而不是UILabel。它看起来像一个标签,可以点击 您也可以考虑第三方实现,如TTLaband和.P/>< P>您只需检查此链接,这将对您有帮助。请尝试一次并告知它是否对您有帮助。 您可以使用UITapGestureRecognitzer,它可以实现与您所需类似的功能- UILabel *myLabel = [[UILab

我正在尝试使UILabel成为UIWebView的链接。如何使UILabel作为超链接使用?

一种可能的解决方案是使用UIButtonTypeCustom类型的UIButton,而不是UILabel。它看起来像一个标签,可以点击


您也可以考虑第三方实现,如TTLaband和.P/>< P>您只需检查此链接,这将对您有帮助。请尝试一次并告知它是否对您有帮助。


您可以使用UITapGestureRecognitzer,它可以实现与您所需类似的功能-

UILabel *myLabel = [[UILabel alloc] initWithFrame:];//Define label here as per needs
myLabel.userInteractionEnabled = YES;
UITapGestureRecognizer *gr = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(myAction:)];
[myLabel addGestureRecognizer:gr];
gr.numberOfTapsRequired = 1;
gr.cancelsTouchesInView = NO;
[self.view addSubview:myLabel];
现在采取行动-

- (void) myAction: (UITapGestureRecognizer *) gr {
    // Define actions here
}

我找到了一些超链接UILabe的代码…希望对您有所帮助: 资料来源:


再次感谢你。现在我想我可以用多种方式制作UILabel/Hyperlink。。作为初学者,我发现rishi的答案更容易使用。是的,我知道运用触摸和手势是最简单的方法。如你所愿,我只是提供帮助,而不是为了你的名誉。
#import "ViewController.h"
#import "TTTAttributedLabel.h"
@interface ViewController ()

@end

@implementation ViewController
{
UITextField *loc;
TTTAttributedLabel *data;
}

- (void)viewDidLoad
{
[super viewDidLoad];
UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectMake(5, 20, 80, 25) ];
[lbl setText:@"Text:"];
[lbl setFont:[UIFont fontWithName:@"Verdana" size:16]];
[lbl setTextColor:[UIColor grayColor]];
loc=[[UITextField alloc] initWithFrame:CGRectMake(4, 20, 300, 30)];
//loc.backgroundColor = [UIColor grayColor];
loc.borderStyle=UITextBorderStyleRoundedRect;
loc.clearButtonMode=UITextFieldViewModeWhileEditing;
//[loc setText:@"Enter Location"];
loc.clearsOnInsertion = YES;
loc.leftView=lbl;
loc.leftViewMode=UITextFieldViewModeAlways;
[loc setDelegate:self];
[self.view addSubview:loc];
[loc setRightViewMode:UITextFieldViewModeAlways];
CGRect frameimg = CGRectMake(110, 70, 70,30);
UIButton *srchButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
srchButton.frame=frameimg;
[srchButton setTitle:@"Go" forState:UIControlStateNormal];
[srchButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
srchButton.backgroundColor=[UIColor clearColor];
[srchButton addTarget:self action:@selector(go:) forControlEvents:UIControlEventTouchDown];
[self.view addSubview:srchButton];
data = [[TTTAttributedLabel alloc] initWithFrame:CGRectMake(5, 120,self.view.frame.size.width,200) ];
[data setFont:[UIFont fontWithName:@"Verdana" size:16]];
[data setTextColor:[UIColor blackColor]];
data.numberOfLines=0;
 data.delegate = self;
data.enabledTextCheckingTypes=NSTextCheckingTypeLink|NSTextCheckingTypePhoneNumber;
[self.view addSubview:data];
}
- (void)attributedLabel:(TTTAttributedLabel *)label didSelectLinkWithURL:(NSURL *)url
{
NSString *val=[[NSString alloc]initWithFormat:@"%@",url];
if ([[url scheme] hasPrefix:@"mailto"]) {
          NSLog(@" mail URL Selected : %@",url);
    MFMailComposeViewController *comp=[[MFMailComposeViewController alloc]init];
    [comp setMailComposeDelegate:self];
    if([MFMailComposeViewController canSendMail])
    {
        NSString *recp=[[val substringToIndex:[val length]] substringFromIndex:7];
        NSLog(@"Recept : %@",recp);
        [comp setToRecipients:[NSArray arrayWithObjects:recp, nil]];
        [comp setSubject:@"From my app"];
        [comp setMessageBody:@"Hello bro" isHTML:NO];
        [comp setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
        [self presentViewController:comp animated:YES completion:nil];
    }

}
else{
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:val]];
}
}
-(void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error{
if(error)
{
    UIAlertView *alrt=[[UIAlertView alloc]initWithTitle:@"Erorr" message:@"Some error occureed" delegate:nil cancelButtonTitle:@"" otherButtonTitles:nil, nil];
    [alrt show];
    [self dismissViewControllerAnimated:YES completion:nil];
}
else{
    [self dismissViewControllerAnimated:YES completion:nil];
}
}

- (void)attributedLabel:(TTTAttributedLabel *)label didSelectLinkWithPhoneNumber:(NSString *)phoneNumber
{
NSLog(@"Phone Number Selected : %@",phoneNumber);
UIDevice *device = [UIDevice currentDevice];
if ([[device model] isEqualToString:@"iPhone"] ) {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"tel:%@",phoneNumber]]];
} else {
    UIAlertView *Notpermitted=[[UIAlertView alloc] initWithTitle:@"Alert" message:@"Your device doesn't support this feature." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [Notpermitted show];
}
}
-(void)go:(id)sender
{
[data setText:loc.text];
}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"Reached");
[loc resignFirstResponder];
}