无论我点击多少次,UITouch点击计数等于1

时间:2011-09-10 05:29:52

标签: objective-c count uitouch tap

让我先编写代码,然后解释问题

-(void)touchesBegan:(NSSet*)touches withEvent(UIEvent*)event{

    1: NSUInteger numTaps=[[touches anyObject] tapCount];
    2: NSString *labelText=[NSString stringWithFormat:@"Number of counts %d",
                                                                    numTaps];
    3: self.tapLabel.Text=labelText;
    4: if (numTaps==1)
    5: NSLog(@"Number of taps is 1");
}

现在,正如您所看到的,我将tapCount值分配给第1行中的numTaps。在第3行中,根据抽头计数,我的标签显示计数1,2,3,4 .... n。但是在第4行我检查numTaps是否等于1.这里有奇怪的东西。无论触摸多少次,总是执行第5行中的命令。因此看起来numTaps总是为1.但是第2行中的namTaps并不总是一个。我确定我在那里遗漏了一些但却无法弄清楚是什么。

1 个答案:

答案 0 :(得分:0)


从我所看到的可能是你忘记了一些;在第4行的很多空格之后,它位于屏幕的不可见区域(至少如果你不滚动到那里)。尝试将第5行放在{}块中,如此

4: if (numTaps==1){
5:     NSLog(@"Number of taps is 1");
6: }

将if块放在大括号内总是好的做法,即使你只有一行代码。可以避免很多错误。
其他可能性是你在if子句中放了single =(对我来说很多)。

4: if (numTaps=1)

实际上将1分配给numTaps变量,所以当代码变为1时,内部为1。