晚上好,我正在尝试创建一个按钮网格,如下面的代码所示。 我想为每个按钮添加一个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;
}
答案 0 :(得分:2)
这没有意义。 您正在创建 UILongPressGestureRecognizer
然后
// [griglia [i] [k] addTarget:self action:(@ selector(click)) forControlEvents: UIControlEventTouchDown ];
这是两件不同的事情。 触地得分是一种姿势,但与长按完全不同。
我建议您尝试添加手势识别器,而不是在按钮上添加触地事件。
或... 强>
请看一下这个答案: