为UILable添加点击事件,首先必须设置UILabel的userInteractionEnabled = YES,添加的点击事件才会有效,否则无效。
首先设置label1和label2两个属性,这里label1的点击原理是判断点击的座标是否在label1的范围内,如果在范围内的话就变蓝色,否则变红色,label1的代码被注释了,为了测试label2。
label2是直接给label2添加单击事件
具体代码如下:
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
// UITapGestureRecognizer *tap1 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap1:)];
// [self.view addGestureRecognizer:tap1];
UITapGestureRecognizer *uiTap2 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap2:)];
self.label2.userInteractionEnabled = YES;
[self.label2 addGestureRecognizer:uiTap2];
}
- (void)tap1:(UITapGestureRecognizer *)param{
NSLog(@"--------");
CGPoint point = [param locationInView:self.view];
if(CGRectContainsPoint(_label1.frame, point)){//如果单击的座标在label范围之内,则变蓝色,否则变红色
_label1.backgroundColor = [UIColor blueColor];
} else {
_label1.backgroundColor = [UIColor redColor];
}
}
- (void)tap2:(UITapGestureRecognizer *)param{
NSLog(@"=========");
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end