点击并长按创建按钮网格Objective-C时的手势

时间:2017-03-01 17:53:26

标签: ios objective-c

晚上好,我正在尝试创建一个按钮网格,如下面的代码所示。 我想为每个按钮添加一个TapGesture和一个LongPress手势;我该怎么做? 我知道这是一种方法......

 UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longPress:)];
longPress.minimumPressDuration = 3;
//[self.griglia[1][1] addGestureRecognizer:longPress];

如果我这样做,它会说“物业”格里利亚“没有找到类型为Gioco的物体 Gioco.m / Gioco.h是我的班级

和UIButton * griglia [9] [9];是我的按钮网格

您能否更正以下代码?

     for(int i=0, y=212, p=0; i<9; i++)
{

    for(int k=0, x=37; k<9; k++)
    {
        griglia[i][k] = [UIButton buttonWithType:(UIButtonTypeCustom)];

        //[griglia[i][k] addTarget:self action:(@selector(click)) forControlEvents: UIControlEventTouchDown];

        [griglia[i][k] setTag: 0];
        if(i==posizioni[0][p] && k==posizioni[1][p])
        {
            numero=[NSString stringWithFormat:@"%d", matrice[i] [k]];
            [griglia[i][k] setTitle: numero forState: UIControlStateNormal];
            [griglia[i][k] setEnabled:NO];  //Numeri non modificabili
            [griglia[i][k] setTag: matrice[i][k]];
        }
        [griglia[i][k] setTitleColor:[UIColor blackColor] forState: UIControlStateNormal];
        griglia[i][k].frame=CGRectMake(x, y, 27, 27);
        [self.view addSubview:griglia[i][k]];
        if(k==2 || k==5)
            x=37+3+k*34;

        else
        x=37+k*34;
    }
    if(y==2 || y==5)
        y=212+4+i*34;

    else
    y=212+i*34;
}

1 个答案:

答案 0 :(得分:2)

这没有意义。 您正在创建 UILongPressGestureRecognizer

然后

  

// [griglia [i] [k] addTarget:self action:(@ selector(click))   forControlEvents: UIControlEventTouchDown ];

这是两件不同的事情。 触地得分是一种姿势,但与长按完全不同。

我建议您尝试添加手势识别器,而不是在按钮上添加触地事件。

或...

请看一下这个答案:

Adding Tap Gesture on UIImage