UILabel ,RTLabel,响应touch事件的方法
在项目中要用到带下划线的Label,本来想自己写一个相关的东西的,有点麻烦,就找一个第三方的拿来使用
RTLabel,提供很多Label上本身没有的东西,可以有一定的用武之地,感谢原作者。上图:
这是RTLabel支持的一些特性,下划线的Label,可变颜色和文字大小的Label, 带链接的Label等等这些特性。
进入正题,让Label响应Touch事件,如UIControlEventTouchDown。
仔细看了RTLabel的源码,RTLabel中包含了一个代理,
@protocol RTLabelDelegate <NSObject>
- (void)rtLabel:(id)rtLabel didSelectLinkWithURL:(NSURL*)url;
@end
首先遵循这个协议,在使用RTLabel的时候,设置好代理,然后实现该方法,即可让你的Label响应touch方法
代码如下:
使用RTLabel,指定代理 RTLabel *websiteRT = [[RTLabel alloc] initWithFrame:CGRectMake(70, 260, 180, 40)]; websiteRT.text = @"网站 <a href='http://www.appvv.com'>www.appvv.com</a>"; websiteRT.delegate = self; [self.view addSubview:websiteRT]; 实现代理 - (void)rtLabel:(id)rtLabel didSelectLinkWithURL:(NSURL*)url { NSLog(@"rtLabel is clicked,url is %@",url); [[UIApplication sharedApplication] openURL:url]; }
还有很多类似的方法可以实现,也没仔细看,但是这个方法很快捷。