iOS如何得到手势识别的tag标识(触发了手势识别之后如何找到对应的view)

Home / iOS MrLee 2015-7-30 7671

在iOS中,控件一般都有tag属性,但是对于手势识别来说,是无法设置tag值的,此时我们需要迂回解决此问题:
先设定一个场景, 有2个或以上的view,我们需要监听用户单击此view,并且做出一些反馈给用户,那么我们第一反应应该是在这个view上添加一个单击的手势识别,并且add一个方法,在方法里书写需要执行的操作,但是有一个问题是,我为了简单的创建多个view我有使用一个for循环来创建,那么你不能通过self.view1 self.view2来做,此时tag个人觉得是最好的方式,请看如下代码:
CGFloat padding = 20;
CGFloat height = 50;
for (int i = 0; i < 10; i ++) {
UIView * workPlanBackV = [[UIView alloc]init];
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(oneclickWorkPlanBackV:)];
tap.numberOfTapsRequired = 1;
tap.numberOfTouchesRequired = 1;
[workPlanBackV addGestureRecognizer:tap];
workPlanBackV.tag = i;
[self.view addSubview:workPlanBackV];
workPlanBackV.backgroundColor = [UIColor whiteColor];
workPlanBackV.frame = CGRectMake(0, (height * i) + padding * (i + 1), SCREEN_WIDTH, height);
}

这里我们创建了10个同大小同间距的view(当然你也可以用tableview来做,我这里是做一个测试),并且每个上面都添加了点击事件
- (void)oneclickWorkPlanBackV:(id)sender
{
UITapGestureRecognizer * singleTap = (UITapGestureRecognizer *)sender;
NSLog(@"%ld",(long)[singleTap view].tag);
}

这个时候你就可以得到你想要的view的tag了.然后再通过viewWithTag方法就可以找到此控件了.

本文链接:https://www.it72.com/3889.htm

推荐阅读
最新回复 (0)
返回