Ios Xcode/Swift中的多个UIgestureRecognitor

Ios Xcode/Swift中的多个UIgestureRecognitor,ios,iphone,xcode,swift,uigesturerecognizer,Ios,Iphone,Xcode,Swift,Uigesturerecognizer,现在,我有两个不同的UILabel,每个都有自己的长按和平移UIGestureRecognitors(通过故事板设置)。我的最终目标是让每个UILabel在长时间按下时改变颜色,并且在不抬起手指结束长时间按下时,在用户上下或左右平移时改变UILabel本身的值 现在,每个UILabel都有自己的平移手势方法和长按手势方法。有没有办法对两个UILabel都使用一个长按/平移方法,但也可以对一个标签执行某些操作,对另一个标签执行某些操作 还有,有没有更好的方法?最后,我还希望在更改标签的值时实现视觉

现在,我有两个不同的UILabel,每个都有自己的长按和平移UIGestureRecognitors(通过故事板设置)。我的最终目标是让每个UILabel在长时间按下时改变颜色,并且在不抬起手指结束长时间按下时,在用户上下或左右平移时改变UILabel本身的值

现在,每个UILabel都有自己的平移手势方法和长按手势方法。有没有办法对两个UILabel都使用一个长按/平移方法,但也可以对一个标签执行某些操作,对另一个标签执行某些操作

还有,有没有更好的方法?最后,我还希望在更改标签的值时实现视觉反馈,例如以动画的形式


我对iOS编程和一般编程不熟悉,非常感谢您提供详细的答案。谢谢。

您可以使用单个功能。不需要为单独的标签使用单独的手势。例如

//First add tag value to ur labels
label_one.tag=1;
label_two.tag=2;


UIPanGestureRecognizer * _panGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self
                                                                action:@selector(handlePanGesture:)];
_panGestureRecognizer.delegate = self;
[label_one addGestureRecognizer:_panGestureRecognizer];


 UIPanGestureRecognizer * _panGestureRecognizer_two = [[UIPanGestureRecognizer alloc] initWithTarget:self
                                                                action:@selector(handlePanGesture:)];
_panGestureRecognizer_two.delegate = self;
[label_two addGestureRecognizer:_panGestureRecognizer_two];


-(void)handlePanGesture:(UIPanGestureRecognizer*)sender{
     if(sender.tag==1){

     }
     else if(sender.tag==2){
     }
 }

其他手势也一样

通过编码,您尝试了什么?现在我为每个手势识别器提供了不同的方法和大量重复的代码。例如,我刚刚更改了long press方法中的UILabel变量,以便它们作用于长按的标签。我尝试使用sender.view.tag从发件人提取信息,但两个按钮都提供了相同的标记0,我不确定如何将它们设置为具有唯一标记。这仅适用于第二个标签,而不适用于第一个标签。我加入了一些println(),第一个标签甚至不调用handlePangestre方法,而第二个标签调用。