如何向3种不同的UIL用户添加滑动手势?

时间:2014-06-25 23:11:36

标签: ios objective-c uigesturerecognizer swipe gestures

我是XCODE的新手 - Objective-C,在我的第一个应用中,我需要添加3个不同的标签2个滑动手势(向上和向下滑动)。

为了更清楚(现在我无法添加图像)我有3个这样的标签:

                           [label1].[label2][label3]

所有标签的最小值为' 0' label1的最大值为' 2&#39 ;,对于label2,label3为' 9'每一个。

当我向下滑动标签时,我需要降低值,当我向上滑动时,我需要降低值。

我该怎么做?在我做之前我做的一个例子,但只适用于单个UILabel。

提前多多感谢。 问候。

1 个答案:

答案 0 :(得分:0)

您需要初始化3次滑动,每次滑动都会标记滑动。我建议使用标签来区分标签。

以下是以编程方式创建标签的代码:

UILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMake(50, 50, 100, 100)];
label1.text = @"Label 1";
label1.tag = 10;
label1.userInteractionEnabled = YES;
UISwipeGestureRecognizer *swipe1 = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(didSwipeLabel:)];
[label1 addGestureRecognizer:swipe1];

UILabel *label2 = [[UILabel alloc] initWithFrame:CGRectMake(50, 150, 100, 100)];
label2.text = @"Label 2";
label2.tag = 20;
label2.userInteractionEnabled = YES;
UISwipeGestureRecognizer *swipe2 = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(didSwipeLabel:)];
[label2 addGestureRecognizer:swipe2];

UILabel *label3 = [[UILabel alloc] initWithFrame:CGRectMake(50, 250, 100, 100)];
label3.text = @"Label 3";
label3.tag = 30;
label3.userInteractionEnabled = YES;
UISwipeGestureRecognizer *swipe3 = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(didSwipeLabel:)];
[label3 addGestureRecognizer:swipe3];

[self.view addSubview:label1];
[self.view addSubview:label2];
[self.view addSubview:label3];

滑动方法:

- (void)didSwipeLabel:(id)sender
{
    // Parse the swipe gesture
    UISwipeGestureRecognizer *swipe = sender;
    // Get the view that called swipe
    UILabel *swipedLabel = (UILabel *)swipe.view;
    // Switch tag
    switch (swipedLabel.tag) {
        case 10:
            NSLog(@"Swiped label 1");
            break;
        case 20:
            NSLog(@"Swiped label 2");
            break;
        case 30:
            NSLog(@"Swiped label 3");
            break;
        default:
            break;
    }
}

如果您更喜欢使用Interface Builder,则可以在“Attributes Inspector”选项卡中完成设置视图的标记:

enter image description here

不要忘记将userInteractionEnabled设置为YES。我离开了逻辑和方向验证。